You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.1 KiB
JavaScript

import StencilFunction from "./StencilFunction.js";
import StencilOperation from "./StencilOperation.js";
/**
* The most significant bit is used to identify whether the pixel is 3D Tiles.
* The next three bits store selection depth for the skip LODs optimization.
* The last four bits are for increment/decrement shadow volume operations for classification.
*
* @private
*/
var StencilConstants = {
CESIUM_3D_TILE_MASK: 0x80,
SKIP_LOD_MASK: 0x70,
SKIP_LOD_BIT_SHIFT: 4,
CLASSIFICATION_MASK: 0x0f,
};
StencilConstants.setCesium3DTileBit = function () {
return {
enabled: true,
frontFunction: StencilFunction.ALWAYS,
frontOperation: {
fail: StencilOperation.KEEP,
zFail: StencilOperation.KEEP,
zPass: StencilOperation.REPLACE,
},
backFunction: StencilFunction.ALWAYS,
backOperation: {
fail: StencilOperation.KEEP,
zFail: StencilOperation.KEEP,
zPass: StencilOperation.REPLACE,
},
reference: StencilConstants.CESIUM_3D_TILE_MASK,
mask: StencilConstants.CESIUM_3D_TILE_MASK,
};
};
export default Object.freeze(StencilConstants);