@cesium/engine 6.2.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/ThirdParty/Workers/z-worker-pako.js +568 -407
- package/Build/Workers/{chunk-RH4N2ONY.js → chunk-23UFSGND.js} +7 -7
- package/Build/Workers/{chunk-HPP4JLNH.js → chunk-2A75IWRS.js} +7 -7
- package/Build/Workers/{chunk-5IRLXUTA.js → chunk-2FRVPMCS.js} +10 -10
- package/Build/Workers/{chunk-ZQRZBHYI.js → chunk-2FWRMUTY.js} +4 -4
- package/Build/Workers/{chunk-Z2SIPUKB.js → chunk-2UPKWTMJ.js} +6 -6
- package/Build/Workers/{chunk-434ZTTFX.js → chunk-34FXV7D7.js} +2 -2
- package/Build/Workers/{chunk-MW3CJYLX.js → chunk-3VAZEH7M.js} +2 -2
- package/Build/Workers/{chunk-HUPNRBWW.js → chunk-4DO5W5XZ.js} +6 -6
- package/Build/Workers/{chunk-PIXK6KHB.js → chunk-4H7PY4U5.js} +2 -2
- package/Build/Workers/{chunk-BP467WX3.js → chunk-5QULIR53.js} +4 -4
- package/Build/Workers/{chunk-R3HUGXBH.js → chunk-7TC63SJW.js} +8 -8
- package/Build/Workers/{chunk-SQVTYRZY.js → chunk-7ZFGPDJA.js} +4 -4
- package/Build/Workers/{chunk-TIXXVKUY.js → chunk-A5DWLWCY.js} +10 -10
- package/Build/Workers/{chunk-CWJQGBWT.js → chunk-BBWDMCVU.js} +1 -1
- package/Build/Workers/{chunk-4KP73B43.js → chunk-BG4UCVXN.js} +3 -3
- package/Build/Workers/{chunk-Y4OJ4B23.js → chunk-BIKA3NRA.js} +5 -5
- package/Build/Workers/{chunk-DR5XZ6K5.js → chunk-BROJAZRZ.js} +13 -13
- package/Build/Workers/{chunk-FWGNCYP6.js → chunk-DDUQAJ4P.js} +7 -7
- package/Build/Workers/{chunk-QRBRVGZC.js → chunk-EERJKOAF.js} +4 -4
- package/Build/Workers/{chunk-52VSIKEA.js → chunk-EG6PTBY2.js} +15 -15
- package/Build/Workers/{chunk-O43GWBSF.js → chunk-EHWHNOEX.js} +1 -1
- package/Build/Workers/{chunk-MN34FIF5.js → chunk-F3YA3Y2Z.js} +1 -1
- package/Build/Workers/{chunk-GF5TNNKP.js → chunk-F4HFJMGM.js} +6 -6
- package/Build/Workers/{chunk-HOT2SNXP.js → chunk-FJKNFAKQ.js} +133 -553
- package/Build/Workers/{chunk-TMPVBFJQ.js → chunk-FNIRWHJB.js} +10 -10
- package/Build/Workers/{chunk-DMCSY5BU.js → chunk-FZRIVR7Y.js} +5 -5
- package/Build/Workers/{chunk-Z4JUBRHP.js → chunk-G43QFN4Q.js} +6 -6
- package/Build/Workers/{chunk-HPH5HSFE.js → chunk-GATZHF3K.js} +2 -2
- package/Build/Workers/{chunk-CSIZ3BGT.js → chunk-GRC2ZTAF.js} +14 -14
- package/Build/Workers/{chunk-NE4JNU6H.js → chunk-HU6N6EXB.js} +10 -10
- package/Build/Workers/{chunk-GVL5I7TC.js → chunk-I46ZRR5W.js} +17 -17
- package/Build/Workers/{chunk-5GDBZTHX.js → chunk-JURN7NPV.js} +17 -17
- package/Build/Workers/{chunk-H5DUXHCV.js → chunk-KKCR2YOP.js} +11 -11
- package/Build/Workers/{chunk-LX6XV4DK.js → chunk-LPR3YNP2.js} +5 -5
- package/Build/Workers/{chunk-HFKSAB5K.js → chunk-M7ERACJJ.js} +13 -13
- package/Build/Workers/{chunk-BUZDZBUH.js → chunk-MDWEGWPA.js} +10 -10
- package/Build/Workers/{chunk-LGJUI2CE.js → chunk-OGXZVPPM.js} +9 -5
- package/Build/Workers/{chunk-PZ2WJWUG.js → chunk-PGSJK77E.js} +6 -6
- package/Build/Workers/{chunk-ARPTYYKS.js → chunk-PPH7OFP3.js} +5 -5
- package/Build/Workers/{chunk-R4OZKBXH.js → chunk-SH5USDPI.js} +6 -6
- package/Build/Workers/{chunk-SV7DDPAC.js → chunk-SOWMRMWA.js} +1 -1
- package/Build/Workers/{chunk-RIDPF7PO.js → chunk-STW2DGFI.js} +2 -2
- package/Build/Workers/{chunk-CDGHUKQ4.js → chunk-T3XIFPYR.js} +13 -13
- package/Build/Workers/chunk-TTUZP4BO.js +501 -0
- package/Build/Workers/{chunk-QTZQZY2C.js → chunk-UEXTBDBE.js} +34 -10
- package/Build/Workers/{chunk-XUTVA4K5.js → chunk-VOXYEYJT.js} +11 -11
- package/Build/Workers/{chunk-AXFRNOVC.js → chunk-X4356LRH.js} +12 -12
- package/Build/Workers/{chunk-5HLGKKG3.js → chunk-XGI5BXZY.js} +2 -2
- package/Build/Workers/{chunk-SNN7WOC2.js → chunk-Y2ME2IJV.js} +13 -13
- package/Build/Workers/{chunk-LGL4P5KL.js → chunk-Y5UQJLYE.js} +6 -6
- package/Build/Workers/{chunk-3PW6ZBN4.js → chunk-YJEBABKH.js} +7 -7
- package/Build/Workers/{chunk-YBKFS53K.js → chunk-YWTJ2B4B.js} +1 -1
- package/Build/Workers/{chunk-5SK36PU4.js → chunk-Z3TIFFGF.js} +7 -7
- package/Build/Workers/{chunk-JGG36SQV.js → chunk-ZT7KWISZ.js} +4 -4
- package/Build/Workers/combineGeometry.js +24 -23
- package/Build/Workers/createBoxGeometry.js +18 -17
- package/Build/Workers/createBoxOutlineGeometry.js +16 -15
- package/Build/Workers/createCircleGeometry.js +26 -25
- package/Build/Workers/createCircleOutlineGeometry.js +19 -18
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -32
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -30
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -19
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -17
- package/Build/Workers/createEllipseGeometry.js +26 -25
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -18
- package/Build/Workers/createEllipsoidGeometry.js +19 -18
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -17
- package/Build/Workers/createFrustumGeometry.js +18 -17
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -17
- package/Build/Workers/createGeometry.js +54 -33
- package/Build/Workers/createGroundPolylineGeometry.js +22 -21
- package/Build/Workers/createPlaneGeometry.js +16 -15
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -14
- package/Build/Workers/createPolygonGeometry.js +32 -166
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -29
- package/Build/Workers/createPolylineGeometry.js +25 -24
- package/Build/Workers/createPolylineVolumeGeometry.js +32 -33
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -26
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -19
- package/Build/Workers/createSimplePolylineGeometry.js +23 -22
- package/Build/Workers/createSphereGeometry.js +19 -18
- package/Build/Workers/createSphereOutlineGeometry.js +18 -17
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -23
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +22 -21
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -21
- package/Build/Workers/createVerticesFromHeightmap.js +22 -21
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -18
- package/Build/Workers/createWallGeometry.js +24 -23
- package/Build/Workers/createWallOutlineGeometry.js +23 -22
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +601 -92
- package/Build/Workers/transcodeKTX2.js +7 -7
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -21
- package/LICENSE.md +1 -1
- package/Source/Assets/approximateTerrainHeights.json +1 -1
- package/Source/Core/Ellipsoid.js +6 -0
- package/Source/Core/GregorianDate.js +85 -0
- package/Source/Core/HeadingPitchRange.js +2 -2
- package/Source/Core/IntersectionTests.js +6 -3
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/PixelFormat.js +5 -0
- package/Source/Core/PolygonGeometry.js +0 -169
- package/Source/Core/Resource.js +30 -69
- package/Source/Core/Transforms.js +30 -18
- package/Source/Core/createWorldBathymetryAsync.js +45 -0
- package/Source/Core/srgbToLinear.js +32 -0
- package/Source/DataSources/CzmlDataSource.js +51 -23
- package/Source/DataSources/DataSourceDisplay.js +27 -0
- package/Source/DataSources/EllipsoidGeometryUpdater.js +3 -4
- package/Source/DataSources/Entity.js +28 -7
- package/Source/DataSources/EntityCollection.js +1 -2
- package/Source/DataSources/GeometryUpdater.js +1 -2
- package/Source/DataSources/GeometryUpdaterSet.js +114 -0
- package/Source/DataSources/GeometryVisualizer.js +19 -83
- package/Source/DataSources/GroundGeometryUpdater.js +6 -3
- package/Source/DataSources/ModelVisualizer.js +19 -98
- package/Source/DataSources/PolygonGeometryUpdater.js +14 -2
- package/Source/DataSources/PolylineGeometryUpdater.js +9 -8
- package/Source/DataSources/TerrainOffsetProperty.js +15 -23
- package/Source/Renderer/AutomaticUniforms.js +121 -1
- package/Source/Renderer/Context.js +10 -0
- package/Source/Renderer/ContextLimits.js +2 -0
- package/Source/Renderer/UniformState.js +127 -0
- package/Source/Renderer/demodernizeShader.js +4 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Atmosphere.js +127 -0
- package/Source/Scene/Axis.js +12 -7
- package/Source/Scene/Billboard.js +29 -26
- package/Source/Scene/BillboardCollection.js +3 -3
- package/Source/Scene/Camera.js +47 -5
- package/Source/Scene/Cesium3DTile.js +1 -0
- package/Source/Scene/Cesium3DTileContent.js +14 -0
- package/Source/Scene/Cesium3DTileset.js +364 -45
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +2 -4
- package/Source/Scene/Cesium3DTilesetTraversal.js +4 -0
- package/Source/Scene/Composite3DTileContent.js +42 -0
- package/Source/Scene/DynamicAtmosphereLightingType.js +56 -0
- package/Source/Scene/Empty3DTileContent.js +4 -0
- package/Source/Scene/Fog.js +1 -0
- package/Source/Scene/FrameState.js +14 -1
- package/Source/Scene/Geometry3DTileContent.js +4 -0
- package/Source/Scene/Globe.js +3 -2
- package/Source/Scene/GlobeSurfaceTileProvider.js +3 -1
- package/Source/Scene/GlobeTranslucencyState.js +1 -1
- package/Source/Scene/GltfLoader.js +15 -5
- package/Source/Scene/GltfPipeline/updateVersion.js +69 -68
- package/Source/Scene/HeightReference.js +59 -2
- package/Source/Scene/I3SDataProvider.js +270 -53
- package/Source/Scene/I3SDecoder.js +8 -1
- package/Source/Scene/I3SFeature.js +2 -5
- package/Source/Scene/I3SField.js +136 -31
- package/Source/Scene/I3SGeometry.js +70 -2
- package/Source/Scene/I3SLayer.js +55 -10
- package/Source/Scene/I3SNode.js +175 -18
- package/Source/Scene/I3SStatistics.js +94 -0
- package/Source/Scene/I3SSublayer.js +176 -0
- package/Source/Scene/I3SSymbology.js +337 -0
- package/Source/Scene/Implicit3DTileContent.js +4 -0
- package/Source/Scene/KeyframeNode.js +1 -1
- package/Source/Scene/LabelCollection.js +2 -2
- package/Source/Scene/Model/AtmospherePipelineStage.js +59 -0
- package/Source/Scene/Model/B3dmLoader.js +4 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +25 -2
- package/Source/Scene/Model/I3dmLoader.js +4 -0
- package/Source/Scene/Model/InstancingPipelineStage.js +24 -6
- package/Source/Scene/Model/MetadataPipelineStage.js +31 -3
- package/Source/Scene/Model/Model.js +82 -32
- package/Source/Scene/Model/Model3DTileContent.js +31 -0
- package/Source/Scene/Model/ModelAnimationChannel.js +16 -15
- package/Source/Scene/Model/ModelSceneGraph.js +6 -0
- package/Source/Scene/Model/pickModel.js +426 -0
- package/Source/Scene/Multiple3DTileContent.js +42 -0
- package/Source/Scene/PickFramebuffer.js +37 -2
- package/Source/Scene/Picking.js +113 -39
- package/Source/Scene/Primitive.js +6 -2
- package/Source/Scene/QuadtreePrimitive.js +1 -1
- package/Source/Scene/Scene.js +312 -46
- package/Source/Scene/ScreenSpaceCameraController.js +23 -13
- package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
- package/Source/Scene/SkyAtmosphere.js +5 -6
- package/Source/Scene/SpatialNode.js +12 -19
- package/Source/Scene/StructuralMetadata.js +1 -1
- package/Source/Scene/Terrain.js +49 -0
- package/Source/Scene/TileBoundingS2Cell.js +2 -2
- package/Source/Scene/Tileset3DTileContent.js +4 -0
- package/Source/Scene/Vector3DTileContent.js +4 -0
- package/Source/Scene/VoxelBoxShape.js +76 -0
- package/Source/Scene/VoxelCell.js +273 -0
- package/Source/Scene/VoxelCylinderShape.js +114 -43
- package/Source/Scene/VoxelEllipsoidShape.js +158 -116
- package/Source/Scene/VoxelPrimitive.js +3 -1
- package/Source/Scene/VoxelRenderResources.js +3 -0
- package/Source/Scene/VoxelShape.js +13 -0
- package/Source/Scene/VoxelTraversal.js +76 -54
- package/Source/Scene/buildVoxelDrawCommands.js +23 -0
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -0
- package/Source/Scene/processVoxelProperties.js +2 -0
- package/Source/Shaders/AtmosphereCommon.glsl +3 -11
- package/Source/Shaders/AtmosphereCommon.js +3 -11
- package/Source/Shaders/Builtin/CzmBuiltins.js +12 -0
- package/Source/Shaders/Builtin/Functions/applyHSBShift.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/applyHSBShift.js +34 -0
- package/Source/Shaders/Builtin/Functions/approximateTanh.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/approximateTanh.js +12 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +46 -0
- package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.js +32 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.glsl +150 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.js +152 -0
- package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.js +24 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +5 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +5 -0
- package/Source/Shaders/GlobeFS.glsl +16 -25
- package/Source/Shaders/GlobeFS.js +16 -25
- package/Source/Shaders/GlobeVS.glsl +1 -1
- package/Source/Shaders/GlobeVS.js +1 -1
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +111 -0
- package/Source/Shaders/Model/AtmosphereStageFS.js +113 -0
- package/Source/Shaders/Model/AtmosphereStageVS.glsl +12 -0
- package/Source/Shaders/Model/AtmosphereStageVS.js +14 -0
- package/Source/Shaders/Model/GeometryStageFS.glsl +1 -1
- package/Source/Shaders/Model/GeometryStageFS.js +1 -1
- package/Source/Shaders/Model/GeometryStageVS.glsl +4 -4
- package/Source/Shaders/Model/GeometryStageVS.js +4 -4
- package/Source/Shaders/Model/ModelColorStageFS.glsl +1 -1
- package/Source/Shaders/Model/ModelColorStageFS.js +2 -1
- package/Source/Shaders/Model/ModelFS.glsl +4 -0
- package/Source/Shaders/Model/ModelFS.js +4 -0
- package/Source/Shaders/Model/ModelVS.glsl +9 -4
- package/Source/Shaders/Model/ModelVS.js +9 -4
- package/Source/Shaders/SkyAtmosphereCommon.glsl +3 -13
- package/Source/Shaders/SkyAtmosphereCommon.js +3 -13
- package/Source/Shaders/SkyAtmosphereFS.glsl +5 -10
- package/Source/Shaders/SkyAtmosphereFS.js +5 -10
- package/Source/Shaders/SkyAtmosphereVS.glsl +3 -2
- package/Source/Shaders/SkyAtmosphereVS.js +3 -2
- package/Source/Shaders/Voxels/IntersectCylinder.glsl +14 -111
- package/Source/Shaders/Voxels/IntersectCylinder.js +14 -111
- package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +32 -113
- package/Source/Shaders/Voxels/IntersectEllipsoid.js +32 -113
- package/Source/Shaders/Voxels/IntersectLongitude.glsl +102 -0
- package/Source/Shaders/Voxels/IntersectLongitude.js +104 -0
- package/Source/Shaders/Voxels/VoxelFS.glsl +39 -1
- package/Source/Shaders/Voxels/VoxelFS.js +39 -1
- package/Source/Shaders/Voxels/convertUvToCylinder.glsl +19 -37
- package/Source/Shaders/Voxels/convertUvToCylinder.js +19 -37
- package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +24 -44
- package/Source/Shaders/Voxels/convertUvToEllipsoid.js +24 -44
- package/Source/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/Source/ThirdParty/draco_decoder.wasm +0 -0
- package/Source/Workers/createGeometry.js +40 -11
- package/Source/Workers/decodeI3S.js +720 -94
- package/index.d.ts +574 -71
- package/index.js +217 -196
- package/package.json +3 -3
- package/Build/Workers/chunk-ATB2I7OS.js +0 -55
|
@@ -115,27 +115,20 @@ function VoxelEllipsoidShape() {
|
|
|
115
115
|
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE: undefined,
|
|
116
116
|
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO: undefined,
|
|
117
117
|
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF: undefined,
|
|
118
|
-
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF: undefined,
|
|
119
118
|
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF: undefined,
|
|
120
119
|
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY: undefined,
|
|
121
120
|
ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY: undefined,
|
|
122
121
|
ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE: undefined,
|
|
123
|
-
ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO: undefined,
|
|
124
122
|
ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED: undefined,
|
|
125
|
-
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE: undefined,
|
|
126
123
|
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF: undefined,
|
|
127
124
|
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF: undefined,
|
|
128
125
|
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF: undefined,
|
|
129
126
|
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF: undefined,
|
|
130
127
|
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF: undefined,
|
|
131
128
|
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF: undefined,
|
|
132
|
-
ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO: undefined,
|
|
133
129
|
ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE: undefined,
|
|
134
|
-
ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO: undefined,
|
|
135
130
|
ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX: undefined,
|
|
136
131
|
ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN: undefined,
|
|
137
|
-
ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT: undefined,
|
|
138
|
-
ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN: undefined,
|
|
139
132
|
ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT: undefined,
|
|
140
133
|
ELLIPSOID_IS_SPHERE: undefined,
|
|
141
134
|
ELLIPSOID_INTERSECTION_INDEX_LONGITUDE: undefined,
|
|
@@ -156,7 +149,6 @@ function VoxelEllipsoidShape() {
|
|
|
156
149
|
const scratchScale = new Cartesian3();
|
|
157
150
|
const scratchRotationScale = new Matrix3();
|
|
158
151
|
const scratchShapeOuterExtent = new Cartesian3();
|
|
159
|
-
const scratchShapeInnerExtent = new Cartesian3();
|
|
160
152
|
const scratchRenderOuterExtent = new Cartesian3();
|
|
161
153
|
const scratchRenderInnerExtent = new Cartesian3();
|
|
162
154
|
const scratchRenderRectangle = new Rectangle();
|
|
@@ -265,17 +257,7 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
265
257
|
const renderMinHeight = Math.max(shapeMinHeight, clipMinHeight);
|
|
266
258
|
const renderMaxHeight = Math.min(shapeMaxHeight, clipMaxHeight);
|
|
267
259
|
|
|
268
|
-
// Compute the
|
|
269
|
-
const shapeInnerExtent = Cartesian3.add(
|
|
270
|
-
radii,
|
|
271
|
-
Cartesian3.fromElements(
|
|
272
|
-
shapeMinHeight,
|
|
273
|
-
shapeMinHeight,
|
|
274
|
-
shapeMinHeight,
|
|
275
|
-
scratchShapeInnerExtent
|
|
276
|
-
),
|
|
277
|
-
scratchShapeInnerExtent
|
|
278
|
-
);
|
|
260
|
+
// Compute the farthest a point can be from the center of the ellipsoid.
|
|
279
261
|
const shapeOuterExtent = Cartesian3.add(
|
|
280
262
|
radii,
|
|
281
263
|
Cartesian3.fromElements(
|
|
@@ -381,18 +363,14 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
381
363
|
renderIsLongitudeReversed * defaultLongitudeRange;
|
|
382
364
|
const renderIsLongitudeRangeZero = renderLongitudeRange <= epsilonLongitude;
|
|
383
365
|
const renderIsLongitudeRangeUnderHalf =
|
|
384
|
-
renderLongitudeRange > defaultLongitudeRangeHalf + epsilonLongitude &&
|
|
385
|
-
renderLongitudeRange < defaultLongitudeRange - epsilonLongitude;
|
|
386
|
-
const renderIsLongitudeRangeHalf =
|
|
387
366
|
renderLongitudeRange >= defaultLongitudeRangeHalf - epsilonLongitude &&
|
|
388
|
-
renderLongitudeRange
|
|
367
|
+
renderLongitudeRange < defaultLongitudeRange - epsilonLongitude;
|
|
389
368
|
const renderIsLongitudeRangeOverHalf =
|
|
390
369
|
renderLongitudeRange > epsilonLongitude &&
|
|
391
370
|
renderLongitudeRange < defaultLongitudeRangeHalf - epsilonLongitude;
|
|
392
371
|
const renderHasLongitude =
|
|
393
372
|
renderIsLongitudeRangeZero ||
|
|
394
373
|
renderIsLongitudeRangeUnderHalf ||
|
|
395
|
-
renderIsLongitudeRangeHalf ||
|
|
396
374
|
renderIsLongitudeRangeOverHalf;
|
|
397
375
|
|
|
398
376
|
const shapeIsLongitudeReversed = shapeMaxLongitude < shapeMinLongitude;
|
|
@@ -400,7 +378,6 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
400
378
|
shapeMaxLongitude -
|
|
401
379
|
shapeMinLongitude +
|
|
402
380
|
shapeIsLongitudeReversed * defaultLongitudeRange;
|
|
403
|
-
const shapeIsLongitudeRangeZero = shapeLongitudeRange <= epsilonLongitude;
|
|
404
381
|
const shapeIsLongitudeRangeUnderHalf =
|
|
405
382
|
shapeLongitudeRange > defaultLongitudeRangeHalf + epsilonLongitude &&
|
|
406
383
|
shapeLongitudeRange < defaultLongitudeRange - epsilonLongitude;
|
|
@@ -408,10 +385,8 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
408
385
|
shapeLongitudeRange >= defaultLongitudeRangeHalf - epsilonLongitude &&
|
|
409
386
|
shapeLongitudeRange <= defaultLongitudeRangeHalf + epsilonLongitude;
|
|
410
387
|
const shapeIsLongitudeRangeOverHalf =
|
|
411
|
-
shapeLongitudeRange > epsilonLongitude &&
|
|
412
388
|
shapeLongitudeRange < defaultLongitudeRangeHalf - epsilonLongitude;
|
|
413
389
|
const shapeHasLongitude =
|
|
414
|
-
shapeIsLongitudeRangeZero ||
|
|
415
390
|
shapeIsLongitudeRangeUnderHalf ||
|
|
416
391
|
shapeIsLongitudeRangeHalf ||
|
|
417
392
|
shapeIsLongitudeRangeOverHalf;
|
|
@@ -475,20 +450,8 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
475
450
|
renderOuterExtent,
|
|
476
451
|
Cartesian3.ZERO
|
|
477
452
|
);
|
|
478
|
-
const renderHasHeight = renderHasMinHeight || renderHasMaxHeight;
|
|
479
|
-
const renderHeightRange = renderMaxHeight - renderMinHeight;
|
|
480
|
-
const shapeHasMinHeight = !Cartesian3.equals(
|
|
481
|
-
shapeInnerExtent,
|
|
482
|
-
Cartesian3.ZERO
|
|
483
|
-
);
|
|
484
|
-
const shapeHasMaxHeight = !Cartesian3.equals(
|
|
485
|
-
shapeOuterExtent,
|
|
486
|
-
Cartesian3.ZERO
|
|
487
|
-
);
|
|
488
|
-
const shapeHasHeight = shapeHasMinHeight || shapeHasMaxHeight;
|
|
489
453
|
|
|
490
|
-
const shaderUniforms = this
|
|
491
|
-
const shaderDefines = this.shaderDefines;
|
|
454
|
+
const { shaderUniforms, shaderDefines } = this;
|
|
492
455
|
|
|
493
456
|
// To keep things simple, clear the defines every time
|
|
494
457
|
for (const key in shaderDefines) {
|
|
@@ -522,49 +485,37 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
522
485
|
shaderDefines["ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX"] = intersectionCount;
|
|
523
486
|
intersectionCount += 1;
|
|
524
487
|
|
|
525
|
-
if (
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
// 1.0 / (1.0 - (shapeMaxHeight - renderMinHeight) / shapeMaxExtent)
|
|
540
|
-
// shapeMaxExtent / (shapeMaxExtent - (shapeMaxHeight - renderMinHeight))
|
|
541
|
-
shaderUniforms.ellipsoidInverseInnerScaleUv =
|
|
542
|
-
shapeMaxExtent / (shapeMaxExtent - (shapeMaxHeight - renderMinHeight));
|
|
543
|
-
}
|
|
488
|
+
if (renderHasMinHeight) {
|
|
489
|
+
shaderDefines["ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN"] = true;
|
|
490
|
+
shaderDefines[
|
|
491
|
+
"ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN"
|
|
492
|
+
] = intersectionCount;
|
|
493
|
+
intersectionCount += 1;
|
|
494
|
+
|
|
495
|
+
// The inverse of the percent of space that is taken up by the inner ellipsoid, relative to the shape bounds
|
|
496
|
+
// 1.0 / (1.0 - thickness) // thickness = percent of space that is between the min and max height.
|
|
497
|
+
// 1.0 / (1.0 - (shapeMaxHeight - renderMinHeight) / shapeMaxExtent)
|
|
498
|
+
// shapeMaxExtent / (shapeMaxExtent - (shapeMaxHeight - renderMinHeight))
|
|
499
|
+
shaderUniforms.ellipsoidInverseInnerScaleUv =
|
|
500
|
+
shapeMaxExtent / (shapeMaxExtent - (shapeMaxHeight - renderMinHeight));
|
|
501
|
+
}
|
|
544
502
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
}
|
|
503
|
+
if (renderHasMaxHeight) {
|
|
504
|
+
shaderDefines["ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX"] = true;
|
|
505
|
+
shaderUniforms.ellipsoidInverseOuterScaleUv =
|
|
506
|
+
shapeMaxExtent / (shapeMaxExtent - (shapeMaxHeight - renderMaxHeight));
|
|
550
507
|
}
|
|
551
508
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
shaderUniforms.ellipseInnerRadiiUv
|
|
563
|
-
);
|
|
564
|
-
}
|
|
565
|
-
if (shapeMinHeight === shapeMaxHeight) {
|
|
566
|
-
shaderDefines["ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT"] = true;
|
|
567
|
-
}
|
|
509
|
+
// The percent of space that is between the inner and outer ellipsoid.
|
|
510
|
+
const thickness = (shapeMaxHeight - shapeMinHeight) / shapeMaxExtent;
|
|
511
|
+
shaderUniforms.ellipsoidInverseHeightDifferenceUv = 1.0 / thickness;
|
|
512
|
+
shaderUniforms.ellipseInnerRadiiUv = Cartesian2.fromElements(
|
|
513
|
+
shaderUniforms.ellipsoidRadiiUv.x * (1.0 - thickness),
|
|
514
|
+
shaderUniforms.ellipsoidRadiiUv.z * (1.0 - thickness),
|
|
515
|
+
shaderUniforms.ellipseInnerRadiiUv
|
|
516
|
+
);
|
|
517
|
+
if (shapeMinHeight === shapeMaxHeight) {
|
|
518
|
+
shaderDefines["ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT"] = true;
|
|
568
519
|
}
|
|
569
520
|
|
|
570
521
|
// Intersects a wedge for the min and max longitude.
|
|
@@ -582,11 +533,6 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
582
533
|
"ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF"
|
|
583
534
|
] = true;
|
|
584
535
|
intersectionCount += 2;
|
|
585
|
-
} else if (renderIsLongitudeRangeHalf) {
|
|
586
|
-
shaderDefines[
|
|
587
|
-
"ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF"
|
|
588
|
-
] = true;
|
|
589
|
-
intersectionCount += 1;
|
|
590
536
|
} else if (renderIsLongitudeRangeZero) {
|
|
591
537
|
shaderDefines[
|
|
592
538
|
"ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO"
|
|
@@ -621,14 +567,22 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
621
567
|
// offset = -minLongitudeUv / (maxLongitudeUv - minLongitudeUv)
|
|
622
568
|
// offset = -((minLongitude - pi) / (2.0 * pi)) / (((maxLongitude - pi) / (2.0 * pi)) - ((minLongitude - pi) / (2.0 * pi)))
|
|
623
569
|
// offset = -(minLongitude - pi) / (maxLongitude - minLongitude)
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
570
|
+
if (shapeLongitudeRange <= epsilonLongitude) {
|
|
571
|
+
shaderUniforms.ellipsoidUvToShapeUvLongitude = Cartesian2.fromElements(
|
|
572
|
+
0.0,
|
|
573
|
+
1.0,
|
|
574
|
+
shaderUniforms.ellipsoidUvToShapeUvLongitude
|
|
575
|
+
);
|
|
576
|
+
} else {
|
|
577
|
+
const scale = defaultLongitudeRange / shapeLongitudeRange;
|
|
578
|
+
const offset =
|
|
579
|
+
-(shapeMinLongitude - defaultMinLongitude) / shapeLongitudeRange;
|
|
580
|
+
shaderUniforms.ellipsoidUvToShapeUvLongitude = Cartesian2.fromElements(
|
|
581
|
+
scale,
|
|
582
|
+
offset,
|
|
583
|
+
shaderUniforms.ellipsoidUvToShapeUvLongitude
|
|
584
|
+
);
|
|
585
|
+
}
|
|
632
586
|
}
|
|
633
587
|
|
|
634
588
|
if (renderHasLongitude) {
|
|
@@ -676,8 +630,6 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
676
630
|
}
|
|
677
631
|
|
|
678
632
|
if (renderHasLatitude) {
|
|
679
|
-
shaderDefines["ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE"] = true;
|
|
680
|
-
|
|
681
633
|
// Intersects a cone for min latitude
|
|
682
634
|
if (renderHasLatitudeMin) {
|
|
683
635
|
shaderDefines["ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN"] = true;
|
|
@@ -728,12 +680,6 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
728
680
|
}
|
|
729
681
|
}
|
|
730
682
|
|
|
731
|
-
if (renderMinLatitude === renderMaxLatitude) {
|
|
732
|
-
shaderDefines[
|
|
733
|
-
"ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO"
|
|
734
|
-
] = true;
|
|
735
|
-
}
|
|
736
|
-
|
|
737
683
|
const minCosHalfAngleSqr = Math.pow(
|
|
738
684
|
Math.cos(CesiumMath.PI_OVER_TWO - Math.abs(renderMinLatitude)),
|
|
739
685
|
2.0
|
|
@@ -752,12 +698,6 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
752
698
|
if (shapeHasLatitude) {
|
|
753
699
|
shaderDefines["ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE"] = true;
|
|
754
700
|
|
|
755
|
-
if (shapeMinLatitude === shapeMaxLatitude) {
|
|
756
|
-
shaderDefines[
|
|
757
|
-
"ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO"
|
|
758
|
-
] = true;
|
|
759
|
-
}
|
|
760
|
-
|
|
761
701
|
// delerp(latitudeUv, minLatitudeUv, maxLatitudeUv)
|
|
762
702
|
// (latitudeUv - minLatitudeUv) / (maxLatitudeUv - minLatitudeUv)
|
|
763
703
|
// latitudeUv / (maxLatitudeUv - minLatitudeUv) - minLatitudeUv / (maxLatitudeUv - minLatitudeUv)
|
|
@@ -768,13 +708,22 @@ VoxelEllipsoidShape.prototype.update = function (
|
|
|
768
708
|
// offset = -((minLatitude - -pi) / (2.0 * pi)) / (((maxLatitude - pi) / (2.0 * pi)) - ((minLatitude - pi) / (2.0 * pi)))
|
|
769
709
|
// offset = -(minLatitude - -pi) / (maxLatitude - minLatitude)
|
|
770
710
|
// offset = (-pi - minLatitude) / (maxLatitude - minLatitude)
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
711
|
+
if (shapeLatitudeRange < epsilonLatitude) {
|
|
712
|
+
shaderUniforms.ellipsoidUvToShapeUvLatitude = Cartesian2.fromElements(
|
|
713
|
+
0.0,
|
|
714
|
+
1.0,
|
|
715
|
+
shaderUniforms.ellipsoidUvToShapeUvLatitude
|
|
716
|
+
);
|
|
717
|
+
} else {
|
|
718
|
+
const scale = defaultLatitudeRange / shapeLatitudeRange;
|
|
719
|
+
const offset =
|
|
720
|
+
(defaultMinLatitude - shapeMinLatitude) / shapeLatitudeRange;
|
|
721
|
+
shaderUniforms.ellipsoidUvToShapeUvLatitude = Cartesian2.fromElements(
|
|
722
|
+
scale,
|
|
723
|
+
offset,
|
|
724
|
+
shaderUniforms.ellipsoidUvToShapeUvLatitude
|
|
725
|
+
);
|
|
726
|
+
}
|
|
778
727
|
}
|
|
779
728
|
|
|
780
729
|
if (isSphere) {
|
|
@@ -854,6 +803,91 @@ VoxelEllipsoidShape.prototype.computeOrientedBoundingBoxForTile = function (
|
|
|
854
803
|
);
|
|
855
804
|
};
|
|
856
805
|
|
|
806
|
+
const sampleSizeScratch = new Cartesian3();
|
|
807
|
+
const scratchTileMinBounds = new Cartesian3();
|
|
808
|
+
const scratchTileMaxBounds = new Cartesian3();
|
|
809
|
+
|
|
810
|
+
/**
|
|
811
|
+
* Computes an oriented bounding box for a specified sample within a specified tile.
|
|
812
|
+
* The update function must be called before calling this function.
|
|
813
|
+
*
|
|
814
|
+
* @param {SpatialNode} spatialNode The spatial node containing the sample
|
|
815
|
+
* @param {Cartesian3} tileDimensions The size of the tile in number of samples, before padding
|
|
816
|
+
* @param {Cartesian3} tileUv The sample coordinate within the tile
|
|
817
|
+
* @param {OrientedBoundingBox} result The oriented bounding box that will be set to enclose the specified sample
|
|
818
|
+
* @returns {OrientedBoundingBox} The oriented bounding box.
|
|
819
|
+
*/
|
|
820
|
+
VoxelEllipsoidShape.prototype.computeOrientedBoundingBoxForSample = function (
|
|
821
|
+
spatialNode,
|
|
822
|
+
tileDimensions,
|
|
823
|
+
tileUv,
|
|
824
|
+
result
|
|
825
|
+
) {
|
|
826
|
+
//>>includeStart('debug', pragmas.debug);
|
|
827
|
+
Check.typeOf.object("spatialNode", spatialNode);
|
|
828
|
+
Check.typeOf.object("tileDimensions", tileDimensions);
|
|
829
|
+
Check.typeOf.object("tileUv", tileUv);
|
|
830
|
+
Check.typeOf.object("result", result);
|
|
831
|
+
//>>includeEnd('debug');
|
|
832
|
+
|
|
833
|
+
const tileSizeAtLevel = 1.0 / Math.pow(2.0, spatialNode.level);
|
|
834
|
+
const sampleSize = Cartesian3.divideComponents(
|
|
835
|
+
Cartesian3.ONE,
|
|
836
|
+
tileDimensions,
|
|
837
|
+
sampleSizeScratch
|
|
838
|
+
);
|
|
839
|
+
const sampleSizeAtLevel = Cartesian3.multiplyByScalar(
|
|
840
|
+
sampleSize,
|
|
841
|
+
tileSizeAtLevel,
|
|
842
|
+
sampleSizeScratch
|
|
843
|
+
);
|
|
844
|
+
|
|
845
|
+
const minLerp = Cartesian3.multiplyByScalar(
|
|
846
|
+
Cartesian3.fromElements(
|
|
847
|
+
spatialNode.x + tileUv.x,
|
|
848
|
+
spatialNode.y + tileUv.y,
|
|
849
|
+
spatialNode.z + tileUv.z,
|
|
850
|
+
scratchTileMinBounds
|
|
851
|
+
),
|
|
852
|
+
tileSizeAtLevel,
|
|
853
|
+
scratchTileMinBounds
|
|
854
|
+
);
|
|
855
|
+
const maxLerp = Cartesian3.add(
|
|
856
|
+
minLerp,
|
|
857
|
+
sampleSizeAtLevel,
|
|
858
|
+
scratchTileMaxBounds
|
|
859
|
+
);
|
|
860
|
+
|
|
861
|
+
const rectangle = Rectangle.subsection(
|
|
862
|
+
this._rectangle,
|
|
863
|
+
minLerp.x,
|
|
864
|
+
minLerp.y,
|
|
865
|
+
maxLerp.x,
|
|
866
|
+
maxLerp.y,
|
|
867
|
+
scratchRectangle
|
|
868
|
+
);
|
|
869
|
+
const minHeight = CesiumMath.lerp(
|
|
870
|
+
this._minimumHeight,
|
|
871
|
+
this._maximumHeight,
|
|
872
|
+
minLerp.z
|
|
873
|
+
);
|
|
874
|
+
const maxHeight = CesiumMath.lerp(
|
|
875
|
+
this._minimumHeight,
|
|
876
|
+
this._maximumHeight,
|
|
877
|
+
maxLerp.z
|
|
878
|
+
);
|
|
879
|
+
|
|
880
|
+
return getEllipsoidChunkObb(
|
|
881
|
+
rectangle,
|
|
882
|
+
minHeight,
|
|
883
|
+
maxHeight,
|
|
884
|
+
this._ellipsoid,
|
|
885
|
+
this._translation,
|
|
886
|
+
this._rotation,
|
|
887
|
+
result
|
|
888
|
+
);
|
|
889
|
+
};
|
|
890
|
+
|
|
857
891
|
/**
|
|
858
892
|
* Computes an approximate step size for raymarching the root tile of a voxel grid.
|
|
859
893
|
* The update function must be called before calling this function.
|
|
@@ -928,7 +962,11 @@ function getEllipsoidChunkObb(
|
|
|
928
962
|
* @readonly
|
|
929
963
|
*/
|
|
930
964
|
VoxelEllipsoidShape.DefaultMinBounds = Object.freeze(
|
|
931
|
-
new Cartesian3(
|
|
965
|
+
new Cartesian3(
|
|
966
|
+
-CesiumMath.PI,
|
|
967
|
+
-CesiumMath.PI_OVER_TWO,
|
|
968
|
+
-Ellipsoid.WGS84.minimumRadius
|
|
969
|
+
)
|
|
932
970
|
);
|
|
933
971
|
|
|
934
972
|
/**
|
|
@@ -939,7 +977,11 @@ VoxelEllipsoidShape.DefaultMinBounds = Object.freeze(
|
|
|
939
977
|
* @readonly
|
|
940
978
|
*/
|
|
941
979
|
VoxelEllipsoidShape.DefaultMaxBounds = Object.freeze(
|
|
942
|
-
new Cartesian3(
|
|
980
|
+
new Cartesian3(
|
|
981
|
+
CesiumMath.PI,
|
|
982
|
+
CesiumMath.PI_OVER_TWO,
|
|
983
|
+
10.0 * Ellipsoid.WGS84.maximumRadius
|
|
984
|
+
)
|
|
943
985
|
);
|
|
944
986
|
|
|
945
987
|
export default VoxelEllipsoidShape;
|
|
@@ -531,7 +531,7 @@ Object.defineProperties(VoxelPrimitive.prototype, {
|
|
|
531
531
|
*/
|
|
532
532
|
orientedBoundingBox: {
|
|
533
533
|
get: function () {
|
|
534
|
-
return this.
|
|
534
|
+
return this._shape.orientedBoundingBox;
|
|
535
535
|
},
|
|
536
536
|
},
|
|
537
537
|
|
|
@@ -1137,6 +1137,8 @@ VoxelPrimitive.prototype.update = function (frameState) {
|
|
|
1137
1137
|
// Render the primitive
|
|
1138
1138
|
const command = frameState.passes.pick
|
|
1139
1139
|
? this._drawCommandPick
|
|
1140
|
+
: frameState.passes.pickVoxel
|
|
1141
|
+
? this._drawCommandPickVoxel
|
|
1140
1142
|
: this._drawCommand;
|
|
1141
1143
|
command.boundingVolume = shape.boundingSphere;
|
|
1142
1144
|
frameState.commandList.push(command);
|
|
@@ -8,6 +8,7 @@ import VoxelVS from "../Shaders/Voxels/VoxelVS.js";
|
|
|
8
8
|
import IntersectionUtils from "../Shaders/Voxels/IntersectionUtils.js";
|
|
9
9
|
import IntersectDepth from "../Shaders/Voxels/IntersectDepth.js";
|
|
10
10
|
import IntersectClippingPlanes from "../Shaders/Voxels/IntersectClippingPlanes.js";
|
|
11
|
+
import IntersectLongitude from "../Shaders/Voxels/IntersectLongitude.js";
|
|
11
12
|
import IntersectBox from "../Shaders/Voxels/IntersectBox.js";
|
|
12
13
|
import IntersectCylinder from "../Shaders/Voxels/IntersectCylinder.js";
|
|
13
14
|
import IntersectEllipsoid from "../Shaders/Voxels/IntersectEllipsoid.js";
|
|
@@ -131,12 +132,14 @@ function VoxelRenderResources(primitive) {
|
|
|
131
132
|
]);
|
|
132
133
|
} else if (shapeType === "CYLINDER") {
|
|
133
134
|
shaderBuilder.addFragmentLines([
|
|
135
|
+
IntersectLongitude,
|
|
134
136
|
IntersectCylinder,
|
|
135
137
|
Intersection,
|
|
136
138
|
convertUvToCylinder,
|
|
137
139
|
]);
|
|
138
140
|
} else if (shapeType === "ELLIPSOID") {
|
|
139
141
|
shaderBuilder.addFragmentLines([
|
|
142
|
+
IntersectLongitude,
|
|
140
143
|
IntersectEllipsoid,
|
|
141
144
|
Intersection,
|
|
142
145
|
convertUvToEllipsoid,
|
|
@@ -117,6 +117,19 @@ VoxelShape.prototype.update = DeveloperError.throwInstantiationError;
|
|
|
117
117
|
VoxelShape.prototype.computeOrientedBoundingBoxForTile =
|
|
118
118
|
DeveloperError.throwInstantiationError;
|
|
119
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Computes an oriented bounding box for a specified sample within a specified tile.
|
|
122
|
+
* The update function must be called before calling this function.
|
|
123
|
+
*
|
|
124
|
+
* @param {SpatialNode} spatialNode The spatial node containing the sample
|
|
125
|
+
* @param {Cartesian3} tileDimensions The size of the tile in number of samples, before padding
|
|
126
|
+
* @param {Cartesian3} tileUv The sample coordinate within the tile
|
|
127
|
+
* @param {OrientedBoundingBox} result The oriented bounding box that will be set to enclose the specified sample
|
|
128
|
+
* @returns {OrientedBoundingBox} The oriented bounding box.
|
|
129
|
+
*/
|
|
130
|
+
VoxelShape.prototype.computeOrientedBoundingBoxForSample =
|
|
131
|
+
DeveloperError.throwInstantiationError;
|
|
132
|
+
|
|
120
133
|
/**
|
|
121
134
|
* Computes an approximate step size for raymarching the root tile of a voxel grid.
|
|
122
135
|
* The update function must be called before calling this function.
|