# VoxelPrimitive

#### new Cesium.VoxelPrimitive(options)
engine/Source/Scene/VoxelPrimitive.js 45

A primitive that renders voxel data from a `VoxelProvider`.

Name | Type | Description
--- | --- | ---
`options` | object | optional Object with the following properties:
Name | Type | Default | Description
--- | --- | --- | ---
`provider` | VoxelProvider |  | optional The voxel provider that supplies the primitive with tile data.
`modelMatrix` | Matrix4 | `Matrix4.IDENTITY` | optional The model matrix used to transform the primitive.
`customShader` | CustomShader |  | optional The custom shader used to style the primitive.
`clock` | Clock |  | optional The clock used to control time dynamic behavior.

##### Experimental

This feature is not final and is subject to change without Cesium's standard deprecation policy.

##### See:

- VoxelProvider
- Cesium3DTilesVoxelProvider
- VoxelShapeType

### Members

#### readonly boundingSphere : BoundingSphere
engine/Source/Scene/VoxelPrimitive.js 496

Gets the bounding sphere.

#### clippingPlanes : ClippingPlaneCollection
engine/Source/Scene/VoxelPrimitive.js 926

The `ClippingPlaneCollection` used to selectively disable rendering the primitive.

#### customShader : CustomShader
engine/Source/Scene/VoxelPrimitive.js 942

Gets or sets the custom shader. If undefined, `VoxelPrimitive.DefaultCustomShader` is set.

#### readonly customShaderCompilationEvent : Event
engine/Source/Scene/VoxelPrimitive.js 979

Gets an event that is raised whenever a custom shader is compiled.

#### debugDraw : boolean
engine/Source/Scene/VoxelPrimitive.js 689

Gets or sets whether or not to render debug visualizations.

#### depthTest : boolean
engine/Source/Scene/VoxelPrimitive.js 708

Gets or sets whether or not to test against depth when rendering.

#### readonly dimensions : Cartesian3
engine/Source/Scene/VoxelPrimitive.js 585

Gets the voxel dimensions.

#### disableUpdate : boolean
engine/Source/Scene/VoxelPrimitive.js 670

Gets or sets whether or not the primitive should update when the view changes.

#### jitter : boolean
engine/Source/Scene/VoxelPrimitive.js 731

Gets or sets whether or not to jitter the view ray during the raymarch. This reduces stair-step artifacts but introduces noise.

#### maxBounds : Cartesian3
engine/Source/Scene/VoxelPrimitive.js 861

Gets or sets the maximum bounds in the shape's local coordinate system. Voxel data is stretched or squashed to fit the bounds.

#### maxClippingBounds : Cartesian3
engine/Source/Scene/VoxelPrimitive.js 904

Gets or sets the maximum clipping location in the shape's local coordinate system. Any voxel content outside the range is clipped.

#### readonly maximumValues : Array.<Array.<number>>
engine/Source/Scene/VoxelPrimitive.js 631

Gets the maximum value per channel of the voxel data.

#### minBounds : Cartesian3
engine/Source/Scene/VoxelPrimitive.js 841

Gets or sets the minimum bounds in the shape's local coordinate system. Voxel data is stretched or squashed to fit the bounds.

#### minClippingBounds : Cartesian3
engine/Source/Scene/VoxelPrimitive.js 881

Gets or sets the minimum clipping location in the shape's local coordinate system. Any voxel content outside the range is clipped.

#### readonly minimumValues : Array.<Array.<number>>
engine/Source/Scene/VoxelPrimitive.js 608

Gets the minimum value per channel of the voxel data.

#### readonly modelMatrix : Matrix4
engine/Source/Scene/VoxelPrimitive.js 540

Gets the model matrix.

#### nearestSampling : boolean
engine/Source/Scene/VoxelPrimitive.js 753

Gets or sets the nearest sampling.

#### readonly orientedBoundingBox : OrientedBoundingBox
engine/Source/Scene/VoxelPrimitive.js 519

Gets the oriented bounding box.

#### readonly provider : VoxelProvider
engine/Source/Scene/VoxelPrimitive.js 481

Gets the `VoxelProvider` associated with this primitive.

#### readonly ready : boolean
engine/Source/Scene/VoxelPrimitive.js 455

Gets a value indicating whether or not the primitive is ready for use.

#### readonly readyPromise : Promise.<VoxelPrimitive>
engine/Source/Scene/VoxelPrimitive.js 468

Gets the promise that will be resolved when the primitive is ready for use.

#### screenSpaceError : number
engine/Source/Scene/VoxelPrimitive.js 800

Gets or sets the screen space error in pixels. If the screen space size of a voxel is greater than the screen space error, the tile is subdivided. Lower screen space error corresponds with higher detail rendering, but could result in worse performance and higher memory consumption.

#### readonly shape : VoxelShapeType
engine/Source/Scene/VoxelPrimitive.js 562

Gets the shape type.

#### show : boolean
engine/Source/Scene/VoxelPrimitive.js 651

Gets or sets whether or not this primitive should be displayed.

#### stepSize : number
engine/Source/Scene/VoxelPrimitive.js 821

Gets or sets the step size multiplier used during raymarching. The lower the value, the higher the rendering quality, but also the worse the performance.

### Methods

#### destroy()
engine/Source/Scene/VoxelPrimitive.js 1618

Destroys the WebGL resources held by this object. Destroying an object allows for deterministic release of WebGL resources, instead of relying on the garbage collector to destroy this object.
Once an object is destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception. Therefore, assign the return value (`undefined`) to the object as done in the example.

##### Throws:

- DeveloperError : This object was destroyed, i.e., destroy() was called.

##### Example:

    voxelPrimitive = voxelPrimitive && voxelPrimitive.destroy();

##### See:

- VoxelPrimitive#isDestroyed

#### isDestroyed() → boolean
engine/Source/Scene/VoxelPrimitive.js 1599

Returns true if this object was destroyed; otherwise, false.
If this object was destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception.

##### Returns:

`true` if this object was destroyed; otherwise, `false`.

##### See:

- VoxelPrimitive#destroy

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