PerspectiveFrustum

new PerspectiveFrustum()

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.PerspectiveFrustum();
frustum.aspectRatio = canvas.clientWidth / canvas.clientHeight;
frustum.fov = Cesium.Math.PI_OVER_THREE;
frustum.near = 1.0;
frustum.far = 2.0;
See:

Members

aspectRatio :Number

The aspect ratio of the frustum's width to it's height.
Default Value: undefined

far :Number

The distance of the far plane.
Default Value: 500000000.0

fov :Number

The angle of the field of view (FOV), in radians. This angle will be used as the horizontal FOV if the width is greater than the height, otherwise it will be the vertical FOV.
Default Value: undefined

fovy :Number

Gets the angle of the vertical field of view, in radians.
Default Value: undefined

infiniteProjectionMatrix :Matrix4

The perspective projection matrix computed from the view frustum with an infinite far plane.
See:

near :Number

The distance of the near plane.
Default Value: 1.0

projectionMatrix :Matrix4

Gets the perspective projection matrix computed from the view frustum.
See:

Methods

clone(result)PerspectiveFrustum

Returns a duplicate of a PerspectiveFrustum instance.
Name Type Description
result PerspectiveFrustum 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.
var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
var intersect = cullingVolume.computeVisibility(boundingVolume);

equals(other)Boolean

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

getPixelSize(drawingBufferDimensions, distance, result)Cartesian2

Returns the pixel's width and height in meters.
Name Type Default Description
drawingBufferDimensions Cartesian2 A Cartesian2 with width and height in the x and y properties, respectively.
distance Number near plane distance optional The distance to the near plane in meters.
result Cartesian2 optional 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:
  • DeveloperError : drawingBufferDimensions.x must be greater than zero.
  • DeveloperError : drawingBufferDimensions.y must be greater than zero.
Examples:
// Example 1
// Get the width and height of a pixel.
var pixelSize = camera.frustum.getPixelSize({
    width : canvas.clientWidth,
    height : canvas.clientHeight
});
// 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)); // project vector onto camera direction vector
var distance = Cesium.Cartesian3.magnitude(toCenterProj);
var pixelSize = camera.frustum.getPixelSize({
    width : canvas.clientWidth,
    height : canvas.clientHeight
}, distance);