# OrthographicFrustum

#### new Cesium.OrthographicFrustum(options)
Core/OrthographicFrustum.js 30

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
--- | --- | --- | ---
`width` | Number |  | optional The width of the frustum in meters.
`aspectRatio` | Number |  | optional The aspect ratio of the frustum's width to it's height.
`near` | Number | `1.0` | optional The distance of the near plane.
`far` | Number | `500000000.0` | optional The distance of the far plane.

##### Example:

    var maxRadii = ellipsoid.maximumRadius;

    var frustum = new Cesium.OrthographicFrustum();
    frustum.near = 0.01 * maxRadii;
    frustum.far = 50.0 * maxRadii;

### Members

#### static Cesium.OrthographicFrustum.packedLength : Number
Core/OrthographicFrustum.js 72

The number of elements used to pack the object into an array.

#### aspectRatio : Number
Core/OrthographicFrustum.js 48

The aspect ratio of the frustum's width to it's height.

Default Value: `undefined`

#### far : Number
Core/OrthographicFrustum.js 64

The distance of the far plane.

Default Value: `500000000.0;`

#### near : Number
Core/OrthographicFrustum.js 56

The distance of the near plane.

Default Value: `1.0`

#### readonly projectionMatrix : Matrix4
Core/OrthographicFrustum.js 181

Gets the orthographic projection matrix computed from the view frustum.

#### width : Number
Core/OrthographicFrustum.js 40

The horizontal width of the frustum in meters.

Default Value: `undefined`

### Methods

#### static Cesium.OrthographicFrustum.pack(value, array, startingIndex) → Array.<Number>
Core/OrthographicFrustum.js 83

Stores the provided instance into the provided array.

Name | Type | Default | Description
--- | --- | --- | ---
`value` | OrthographicFrustum |  | The value to pack.
`array` | Array.<Number> |  | The array to pack into.
`startingIndex` | Number | `0` | optional The index into the array at which to start packing the elements.

##### Returns:

The array that was packed into

#### static Cesium.OrthographicFrustum.unpack(array, startingIndex, result) → OrthographicFrustum
Core/OrthographicFrustum.js 107

Retrieves an instance from a packed array.

Name | Type | Default | Description
--- | --- | --- | ---
`array` | Array.<Number> |  | The packed array.
`startingIndex` | Number | `0` | optional The starting index of the element to be unpacked.
`result` | OrthographicFrustum |  | optional The object into which to store the result.

##### Returns:

The modified result parameter or a new OrthographicFrustum instance if one was not provided.

#### clone(result) → OrthographicFrustum
Core/OrthographicFrustum.js 253

Returns a duplicate of a OrthographicFrustum instance.

Name | Type | Description
--- | --- | ---
`result` | OrthographicFrustum | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new OrthographicFrustum instance if one was not provided.

#### computeCullingVolume(position, direction, up) → CullingVolume
Core/OrthographicFrustum.js 202

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
Core/OrthographicFrustum.js 281

Compares the provided OrthographicFrustum componentwise and returns `true` if they are equal, `false` otherwise.

Name | Type | Description
--- | --- | ---
`other` | OrthographicFrustum | optional The right hand side OrthographicFrustum.

##### Returns:

`true` if they are equal, `false` otherwise.

#### equalsEpsilon(other, relativeEpsilon, absoluteEpsilon) → Boolean
Core/OrthographicFrustum.js 306

Compares the provided OrthographicFrustum componentwise and returns `true` if they pass an absolute or relative tolerance test, `false` otherwise.

Name | Type | Default | Description
--- | --- | --- | ---
`other` | OrthographicFrustum |  | The right hand side OrthographicFrustum.
`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
Core/OrthographicFrustum.js 230

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:

- DeveloperError : drawingBufferWidth must be greater than zero.
- DeveloperError : drawingBufferHeight must be greater than zero.
- DeveloperError : pixelRatio must be greater than zero.

##### Example:

    // Example 1
    // Get the width and height of a pixel.
    var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 0.0, scene.pixelRatio, new Cesium.Cartesian2());