@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
|
@@ -5,17 +5,17 @@ import RuntimeError from "../Core/RuntimeError.js";
|
|
|
5
5
|
import ImageryLayerFeatureInfo from "./ImageryLayerFeatureInfo.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) server.
|
|
8
|
+
* Describes the format in which to request GetFeatureInfo from a Web Map Service (WMS) or Web Map Tile Service (WMTS) server.
|
|
9
9
|
*
|
|
10
10
|
* @alias GetFeatureInfoFormat
|
|
11
11
|
* @constructor
|
|
12
12
|
*
|
|
13
13
|
* @param {string} type The type of response to expect from a GetFeatureInfo request. Valid
|
|
14
14
|
* values are 'json', 'xml', 'html', or 'text'.
|
|
15
|
-
* @param {string} [format] The info format to request from the
|
|
15
|
+
* @param {string} [format] The info format to request from the server. This is usually a
|
|
16
16
|
* MIME type such as 'application/json' or text/xml'. If this parameter is not specified, the provider will request 'json'
|
|
17
17
|
* using 'application/json', 'xml' using 'text/xml', 'html' using 'text/html', and 'text' using 'text/plain'.
|
|
18
|
-
* @param {Function} [callback] A function to invoke with the GetFeatureInfo response from the
|
|
18
|
+
* @param {Function} [callback] A function to invoke with the GetFeatureInfo response from the server
|
|
19
19
|
* in order to produce an array of picked {@link ImageryLayerFeatureInfo} instances. If this parameter is not specified,
|
|
20
20
|
* a default function for the type of response is used.
|
|
21
21
|
*/
|
|
@@ -92,7 +92,6 @@ class GltfBufferViewLoader extends ResourceLoader {
|
|
|
92
92
|
/**
|
|
93
93
|
* The cache key of the resource.
|
|
94
94
|
*
|
|
95
|
-
* @memberof GltfBufferViewLoader.prototype
|
|
96
95
|
*
|
|
97
96
|
* @type {string}
|
|
98
97
|
* @readonly
|
|
@@ -105,7 +104,6 @@ class GltfBufferViewLoader extends ResourceLoader {
|
|
|
105
104
|
/**
|
|
106
105
|
* The typed array containing buffer view data.
|
|
107
106
|
*
|
|
108
|
-
* @memberof GltfBufferViewLoader.prototype
|
|
109
107
|
*
|
|
110
108
|
* @type {Uint8Array}
|
|
111
109
|
* @readonly
|
|
@@ -66,7 +66,6 @@ class GltfDracoLoader extends ResourceLoader {
|
|
|
66
66
|
/**
|
|
67
67
|
* The cache key of the resource.
|
|
68
68
|
*
|
|
69
|
-
* @memberof GltfDracoLoader.prototype
|
|
70
69
|
*
|
|
71
70
|
* @type {string}
|
|
72
71
|
* @readonly
|
|
@@ -79,7 +78,6 @@ class GltfDracoLoader extends ResourceLoader {
|
|
|
79
78
|
/**
|
|
80
79
|
* The decoded data.
|
|
81
80
|
*
|
|
82
|
-
* @memberof GltfDracoLoader.prototype
|
|
83
81
|
*
|
|
84
82
|
* @type {object}
|
|
85
83
|
* @readonly
|
|
@@ -65,7 +65,6 @@ class GltfImageLoader extends ResourceLoader {
|
|
|
65
65
|
/**
|
|
66
66
|
* The cache key of the resource.
|
|
67
67
|
*
|
|
68
|
-
* @memberof GltfImageLoader.prototype
|
|
69
68
|
*
|
|
70
69
|
* @type {string}
|
|
71
70
|
* @readonly
|
|
@@ -78,7 +77,6 @@ class GltfImageLoader extends ResourceLoader {
|
|
|
78
77
|
/**
|
|
79
78
|
* The image.
|
|
80
79
|
*
|
|
81
|
-
* @memberof GltfImageLoader.prototype
|
|
82
80
|
*
|
|
83
81
|
* @type {Image|ImageBitmap|CompressedTextureBuffer}
|
|
84
82
|
* @readonly
|
|
@@ -91,7 +89,6 @@ class GltfImageLoader extends ResourceLoader {
|
|
|
91
89
|
/**
|
|
92
90
|
* The mip levels. Only defined for KTX2 files containing mip levels.
|
|
93
91
|
*
|
|
94
|
-
* @memberof GltfImageLoader.prototype
|
|
95
92
|
*
|
|
96
93
|
* @type {Uint8Array[]}
|
|
97
94
|
* @readonly
|
|
@@ -88,7 +88,6 @@ class GltfIndexBufferLoader extends ResourceLoader {
|
|
|
88
88
|
/**
|
|
89
89
|
* The cache key of the resource.
|
|
90
90
|
*
|
|
91
|
-
* @memberof GltfIndexBufferLoader.prototype
|
|
92
91
|
*
|
|
93
92
|
* @type {string}
|
|
94
93
|
* @readonly
|
|
@@ -101,7 +100,6 @@ class GltfIndexBufferLoader extends ResourceLoader {
|
|
|
101
100
|
/**
|
|
102
101
|
* The index buffer. This is only defined when <code>loadBuffer</code> is true.
|
|
103
102
|
*
|
|
104
|
-
* @memberof GltfIndexBufferLoader.prototype
|
|
105
103
|
*
|
|
106
104
|
* @type {Buffer}
|
|
107
105
|
* @readonly
|
|
@@ -114,7 +112,6 @@ class GltfIndexBufferLoader extends ResourceLoader {
|
|
|
114
112
|
/**
|
|
115
113
|
* The typed array containing indices. This is only defined when <code>loadTypedArray</code> is true.
|
|
116
114
|
*
|
|
117
|
-
* @memberof GltfIndexBufferLoader.prototype
|
|
118
115
|
*
|
|
119
116
|
* @type {Uint8Array|Uint16Array|Uint32Array}
|
|
120
117
|
* @readonly
|
|
@@ -127,7 +124,6 @@ class GltfIndexBufferLoader extends ResourceLoader {
|
|
|
127
124
|
/**
|
|
128
125
|
* The index datatype after decode.
|
|
129
126
|
*
|
|
130
|
-
* @memberof GltfIndexBufferLoader.prototype
|
|
131
127
|
*
|
|
132
128
|
* @type {IndexDatatype}
|
|
133
129
|
* @readonly
|
|
@@ -67,7 +67,6 @@ class GltfJsonLoader extends ResourceLoader {
|
|
|
67
67
|
/**
|
|
68
68
|
* The cache key of the resource.
|
|
69
69
|
*
|
|
70
|
-
* @memberof GltfJsonLoader.prototype
|
|
71
70
|
*
|
|
72
71
|
* @type {string}
|
|
73
72
|
* @readonly
|
|
@@ -80,7 +79,6 @@ class GltfJsonLoader extends ResourceLoader {
|
|
|
80
79
|
/**
|
|
81
80
|
* The glTF JSON.
|
|
82
81
|
*
|
|
83
|
-
* @memberof GltfJsonLoader.prototype
|
|
84
82
|
*
|
|
85
83
|
* @type {object}
|
|
86
84
|
* @readonly
|
|
@@ -61,7 +61,9 @@ const {
|
|
|
61
61
|
Specular,
|
|
62
62
|
Anisotropy,
|
|
63
63
|
Clearcoat,
|
|
64
|
+
LineStyle,
|
|
64
65
|
Material,
|
|
66
|
+
Vector,
|
|
65
67
|
} = ModelComponents;
|
|
66
68
|
|
|
67
69
|
/**
|
|
@@ -285,7 +287,6 @@ class GltfLoader extends ResourceLoader {
|
|
|
285
287
|
/**
|
|
286
288
|
* The cache key of the resource.
|
|
287
289
|
*
|
|
288
|
-
* @memberof GltfLoader.prototype
|
|
289
290
|
*
|
|
290
291
|
* @type {string}
|
|
291
292
|
* @readonly
|
|
@@ -298,7 +299,6 @@ class GltfLoader extends ResourceLoader {
|
|
|
298
299
|
/**
|
|
299
300
|
* The loaded components.
|
|
300
301
|
*
|
|
301
|
-
* @memberof GltfLoader.prototype
|
|
302
302
|
*
|
|
303
303
|
* @type {ModelComponents.Components}
|
|
304
304
|
* @readonly
|
|
@@ -311,7 +311,6 @@ class GltfLoader extends ResourceLoader {
|
|
|
311
311
|
/**
|
|
312
312
|
* The loaded glTF json.
|
|
313
313
|
*
|
|
314
|
-
* @memberof GltfLoader.prototype
|
|
315
314
|
*
|
|
316
315
|
* @type {object}
|
|
317
316
|
* @readonly
|
|
@@ -327,7 +326,6 @@ class GltfLoader extends ResourceLoader {
|
|
|
327
326
|
/**
|
|
328
327
|
* Returns true if textures are loaded separately from the other glTF resources.
|
|
329
328
|
*
|
|
330
|
-
* @memberof GltfLoader.prototype
|
|
331
329
|
*
|
|
332
330
|
* @type {boolean}
|
|
333
331
|
* @readonly
|
|
@@ -340,7 +338,6 @@ class GltfLoader extends ResourceLoader {
|
|
|
340
338
|
/**
|
|
341
339
|
* true if textures are loaded, useful when incrementallyLoadTextures is true
|
|
342
340
|
*
|
|
343
|
-
* @memberof GltfLoader.prototype
|
|
344
341
|
*
|
|
345
342
|
* @type {boolean}
|
|
346
343
|
* @readonly
|
|
@@ -1756,6 +1753,34 @@ function loadClearcoat(loader, clearcoatInfo, frameState) {
|
|
|
1756
1753
|
return clearcoat;
|
|
1757
1754
|
}
|
|
1758
1755
|
|
|
1756
|
+
function loadLineStyle(lineStyleInfo) {
|
|
1757
|
+
if (!defined(lineStyleInfo)) {
|
|
1758
|
+
return undefined;
|
|
1759
|
+
}
|
|
1760
|
+
|
|
1761
|
+
const lineStyle = new LineStyle();
|
|
1762
|
+
|
|
1763
|
+
if (defined(lineStyleInfo.width)) {
|
|
1764
|
+
const width = lineStyleInfo.width;
|
|
1765
|
+
if (width > 0 && Math.floor(width) === width) {
|
|
1766
|
+
lineStyle.width = width;
|
|
1767
|
+
}
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
if (defined(lineStyleInfo.pattern)) {
|
|
1771
|
+
const pattern = lineStyleInfo.pattern;
|
|
1772
|
+
if (pattern >= 0 && pattern <= 65535 && Math.floor(pattern) === pattern) {
|
|
1773
|
+
lineStyle.pattern = pattern;
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1776
|
+
|
|
1777
|
+
if (!defined(lineStyle.width) && !defined(lineStyle.pattern)) {
|
|
1778
|
+
return undefined;
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
return lineStyle;
|
|
1782
|
+
}
|
|
1783
|
+
|
|
1759
1784
|
/**
|
|
1760
1785
|
* Load textures and parse factors and flags for a glTF material
|
|
1761
1786
|
*
|
|
@@ -1840,6 +1865,8 @@ function loadMaterial(loader, gltfMaterial, frameState) {
|
|
|
1840
1865
|
}
|
|
1841
1866
|
}
|
|
1842
1867
|
|
|
1868
|
+
material.lineStyle = loadLineStyle(extensions.BENTLEY_materials_line_style);
|
|
1869
|
+
|
|
1843
1870
|
return material;
|
|
1844
1871
|
}
|
|
1845
1872
|
|
|
@@ -2031,6 +2058,132 @@ function fetchSpzExtensionFrom(extensions) {
|
|
|
2031
2058
|
return undefined;
|
|
2032
2059
|
}
|
|
2033
2060
|
|
|
2061
|
+
function getEdgeVisibilityMaterialColor(loader, materialIndex) {
|
|
2062
|
+
if (!defined(materialIndex)) {
|
|
2063
|
+
return undefined;
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
const materials = loader.gltfJson.materials;
|
|
2067
|
+
if (
|
|
2068
|
+
!defined(materials) ||
|
|
2069
|
+
materialIndex < 0 ||
|
|
2070
|
+
materialIndex >= materials.length
|
|
2071
|
+
) {
|
|
2072
|
+
return undefined;
|
|
2073
|
+
}
|
|
2074
|
+
|
|
2075
|
+
const material = materials[materialIndex];
|
|
2076
|
+
if (!defined(material)) {
|
|
2077
|
+
return undefined;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
const metallicRoughness =
|
|
2081
|
+
material.pbrMetallicRoughness ?? Frozen.EMPTY_OBJECT;
|
|
2082
|
+
const color = fromArray(Cartesian4, metallicRoughness.baseColorFactor);
|
|
2083
|
+
|
|
2084
|
+
if (defined(color)) {
|
|
2085
|
+
return color;
|
|
2086
|
+
}
|
|
2087
|
+
|
|
2088
|
+
return new Cartesian4(1.0, 1.0, 1.0, 1.0);
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
function getLineStringPrimitiveRestartValue(componentType) {
|
|
2092
|
+
switch (componentType) {
|
|
2093
|
+
case ComponentDatatype.UNSIGNED_BYTE:
|
|
2094
|
+
return 255;
|
|
2095
|
+
case ComponentDatatype.UNSIGNED_SHORT:
|
|
2096
|
+
return 65535;
|
|
2097
|
+
case ComponentDatatype.UNSIGNED_INT:
|
|
2098
|
+
return 4294967295;
|
|
2099
|
+
default:
|
|
2100
|
+
throw new RuntimeError(
|
|
2101
|
+
"EXT_mesh_primitive_edge_visibility line strings indices must use unsigned scalar component types.",
|
|
2102
|
+
);
|
|
2103
|
+
}
|
|
2104
|
+
}
|
|
2105
|
+
|
|
2106
|
+
function loadEdgeVisibilityLineStrings(
|
|
2107
|
+
loader,
|
|
2108
|
+
lineStringDefinitions,
|
|
2109
|
+
defaultMaterialIndex,
|
|
2110
|
+
) {
|
|
2111
|
+
if (!defined(lineStringDefinitions) || lineStringDefinitions.length === 0) {
|
|
2112
|
+
return undefined;
|
|
2113
|
+
}
|
|
2114
|
+
|
|
2115
|
+
const result = new Array(lineStringDefinitions.length);
|
|
2116
|
+
for (let i = 0; i < lineStringDefinitions.length; i++) {
|
|
2117
|
+
const definition = lineStringDefinitions[i] ?? Frozen.EMPTY_OBJECT;
|
|
2118
|
+
const accessorId = definition.indices;
|
|
2119
|
+
const accessor = loader.gltfJson.accessors[accessorId];
|
|
2120
|
+
|
|
2121
|
+
if (!defined(accessor)) {
|
|
2122
|
+
throw new RuntimeError("Edge visibility line string accessor not found!");
|
|
2123
|
+
}
|
|
2124
|
+
|
|
2125
|
+
const indices = loadAccessor(loader, accessor);
|
|
2126
|
+
const restartIndex = getLineStringPrimitiveRestartValue(
|
|
2127
|
+
accessor.componentType,
|
|
2128
|
+
);
|
|
2129
|
+
const materialIndex = defined(definition.material)
|
|
2130
|
+
? definition.material
|
|
2131
|
+
: defaultMaterialIndex;
|
|
2132
|
+
|
|
2133
|
+
result[i] = {
|
|
2134
|
+
indices: indices,
|
|
2135
|
+
restartIndex: restartIndex,
|
|
2136
|
+
componentType: accessor.componentType,
|
|
2137
|
+
materialColor: getEdgeVisibilityMaterialColor(loader, materialIndex),
|
|
2138
|
+
};
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
return result;
|
|
2142
|
+
}
|
|
2143
|
+
|
|
2144
|
+
function loadEdgeVisibility(loader, edgeVisibilityExtension) {
|
|
2145
|
+
if (!defined(edgeVisibilityExtension)) {
|
|
2146
|
+
return undefined;
|
|
2147
|
+
}
|
|
2148
|
+
|
|
2149
|
+
const edgeVisibility = {};
|
|
2150
|
+
|
|
2151
|
+
const visibilityAccessorId = edgeVisibilityExtension.visibility;
|
|
2152
|
+
if (defined(visibilityAccessorId)) {
|
|
2153
|
+
const visibilityAccessor = loader.gltfJson.accessors[visibilityAccessorId];
|
|
2154
|
+
if (!defined(visibilityAccessor)) {
|
|
2155
|
+
throw new RuntimeError("Edge visibility accessor not found!");
|
|
2156
|
+
}
|
|
2157
|
+
edgeVisibility.visibility = loadAccessor(loader, visibilityAccessor);
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
edgeVisibility.materialColor = getEdgeVisibilityMaterialColor(
|
|
2161
|
+
loader,
|
|
2162
|
+
edgeVisibilityExtension.material,
|
|
2163
|
+
);
|
|
2164
|
+
|
|
2165
|
+
if (defined(edgeVisibilityExtension.silhouetteNormals)) {
|
|
2166
|
+
const silhouetteNormalsAccessor =
|
|
2167
|
+
loader.gltfJson.accessors[edgeVisibilityExtension.silhouetteNormals];
|
|
2168
|
+
if (defined(silhouetteNormalsAccessor)) {
|
|
2169
|
+
edgeVisibility.silhouetteNormals = loadAccessor(
|
|
2170
|
+
loader,
|
|
2171
|
+
silhouetteNormalsAccessor,
|
|
2172
|
+
);
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
|
|
2176
|
+
if (defined(edgeVisibilityExtension.lineStrings)) {
|
|
2177
|
+
edgeVisibility.lineStrings = loadEdgeVisibilityLineStrings(
|
|
2178
|
+
loader,
|
|
2179
|
+
edgeVisibilityExtension.lineStrings,
|
|
2180
|
+
edgeVisibilityExtension.material,
|
|
2181
|
+
);
|
|
2182
|
+
}
|
|
2183
|
+
|
|
2184
|
+
return edgeVisibility;
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2034
2187
|
/**
|
|
2035
2188
|
* Load resources associated with a mesh primitive for a glTF node
|
|
2036
2189
|
* @param {GltfLoader} loader
|
|
@@ -2055,6 +2208,10 @@ function loadPrimitive(loader, gltfPrimitive, hasInstances, frameState) {
|
|
|
2055
2208
|
}
|
|
2056
2209
|
|
|
2057
2210
|
const extensions = gltfPrimitive.extensions ?? Frozen.EMPTY_OBJECT;
|
|
2211
|
+
const meshVectorExtension = extensions.CESIUM_mesh_vector;
|
|
2212
|
+
if (defined(meshVectorExtension)) {
|
|
2213
|
+
primitive.vector = loadMeshVectorExtension(loader, meshVectorExtension);
|
|
2214
|
+
}
|
|
2058
2215
|
|
|
2059
2216
|
let needsPostProcessing = false;
|
|
2060
2217
|
const outlineExtension = extensions.CESIUM_primitive_outline;
|
|
@@ -2068,40 +2225,10 @@ function loadPrimitive(loader, gltfPrimitive, hasInstances, frameState) {
|
|
|
2068
2225
|
);
|
|
2069
2226
|
}
|
|
2070
2227
|
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
const visibilityAccessor =
|
|
2076
|
-
loader.gltfJson.accessors[edgeVisibilityExtension.visibility];
|
|
2077
|
-
if (!defined(visibilityAccessor)) {
|
|
2078
|
-
throw new RuntimeError("Edge visibility accessor not found!");
|
|
2079
|
-
}
|
|
2080
|
-
const visibilityValues = loadAccessor(loader, visibilityAccessor);
|
|
2081
|
-
primitive.edgeVisibility = {
|
|
2082
|
-
visibility: visibilityValues,
|
|
2083
|
-
material: edgeVisibilityExtension.material,
|
|
2084
|
-
};
|
|
2085
|
-
|
|
2086
|
-
// Load silhouette normals
|
|
2087
|
-
if (defined(edgeVisibilityExtension.silhouetteNormals)) {
|
|
2088
|
-
const silhouetteNormalsAccessor =
|
|
2089
|
-
loader.gltfJson.accessors[edgeVisibilityExtension.silhouetteNormals];
|
|
2090
|
-
if (defined(silhouetteNormalsAccessor)) {
|
|
2091
|
-
const silhouetteNormalsValues = loadAccessor(
|
|
2092
|
-
loader,
|
|
2093
|
-
silhouetteNormalsAccessor,
|
|
2094
|
-
);
|
|
2095
|
-
primitive.edgeVisibility.silhouetteNormals = silhouetteNormalsValues;
|
|
2096
|
-
}
|
|
2097
|
-
}
|
|
2098
|
-
|
|
2099
|
-
// Load line strings
|
|
2100
|
-
if (defined(edgeVisibilityExtension.lineStrings)) {
|
|
2101
|
-
primitivePlan.edgeVisibility.lineStrings =
|
|
2102
|
-
edgeVisibilityExtension.lineStrings;
|
|
2103
|
-
}
|
|
2104
|
-
}
|
|
2228
|
+
primitive.edgeVisibility = loadEdgeVisibility(
|
|
2229
|
+
loader,
|
|
2230
|
+
extensions.EXT_mesh_primitive_edge_visibility,
|
|
2231
|
+
);
|
|
2105
2232
|
|
|
2106
2233
|
//support the latest glTF spec and the legacy extension
|
|
2107
2234
|
const spzExtension = fetchSpzExtensionFrom(extensions);
|
|
@@ -2238,6 +2365,50 @@ function loadPrimitiveOutline(loader, outlineExtension) {
|
|
|
2238
2365
|
return loadAccessor(loader, accessor, useQuaternion);
|
|
2239
2366
|
}
|
|
2240
2367
|
|
|
2368
|
+
/**
|
|
2369
|
+
* Load CESIUM_mesh_vector.
|
|
2370
|
+
* @param {GltfLoader} loader
|
|
2371
|
+
* @param {*} meshVectorExtension
|
|
2372
|
+
* @returns {ModelComponents.Vector}
|
|
2373
|
+
* @ignore
|
|
2374
|
+
*/
|
|
2375
|
+
function loadMeshVectorExtension(loader, meshVectorExtension) {
|
|
2376
|
+
if (!defined(meshVectorExtension)) {
|
|
2377
|
+
return undefined;
|
|
2378
|
+
}
|
|
2379
|
+
|
|
2380
|
+
const result = new Vector();
|
|
2381
|
+
result.vector = meshVectorExtension.vector;
|
|
2382
|
+
result.count = meshVectorExtension.count;
|
|
2383
|
+
|
|
2384
|
+
const accessors = loader.gltfJson.accessors;
|
|
2385
|
+
function loadVectorAccessor(accessorId, name) {
|
|
2386
|
+
if (!defined(accessorId)) {
|
|
2387
|
+
return undefined;
|
|
2388
|
+
}
|
|
2389
|
+
return loadAccessor(loader, accessors[accessorId]);
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2392
|
+
result.polygonAttributeOffsets = loadVectorAccessor(
|
|
2393
|
+
meshVectorExtension.polygonAttributeOffsets,
|
|
2394
|
+
"polygonAttributeOffsets",
|
|
2395
|
+
);
|
|
2396
|
+
result.polygonHoleCounts = loadVectorAccessor(
|
|
2397
|
+
meshVectorExtension.polygonHoleCounts,
|
|
2398
|
+
"polygonHoleCounts",
|
|
2399
|
+
);
|
|
2400
|
+
result.polygonHoleOffsets = loadVectorAccessor(
|
|
2401
|
+
meshVectorExtension.polygonHoleOffsets,
|
|
2402
|
+
"polygonHoleOffsets",
|
|
2403
|
+
);
|
|
2404
|
+
result.polygonIndicesOffsets = loadVectorAccessor(
|
|
2405
|
+
meshVectorExtension.polygonIndicesOffsets,
|
|
2406
|
+
"polygonIndicesOffsets",
|
|
2407
|
+
);
|
|
2408
|
+
|
|
2409
|
+
return result;
|
|
2410
|
+
}
|
|
2411
|
+
|
|
2241
2412
|
// For EXT_mesh_features
|
|
2242
2413
|
function loadPrimitiveFeatures(
|
|
2243
2414
|
loader,
|
|
@@ -2512,6 +2683,7 @@ function loadNode(loader, gltfNode, frameState) {
|
|
|
2512
2683
|
const nodeExtensions = gltfNode.extensions ?? Frozen.EMPTY_OBJECT;
|
|
2513
2684
|
const instancingExtension = nodeExtensions.EXT_mesh_gpu_instancing;
|
|
2514
2685
|
const articulationsExtension = nodeExtensions.AGI_articulations;
|
|
2686
|
+
const meshVectorExtension = nodeExtensions.CESIUM_mesh_vector;
|
|
2515
2687
|
|
|
2516
2688
|
if (defined(instancingExtension)) {
|
|
2517
2689
|
if (loader._loadForClassification) {
|
|
@@ -2526,6 +2698,10 @@ function loadNode(loader, gltfNode, frameState) {
|
|
|
2526
2698
|
node.articulationName = articulationsExtension.articulationName;
|
|
2527
2699
|
}
|
|
2528
2700
|
|
|
2701
|
+
if (defined(meshVectorExtension)) {
|
|
2702
|
+
node.meshVector = meshVectorExtension;
|
|
2703
|
+
}
|
|
2704
|
+
|
|
2529
2705
|
const meshId = gltfNode.mesh;
|
|
2530
2706
|
if (defined(meshId)) {
|
|
2531
2707
|
const mesh = loader.gltfJson.meshes[meshId];
|
|
@@ -178,6 +178,20 @@ GltfLoaderUtil.createModelTextureReader = function (options) {
|
|
|
178
178
|
modelTextureReader.transform = transform;
|
|
179
179
|
modelTextureReader.channels = channels;
|
|
180
180
|
|
|
181
|
+
// EXT_textureInfo_constant_lod extension
|
|
182
|
+
const constantLodExtension =
|
|
183
|
+
textureInfo.extensions?.EXT_textureInfo_constant_lod;
|
|
184
|
+
if (defined(constantLodExtension)) {
|
|
185
|
+
modelTextureReader.constantLod = {
|
|
186
|
+
repetitions: constantLodExtension.repetitions ?? 1.0,
|
|
187
|
+
offset: defined(constantLodExtension.offset)
|
|
188
|
+
? Cartesian2.unpack(constantLodExtension.offset)
|
|
189
|
+
: Cartesian2.ZERO,
|
|
190
|
+
minClampDistance: constantLodExtension.minClampDistance ?? 1.0,
|
|
191
|
+
maxClampDistance: constantLodExtension.maxClampDistance ?? 4294967296.0,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
181
195
|
return modelTextureReader;
|
|
182
196
|
};
|
|
183
197
|
|
|
@@ -1,10 +1,88 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
2
|
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
4
5
|
import ResourceLoader from "./ResourceLoader.js";
|
|
5
6
|
import ResourceLoaderState from "./ResourceLoaderState.js";
|
|
6
7
|
import { loadSpz } from "@spz-loader/core";
|
|
7
8
|
|
|
9
|
+
// Cumulative number of SH coefficient floats per splat per channel for each
|
|
10
|
+
// degree. Degree 0 has no extra SH data (base color is stored separately in
|
|
11
|
+
// the "colors" attribute). Degrees 1-3 follow the standard SH basis count:
|
|
12
|
+
// l=1 adds 3 bands × 3 channels = 9; l=2 adds 5 × 3 = 15 (total 24);
|
|
13
|
+
// l=3 adds 7 × 3 = 21 (total 45).
|
|
14
|
+
const SH_FLOATS_PER_SPLAT_BY_DEGREE = [0, 9, 24, 45];
|
|
15
|
+
|
|
16
|
+
// Non-SH attribute floats per splat: position(3) + scale(3) + rotation(4)
|
|
17
|
+
// + opacity(1) + color(3) = 14.
|
|
18
|
+
const BASE_FLOATS_PER_SPLAT = 14;
|
|
19
|
+
|
|
20
|
+
// The spz-loader WASM module is compiled with a signed 32-bit address space,
|
|
21
|
+
// giving a hard ceiling of 2 GB. An additional factor of ~2× is required
|
|
22
|
+
// because spz-loader copies every decoded C++ vector into a JavaScript
|
|
23
|
+
// TypedArray. 1.6 GB is used as a conservative pre-flight threshold.
|
|
24
|
+
const WASM_MEMORY_LIMIT_BYTES = 1.6 * 1024 * 1024 * 1024;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Derives the point count and maximum spherical harmonics degree for an SPZ
|
|
28
|
+
* primitive from the glTF JSON, without touching the compressed binary data.
|
|
29
|
+
* <p>
|
|
30
|
+
* The SPZ payload is gzip-compressed and therefore cannot be inspected
|
|
31
|
+
* directly. Instead, <code>numPoints</code> is read from the POSITION
|
|
32
|
+
* accessor's <code>count</code> field and <code>shDegree</code> is inferred
|
|
33
|
+
* from the highest-numbered <code>SH_DEGREE_n</code> attribute present in
|
|
34
|
+
* the primitive. Returns <code>undefined</code> if the required information
|
|
35
|
+
* is unavailable.
|
|
36
|
+
* </p>
|
|
37
|
+
* @param {object} gltf The glTF JSON object.
|
|
38
|
+
* @param {object} primitive The glTF primitive object.
|
|
39
|
+
* @returns {{ numPoints: number, shDegree: number }|undefined}
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
function getSpzInfoFromGltf(gltf, primitive) {
|
|
43
|
+
const attributes = primitive?.attributes;
|
|
44
|
+
if (!defined(attributes)) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const positionAccessorId = attributes["POSITION"];
|
|
49
|
+
if (!defined(positionAccessorId)) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const accessor = gltf?.accessors?.[positionAccessorId];
|
|
53
|
+
if (!defined(accessor) || accessor.count <= 0) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
let shDegree = 0;
|
|
58
|
+
for (const semantic in attributes) {
|
|
59
|
+
if (Object.prototype.hasOwnProperty.call(attributes, semantic)) {
|
|
60
|
+
const match = /SH_DEGREE_(\d+)_COEF_/.exec(semantic);
|
|
61
|
+
if (match) {
|
|
62
|
+
shDegree = Math.max(shDegree, parseInt(match[1], 10));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return { numPoints: accessor.count, shDegree };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Estimates the peak memory consumption (in bytes) of decoding an SPZ file
|
|
72
|
+
* with the given parameters. The estimate accounts for both the WASM heap
|
|
73
|
+
* allocations and the JavaScript TypedArray copies produced by spz-loader.
|
|
74
|
+
* @param {number} numPoints Number of Gaussian splats.
|
|
75
|
+
* @param {number} shDegree Spherical harmonics degree (0–3).
|
|
76
|
+
* @returns {number} Estimated byte count.
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
function estimateSpzMemoryBytes(numPoints, shDegree) {
|
|
80
|
+
const floatsPerPoint =
|
|
81
|
+
BASE_FLOATS_PER_SPLAT + (SH_FLOATS_PER_SPLAT_BY_DEGREE[shDegree] ?? 0);
|
|
82
|
+
// ×2 accounts for WASM heap + JS TypedArray mirror.
|
|
83
|
+
return numPoints * floatsPerPoint * Float32Array.BYTES_PER_ELEMENT * 2;
|
|
84
|
+
}
|
|
85
|
+
|
|
8
86
|
/**
|
|
9
87
|
* Load a SPZ buffer from a glTF.
|
|
10
88
|
* <p>
|
|
@@ -63,7 +141,6 @@ class GltfSpzLoader extends ResourceLoader {
|
|
|
63
141
|
|
|
64
142
|
/**
|
|
65
143
|
* The cache key of the resource.
|
|
66
|
-
* @memberof GltfSpzLoader.prototype
|
|
67
144
|
* @type {string}
|
|
68
145
|
* @readonly
|
|
69
146
|
* @private
|
|
@@ -74,7 +151,6 @@ class GltfSpzLoader extends ResourceLoader {
|
|
|
74
151
|
|
|
75
152
|
/**
|
|
76
153
|
* The decoded SPZ data.
|
|
77
|
-
* @memberof GltfSpzLoader.prototype
|
|
78
154
|
* @type {object}
|
|
79
155
|
* @readonly
|
|
80
156
|
* @private
|
|
@@ -128,6 +204,36 @@ class GltfSpzLoader extends ResourceLoader {
|
|
|
128
204
|
return false;
|
|
129
205
|
}
|
|
130
206
|
|
|
207
|
+
// Reject oversized SPZ payloads before invoking the WASM decoder.
|
|
208
|
+
// The spz-loader WASM module has a hard 2 GB memory ceiling; exceeding
|
|
209
|
+
// it causes an unrecoverable Aborted() call with no useful diagnostic.
|
|
210
|
+
// See: https://github.com/CesiumGS/cesium/issues/13283
|
|
211
|
+
//
|
|
212
|
+
// The SPZ binary is gzip-compressed, so its header cannot be read
|
|
213
|
+
// directly. Point count and SH degree are therefore derived from the
|
|
214
|
+
// glTF JSON, which is available at this stage.
|
|
215
|
+
const spzInfo = getSpzInfoFromGltf(this._gltf, this._primitive);
|
|
216
|
+
if (defined(spzInfo)) {
|
|
217
|
+
const estimatedBytes = estimateSpzMemoryBytes(
|
|
218
|
+
spzInfo.numPoints,
|
|
219
|
+
spzInfo.shDegree,
|
|
220
|
+
);
|
|
221
|
+
if (estimatedBytes > WASM_MEMORY_LIMIT_BYTES) {
|
|
222
|
+
const estimatedMB = Math.round(estimatedBytes / (1024 * 1024));
|
|
223
|
+
handleError(
|
|
224
|
+
this,
|
|
225
|
+
new RuntimeError(
|
|
226
|
+
`SPZ data too large to decode: ${spzInfo.numPoints.toLocaleString()} splats ` +
|
|
227
|
+
`with spherical harmonics degree ${spzInfo.shDegree} would require ` +
|
|
228
|
+
`approximately ${estimatedMB} MB, which exceeds the WASM memory limit. ` +
|
|
229
|
+
`Consider using a lower spherical harmonics degree or splitting the ` +
|
|
230
|
+
`dataset into smaller tiles.`,
|
|
231
|
+
),
|
|
232
|
+
);
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
131
237
|
const decodePromise = loadSpz(this._bufferViewTypedArray, {
|
|
132
238
|
unpackOptions: { coordinateSystem: "UNSPECIFIED" },
|
|
133
239
|
});
|
|
@@ -214,4 +320,5 @@ async function processDecode(loader, decodePromise) {
|
|
|
214
320
|
}
|
|
215
321
|
}
|
|
216
322
|
|
|
323
|
+
export { estimateSpzMemoryBytes, getSpzInfoFromGltf };
|
|
217
324
|
export default GltfSpzLoader;
|
|
@@ -82,7 +82,6 @@ class GltfStructuralMetadataLoader extends ResourceLoader {
|
|
|
82
82
|
/**
|
|
83
83
|
* The cache key of the resource.
|
|
84
84
|
*
|
|
85
|
-
* @memberof GltfStructuralMetadataLoader.prototype
|
|
86
85
|
*
|
|
87
86
|
* @type {string}
|
|
88
87
|
* @readonly
|
|
@@ -95,7 +94,6 @@ class GltfStructuralMetadataLoader extends ResourceLoader {
|
|
|
95
94
|
/**
|
|
96
95
|
* The parsed structural metadata
|
|
97
96
|
*
|
|
98
|
-
* @memberof GltfStructuralMetadataLoader.prototype
|
|
99
97
|
*
|
|
100
98
|
* @type {StructuralMetadata}
|
|
101
99
|
* @readonly
|
|
@@ -83,7 +83,6 @@ class GltfTextureLoader extends ResourceLoader {
|
|
|
83
83
|
/**
|
|
84
84
|
* The cache key of the resource.
|
|
85
85
|
*
|
|
86
|
-
* @memberof GltfTextureLoader.prototype
|
|
87
86
|
*
|
|
88
87
|
* @type {string}
|
|
89
88
|
* @readonly
|
|
@@ -96,7 +95,6 @@ class GltfTextureLoader extends ResourceLoader {
|
|
|
96
95
|
/**
|
|
97
96
|
* The texture.
|
|
98
97
|
*
|
|
99
|
-
* @memberof GltfTextureLoader.prototype
|
|
100
98
|
*
|
|
101
99
|
* @type {Texture}
|
|
102
100
|
* @readonly
|