PerspectiveOffCenterFrustum

new Cesium.PerspectiveOffCenterFrustum(options)

The viewing frustum is defined by 6 planes. Each plane is represented by a Cartesian4 object, where the x, y, and z components define the unit vector normal to the plane, and the w component is the distance of the plane from the origin/camera position.
Name Type Description
options Object optional An object with the following properties:
Name Type Default Description
left Number optional The left clipping plane distance.
right Number optional The right clipping plane distance.
top Number optional The top clipping plane distance.
bottom Number optional The bottom clipping plane distance.
near Number 1.0 optional The near clipping plane distance.
far Number 500000000.0 optional The far clipping plane distance.
Example:
const frustum = new Cesium.PerspectiveOffCenterFrustum({
    left : -1.0,
    right : 1.0,
    top : 1.0,
    bottom : -1.0,
    near : 1.0,
    far : 100.0
});
See:

Members

Defines the bottom clipping plane.
Default Value: undefined
The distance of the far plane.
Default Value: 500000000.0

readonly infiniteProjectionMatrix : Matrix4

Gets the perspective projection matrix computed from the view frustum with an infinite far plane.
See:
Defines the left clipping plane.
Default Value: undefined
The distance of the near plane.
Default Value: 1.0

readonly projectionMatrix : Matrix4

Gets the perspective projection matrix computed from the view frustum.
See:
Defines the right clipping plane.
Default Value: undefined
Defines the top clipping plane.
Default Value: undefined

Methods

Returns a duplicate of a PerspectiveOffCenterFrustum instance.
Name Type Description
result PerspectiveOffCenterFrustum optional The object onto which to store the result.
Returns:
The modified result parameter or a new PerspectiveFrustum instance if one was not provided.

computeCullingVolume(position, direction, up)CullingVolume

Creates a culling volume for this frustum.
Name Type Description
position Cartesian3 The eye position.
direction Cartesian3 The view direction.
up Cartesian3 The up direction.
Returns:
A culling volume at the given position and orientation.
Example:
// Check if a bounding volume intersects the frustum.
const cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
const intersect = cullingVolume.computeVisibility(boundingVolume);

equals(other)Boolean

Compares the provided PerspectiveOffCenterFrustum componentwise and returns true if they are equal, false otherwise.
Name Type Description
other PerspectiveOffCenterFrustum optional The right hand side PerspectiveOffCenterFrustum.
Returns:
true if they are equal, false otherwise.

equalsEpsilon(other, relativeEpsilon, absoluteEpsilon)Boolean

Compares the provided PerspectiveOffCenterFrustum componentwise and returns true if they pass an absolute or relative tolerance test, false otherwise.
Name Type Default Description
other PerspectiveOffCenterFrustum The right hand side PerspectiveOffCenterFrustum.
relativeEpsilon Number The relative epsilon tolerance to use for equality testing.
absoluteEpsilon Number relativeEpsilon optional The absolute epsilon tolerance to use for equality testing.
Returns:
true if this and other are within the provided epsilon, false otherwise.

getPixelDimensions(drawingBufferWidth, drawingBufferHeight, distance, pixelRatio, result)Cartesian2

Returns the pixel's width and height in meters.
Name Type Description
drawingBufferWidth Number The width of the drawing buffer.
drawingBufferHeight Number The height of the drawing buffer.
distance Number The distance to the near plane in meters.
pixelRatio Number The scaling factor from pixel space to coordinate space.
result Cartesian2 The object onto which to store the result.
Returns:
The modified result parameter or a new instance of Cartesian2 with the pixel's width and height in the x and y properties, respectively.
Throws:
Examples:
// Example 1
// Get the width and height of a pixel.
const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, scene.pixelRatio, new Cesium.Cartesian2());
// Example 2
// Get the width and height of a pixel if the near plane was set to 'distance'.
// For example, get the size of a pixel of an image on a billboard.
const position = camera.position;
const direction = camera.direction;
const toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3());      // vector from camera to a primitive
const toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector
const distance = Cesium.Cartesian3.magnitude(toCenterProj);
const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, scene.pixelRatio, new Cesium.Cartesian2());
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.