@cesium/engine 24.0.0 → 26.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/Workers/{chunk-6WLHJFD3.js → chunk-3VFEWOBI.js} +59 -32
- package/Build/Workers/{chunk-UQU4RXLT.js → chunk-424RNO3D.js} +50 -45
- package/Build/Workers/chunk-4MGMYHOO.js +147 -0
- package/Build/Workers/{chunk-AMIHNSST.js → chunk-4S7IE3LB.js} +2 -2
- package/Build/Workers/{chunk-J6AW5YHS.js → chunk-52JDLOEM.js} +14 -14
- package/Build/Workers/{chunk-6RMS4S72.js → chunk-54I6Y66F.js} +6 -6
- package/Build/Workers/{chunk-C6P4IG5P.js → chunk-6YEE6JDR.js} +6 -6
- package/Build/Workers/{chunk-72VYSVEW.js → chunk-7J2HKPRH.js} +11 -10
- package/Build/Workers/{chunk-7O5XJTVE.js → chunk-7WM2PX4V.js} +5 -5
- package/Build/Workers/{chunk-5A2SW66E.js → chunk-ACXQXN46.js} +16 -16
- package/Build/Workers/{chunk-VLDEUTOP.js → chunk-AYKR4VBR.js} +2 -2
- package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-C6J67V5A.js} +3 -2
- package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-C6KNZ7T4.js} +17 -17
- package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-CFQP6LYM.js} +4 -4
- package/Build/Workers/{chunk-YAOZMOFL.js → chunk-CXOYE2WM.js} +5 -5
- package/Build/Workers/{chunk-B6SCUUFP.js → chunk-CZEYZU4N.js} +10 -10
- package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DBOEKL43.js} +7 -7
- package/Build/Workers/{chunk-44EMEGKW.js → chunk-DDWSZVMY.js} +5 -5
- package/Build/Workers/{chunk-7X322WP2.js → chunk-DOBXCNC3.js} +13 -13
- package/Build/Workers/{chunk-JCI63T3K.js → chunk-E7VQ76KE.js} +6 -6
- package/Build/Workers/{chunk-7TYLCBGK.js → chunk-EBSIOBXY.js} +12 -10
- package/Build/Workers/{chunk-GQUNK2XC.js → chunk-EF2QYXGA.js} +14 -14
- package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-EPYXRCDB.js} +12 -12
- package/Build/Workers/{chunk-63SIWPLS.js → chunk-F6QDY6HU.js} +13 -13
- package/Build/Workers/{chunk-XY6HMDGI.js → chunk-FRQZECAO.js} +5 -5
- package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-G7PXZRVF.js} +7 -7
- package/Build/Workers/{chunk-N65BAKSH.js → chunk-INUEEEQA.js} +8 -8
- package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-IRBKFCEJ.js} +2 -2
- package/Build/Workers/{chunk-UIGVOKKI.js → chunk-IYOUHCZB.js} +3 -2
- package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-J6BWOHUF.js} +3 -3
- package/Build/Workers/{chunk-A47HVBC5.js → chunk-KFSTQKNM.js} +7 -7
- package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-KKOSKAZB.js} +17 -17
- package/Build/Workers/{chunk-6MPGQEHA.js → chunk-KSSWJIZW.js} +2 -2
- package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-M3B5JKSM.js} +3 -2
- package/Build/Workers/chunk-MPZHGZU6.js +2342 -0
- package/Build/Workers/{chunk-YJZGW74L.js → chunk-MYP774IS.js} +2213 -1349
- package/Build/Workers/{chunk-LIB2H534.js → chunk-O3EA5HS7.js} +12 -11
- package/Build/Workers/{chunk-ILMFADZA.js → chunk-P3CK7MCY.js} +27 -5
- package/Build/Workers/chunk-Q3PY526V.js +3201 -0
- package/Build/Workers/chunk-QN67VG36.js +973 -0
- package/Build/Workers/{chunk-XJRBB253.js → chunk-QRWGUWI6.js} +11 -11
- package/Build/Workers/{chunk-AF3MU2RL.js → chunk-S4MCOY6I.js} +7 -6
- package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-SMQZZOW6.js} +10 -10
- package/Build/Workers/{chunk-PVV64VFW.js → chunk-TKKIREQ6.js} +3 -2
- package/Build/Workers/{chunk-MKM27KGV.js → chunk-U3ZA64U7.js} +2 -2
- package/Build/Workers/{chunk-2N4KDHS3.js → chunk-UA25D5MX.js} +12 -11
- package/Build/Workers/{chunk-RQNJD3O4.js → chunk-UOOIQ3KX.js} +12 -12
- package/Build/Workers/{chunk-GOQBUCXH.js → chunk-V7VQKN6N.js} +709 -431
- package/Build/Workers/{chunk-LXMCPFFS.js → chunk-VQYETPWC.js} +4 -4
- package/Build/Workers/{chunk-NKT5K3K3.js → chunk-VWV2IJRB.js} +13 -12
- package/Build/Workers/chunk-XZMBNNDX.js +1287 -0
- package/Build/Workers/{chunk-ISY4EZCA.js → chunk-Y57HREW5.js} +4 -4
- package/Build/Workers/{chunk-EDXL4W76.js → chunk-Y5BF6AFU.js} +2 -2
- package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-YLY7NKAB.js} +4 -4
- package/Build/Workers/{chunk-4TIG36AW.js → chunk-ZK3CF7ZD.js} +12 -12
- package/Build/Workers/{chunk-AJLTU6PF.js → chunk-ZP7JMQV4.js} +4 -1
- package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-ZZ46LWL6.js} +1 -1
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +175 -118
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +24 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +12 -9
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/ArcType.js +6 -1
- package/Source/Core/ArticulationStageType.js +5 -1
- package/Source/Core/AssociativeArray.js +100 -94
- package/Source/Core/BoundingSphere.js +1296 -1300
- package/Source/Core/Cartesian2.js +1 -1
- package/Source/Core/Cartesian3.js +2 -3
- package/Source/Core/Cartesian4.js +1 -1
- package/Source/Core/Cartographic.js +257 -249
- package/Source/Core/ClockRange.js +6 -1
- package/Source/Core/ClockStep.js +6 -1
- package/Source/Core/Color.js +844 -835
- package/Source/Core/ComponentDatatype.js +39 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/Ellipsoid.js +637 -660
- package/Source/Core/ExtrapolationType.js +6 -1
- package/Source/Core/GeocodeType.js +6 -1
- package/Source/Core/GeographicProjection.js +74 -74
- package/Source/Core/GeographicTilingScheme.js +179 -198
- package/Source/Core/GeometryOffsetAttribute.js +7 -1
- package/Source/Core/GeometryType.js +7 -1
- package/Source/Core/HeightmapEncoding.js +6 -1
- package/Source/Core/Iau2006XysData.js +24 -13
- package/Source/Core/IndexDatatype.js +3 -1
- package/Source/Core/InterpolationType.js +5 -1
- package/Source/Core/Intersect.js +6 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocodeProviderType.js +5 -1
- package/Source/Core/JulianDate.js +850 -848
- package/Source/Core/KeyboardEventModifier.js +6 -1
- package/Source/Core/MapProjection.js +40 -44
- package/Source/Core/Matrix2.js +906 -893
- package/Source/Core/Matrix3.js +1643 -1575
- package/Source/Core/Matrix4.js +2903 -2872
- package/Source/Core/PixelFormat.js +3 -1
- package/Source/Core/PrimitiveType.js +11 -1
- package/Source/Core/Ray.js +62 -60
- package/Source/Core/Rectangle.js +913 -904
- package/Source/Core/ReferenceFrame.js +6 -1
- package/Source/Core/RequestScheduler.js +8 -3
- package/Source/Core/RequestState.js +6 -1
- package/Source/Core/RequestType.js +6 -1
- package/Source/Core/Resource.js +1 -1
- package/Source/Core/ScreenSpaceEventHandler.js +51 -41
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainQuantization.js +6 -1
- package/Source/Core/TilingScheme.js +100 -98
- package/Source/Core/TimeConstants.js +6 -1
- package/Source/Core/TimeStandard.js +6 -1
- package/Source/Core/TrackingReferenceFrame.js +6 -1
- package/Source/Core/Visibility.js +6 -1
- package/Source/Core/VulkanConstants.js +6 -1
- package/Source/Core/WebGLConstants.js +6 -1
- package/Source/Core/WebMercatorProjection.js +108 -109
- package/Source/Core/WebMercatorTilingScheme.js +246 -242
- package/Source/Core/WindingOrder.js +3 -1
- package/Source/Core/createColorRamp.js +37 -0
- package/Source/Core/globalTypes.js +25 -0
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
- package/Source/DataSources/StripeOrientation.js +6 -1
- package/Source/Renderer/BufferUsage.js +20 -9
- package/Source/Renderer/Context.js +2 -29
- package/Source/Renderer/DrawCommand.js +435 -403
- package/Source/Renderer/MipmapHint.js +5 -1
- package/Source/Renderer/Pass.js +10 -3
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderbufferFormat.js +5 -1
- package/Source/Renderer/ShaderDestination.js +4 -1
- package/Source/Renderer/TextureMagnificationFilter.js +3 -1
- package/Source/Renderer/TextureMinificationFilter.js +3 -1
- package/Source/Renderer/TextureWrap.js +5 -1
- package/Source/Renderer/createUniform.js +346 -239
- package/Source/Renderer/createUniformArray.js +494 -381
- package/Source/Scene/AlphaMode.js +5 -1
- package/Source/Scene/ArcGisBaseMapType.js +6 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/AttributeType.js +3 -1
- package/Source/Scene/Axis.js +3 -1
- package/Source/Scene/BingMapsStyle.js +6 -1
- package/Source/Scene/BlendEquation.js +6 -1
- package/Source/Scene/BlendFunction.js +6 -1
- package/Source/Scene/BlendOption.js +6 -1
- package/Source/Scene/BlendingState.js +6 -1
- package/Source/Scene/BufferLoader.js +0 -2
- package/Source/Scene/BufferPoint.js +1 -0
- package/Source/Scene/BufferPointCollection.js +17 -1
- package/Source/Scene/BufferPolygon.js +3 -2
- package/Source/Scene/BufferPolygonCollection.js +13 -1
- package/Source/Scene/BufferPolyline.js +1 -0
- package/Source/Scene/BufferPolylineCollection.js +5 -1
- package/Source/Scene/BufferPrimitiveCollection.js +210 -43
- package/Source/Scene/CameraEventAggregator.js +30 -18
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTile.js +54 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContent.js +195 -254
- package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
- package/Source/Scene/Cesium3DTileContentState.js +6 -1
- package/Source/Scene/Cesium3DTileContentType.js +3 -1
- package/Source/Scene/Cesium3DTileFeature.js +289 -306
- package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
- package/Source/Scene/Cesium3DTilePass.js +5 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
- package/Source/Scene/Cesium3DTileRefine.js +6 -1
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +46 -6
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/Composite3DTileContent.js +254 -292
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EdgeDisplayMode.js +50 -0
- package/Source/Scene/Empty3DTileContent.js +100 -132
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
- package/Source/Scene/GeoJsonPrimitive.js +874 -0
- package/Source/Scene/Geometry3DTileContent.js +151 -185
- package/Source/Scene/GltfBufferViewLoader.js +0 -2
- package/Source/Scene/GltfDracoLoader.js +0 -2
- package/Source/Scene/GltfImageLoader.js +0 -3
- package/Source/Scene/GltfIndexBufferLoader.js +0 -4
- package/Source/Scene/GltfJsonLoader.js +0 -2
- package/Source/Scene/GltfLoader.js +109 -5
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +0 -2
- package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
- package/Source/Scene/GltfTextureLoader.js +0 -2
- package/Source/Scene/GltfVertexBufferLoader.js +0 -4
- package/Source/Scene/HeightReference.js +5 -1
- package/Source/Scene/HorizontalOrigin.js +6 -1
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- package/Source/Scene/Implicit3DTileContent.js +179 -214
- package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
- package/Source/Scene/InstanceAttributeSemantic.js +3 -1
- package/Source/Scene/IonWorldImageryStyle.js +6 -1
- package/Source/Scene/JobType.js +6 -1
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MVTDataProvider.js +147 -0
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/MetadataComponentType.js +3 -1
- package/Source/Scene/MetadataSchemaLoader.js +0 -2
- package/Source/Scene/MetadataSemantic.js +6 -2
- package/Source/Scene/MetadataType.js +3 -1
- package/Source/Scene/Model/B3dmLoader.js +0 -3
- package/Source/Scene/Model/CustomShaderMode.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +78 -337
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
- package/Source/Scene/Model/GeoJsonLoader.js +0 -2
- package/Source/Scene/Model/I3dmLoader.js +0 -3
- package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
- package/Source/Scene/Model/LightingModel.js +5 -1
- package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
- package/Source/Scene/Model/Model.js +34 -0
- package/Source/Scene/Model/Model3DTileContent.js +424 -458
- package/Source/Scene/Model/ModelDrawCommand.js +31 -3
- package/Source/Scene/Model/ModelReader.js +474 -3
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/ModelUtility.js +4 -0
- package/Source/Scene/Model/PntsLoader.js +4 -3
- package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
- package/Source/Scene/Model/UniformType.js +5 -1
- package/Source/Scene/Model/VaryingType.js +5 -1
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +500 -139
- package/Source/Scene/Model/pickModel.js +94 -299
- package/Source/Scene/ModelAnimationLoop.js +6 -1
- package/Source/Scene/ModelAnimationState.js +6 -1
- package/Source/Scene/ModelComponents.js +47 -2
- package/Source/Scene/Multiple3DTileContent.js +291 -334
- package/Source/Scene/PrimitiveState.js +7 -1
- package/Source/Scene/QuadtreeOccluders.js +20 -15
- package/Source/Scene/QuadtreeTile.js +547 -541
- package/Source/Scene/QuadtreeTileLoadState.js +6 -1
- package/Source/Scene/QuadtreeTileProvider.js +159 -175
- package/Source/Scene/ResourceLoader.js +0 -1
- package/Source/Scene/ResourceLoaderState.js +7 -1
- package/Source/Scene/Scene.js +26 -0
- package/Source/Scene/SceneMode.js +4 -1
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +1 -1
- package/Source/Scene/SplitDirection.js +6 -1
- package/Source/Scene/StencilFunction.js +6 -1
- package/Source/Scene/StencilOperation.js +6 -1
- package/Source/Scene/TerrainState.js +7 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tileset3DTileContent.js +113 -146
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
- package/Source/Scene/Vector3DTileContent.js +205 -234
- package/Source/Scene/VectorGltf3DTileContent.js +131 -61
- package/Source/Scene/VertexAttributeSemantic.js +3 -1
- package/Source/Scene/VerticalOrigin.js +6 -1
- package/Source/Scene/VoxelBoxShape.js +12 -6
- package/Source/Scene/VoxelContent.js +2 -0
- package/Source/Scene/VoxelCylinderShape.js +39 -38
- package/Source/Scene/VoxelEllipsoidShape.js +46 -96
- package/Source/Scene/VoxelMetadataOrder.js +6 -1
- package/Source/Scene/VoxelPrimitive.js +159 -175
- package/Source/Scene/VoxelProvider.js +64 -90
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
- package/Source/Scene/buildVoxelCustomShader.js +199 -0
- package/Source/Scene/decodeMVT.js +634 -0
- package/Source/Scene/renderBufferPointCollection.js +124 -127
- package/Source/Scene/renderBufferPolygonCollection.js +122 -122
- package/Source/Scene/renderBufferPolylineCollection.js +386 -238
- package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
- package/Source/Shaders/BufferPointMaterialFS.js +1 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
- package/Source/Shaders/BufferPointMaterialVS.js +20 -10
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +13 -4
- package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
- package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
- package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
- package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
- package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
- package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
- package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
- package/Source/Widget/CesiumWidget.js +11 -4
- package/index.d.ts +595 -343
- package/index.js +392 -378
- package/package.json +3 -3
- package/Build/Workers/chunk-DVB56LG7.js +0 -114
- package/Build/Workers/chunk-HKUES6UG.js +0 -2357
- package/Build/Workers/chunk-HRHRYFHS.js +0 -940
- package/Build/Workers/chunk-KLPGTXS3.js +0 -642
- package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
|
@@ -10,7 +10,6 @@ import BufferPolyline from "./BufferPolyline.js";
|
|
|
10
10
|
import BufferPolylineCollection from "./BufferPolylineCollection.js";
|
|
11
11
|
import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
|
|
12
12
|
import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
|
|
13
|
-
import Color from "../Core/Color.js";
|
|
14
13
|
import Matrix4 from "../Core/Matrix4.js";
|
|
15
14
|
import Model from "./Model/Model.js";
|
|
16
15
|
import ModelUtility from "./Model/ModelUtility.js";
|
|
@@ -18,6 +17,7 @@ import Pass from "../Renderer/Pass.js";
|
|
|
18
17
|
import createVectorTileBuffersFromModelComponents from "./Model/createVectorTileBuffersFromModelComponents.js";
|
|
19
18
|
import defined from "../Core/defined.js";
|
|
20
19
|
import destroyObject from "../Core/destroyObject.js";
|
|
20
|
+
import DeveloperError from "../Core/DeveloperError.js";
|
|
21
21
|
|
|
22
22
|
/** @import BufferPrimitive from "./BufferPrimitive.js"; */
|
|
23
23
|
/** @import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js"; */
|
|
@@ -25,8 +25,9 @@ import destroyObject from "../Core/destroyObject.js";
|
|
|
25
25
|
/** @import Cesium3DContentGroup from "./Cesium3DContentGroup.js"; */
|
|
26
26
|
/** @import Cesium3DTile from "./Cesium3DTile.js"; */
|
|
27
27
|
/** @import Cesium3DTileBatchTable from "./Cesium3DTileBatchTable.js"; */
|
|
28
|
-
/** @import
|
|
28
|
+
/** @import Cesium3DTileVectorFeature from "./Cesium3DTileVectorFeature.js";*/
|
|
29
29
|
/** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
|
|
30
|
+
/** @import Color from "../Core/Color.js"; */
|
|
30
31
|
/** @import FrameState from "./FrameState.js"; */
|
|
31
32
|
/** @import ImplicitMetadataView from "./ImplicitMetadataView.js"; */
|
|
32
33
|
/** @import Ray from "../Core/Ray.js"; */
|
|
@@ -70,14 +71,33 @@ class VectorGltf3DTileContent {
|
|
|
70
71
|
this._resource = resource;
|
|
71
72
|
|
|
72
73
|
/** @type {Model} */
|
|
73
|
-
this.
|
|
74
|
+
this._model = undefined;
|
|
74
75
|
|
|
75
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* List of all vector primitive collections.
|
|
78
|
+
* @type {Array<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
79
|
+
*/
|
|
76
80
|
this._collections = [];
|
|
77
81
|
|
|
78
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* List of transform matrices for each collection; order matches 'collections'.
|
|
84
|
+
* @type {Array<Matrix4>}
|
|
85
|
+
*/
|
|
79
86
|
this._collectionLocalMatrices = [];
|
|
80
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Maps vector primitive collection -> propertyTableId.
|
|
90
|
+
* @type {Map<BufferPrimitiveCollection<BufferPrimitive>, number>}
|
|
91
|
+
*/
|
|
92
|
+
this._collectionFeatureTableIds = new Map();
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Maps propertyTableId -> featureId -> feature. Note that Feature IDs are
|
|
96
|
+
* unique within their assigned property table, but not globally unique.
|
|
97
|
+
* @type {Map<number, Map<number, Cesium3DTileVectorFeature>>}
|
|
98
|
+
*/
|
|
99
|
+
this._featuresByTableId = new Map();
|
|
100
|
+
|
|
81
101
|
/** @type {ImplicitMetadataView} */
|
|
82
102
|
this._metadata = undefined;
|
|
83
103
|
/** @type {Cesium3DContentGroup} */
|
|
@@ -94,25 +114,27 @@ class VectorGltf3DTileContent {
|
|
|
94
114
|
}
|
|
95
115
|
|
|
96
116
|
get featuresLength() {
|
|
97
|
-
return this.
|
|
98
|
-
|
|
99
|
-
|
|
117
|
+
return this.batchTables.reduce(
|
|
118
|
+
(acc, batchTable) => acc + batchTable.featuresLength,
|
|
119
|
+
0,
|
|
120
|
+
);
|
|
100
121
|
}
|
|
101
122
|
|
|
102
123
|
get pointsLength() {
|
|
103
124
|
return this._collections
|
|
104
125
|
.filter((collection) => collection instanceof BufferPointCollection)
|
|
105
|
-
.reduce((
|
|
106
|
-
return totalPoints + collection.primitiveCount;
|
|
107
|
-
}, 0);
|
|
126
|
+
.reduce((acc, collection) => acc + collection.primitiveCount, 0);
|
|
108
127
|
}
|
|
109
128
|
|
|
110
129
|
get trianglesLength() {
|
|
111
|
-
return this._collections
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
130
|
+
return this._collections.reduce((acc, collection) => {
|
|
131
|
+
if (collection instanceof BufferPolygonCollection) {
|
|
132
|
+
return acc + collection.triangleCount;
|
|
133
|
+
} else if (collection instanceof BufferPolylineCollection) {
|
|
134
|
+
return acc + (collection.vertexCount - collection.primitiveCount) * 2;
|
|
135
|
+
}
|
|
136
|
+
return acc;
|
|
137
|
+
}, 0);
|
|
116
138
|
}
|
|
117
139
|
|
|
118
140
|
get geometryByteLength() {
|
|
@@ -126,7 +148,11 @@ class VectorGltf3DTileContent {
|
|
|
126
148
|
}
|
|
127
149
|
|
|
128
150
|
get batchTableByteLength() {
|
|
129
|
-
return
|
|
151
|
+
return this.batchTables.reduce(
|
|
152
|
+
// @ts-expect-error Missing types.
|
|
153
|
+
(acc, batchTable) => acc + batchTable.batchTableByteLength,
|
|
154
|
+
0,
|
|
155
|
+
);
|
|
130
156
|
}
|
|
131
157
|
|
|
132
158
|
/** @returns {undefined} */
|
|
@@ -150,9 +176,17 @@ class VectorGltf3DTileContent {
|
|
|
150
176
|
return this._resource.getUrlComponent(true);
|
|
151
177
|
}
|
|
152
178
|
|
|
153
|
-
/** @type {Cesium3DTileBatchTable} */
|
|
179
|
+
/** @type {Cesium3DTileBatchTable[]} */
|
|
180
|
+
get batchTables() {
|
|
181
|
+
return this._model._featureTables;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* @type {Cesium3DTileBatchTable}
|
|
186
|
+
* @deprecated See {@link batchTables}.
|
|
187
|
+
*/
|
|
154
188
|
get batchTable() {
|
|
155
|
-
|
|
189
|
+
throw new DeveloperError("Deprecated: Use `content.batchTables`.");
|
|
156
190
|
}
|
|
157
191
|
|
|
158
192
|
/** @type {ImplicitMetadataView} */
|
|
@@ -174,20 +208,23 @@ class VectorGltf3DTileContent {
|
|
|
174
208
|
}
|
|
175
209
|
|
|
176
210
|
/**
|
|
177
|
-
* @param {number}
|
|
178
|
-
* @
|
|
211
|
+
* @param {number} featureId
|
|
212
|
+
* @param {number} [featureTableId]
|
|
213
|
+
* @returns {Cesium3DTileVectorFeature}
|
|
179
214
|
*/
|
|
180
|
-
getFeature(
|
|
181
|
-
return
|
|
215
|
+
getFeature(featureId, featureTableId) {
|
|
216
|
+
return this._featuresByTableId.get(featureTableId)?.get(featureId);
|
|
182
217
|
}
|
|
183
218
|
|
|
184
219
|
/**
|
|
185
|
-
* @param {number}
|
|
186
|
-
* @param {string}
|
|
220
|
+
* @param {number} featureId
|
|
221
|
+
* @param {string} name
|
|
222
|
+
* @param {number} [featureTableId]
|
|
187
223
|
* @returns {boolean}
|
|
188
224
|
*/
|
|
189
|
-
hasProperty(
|
|
190
|
-
|
|
225
|
+
hasProperty(featureId, name, featureTableId) {
|
|
226
|
+
const feature = this.getFeature(featureId, featureTableId);
|
|
227
|
+
return feature ? feature.hasProperty(name) : false;
|
|
191
228
|
}
|
|
192
229
|
|
|
193
230
|
/**
|
|
@@ -195,17 +232,16 @@ class VectorGltf3DTileContent {
|
|
|
195
232
|
* @param {Color} color
|
|
196
233
|
*/
|
|
197
234
|
applyDebugSettings(enabled, color) {
|
|
198
|
-
|
|
199
|
-
|
|
235
|
+
const colorString = enabled
|
|
236
|
+
? `color("${color.toCssHexString()}", 1.0)`
|
|
237
|
+
: 'color("white", 1.0)';
|
|
238
|
+
this.applyStyle(new Cesium3DTileStyle({ color: colorString }));
|
|
200
239
|
}
|
|
201
240
|
|
|
202
241
|
/**
|
|
203
242
|
* @param {*} style
|
|
204
243
|
*/
|
|
205
244
|
applyStyle(style) {
|
|
206
|
-
const show = style.show?.evaluate(null) ?? true;
|
|
207
|
-
const color = style.color?.evaluate(null, new Color());
|
|
208
|
-
|
|
209
245
|
const isPointCollection = /** @param {unknown} c */ (c) =>
|
|
210
246
|
c instanceof BufferPointCollection;
|
|
211
247
|
const isPolylineCollection = /** @param {unknown} c */ (c) =>
|
|
@@ -213,33 +249,66 @@ class VectorGltf3DTileContent {
|
|
|
213
249
|
const isPolygonCollection = /** @param {unknown} c */ (c) =>
|
|
214
250
|
c instanceof BufferPolygonCollection;
|
|
215
251
|
|
|
216
|
-
Color.clone(color, pointMaterial.color);
|
|
217
|
-
pointMaterial.size = style.pointSize?.evaluate(null);
|
|
218
|
-
pointMaterial.outlineWidth = style.pointOutlineWidth?.evaluate(null);
|
|
219
|
-
style.pointOutlineColor?.evaluate(null, pointMaterial.outlineColor);
|
|
220
252
|
for (const collection of this._collections.filter(isPointCollection)) {
|
|
253
|
+
const featureTableId = this._collectionFeatureTableIds.get(collection);
|
|
221
254
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
222
255
|
collection.get(i, point);
|
|
223
|
-
point.
|
|
256
|
+
const feature = this.getFeature(point.featureId, featureTableId);
|
|
257
|
+
|
|
258
|
+
if (defined(style.show)) {
|
|
259
|
+
point.show = style.show.evaluate(feature);
|
|
260
|
+
}
|
|
261
|
+
if (defined(style.color)) {
|
|
262
|
+
style.color.evaluate(feature, pointMaterial.color);
|
|
263
|
+
}
|
|
264
|
+
if (defined(style.pointSize)) {
|
|
265
|
+
pointMaterial.size = style.pointSize.evaluate(feature);
|
|
266
|
+
}
|
|
267
|
+
if (defined(style.pointOutlineWidth)) {
|
|
268
|
+
pointMaterial.outlineWidth =
|
|
269
|
+
style.pointOutlineWidth.evaluate(feature);
|
|
270
|
+
}
|
|
271
|
+
if (defined(style.pointOutlineColor)) {
|
|
272
|
+
style.pointOutlineColor.evaluate(feature, pointMaterial.outlineColor);
|
|
273
|
+
}
|
|
274
|
+
|
|
224
275
|
point.setMaterial(pointMaterial);
|
|
225
276
|
}
|
|
226
277
|
}
|
|
227
278
|
|
|
228
|
-
Color.clone(color, polylineMaterial.color);
|
|
229
|
-
polylineMaterial.width = style.lineWidth?.evaluate(null) ?? 1;
|
|
230
279
|
for (const collection of this._collections.filter(isPolylineCollection)) {
|
|
280
|
+
const featureTableId = this._collectionFeatureTableIds.get(collection);
|
|
231
281
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
232
282
|
collection.get(i, polyline);
|
|
233
|
-
polyline.
|
|
283
|
+
const feature = this.getFeature(polyline.featureId, featureTableId);
|
|
284
|
+
|
|
285
|
+
if (defined(style.show)) {
|
|
286
|
+
polyline.show = style.show.evaluate(feature);
|
|
287
|
+
}
|
|
288
|
+
if (defined(style.color)) {
|
|
289
|
+
style.color.evaluate(feature, polylineMaterial.color);
|
|
290
|
+
}
|
|
291
|
+
if (defined(style.lineWidth)) {
|
|
292
|
+
polylineMaterial.width = style.lineWidth.evaluate(feature);
|
|
293
|
+
}
|
|
294
|
+
|
|
234
295
|
polyline.setMaterial(polylineMaterial);
|
|
235
296
|
}
|
|
236
297
|
}
|
|
237
298
|
|
|
238
|
-
Color.clone(color, polygonMaterial.color);
|
|
239
299
|
for (const collection of this._collections.filter(isPolygonCollection)) {
|
|
300
|
+
const featureTableId = this._collectionFeatureTableIds.get(collection);
|
|
240
301
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
241
302
|
collection.get(i, polygon);
|
|
242
|
-
polygon.
|
|
303
|
+
const feature = this.getFeature(polygon.featureId, featureTableId);
|
|
304
|
+
|
|
305
|
+
if (defined(style.show)) {
|
|
306
|
+
polygon.show = style.show.evaluate(feature);
|
|
307
|
+
}
|
|
308
|
+
if (defined(style.color)) {
|
|
309
|
+
style.color.evaluate(feature, polygonMaterial.color);
|
|
310
|
+
}
|
|
311
|
+
|
|
243
312
|
polygon.setMaterial(polygonMaterial);
|
|
244
313
|
}
|
|
245
314
|
}
|
|
@@ -250,18 +319,14 @@ class VectorGltf3DTileContent {
|
|
|
250
319
|
* @param {FrameState} frameState
|
|
251
320
|
*/
|
|
252
321
|
update(_tileset, frameState) {
|
|
253
|
-
if (defined(this.
|
|
254
|
-
const model = this.
|
|
322
|
+
if (defined(this._model) && !this._ready) {
|
|
323
|
+
const model = this._model;
|
|
255
324
|
model.modelMatrix = this._tile.computedTransform;
|
|
256
325
|
model.update(frameState);
|
|
257
326
|
|
|
258
327
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
259
328
|
if (model.ready) {
|
|
260
329
|
initializeVectorPrimitives(this);
|
|
261
|
-
if (this._decodeModel) {
|
|
262
|
-
this._decodeModel.destroy();
|
|
263
|
-
this._decodeModel = undefined;
|
|
264
|
-
}
|
|
265
330
|
this._ready = true;
|
|
266
331
|
}
|
|
267
332
|
}
|
|
@@ -297,8 +362,8 @@ class VectorGltf3DTileContent {
|
|
|
297
362
|
}
|
|
298
363
|
|
|
299
364
|
destroy() {
|
|
300
|
-
this.
|
|
301
|
-
this.
|
|
365
|
+
this._model?.destroy();
|
|
366
|
+
this._model = undefined;
|
|
302
367
|
this._collections.forEach((collection) => collection.destroy());
|
|
303
368
|
this._collections.length = 0;
|
|
304
369
|
return destroyObject(this);
|
|
@@ -308,16 +373,16 @@ class VectorGltf3DTileContent {
|
|
|
308
373
|
* @param {Cesium3DTileset} tileset
|
|
309
374
|
* @param {Cesium3DTile} tile
|
|
310
375
|
* @param {Resource} resource
|
|
311
|
-
* @param {
|
|
376
|
+
* @param {Uint8Array} glb GLB binary produced by buildVectorGltfFromMVT
|
|
312
377
|
* @returns {Promise<VectorGltf3DTileContent>}
|
|
313
378
|
*/
|
|
314
|
-
static async fromGltf(tileset, tile, resource,
|
|
379
|
+
static async fromGltf(tileset, tile, resource, glb) {
|
|
315
380
|
const content = new VectorGltf3DTileContent(tileset, tile, resource);
|
|
316
|
-
const modelOptions =
|
|
317
|
-
const
|
|
381
|
+
const modelOptions = makeModelOptions(tileset, tile, content, glb);
|
|
382
|
+
const model = await Model.fromGltfAsync(modelOptions);
|
|
318
383
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
319
|
-
|
|
320
|
-
content.
|
|
384
|
+
model.show = false;
|
|
385
|
+
content._model = model;
|
|
321
386
|
return content;
|
|
322
387
|
}
|
|
323
388
|
}
|
|
@@ -326,13 +391,13 @@ class VectorGltf3DTileContent {
|
|
|
326
391
|
* @param {Cesium3DTileset} tileset
|
|
327
392
|
* @param {Cesium3DTile} tile
|
|
328
393
|
* @param {VectorGltf3DTileContent} content
|
|
329
|
-
* @param {
|
|
394
|
+
* @param {Uint8Array} glb
|
|
330
395
|
* @returns {*}
|
|
331
396
|
* @ignore
|
|
332
397
|
*/
|
|
333
|
-
function
|
|
398
|
+
function makeModelOptions(tileset, tile, content, glb) {
|
|
334
399
|
return {
|
|
335
|
-
gltf:
|
|
400
|
+
gltf: glb,
|
|
336
401
|
basePath: content._resource,
|
|
337
402
|
cull: false,
|
|
338
403
|
releaseGltfJson: true,
|
|
@@ -359,7 +424,7 @@ function makeDecodeModelOptions(tileset, tile, content, gltf) {
|
|
|
359
424
|
*/
|
|
360
425
|
function initializeVectorPrimitives(content) {
|
|
361
426
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
362
|
-
const components = content.
|
|
427
|
+
const components = content._model.sceneGraph.components;
|
|
363
428
|
|
|
364
429
|
const axisCorrection = ModelUtility.getAxisCorrectionMatrix(
|
|
365
430
|
components.upAxis,
|
|
@@ -373,10 +438,15 @@ function initializeVectorPrimitives(content) {
|
|
|
373
438
|
content._modelMatrix,
|
|
374
439
|
);
|
|
375
440
|
|
|
376
|
-
const result = createVectorTileBuffersFromModelComponents(
|
|
441
|
+
const result = createVectorTileBuffersFromModelComponents(
|
|
442
|
+
content,
|
|
443
|
+
components,
|
|
444
|
+
);
|
|
377
445
|
|
|
378
446
|
content._collections = result.collections;
|
|
379
447
|
content._collectionLocalMatrices = result.collectionLocalMatrices;
|
|
448
|
+
content._collectionFeatureTableIds = result.collectionFeatureTableIds;
|
|
449
|
+
content._featuresByTableId = result.featuresByTableId;
|
|
380
450
|
}
|
|
381
451
|
|
|
382
452
|
export default VectorGltf3DTileContent;
|
|
@@ -316,4 +316,6 @@ VertexAttributeSemantic.getVariableName = function (semantic, setIndex) {
|
|
|
316
316
|
return variableName;
|
|
317
317
|
};
|
|
318
318
|
|
|
319
|
-
|
|
319
|
+
Object.freeze(VertexAttributeSemantic);
|
|
320
|
+
|
|
321
|
+
export default VertexAttributeSemantic;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The vertical location of an origin relative to an object, e.g., a {@link Billboard}
|
|
3
5
|
* or {@link Label}. For example, setting the vertical origin to <code>TOP</code>
|
|
@@ -46,4 +48,7 @@ const VerticalOrigin = {
|
|
|
46
48
|
*/
|
|
47
49
|
TOP: -1,
|
|
48
50
|
};
|
|
49
|
-
|
|
51
|
+
|
|
52
|
+
Object.freeze(VerticalOrigin);
|
|
53
|
+
|
|
54
|
+
export default VerticalOrigin;
|
|
@@ -76,10 +76,16 @@ function VoxelBoxShape() {
|
|
|
76
76
|
|
|
77
77
|
this._renderBoundPlanes = new VoxelBoundsCollection({ planes: boundPlanes });
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* UV space transformation translation (JS-only, not a shader uniform)
|
|
81
|
+
* @type {Cartesian3}
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
this._localToShapeUvTranslate = new Cartesian3();
|
|
85
|
+
|
|
79
86
|
this._shaderUniforms = {
|
|
80
87
|
boxEcToXyz: new Matrix3(),
|
|
81
88
|
boxLocalToShapeUvScale: new Cartesian3(),
|
|
82
|
-
boxLocalToShapeUvTranslate: new Cartesian3(),
|
|
83
89
|
};
|
|
84
90
|
|
|
85
91
|
this._shaderDefines = {
|
|
@@ -321,13 +327,13 @@ VoxelBoxShape.prototype.update = function (
|
|
|
321
327
|
boundScale(min.z, max.z),
|
|
322
328
|
shaderUniforms.boxLocalToShapeUvScale,
|
|
323
329
|
);
|
|
324
|
-
|
|
330
|
+
this._localToShapeUvTranslate = Cartesian3.negate(
|
|
325
331
|
Cartesian3.multiplyComponents(
|
|
326
332
|
boxLocalToShapeUvScale,
|
|
327
333
|
min,
|
|
328
|
-
|
|
334
|
+
this._localToShapeUvTranslate,
|
|
329
335
|
),
|
|
330
|
-
|
|
336
|
+
this._localToShapeUvTranslate,
|
|
331
337
|
);
|
|
332
338
|
|
|
333
339
|
this._shaderMaximumIntersectionsLength = intersectionCount;
|
|
@@ -381,8 +387,8 @@ VoxelBoxShape.prototype.convertLocalToShapeUvSpace = function (
|
|
|
381
387
|
Check.typeOf.object("result", result);
|
|
382
388
|
//>>includeEnd('debug');
|
|
383
389
|
|
|
384
|
-
const { boxLocalToShapeUvScale
|
|
385
|
-
|
|
390
|
+
const { boxLocalToShapeUvScale } = this._shaderUniforms;
|
|
391
|
+
const boxLocalToShapeUvTranslate = this._localToShapeUvTranslate;
|
|
386
392
|
|
|
387
393
|
return Cartesian3.add(
|
|
388
394
|
Cartesian3.multiplyComponents(
|
|
@@ -66,6 +66,8 @@ Object.defineProperties(VoxelContent.prototype, {
|
|
|
66
66
|
* The metadata for this voxel content.
|
|
67
67
|
* The metadata is an array of typed arrays, one for each field.
|
|
68
68
|
* The data for one field is a flattened 3D array ordered by X, then Y, then Z.
|
|
69
|
+
*
|
|
70
|
+
* @memberof VoxelContent.prototype
|
|
69
71
|
* @type {Int8Array[]|Uint8Array[]|Int16Array[]|Uint16Array[]|Int32Array[]|Uint32Array[]|Float32Array[]|Float64Array[]}
|
|
70
72
|
* @readonly
|
|
71
73
|
*/
|
|
@@ -54,14 +54,20 @@ function VoxelCylinderShape() {
|
|
|
54
54
|
|
|
55
55
|
this._renderBoundPlanes = new VoxelBoundsCollection({ planes: boundPlanes });
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* UV space transformation translations (JS-only, not shader uniforms)
|
|
59
|
+
* Components: [radius, angle, height] translation
|
|
60
|
+
* @type {Cartesian3}
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
this._localToShapeUvTranslate = new Cartesian3();
|
|
64
|
+
|
|
57
65
|
this._shaderUniforms = {
|
|
58
66
|
cameraShapePosition: new Cartesian3(),
|
|
59
67
|
cylinderEcToRadialTangentUp: new Matrix3(),
|
|
60
68
|
cylinderRenderRadiusMinMax: new Cartesian2(),
|
|
61
69
|
cylinderRenderAngleMinMax: new Cartesian2(),
|
|
62
|
-
|
|
63
|
-
cylinderLocalToShapeUvAngle: new Cartesian2(),
|
|
64
|
-
cylinderLocalToShapeUvHeight: new Cartesian2(),
|
|
70
|
+
cylinderLocalToShapeUvScale: new Cartesian3(),
|
|
65
71
|
cylinderShapeUvAngleRangeOrigin: 0.0,
|
|
66
72
|
};
|
|
67
73
|
|
|
@@ -359,30 +365,22 @@ VoxelCylinderShape.prototype.update = function (
|
|
|
359
365
|
}
|
|
360
366
|
|
|
361
367
|
const radiusRange = maxBounds.x - minBounds.x;
|
|
368
|
+
// Defaults are for the case where radiusRange is zero, to avoid division by zero.
|
|
362
369
|
let radialScale = 0.0;
|
|
363
370
|
let radialOffset = 1.0;
|
|
364
371
|
if (radiusRange !== 0.0) {
|
|
365
372
|
radialScale = 1.0 / radiusRange;
|
|
366
373
|
radialOffset = -minBounds.x * radialScale;
|
|
367
374
|
}
|
|
368
|
-
shaderUniforms.cylinderLocalToShapeUvRadius = Cartesian2.fromElements(
|
|
369
|
-
radialScale,
|
|
370
|
-
radialOffset,
|
|
371
|
-
shaderUniforms.cylinderLocalToShapeUvRadius,
|
|
372
|
-
);
|
|
373
375
|
|
|
374
376
|
const heightRange = maxBounds.z - minBounds.z; // Default 2.0
|
|
377
|
+
// Defaults are for the case where heightRange is zero, to avoid division by zero.
|
|
375
378
|
let heightScale = 0.0;
|
|
376
379
|
let heightOffset = 1.0;
|
|
377
380
|
if (heightRange !== 0.0) {
|
|
378
381
|
heightScale = 1.0 / heightRange;
|
|
379
382
|
heightOffset = -minBounds.z * heightScale;
|
|
380
383
|
}
|
|
381
|
-
shaderUniforms.cylinderLocalToShapeUvHeight = Cartesian2.fromElements(
|
|
382
|
-
heightScale,
|
|
383
|
-
heightOffset,
|
|
384
|
-
shaderUniforms.cylinderLocalToShapeUvHeight,
|
|
385
|
-
);
|
|
386
384
|
|
|
387
385
|
if (renderHasAngle) {
|
|
388
386
|
shaderDefines["CYLINDER_HAS_RENDER_BOUNDS_ANGLE"] = true;
|
|
@@ -414,23 +412,31 @@ VoxelCylinderShape.prototype.update = function (
|
|
|
414
412
|
const uvAngleRangeOrigin = (uvMaxAngle + 0.5 * uvAngleRangeZero) % 1.0;
|
|
415
413
|
shaderUniforms.cylinderShapeUvAngleRangeOrigin = uvAngleRangeOrigin;
|
|
416
414
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
);
|
|
423
|
-
} else {
|
|
424
|
-
const scale = defaultAngleRange / shapeAngleRange;
|
|
415
|
+
// Defaults are for the case where shapeAngleRange is zero, to avoid division by zero.
|
|
416
|
+
let angleScale = 0.0;
|
|
417
|
+
let angleOffset = 1.0;
|
|
418
|
+
if (shapeAngleRange > epsilonAngle) {
|
|
419
|
+
angleScale = defaultAngleRange / shapeAngleRange;
|
|
425
420
|
const shiftedMinAngle = uvMinAngle - uvAngleRangeOrigin;
|
|
426
|
-
|
|
427
|
-
shaderUniforms.cylinderLocalToShapeUvAngle = Cartesian2.fromElements(
|
|
428
|
-
scale,
|
|
429
|
-
offset,
|
|
430
|
-
shaderUniforms.cylinderLocalToShapeUvAngle,
|
|
431
|
-
);
|
|
421
|
+
angleOffset = -angleScale * (shiftedMinAngle - Math.floor(shiftedMinAngle));
|
|
432
422
|
}
|
|
433
423
|
|
|
424
|
+
// Store scales in shader uniforms (GPU)
|
|
425
|
+
shaderUniforms.cylinderLocalToShapeUvScale = Cartesian3.fromElements(
|
|
426
|
+
radialScale,
|
|
427
|
+
angleScale,
|
|
428
|
+
heightScale,
|
|
429
|
+
shaderUniforms.cylinderLocalToShapeUvScale,
|
|
430
|
+
);
|
|
431
|
+
|
|
432
|
+
// Store translations in private property (JS-only)
|
|
433
|
+
this._localToShapeUvTranslate = Cartesian3.fromElements(
|
|
434
|
+
radialOffset,
|
|
435
|
+
angleOffset,
|
|
436
|
+
heightOffset,
|
|
437
|
+
this._localToShapeUvTranslate,
|
|
438
|
+
);
|
|
439
|
+
|
|
434
440
|
this._shaderMaximumIntersectionsLength = intersectionCount;
|
|
435
441
|
|
|
436
442
|
return true;
|
|
@@ -523,25 +529,20 @@ VoxelCylinderShape.prototype.convertLocalToShapeUvSpace = function (
|
|
|
523
529
|
let angle = Math.atan2(positionLocal.y, positionLocal.x);
|
|
524
530
|
let height = positionLocal.z;
|
|
525
531
|
|
|
526
|
-
const {
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
cylinderShapeUvAngleRangeOrigin,
|
|
530
|
-
cylinderLocalToShapeUvHeight,
|
|
531
|
-
} = this._shaderUniforms;
|
|
532
|
+
const { cylinderLocalToShapeUvScale, cylinderShapeUvAngleRangeOrigin } =
|
|
533
|
+
this._shaderUniforms;
|
|
534
|
+
const localToShapeUvTranslate = this._localToShapeUvTranslate;
|
|
532
535
|
|
|
533
|
-
radius =
|
|
534
|
-
radius * cylinderLocalToShapeUvRadius.x + cylinderLocalToShapeUvRadius.y;
|
|
536
|
+
radius = radius * cylinderLocalToShapeUvScale.x + localToShapeUvTranslate.x;
|
|
535
537
|
|
|
536
538
|
// Convert angle to a "UV" in [0,1] with 0 defined at the center of the unoccupied space.
|
|
537
539
|
angle = (angle + Math.PI) / (2.0 * Math.PI);
|
|
538
540
|
angle -= cylinderShapeUvAngleRangeOrigin;
|
|
539
541
|
angle = angle - Math.floor(angle);
|
|
540
542
|
// Scale and shift so [0,1] covers the occupied space.
|
|
541
|
-
angle = angle *
|
|
543
|
+
angle = angle * cylinderLocalToShapeUvScale.y + localToShapeUvTranslate.y;
|
|
542
544
|
|
|
543
|
-
height =
|
|
544
|
-
height * cylinderLocalToShapeUvHeight.x + cylinderLocalToShapeUvHeight.y;
|
|
545
|
+
height = height * cylinderLocalToShapeUvScale.z + localToShapeUvTranslate.z;
|
|
545
546
|
|
|
546
547
|
return Cartesian3.fromElements(radius, angle, height, result);
|
|
547
548
|
};
|