Closed
Description
Cesium3DTilesVoxelProvider.prototype.minBounds
and .maxBounds
are currently not consistent for different VoxelShapeType
s:
- For
VoxelShapeType.BOX
, the bounds are set toVoxelBoxShape.DefaultMinBounds
andVoxelBoxShape.DefaultMaxBounds
. The actual physical bounds as defined in theboundingVolume
in the tileset.json are incorporated into theshapeTransform
- For
VoxelShapeType.CYLINDER
, the bounds are set to the physical values from 3DTILES_bounding_volume_cylinder. TheshapeTransform
is constructed from thetranslation
androtation
from the same extension. - For
VoxelShapeType.ELLIPSOID
, the bounds are set to the physical longitude, latitude, and height bounds. TheshapeTransform
captures the scaling of the ellipsoid axes.
For better consistency, we should use physically meaningful values in all shape types. This will require us to:
- Update the
getBoxShape
helper function inCesium3DTilesVoxelProvider
to store the physical bounds. We will then need to verify theshapeTransform
throughout the rendering flow, to make sure we are not double-scaling anything. - Update the
VoxelInspectorViewModel.voxelPrimitive
setter to apply the actual bounds to themin
andmax
of the range slider (they are currently set to constant values based on theDefaultMinBounds
andDefaultMaxBounds
)