@cesium/engine 23.0.1 → 25.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-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
- package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
- package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
- package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
- package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
- package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
- package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
- package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
- package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
- package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
- package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
- package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
- package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
- package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
- package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
- package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
- package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
- package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
- package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
- package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
- package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
- package/Build/Workers/chunk-CKQP3DSS.js +973 -0
- package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
- package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
- package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
- package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
- package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
- package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
- package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
- package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
- package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
- package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
- package/Build/Workers/chunk-HSVQATK2.js +147 -0
- package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
- package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
- package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
- package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
- package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
- package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
- package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
- package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
- package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
- package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
- package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
- package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
- package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
- package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
- package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
- package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
- package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
- package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
- package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
- package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
- package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
- package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
- package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
- package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-ZCCIIBZT.js} +6 -6
- 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 +25 -25
- package/Build/Workers/createWallOutlineGeometry.js +24 -24
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +12 -12
- 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 +7 -5
- package/Source/Core/Cartesian3.js +9 -8
- package/Source/Core/Cartesian4.js +8 -6
- 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 +846 -835
- package/Source/Core/ComponentDatatype.js +4 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/DeveloperError.js +2 -1
- 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/ITwinPlatform.js +1 -0
- 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 +39 -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/S2Cell.js +2 -2
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainMesh.js +10 -1
- package/Source/Core/TerrainPicker.js +1 -0
- 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/WallGeometry.js +1 -1
- package/Source/Core/WallOutlineGeometry.js +1 -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/assert.js +27 -0
- package/Source/Core/globalTypes.js +4 -0
- package/Source/DataSources/CzmlDataSource.js +9 -0
- package/Source/DataSources/PathGraphics.js +13 -0
- package/Source/DataSources/PathVisualizer.js +330 -18
- package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
- 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 +7 -1
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderState.js +2 -2
- 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/VertexArray.js +80 -0
- 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/BillboardCollection.js +65 -364
- 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 +148 -0
- package/Source/Scene/BufferPointCollection.js +138 -0
- package/Source/Scene/BufferPointMaterial.js +95 -0
- package/Source/Scene/BufferPolygon.js +516 -0
- package/Source/Scene/BufferPolygonCollection.js +370 -0
- package/Source/Scene/BufferPolygonMaterial.js +41 -0
- package/Source/Scene/BufferPolyline.js +185 -0
- package/Source/Scene/BufferPolylineCollection.js +138 -0
- package/Source/Scene/BufferPolylineMaterial.js +93 -0
- package/Source/Scene/BufferPrimitive.js +347 -0
- package/Source/Scene/BufferPrimitiveCollection.js +818 -0
- package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContent.js +5 -1
- package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
- 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/Cesium3DTileStyle.js +22 -0
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +2 -1
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/ClippingPolygonCollection.js +270 -101
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/CubeMapPanorama.js +4 -4
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
- package/Source/Scene/GaussianSplatPrimitive.js +413 -70
- package/Source/Scene/GetFeatureInfoFormat.js +3 -3
- 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 +215 -39
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +109 -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/ITwinData.js +1 -0
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- 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/Label.js +32 -0
- package/Source/Scene/LabelCollection.js +14 -13
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/Material.js +2 -0
- package/Source/Scene/Megatexture.js +1 -0
- package/Source/Scene/MetadataClassProperty.js +24 -10
- package/Source/Scene/MetadataComponentType.js +118 -24
- 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/CustomShaderPipelineStage.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
- 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 +331 -3
- package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +6 -0
- package/Source/Scene/Model/ModelReader.js +475 -4
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/ModelUtility.js +3 -1
- 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 +375 -0
- 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 +1639 -1542
- package/Source/Scene/PickedMetadataInfo.js +1 -0
- 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/SceneMode.js +4 -1
- package/Source/Scene/ScreenSpaceCameraController.js +13 -0
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +17 -8
- 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/TileBoundingRegion.js +1 -1
- package/Source/Scene/TileBoundingS2Cell.js +1 -1
- package/Source/Scene/TileBoundingSphere.js +1 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/TweenCollection.js +7 -0
- package/Source/Scene/VectorGltf3DTileContent.js +403 -0
- package/Source/Scene/VertexAttributeSemantic.js +17 -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/VoxelProvider.js +1 -0
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
- package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
- package/Source/Scene/parseStructuralMetadata.js +97 -37
- package/Source/Scene/renderBufferPointCollection.js +285 -0
- package/Source/Scene/renderBufferPolygonCollection.js +339 -0
- package/Source/Scene/renderBufferPolylineCollection.js +478 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
- package/Source/Shaders/BillboardCollectionFS.js +2 -77
- package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
- package/Source/Shaders/BillboardCollectionVS.js +2 -60
- package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
- package/Source/Shaders/BufferPointMaterialFS.js +29 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
- package/Source/Shaders/BufferPointMaterialVS.js +50 -0
- package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
- package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
- package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
- package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -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/EdgeVisibilityStageFS.glsl +34 -48
- package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Model/ModelFS.glsl +15 -0
- package/Source/Shaders/Model/ModelFS.js +15 -0
- package/Source/Shaders/Model/ModelVS.glsl +8 -0
- package/Source/Shaders/Model/ModelVS.js +8 -0
- package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
- package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
- package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
- package/Source/Shaders/Voxels/VoxelFS.js +1 -1
- 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/Source/Workers/decodeDraco.js +3 -0
- package/Source/Workers/decodeI3S.js +5 -2
- package/index.d.ts +1332 -402
- package/index.js +111 -81
- package/package.json +3 -3
- package/Build/Workers/chunk-54O3AGOA.js +0 -642
- package/Build/Workers/chunk-6U5QMZU3.js +0 -940
- package/Build/Workers/chunk-HNDE73JK.js +0 -1829
- package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
- package/Build/Workers/chunk-S53HSRT6.js +0 -114
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import BufferPoint from "./BufferPoint.js";
|
|
4
|
+
import BufferPointCollection from "./BufferPointCollection.js";
|
|
5
|
+
import BufferPointMaterial from "./BufferPointMaterial.js";
|
|
6
|
+
import BufferPolygon from "./BufferPolygon.js";
|
|
7
|
+
import BufferPolygonCollection from "./BufferPolygonCollection.js";
|
|
8
|
+
import BufferPolygonMaterial from "./BufferPolygonMaterial.js";
|
|
9
|
+
import BufferPolyline from "./BufferPolyline.js";
|
|
10
|
+
import BufferPolylineCollection from "./BufferPolylineCollection.js";
|
|
11
|
+
import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
|
|
12
|
+
import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
|
|
13
|
+
import Color from "../Core/Color.js";
|
|
14
|
+
import Matrix4 from "../Core/Matrix4.js";
|
|
15
|
+
import Model from "./Model/Model.js";
|
|
16
|
+
import ModelUtility from "./Model/ModelUtility.js";
|
|
17
|
+
import Pass from "../Renderer/Pass.js";
|
|
18
|
+
import createVectorTileBuffersFromModelComponents from "./Model/createVectorTileBuffersFromModelComponents.js";
|
|
19
|
+
import defined from "../Core/defined.js";
|
|
20
|
+
import destroyObject from "../Core/destroyObject.js";
|
|
21
|
+
import DeveloperError from "../Core/DeveloperError.js";
|
|
22
|
+
|
|
23
|
+
/** @import BufferPrimitive from "./BufferPrimitive.js"; */
|
|
24
|
+
/** @import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js"; */
|
|
25
|
+
/** @import Cartesian3 from "../Core/Cartesian3.js"; */
|
|
26
|
+
/** @import Cesium3DContentGroup from "./Cesium3DContentGroup.js"; */
|
|
27
|
+
/** @import Cesium3DTile from "./Cesium3DTile.js"; */
|
|
28
|
+
/** @import Cesium3DTileBatchTable from "./Cesium3DTileBatchTable.js"; */
|
|
29
|
+
/** @import Cesium3DTileVectorFeature from "./Cesium3DTileVectorFeature.js";*/
|
|
30
|
+
/** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
|
|
31
|
+
/** @import FrameState from "./FrameState.js"; */
|
|
32
|
+
/** @import ImplicitMetadataView from "./ImplicitMetadataView.js"; */
|
|
33
|
+
/** @import Ray from "../Core/Ray.js"; */
|
|
34
|
+
/** @import Resource from "../Core/Resource.js"; */
|
|
35
|
+
|
|
36
|
+
/** @ignore */
|
|
37
|
+
const point = new BufferPoint();
|
|
38
|
+
/** @ignore */
|
|
39
|
+
const polyline = new BufferPolyline();
|
|
40
|
+
/** @ignore */
|
|
41
|
+
const polygon = new BufferPolygon();
|
|
42
|
+
|
|
43
|
+
/** @ignore */
|
|
44
|
+
const pointMaterial = new BufferPointMaterial();
|
|
45
|
+
/** @ignore */
|
|
46
|
+
const polylineMaterial = new BufferPolylineMaterial();
|
|
47
|
+
/** @ignore */
|
|
48
|
+
const polygonMaterial = new BufferPolygonMaterial();
|
|
49
|
+
|
|
50
|
+
/** @ignore */
|
|
51
|
+
const scratchTileModelMatrix = new Matrix4();
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Vector glTF tile content. This path decodes glTF primitives into vector
|
|
55
|
+
* buffers, then renders with dedicated vector primitives.
|
|
56
|
+
*
|
|
57
|
+
* @ignore
|
|
58
|
+
*/
|
|
59
|
+
class VectorGltf3DTileContent {
|
|
60
|
+
/**
|
|
61
|
+
* @param {Cesium3DTileset} tileset
|
|
62
|
+
* @param {Cesium3DTile} tile
|
|
63
|
+
* @param {Resource} resource
|
|
64
|
+
*/
|
|
65
|
+
constructor(tileset, tile, resource) {
|
|
66
|
+
/** @type {Cesium3DTileset} */
|
|
67
|
+
this._tileset = tileset;
|
|
68
|
+
/** @type {Cesium3DTile} */
|
|
69
|
+
this._tile = tile;
|
|
70
|
+
/** @type {Resource} */
|
|
71
|
+
this._resource = resource;
|
|
72
|
+
|
|
73
|
+
/** @type {Model} */
|
|
74
|
+
this._model = undefined;
|
|
75
|
+
|
|
76
|
+
/** @type {Array<BufferPrimitiveCollection<BufferPrimitive>>} */
|
|
77
|
+
this._collections = [];
|
|
78
|
+
|
|
79
|
+
/** @type {Array<Matrix4>} */
|
|
80
|
+
this._collectionLocalMatrices = [];
|
|
81
|
+
|
|
82
|
+
/** @type {Map<number, Cesium3DTileVectorFeature>} */
|
|
83
|
+
this._features = new Map();
|
|
84
|
+
|
|
85
|
+
/** @type {ImplicitMetadataView} */
|
|
86
|
+
this._metadata = undefined;
|
|
87
|
+
/** @type {Cesium3DContentGroup} */
|
|
88
|
+
this._group = undefined;
|
|
89
|
+
|
|
90
|
+
/** @type {boolean} */
|
|
91
|
+
this.featurePropertiesDirty = false;
|
|
92
|
+
|
|
93
|
+
/** @type {boolean} */
|
|
94
|
+
this._ready = false;
|
|
95
|
+
|
|
96
|
+
/** @type {Matrix4} */
|
|
97
|
+
this._modelMatrix = Matrix4.clone(Matrix4.IDENTITY);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
get featuresLength() {
|
|
101
|
+
return this._collections.reduce(
|
|
102
|
+
(acc, collection) => acc + collection.primitiveCount,
|
|
103
|
+
0,
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
get pointsLength() {
|
|
108
|
+
return this._collections
|
|
109
|
+
.filter((collection) => collection instanceof BufferPointCollection)
|
|
110
|
+
.reduce((acc, collection) => acc + collection.primitiveCount, 0);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
get trianglesLength() {
|
|
114
|
+
return this._collections.reduce((acc, collection) => {
|
|
115
|
+
if (collection instanceof BufferPolygonCollection) {
|
|
116
|
+
return acc + collection.triangleCount;
|
|
117
|
+
} else if (collection instanceof BufferPolylineCollection) {
|
|
118
|
+
return acc + (collection.vertexCount - collection.primitiveCount) * 2;
|
|
119
|
+
}
|
|
120
|
+
return acc;
|
|
121
|
+
}, 0);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
get geometryByteLength() {
|
|
125
|
+
return this._collections.reduce((totalByteLength, collection) => {
|
|
126
|
+
return totalByteLength + collection.byteLength;
|
|
127
|
+
}, 0);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
get texturesByteLength() {
|
|
131
|
+
return 0;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
get batchTableByteLength() {
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** @returns {undefined} */
|
|
139
|
+
get innerContents() {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
get ready() {
|
|
144
|
+
return this._ready;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
get tileset() {
|
|
148
|
+
return this._tileset;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
get tile() {
|
|
152
|
+
return this._tile;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
get url() {
|
|
156
|
+
return this._resource.getUrlComponent(true);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** @type {Cesium3DTileBatchTable[]} */
|
|
160
|
+
get batchTables() {
|
|
161
|
+
return this._model._featureTables;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @type {Cesium3DTileBatchTable}
|
|
166
|
+
* @deprecated See {@link batchTables}.
|
|
167
|
+
*/
|
|
168
|
+
get batchTable() {
|
|
169
|
+
throw new DeveloperError("Deprecated: Use `content.batchTables`.");
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** @type {ImplicitMetadataView} */
|
|
173
|
+
get metadata() {
|
|
174
|
+
return this._metadata;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
set metadata(value) {
|
|
178
|
+
this._metadata = value;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** @type {Cesium3DContentGroup} */
|
|
182
|
+
get group() {
|
|
183
|
+
return this._group;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
set group(value) {
|
|
187
|
+
this._group = value;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @param {number} featureId
|
|
192
|
+
* @returns {Cesium3DTileVectorFeature}
|
|
193
|
+
*/
|
|
194
|
+
getFeature(featureId) {
|
|
195
|
+
return this._features.get(featureId);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* @param {number} featureId
|
|
200
|
+
* @param {string} name
|
|
201
|
+
* @returns {boolean}
|
|
202
|
+
*/
|
|
203
|
+
hasProperty(featureId, name) {
|
|
204
|
+
const feature = this.getFeature(featureId);
|
|
205
|
+
return feature ? feature.hasProperty(name) : false;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* @param {boolean} enabled
|
|
210
|
+
* @param {Color} color
|
|
211
|
+
*/
|
|
212
|
+
applyDebugSettings(enabled, color) {
|
|
213
|
+
color = enabled ? color : Color.WHITE;
|
|
214
|
+
this.applyStyle(new Cesium3DTileStyle({ color }));
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* @param {*} style
|
|
219
|
+
*/
|
|
220
|
+
applyStyle(style) {
|
|
221
|
+
const isPointCollection = /** @param {unknown} c */ (c) =>
|
|
222
|
+
c instanceof BufferPointCollection;
|
|
223
|
+
const isPolylineCollection = /** @param {unknown} c */ (c) =>
|
|
224
|
+
c instanceof BufferPolylineCollection;
|
|
225
|
+
const isPolygonCollection = /** @param {unknown} c */ (c) =>
|
|
226
|
+
c instanceof BufferPolygonCollection;
|
|
227
|
+
|
|
228
|
+
for (const collection of this._collections.filter(isPointCollection)) {
|
|
229
|
+
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
230
|
+
collection.get(i, point);
|
|
231
|
+
const feature = this.getFeature(point.featureId);
|
|
232
|
+
|
|
233
|
+
point.show = style.show?.evaluate(feature) ?? true;
|
|
234
|
+
style.color?.evaluate(feature, pointMaterial.color);
|
|
235
|
+
pointMaterial.size = style.pointSize?.evaluate(feature);
|
|
236
|
+
pointMaterial.outlineWidth = style.pointOutlineWidth?.evaluate(feature);
|
|
237
|
+
style.pointOutlineColor?.evaluate(feature, pointMaterial.outlineColor);
|
|
238
|
+
|
|
239
|
+
point.setMaterial(pointMaterial);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
for (const collection of this._collections.filter(isPolylineCollection)) {
|
|
244
|
+
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
245
|
+
collection.get(i, polyline);
|
|
246
|
+
const feature = this.getFeature(polyline.featureId);
|
|
247
|
+
|
|
248
|
+
polyline.show = style.show?.evaluate(feature) ?? true;
|
|
249
|
+
style.color?.evaluate(feature, polylineMaterial.color);
|
|
250
|
+
polylineMaterial.width = style.lineWidth?.evaluate(feature) ?? 1;
|
|
251
|
+
|
|
252
|
+
polyline.setMaterial(polylineMaterial);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
for (const collection of this._collections.filter(isPolygonCollection)) {
|
|
257
|
+
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
258
|
+
collection.get(i, polygon);
|
|
259
|
+
const feature = this.getFeature(polygon.featureId);
|
|
260
|
+
|
|
261
|
+
polygon.show = style.show?.evaluate(feature) ?? true;
|
|
262
|
+
style.color?.evaluate(feature, polygonMaterial.color);
|
|
263
|
+
|
|
264
|
+
polygon.setMaterial(polygonMaterial);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* @param {Cesium3DTileset} _tileset
|
|
271
|
+
* @param {FrameState} frameState
|
|
272
|
+
*/
|
|
273
|
+
update(_tileset, frameState) {
|
|
274
|
+
if (defined(this._model) && !this._ready) {
|
|
275
|
+
const model = this._model;
|
|
276
|
+
model.modelMatrix = this._tile.computedTransform;
|
|
277
|
+
model.update(frameState);
|
|
278
|
+
|
|
279
|
+
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
280
|
+
if (model.ready) {
|
|
281
|
+
initializeVectorPrimitives(this);
|
|
282
|
+
this._ready = true;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
Matrix4.multiplyTransformation(
|
|
287
|
+
this._tile.computedTransform,
|
|
288
|
+
this._modelMatrix,
|
|
289
|
+
scratchTileModelMatrix,
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
for (let i = 0; i < this._collections.length; i++) {
|
|
293
|
+
Matrix4.multiplyTransformation(
|
|
294
|
+
scratchTileModelMatrix,
|
|
295
|
+
this._collectionLocalMatrices[i],
|
|
296
|
+
this._collections[i].modelMatrix,
|
|
297
|
+
);
|
|
298
|
+
this._collections[i].update(frameState);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* @param {Ray} _ray
|
|
304
|
+
* @param {FrameState} _frameState
|
|
305
|
+
* @param {Cartesian3|undefined} _result
|
|
306
|
+
* @returns {Cartesian3|undefined}
|
|
307
|
+
*/
|
|
308
|
+
pick(_ray, _frameState, _result) {
|
|
309
|
+
return undefined;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
isDestroyed() {
|
|
313
|
+
return false;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
destroy() {
|
|
317
|
+
this._model?.destroy();
|
|
318
|
+
this._model = undefined;
|
|
319
|
+
this._collections.forEach((collection) => collection.destroy());
|
|
320
|
+
this._collections.length = 0;
|
|
321
|
+
return destroyObject(this);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* @param {Cesium3DTileset} tileset
|
|
326
|
+
* @param {Cesium3DTile} tile
|
|
327
|
+
* @param {Resource} resource
|
|
328
|
+
* @param {unknown} gltf
|
|
329
|
+
* @returns {Promise<VectorGltf3DTileContent>}
|
|
330
|
+
*/
|
|
331
|
+
static async fromGltf(tileset, tile, resource, gltf) {
|
|
332
|
+
const content = new VectorGltf3DTileContent(tileset, tile, resource);
|
|
333
|
+
const modelOptions = makeModelOptions(tileset, tile, content, gltf);
|
|
334
|
+
const model = await Model.fromGltfAsync(modelOptions);
|
|
335
|
+
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
336
|
+
model.show = false;
|
|
337
|
+
content._model = model;
|
|
338
|
+
return content;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* @param {Cesium3DTileset} tileset
|
|
344
|
+
* @param {Cesium3DTile} tile
|
|
345
|
+
* @param {VectorGltf3DTileContent} content
|
|
346
|
+
* @param {unknown} gltf
|
|
347
|
+
* @returns {*}
|
|
348
|
+
* @ignore
|
|
349
|
+
*/
|
|
350
|
+
function makeModelOptions(tileset, tile, content, gltf) {
|
|
351
|
+
return {
|
|
352
|
+
gltf: gltf,
|
|
353
|
+
basePath: content._resource,
|
|
354
|
+
cull: false,
|
|
355
|
+
releaseGltfJson: true,
|
|
356
|
+
opaquePass: Pass.CESIUM_3D_TILE,
|
|
357
|
+
modelMatrix: tile.computedTransform,
|
|
358
|
+
upAxis: tileset._modelUpAxis,
|
|
359
|
+
forwardAxis: tileset._modelForwardAxis,
|
|
360
|
+
incrementallyLoadTextures: false,
|
|
361
|
+
content: content,
|
|
362
|
+
// @ts-expect-error Requires Cesium3DTileset conversion to ES6 class.
|
|
363
|
+
featureIdLabel: tileset.featureIdLabel,
|
|
364
|
+
// @ts-expect-error Requires Cesium3DTileset conversion to ES6 class.
|
|
365
|
+
instanceFeatureIdLabel: tileset.instanceFeatureIdLabel,
|
|
366
|
+
projectTo2D: tileset._projectTo2D,
|
|
367
|
+
enablePick: tileset._enablePick,
|
|
368
|
+
enableDebugWireframe: tileset._enableDebugWireframe,
|
|
369
|
+
enableShowOutline: false,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* @param {VectorGltf3DTileContent} content
|
|
375
|
+
* @ignore
|
|
376
|
+
*/
|
|
377
|
+
function initializeVectorPrimitives(content) {
|
|
378
|
+
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
379
|
+
const components = content._model.sceneGraph.components;
|
|
380
|
+
|
|
381
|
+
const axisCorrection = ModelUtility.getAxisCorrectionMatrix(
|
|
382
|
+
components.upAxis,
|
|
383
|
+
components.forwardAxis,
|
|
384
|
+
new Matrix4(),
|
|
385
|
+
);
|
|
386
|
+
|
|
387
|
+
Matrix4.multiplyTransformation(
|
|
388
|
+
components.transform,
|
|
389
|
+
axisCorrection,
|
|
390
|
+
content._modelMatrix,
|
|
391
|
+
);
|
|
392
|
+
|
|
393
|
+
const result = createVectorTileBuffersFromModelComponents(
|
|
394
|
+
content,
|
|
395
|
+
components,
|
|
396
|
+
);
|
|
397
|
+
|
|
398
|
+
content._collections = result.collections;
|
|
399
|
+
content._collectionLocalMatrices = result.collectionLocalMatrices;
|
|
400
|
+
content._features = result.features;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export default VectorGltf3DTileContent;
|
|
@@ -87,6 +87,13 @@ const VertexAttributeSemantic = {
|
|
|
87
87
|
* @constant
|
|
88
88
|
*/
|
|
89
89
|
ROTATION: "KHR_gaussian_splatting:ROTATION",
|
|
90
|
+
/**
|
|
91
|
+
* Per-vertex cumulative distance for line patterning.
|
|
92
|
+
*
|
|
93
|
+
* @type {string}
|
|
94
|
+
* @constant
|
|
95
|
+
*/
|
|
96
|
+
CUMULATIVE_DISTANCE: "BENTLEY_materials_line_style:CUMULATIVE_DISTANCE",
|
|
90
97
|
};
|
|
91
98
|
|
|
92
99
|
function semanticToVariableName(semantic) {
|
|
@@ -111,6 +118,8 @@ function semanticToVariableName(semantic) {
|
|
|
111
118
|
return "scale";
|
|
112
119
|
case VertexAttributeSemantic.ROTATION:
|
|
113
120
|
return "rotation";
|
|
121
|
+
case VertexAttributeSemantic.CUMULATIVE_DISTANCE:
|
|
122
|
+
return "cumulativeDistance";
|
|
114
123
|
//>>includeStart('debug', pragmas.debug);
|
|
115
124
|
default:
|
|
116
125
|
throw new DeveloperError("semantic is not a valid value.");
|
|
@@ -136,6 +145,7 @@ VertexAttributeSemantic.hasSetIndex = function (semantic) {
|
|
|
136
145
|
case VertexAttributeSemantic.POSITION:
|
|
137
146
|
case VertexAttributeSemantic.NORMAL:
|
|
138
147
|
case VertexAttributeSemantic.TANGENT:
|
|
148
|
+
case VertexAttributeSemantic.CUMULATIVE_DISTANCE:
|
|
139
149
|
return false;
|
|
140
150
|
case VertexAttributeSemantic.TEXCOORD:
|
|
141
151
|
case VertexAttributeSemantic.COLOR:
|
|
@@ -198,6 +208,8 @@ VertexAttributeSemantic.fromGltfSemantic = function (gltfSemantic) {
|
|
|
198
208
|
case "KHR_gaussian_splatting:ROTATION":
|
|
199
209
|
case "_ROTATION":
|
|
200
210
|
return VertexAttributeSemantic.ROTATION;
|
|
211
|
+
case "BENTLEY_materials_line_style:CUMULATIVE_DISTANCE":
|
|
212
|
+
return VertexAttributeSemantic.CUMULATIVE_DISTANCE;
|
|
201
213
|
}
|
|
202
214
|
|
|
203
215
|
return undefined;
|
|
@@ -271,6 +283,8 @@ VertexAttributeSemantic.getGlslType = function (semantic) {
|
|
|
271
283
|
return "vec3";
|
|
272
284
|
case VertexAttributeSemantic.ROTATION:
|
|
273
285
|
return "vec4";
|
|
286
|
+
case VertexAttributeSemantic.CUMULATIVE_DISTANCE:
|
|
287
|
+
return "float";
|
|
274
288
|
case VertexAttributeSemantic.OPACITY:
|
|
275
289
|
return "float";
|
|
276
290
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -302,4 +316,6 @@ VertexAttributeSemantic.getVariableName = function (semantic, setIndex) {
|
|
|
302
316
|
return variableName;
|
|
303
317
|
};
|
|
304
318
|
|
|
305
|
-
|
|
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
|
};
|