# CSMFrustum

Represents the frustum of a CSM instance.

## Import

CSMFrustum is an addon, and must be imported explicitly, see Installation#Addons.

    import { CSMFrustum } from 'three/addons/csm/CSMFrustum.js';

## Constructor

### new CSMFrustum ( data : CSMFrustum~Data )

Constructs a new CSM frustum.

data | The CSM data.

## Properties

### .vertices : Object

An object representing the vertices of the near and far plane in view space.

### .zNear : number

The zNear value. This value depends on whether the CSM is used with WebGL or WebGPU. Both API use different conventions for their projection matrices.

## Methods

### .setFromProjectionMatrix ( projectionMatrix : Matrix4, maxFar : number ) : Object

Setups this CSM frustum from the given projection matrix and max far value.

projectionMatrix | The projection matrix, usually of the scene's camera.
maxFar | The maximum far value.

Returns: An object representing the vertices of the near and far plane in view space.

### .split ( breaks : Array.<number>, target : Array.<CSMFrustum> )

Splits the CSM frustum by the given array. The new CSM frustum are pushed into the given target array.

breaks | An array of numbers in the range `[0,1]` the defines how the CSM frustum should be split up.
target | The target array that holds the new CSM frustums.

### .toSpace ( cameraMatrix : Matrix4, target : CSMFrustum )

Transforms the given target CSM frustum into the different coordinate system defined by the given camera matrix.

cameraMatrix | The matrix that defines the new coordinate system.
target | The CSM to convert.

## Type Definitions

### .Data

Constructor data of `CSMFrustum`.

webGL boolean | Whether this CSM frustum is used with WebGL or WebGPU.
projectionMatrix Matrix4 | A projection matrix usually of the scene's camera.
maxFar number | The maximum far value.

## Source

examples/jsm/csm/CSMFrustum.js