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.
Example:
var frustum = new Cesium.PerspectiveOffCenterFrustum();
frustum.right = 1.0;
frustum.left = -1.0;
frustum.top = 1.0;
frustum.bottom = -1.0;
frustum.near = 1.0;
frustum.far = 2.0;
See:
Members
-
Defines the bottom clipping plane.
-
Default Value:
undefined -
The distance of the far plane.
-
Default Value:
500000000.0 -
readonlyinfiniteProjectionMatrix : Matrix4
-
Gets the perspective projection matrix computed from the view frustum with an infinite far plane.
-
Defines the left clipping plane.
-
Default Value:
undefined -
The distance of the near plane.
-
Default Value:
1.0 -
readonlyprojectionMatrix : Matrix4
-
Gets the perspective projection matrix computed from the view frustum.
-
Defines the right clipping plane.
-
Default Value:
undefined -
Defines the top clipping plane.
-
Default Value:
undefined
Methods
-
clone(result) → PerspectiveOffCenterFrustum
-
Returns a duplicate of a PerspectiveOffCenterFrustum instance.
Name Type Description resultPerspectiveOffCenterFrustum 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 positionCartesian3 The eye position. directionCartesian3 The view direction. upCartesian3 The up direction. Returns:
A culling volume at the given position and orientation.Example:
// Check if a bounding volume intersects the frustum. var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp); var intersect = cullingVolume.computeVisibility(boundingVolume); -
Compares the provided PerspectiveOffCenterFrustum componentwise and returns
trueif they are equal,falseotherwise.Name Type Description otherPerspectiveOffCenterFrustum optional The right hand side PerspectiveOffCenterFrustum. Returns:
trueif they are equal,falseotherwise. -
getPixelDimensions(drawingBufferWidth, drawingBufferHeight, distance, result) → Cartesian2
-
Returns the pixel's width and height in meters.
Name Type Description drawingBufferWidthNumber The width of the drawing buffer. drawingBufferHeightNumber The height of the drawing buffer. distanceNumber The distance to the near plane in meters. resultCartesian2 The object onto which to store the result. Returns:
The modified result parameter or a new instance ofCartesian2with the pixel's width and height in the x and y properties, respectively.Throws:
-
DeveloperError : drawingBufferWidth must be greater than zero.
-
DeveloperError : drawingBufferHeight must be greater than zero.
Examples:
// Example 1 // Get the width and height of a pixel. var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, 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. var position = camera.position; var direction = camera.direction; var toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3()); // vector from camera to a primitive var toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector var distance = Cesium.Cartesian3.magnitude(toCenterProj); var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, new Cesium.Cartesian2()); -
