# VoxelPrimitive

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

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 537

Gets the bounding sphere.

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

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

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

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

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

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

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

Gets or sets whether or not to render debug visualizations.

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

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

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

Gets the voxel dimensions.

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

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

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

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 844

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 887

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 622

Gets the maximum value per channel of the voxel data.

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

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 864

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 609

Gets the minimum value per channel of the voxel data.

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

Gets the model matrix.

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

Gets or sets the nearest sampling.

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

Gets the oriented bounding box.

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

Gets the `VoxelProvider` associated with this primitive.

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

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

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

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 583

Gets the shape type.

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

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

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

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 1692

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 1673

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.