# OrthographicOffCenterFrustum

#### new Cesium.OrthographicOffCenterFrustum(options)
engine/Source/Core/OrthographicOffCenterFrustum.js 38

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 maxRadii = ellipsoid.maximumRadius;

    const frustum = new Cesium.OrthographicOffCenterFrustum();
    frustum.right = maxRadii * Cesium.Math.PI;
    frustum.left = -c.frustum.right;
    frustum.top = c.frustum.right * (canvas.clientHeight / canvas.clientWidth);
    frustum.bottom = -c.frustum.top;
    frustum.near = 0.01 * maxRadii;
    frustum.far = 50.0 * maxRadii;

### Members

#### bottom : number|undefined
engine/Source/Core/OrthographicOffCenterFrustum.js 70

The bottom clipping plane.

Default Value: `undefined`

#### far : number
engine/Source/Core/OrthographicOffCenterFrustum.js 86

The distance of the far plane.

Default Value: `500000000.0;`

#### left : number|undefined
engine/Source/Core/OrthographicOffCenterFrustum.js 46

The left clipping plane.

Default Value: `undefined`

#### near : number
engine/Source/Core/OrthographicOffCenterFrustum.js 78

The distance of the near plane.

Default Value: `1.0`

#### readonly projectionMatrix : Matrix4
engine/Source/Core/OrthographicOffCenterFrustum.js 156

Gets the orthographic projection matrix computed from the view frustum.

#### right : number|undefined
engine/Source/Core/OrthographicOffCenterFrustum.js 54

The right clipping plane.

Default Value: `undefined`

#### top : number|undefined
engine/Source/Core/OrthographicOffCenterFrustum.js 62

The top clipping plane.

Default Value: `undefined`

### Methods

#### clone(result) → OrthographicOffCenterFrustum
engine/Source/Core/OrthographicOffCenterFrustum.js 363

Returns a duplicate of a OrthographicOffCenterFrustum instance.

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

##### Returns:

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

#### computeCullingVolume(position, direction, up) → CullingVolume
engine/Source/Core/OrthographicOffCenterFrustum.js 182

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
engine/Source/Core/OrthographicOffCenterFrustum.js 393

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

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

##### Returns:

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

#### equalsEpsilon(other, relativeEpsilon, absoluteEpsilon) → boolean
engine/Source/Core/OrthographicOffCenterFrustum.js 416

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

Name | Type | Default | Description
--- | --- | --- | ---
`other` | OrthographicOffCenterFrustum |  | The right hand side OrthographicOffCenterFrustum.
`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
engine/Source/Core/OrthographicOffCenterFrustum.js 312

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.
    const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 0.0, scene.pixelRatio, new Cesium.Cartesian2());

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.