VoxelPrimitive

new Ditap.VoxelPrimitive(options)

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.
calculateStatistics boolean optional Generate statistics for performance profile.
Experimental

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

See:

Members

allTilesLoaded : Event

The event fired to indicate that all tiles that meet the screen space error this frame are loaded. The voxel primitive is completely loaded for this view.

This event is fired at the end of the frame after the scene is rendered.

Example:
voxelPrimitive.allTilesLoaded.addEventListener(function() {
    console.log('All tiles are loaded');
});

readonly boundingSphere : BoundingSphere

Gets the bounding sphere.

clippingPlanes : ClippingPlaneCollection

The ClippingPlaneCollection used to selectively disable rendering the primitive.

customShader : CustomShader

Gets or sets the custom shader. If undefined, attempt to build a default custom shader appropriate to the metadata type. If that fails, use VoxelPrimitive.DefaultCustomShader.
See:

readonly customShaderCompilationEvent : Event

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

debugDraw : boolean

Gets or sets whether or not to render debug visualizations.

depthTest : boolean

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

constant dimensions : Cartesian3

Gets the dimensions of each voxel tile, in z-up orientation. Does not include padding.

disableUpdate : boolean

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

initialTilesLoaded : Event

The event fired to indicate that all tiles that meet the screen space error this frame are loaded. This event is fired once when all tiles in the initial view are loaded.

This event is fired at the end of the frame after the scene is rendered.

Example:
voxelPrimitive.initialTilesLoaded.addEventListener(function() {
    console.log('Initial tiles are loaded');
});
See:

constant inputDimensions : Cartesian3

Gets the dimensions of one tile of the input voxel data, in the input orientation. Includes padding.

loadProgress : Event

The event fired to indicate progress of loading new tiles. This event is fired when a new tile is requested, when a requested tile is finished downloading, and when a downloaded tile has been processed and is ready to render.

The number of pending tile requests, numberOfPendingRequests, and number of tiles processing, numberOfTilesProcessing are passed to the event listener.

This event is fired at the end of the frame after the scene is rendered.

Example:
voxelPrimitive.loadProgress.addEventListener(function(numberOfPendingRequests, numberOfTilesProcessing) {
    if ((numberOfPendingRequests === 0) && (numberOfTilesProcessing === 0)) {
        console.log('Finished loading');
        return;
    }

    console.log(`Loading: requests: ${numberOfPendingRequests}, processing: ${numberOfTilesProcessing}`);
});

maxBounds : Cartesian3

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

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

constant maximumValues : Array.<Array.<number>>

Gets the maximum value per channel of the voxel data.

minBounds : Cartesian3

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

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

constant minimumValues : Array.<Array.<number>>

Gets the minimum value per channel of the voxel data.

readonly modelMatrix : Matrix4

Gets the model matrix.

nearestSampling : boolean

Gets or sets the nearest sampling.

readonly orientedBoundingBox : OrientedBoundingBox

Gets the oriented bounding box.

constant paddingAfter : Cartesian3

Gets the padding after the voxel data.

constant paddingBefore : Cartesian3

Gets the padding before the voxel data.

readonly provider : VoxelProvider

Gets the VoxelProvider associated with this primitive.

readonly ready : boolean

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

screenSpaceError : number

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

Gets the shape type.

show : boolean

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

stepSize : number

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.

tileFailed : Event

The event fired to indicate that a tile's content failed to load.
Example:
voxelPrimitive.tileFailed.addEventListener(function() {
    console.log('An error occurred loading tile.');
});

tileLoad : Event

The event fired to indicate that a tile's content was loaded.

This event is fired during the tileset traversal while the frame is being rendered so that updates to the tile take effect in the same frame. Do not create or modify Cesium entities or primitives during the event listener.

Example:
voxelPrimitive.tileLoad.addEventListener(function() {
    console.log('A tile was loaded.');
});

tileUnload : Event

The event fired to indicate that a tile's content was unloaded.
Example:
voxelPrimitive.tileUnload.addEventListener(function() {
    console.log('A tile was unloaded from the cache.');
});

tileVisible : Event

This event fires once for each visible tile in a frame.

This event is fired during the traversal while the frame is being rendered.

Example:
voxelPrimitive.tileVisible.addEventListener(function() {
    console.log('A tile is visible.');
});

Methods

destroy()

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:

isDestroyed() → boolean

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: