constructor( csm ) {

		super();

		/**
		 * The CSM instance to visualize.
		 *
		 * @type {CSM|CSMShadowNode}
		 */
		this.csm = csm;

		/**
		 * Whether to display the CSM frustum or not.
		 *
		 * @type {boolean}
		 * @default true
		 */
		this.displayFrustum = true;

		/**
		 * Whether to display the cascade planes or not.
		 *
		 * @type {boolean}
		 * @default true
		 */
		this.displayPlanes = true;

		/**
		 * Whether to display the shadow bounds or not.
		 *
		 * @type {boolean}
		 * @default true
		 */
		this.displayShadowBounds = true;

		const indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );
		const positions = new Float32Array( 24 );
		const frustumGeometry = new BufferGeometry();
		frustumGeometry.setIndex( new BufferAttribute( indices, 1 ) );
		frustumGeometry.setAttribute( 'position', new BufferAttribute( positions, 3, false ) );
		const frustumLines = new LineSegments( frustumGeometry, new LineBasicMaterial() );
		this.add( frustumLines );

		this.frustumLines = frustumLines;
		this.cascadeLines = [];
		this.cascadePlanes = [];
		this.shadowLines = [];

	}
Constructs a new CSM helper.

@param {CSM|CSMShadowNode} csm - The CSM instance to visualize.