@hztxi/cesium-engine 25.0.7 → 26.2.2
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-2FNKHQL3.js +754 -0
- package/Build/Workers/chunk-2NCNUVAT.js +56 -0
- package/Build/Workers/chunk-2ZYRUVVU.js +301 -0
- package/Build/Workers/chunk-36IU7N4V.js +1284 -0
- package/Build/Workers/chunk-3BDLET5S.js +198 -0
- package/Build/Workers/chunk-3JZXI44G.js +3822 -0
- package/Build/Workers/chunk-3N2UNLWJ.js +101 -0
- package/Build/Workers/chunk-3NCG2YYR.js +58 -0
- package/Build/Workers/chunk-3PRHI4KX.js +241 -0
- package/Build/Workers/chunk-3R6E2SH4.js +672 -0
- package/Build/Workers/chunk-3ZKKXEXL.js +415 -0
- package/Build/Workers/chunk-47KVKPTO.js +415 -0
- package/Build/Workers/chunk-4FFIJ7ZV.js +56 -0
- package/Build/Workers/chunk-4N227IPR.js +973 -0
- package/Build/Workers/chunk-4P6OAPBM.js +97 -0
- package/Build/Workers/chunk-4XR3K4GD.js +280 -0
- package/Build/Workers/chunk-4Z2JINRS.js +519 -0
- package/Build/Workers/chunk-4ZOLEPZK.js +519 -0
- package/Build/Workers/chunk-5EF3WWQG.js +352 -0
- package/Build/Workers/chunk-5I76476T.js +288 -0
- package/Build/Workers/chunk-5PBZKBAP.js +511 -0
- package/Build/Workers/chunk-5RVAAW26.js +82 -0
- package/Build/Workers/chunk-5VWK76PO.js +511 -0
- package/Build/Workers/chunk-6SEICASZ.js +241 -0
- package/Build/Workers/chunk-77DBX23X.js +455 -0
- package/Build/Workers/chunk-7C2D3DTI.js +959 -0
- package/Build/Workers/chunk-7GQOWCSN.js +959 -0
- package/Build/Workers/chunk-7J2ONMKC.js +198 -0
- package/Build/Workers/chunk-7MHUHXZZ.js +219 -0
- package/Build/Workers/chunk-7MQPHOAS.js +455 -0
- package/Build/Workers/chunk-7NJ5O7TP.js +387 -0
- package/Build/Workers/chunk-7T4MW2W4.js +368 -0
- package/Build/Workers/chunk-7UXZUGUZ.js +82 -0
- package/Build/Workers/chunk-7Y642MCO.js +352 -0
- package/Build/Workers/chunk-7ZFKBLUE.js +1054 -0
- package/Build/Workers/chunk-A2UHPWPL.js +38 -0
- package/Build/Workers/chunk-A7LGY5XS.js +140 -0
- package/Build/Workers/chunk-AN2NVYL6.js +1483 -0
- package/Build/Workers/chunk-AS2QC7H2.js +219 -0
- package/Build/Workers/chunk-AVOLMIGJ.js +57 -0
- package/Build/Workers/chunk-B7PT2VL5.js +630 -0
- package/Build/Workers/chunk-BHRHMUDM.js +147 -0
- package/Build/Workers/chunk-BUWAHRK5.js +672 -0
- package/Build/Workers/chunk-C5ET5HON.js +198 -0
- package/Build/Workers/chunk-C6XQGBPV.js +476 -0
- package/Build/Workers/chunk-C7B672RR.js +73 -0
- package/Build/Workers/chunk-CAEC5DA2.js +57 -0
- package/Build/Workers/chunk-CBCOHH5O.js +837 -0
- package/Build/Workers/chunk-CEMXKBQO.js +1800 -0
- package/Build/Workers/chunk-CKW3STKA.js +1067 -0
- package/Build/Workers/chunk-CV5RICKT.js +1992 -0
- package/Build/Workers/chunk-DBWSISJT.js +56 -0
- package/Build/Workers/chunk-DCMOBPLG.js +352 -0
- package/Build/Workers/chunk-DSBSPPPJ.js +1344 -0
- package/Build/Workers/chunk-DSGLDRTI.js +278 -0
- package/Build/Workers/chunk-DXD7OPSP.js +1992 -0
- package/Build/Workers/chunk-DXECZBSA.js +368 -0
- package/Build/Workers/chunk-DZIRO6ZK.js +682 -0
- package/Build/Workers/chunk-E4CRPGX5.js +140 -0
- package/Build/Workers/chunk-E4IVMEBH.js +52 -0
- package/Build/Workers/chunk-E6IPM6HP.js +56 -0
- package/Build/Workers/chunk-EB2HAHRY.js +1054 -0
- package/Build/Workers/chunk-ECDCQXCO.js +1992 -0
- package/Build/Workers/chunk-ECN3VUMA.js +73 -0
- package/Build/Workers/chunk-ECSKVHUB.js +476 -0
- package/Build/Workers/chunk-EIENGLA5.js +278 -0
- package/Build/Workers/chunk-EK5CWDW2.js +476 -0
- package/Build/Workers/chunk-EL4B5CSQ.js +162 -0
- package/Build/Workers/chunk-EUCUBIEZ.js +97 -0
- package/Build/Workers/chunk-FAYBQGKO.js +219 -0
- package/Build/Workers/chunk-FGCXPEZM.js +3201 -0
- package/Build/Workers/chunk-FHCRXPA6.js +44 -0
- package/Build/Workers/chunk-FM6EQUFX.js +1800 -0
- package/Build/Workers/chunk-FPFGGQ4X.js +301 -0
- package/Build/Workers/chunk-FQ42MT7M.js +58 -0
- package/Build/Workers/chunk-FQDYQG4P.js +1284 -0
- package/Build/Workers/chunk-FQTV6W3I.js +973 -0
- package/Build/Workers/chunk-FTCBY5HH.js +138 -0
- package/Build/Workers/chunk-GI5RWJAY.js +101 -0
- package/Build/Workers/chunk-GNLMSDRO.js +945 -0
- package/Build/Workers/chunk-GTA727KQ.js +140 -0
- package/Build/Workers/chunk-GVUJ6O3R.js +73 -0
- package/Build/Workers/chunk-GXTM7AG3.js +1483 -0
- package/Build/Workers/chunk-HAXQB2FS.js +2719 -0
- package/Build/Workers/chunk-HCGU7OCG.js +97 -0
- package/Build/Workers/chunk-HRIPVWSC.js +58 -0
- package/Build/Workers/chunk-IC3BR6SC.js +102 -0
- package/Build/Workers/chunk-IEPPOHF3.js +44 -0
- package/Build/Workers/chunk-IU3YAYPT.js +1344 -0
- package/Build/Workers/chunk-J3AXZ4WC.js +124 -0
- package/Build/Workers/chunk-J7MZR7B2.js +1483 -0
- package/Build/Workers/chunk-KBNW776Q.js +305 -0
- package/Build/Workers/chunk-KBSWXVSY.js +837 -0
- package/Build/Workers/chunk-KEYTLNVK.js +1067 -0
- package/Build/Workers/chunk-KN3RQWUA.js +3201 -0
- package/Build/Workers/chunk-KSIEJYNL.js +3822 -0
- package/Build/Workers/chunk-KT3GG7AW.js +754 -0
- package/Build/Workers/chunk-KYCEM22I.js +1800 -0
- package/Build/Workers/chunk-L2TFZKN6.js +455 -0
- package/Build/Workers/chunk-LHKE2VUR.js +945 -0
- package/Build/Workers/chunk-LJTQW46H.js +57 -0
- package/Build/Workers/chunk-LMQGYJME.js +672 -0
- package/Build/Workers/chunk-LOBYJQA4.js +76 -0
- package/Build/Workers/chunk-LOF32O7F.js +163 -0
- package/Build/Workers/chunk-LOTIJA7D.js +124 -0
- package/Build/Workers/chunk-M7Z3MPAX.js +973 -0
- package/Build/Workers/chunk-MHNLTQHO.js +3201 -0
- package/Build/Workers/chunk-MICPAD7R.js +398 -0
- package/Build/Workers/chunk-ML7OMD72.js +2342 -0
- package/Build/Workers/chunk-MPJ73WMH.js +138 -0
- package/Build/Workers/chunk-MUTHG7T7.js +171 -0
- package/Build/Workers/chunk-NBTGXEMT.js +945 -0
- package/Build/Workers/chunk-NQZC37F7.js +38 -0
- package/Build/Workers/chunk-O3X3D2Z3.js +352 -0
- package/Build/Workers/chunk-OBUIHPKF.js +352 -0
- package/Build/Workers/chunk-PAEWNYIV.js +138 -0
- package/Build/Workers/chunk-PANJ7YH6.js +102 -0
- package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
- package/Build/Workers/chunk-PHUELDXQ.js +76 -0
- package/Build/Workers/chunk-PIIUGRQD.js +387 -0
- package/Build/Workers/chunk-POKD22OT.js +2719 -0
- package/Build/Workers/chunk-PQMA7MFS.js +9237 -0
- package/Build/Workers/chunk-PQZW2QZG.js +163 -0
- package/Build/Workers/chunk-PURIPUSY.js +682 -0
- package/Build/Workers/chunk-QQZPPXY4.js +3822 -0
- package/Build/Workers/chunk-QXLQLGL2.js +1067 -0
- package/Build/Workers/chunk-R2JQAAU7.js +630 -0
- package/Build/Workers/chunk-RC4YC3VU.js +278 -0
- package/Build/Workers/chunk-RGNNWVR6.js +171 -0
- package/Build/Workers/chunk-RUOETBWP.js +288 -0
- package/Build/Workers/chunk-RV4EPLBO.js +2342 -0
- package/Build/Workers/chunk-SBBIEHYT.js +44 -0
- package/Build/Workers/chunk-SBEQLEO5.js +352 -0
- package/Build/Workers/chunk-SGC2GT3Y.js +1284 -0
- package/Build/Workers/chunk-SKLK4CBL.js +162 -0
- package/Build/Workers/chunk-SWVZTU6X.js +305 -0
- package/Build/Workers/chunk-T3EUPM5A.js +454 -0
- package/Build/Workers/chunk-TA6IU2XL.js +171 -0
- package/Build/Workers/chunk-TLSGD5TR.js +280 -0
- package/Build/Workers/chunk-TNDQT5AB.js +682 -0
- package/Build/Workers/chunk-TOXDLWKZ.js +368 -0
- package/Build/Workers/chunk-TZBM6TAB.js +124 -0
- package/Build/Workers/chunk-U2OY6MX6.js +398 -0
- package/Build/Workers/chunk-UCY4B5EV.js +288 -0
- package/Build/Workers/chunk-V52FEPCV.js +754 -0
- package/Build/Workers/chunk-VBEXZBG5.js +147 -0
- package/Build/Workers/chunk-VC76B6GM.js +959 -0
- package/Build/Workers/chunk-VCUOYHWC.js +519 -0
- package/Build/Workers/chunk-VDBQVKTF.js +387 -0
- package/Build/Workers/chunk-VJIL5H6K.js +2719 -0
- package/Build/Workers/chunk-VJLDRHKN.js +511 -0
- package/Build/Workers/chunk-VMF7KOGY.js +162 -0
- package/Build/Workers/chunk-W3X2ZAEJ.js +52 -0
- package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
- package/Build/Workers/chunk-X4VZ33YL.js +454 -0
- package/Build/Workers/chunk-XDM5A6C4.js +102 -0
- package/Build/Workers/chunk-XHT5SVP4.js +52 -0
- package/Build/Workers/chunk-XITBARMZ.js +2342 -0
- package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
- package/Build/Workers/chunk-XZ6HDXKM.js +76 -0
- package/Build/Workers/chunk-Y6AQK4FY.js +1344 -0
- package/Build/Workers/chunk-Y7NDFEQ3.js +398 -0
- package/Build/Workers/chunk-YBBQDYX2.js +301 -0
- package/Build/Workers/chunk-YHPYPVAB.js +837 -0
- package/Build/Workers/chunk-YJBPRW4A.js +415 -0
- package/Build/Workers/chunk-YNKK6BXY.js +454 -0
- package/Build/Workers/chunk-YRAJ74HR.js +305 -0
- package/Build/Workers/chunk-YULTZK5O.js +147 -0
- package/Build/Workers/chunk-YUNQYP3Z.js +9237 -0
- package/Build/Workers/chunk-YX2FOQMF.js +9237 -0
- package/Build/Workers/chunk-Z7BONRW2.js +241 -0
- package/Build/Workers/chunk-ZK2R3DEJ.js +1054 -0
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +18 -18
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +39 -39
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -33
- package/Build/Workers/createCorridorGeometry.js +36 -37
- package/Build/Workers/createCorridorOutlineGeometry.js +34 -35
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +20 -20
- 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 +20 -20
- package/Build/Workers/createGeometry.js +25 -24
- package/Build/Workers/createGroundPolylineGeometry.js +26 -26
- package/Build/Workers/createMvtTile.js +111 -19
- package/Build/Workers/createPlaneGeometry.js +18 -18
- package/Build/Workers/createPlaneOutlineGeometry.js +17 -17
- package/Build/Workers/createPolygonGeometry.js +36 -36
- package/Build/Workers/createPolygonOutlineGeometry.js +33 -33
- package/Build/Workers/createPolylineGeometry.js +28 -28
- package/Build/Workers/createPolylineVolumeGeometry.js +38 -36
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -31
- package/Build/Workers/createRectangleGeometry.js +29 -29
- package/Build/Workers/createRectangleOutlineGeometry.js +23 -23
- package/Build/Workers/createSimplePolylineGeometry.js +26 -26
- 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 +26 -26
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +23 -23
- package/Build/Workers/createVerticesFromHeightmap.js +23 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +21 -21
- package/Build/Workers/createWallGeometry.js +26 -26
- package/Build/Workers/createWallOutlineGeometry.js +26 -26
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +993 -2334
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +23 -23
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -26
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
- package/Source/Core/BoundingRectangle.js +6 -8
- package/Source/Core/BoundingSphere.js +0 -3
- package/Source/Core/Cartesian2.js +1 -1
- package/Source/Core/Cartesian3.js +1 -1
- package/Source/Core/Cartesian4.js +1 -1
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
- package/Source/Core/Color.js +1 -0
- package/Source/Core/ComponentDatatype.js +35 -0
- package/Source/Core/CoplanarPolygonGeometry.js +2 -2
- package/Source/Core/CorridorGeometry.js +2 -4
- package/Source/Core/CorridorOutlineGeometry.js +1 -3
- package/Source/Core/EarthOrientationParameters.js +2 -2
- package/Source/Core/EllipseGeometryLibrary.js +2 -2
- package/Source/Core/EllipsoidGeodesic.js +3 -3
- package/Source/Core/EllipsoidRhumbLine.js +1 -1
- package/Source/Core/Heap.js +1 -1
- package/Source/Core/HermitePolynomialApproximation.js +215 -179
- package/Source/Core/InterpolationAlgorithm.js +58 -50
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/JulianDate.js +1 -1
- package/Source/Core/LagrangePolynomialApproximation.js +55 -52
- package/Source/Core/LinearApproximation.js +69 -66
- package/Source/Core/MapProjection.js +1 -0
- package/Source/Core/Math.js +59 -0
- package/Source/Core/Matrix2.js +3 -3
- package/Source/Core/Matrix3.js +3 -3
- package/Source/Core/Matrix4.js +1 -1
- package/Source/Core/OrthographicFrustum.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +1 -1
- package/Source/Core/PolygonGeometry.js +2 -2
- package/Source/Core/PolygonGeometryLibrary.js +1 -1
- package/Source/Core/PolygonOutlineGeometry.js +1 -1
- package/Source/Core/PolylineGeometry.js +1 -1
- package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
- package/Source/Core/Rectangle.js +7 -1
- package/Source/Core/RectangleOutlineGeometry.js +1 -1
- package/Source/Core/Resource.js +1 -1
- package/Source/Core/ScreenSpaceEventHandler.js +51 -41
- package/Source/Core/SimplePolylineGeometry.js +1 -1
- package/Source/Core/TerrainEncoding.js +2 -2
- package/Source/Core/TerrainMesh.js +3 -3
- package/Source/Core/TerrainPicker.js +180 -168
- package/Source/Core/TimeIntervalCollection.js +1 -3
- package/Source/Core/Tipsify.js +1 -1
- package/Source/Core/Transforms.js +5 -1
- package/Source/Core/VectorPipeline.js +1117 -0
- package/Source/Core/VectorProvider.js +429 -0
- package/Source/Core/WallOutlineGeometry.js +1 -1
- package/Source/Core/createColorRamp.js +37 -0
- package/Source/Core/getTimestamp.js +4 -2
- package/Source/Core/globalTypes.js +25 -0
- package/Source/Core/writeTextToCanvas.js +1 -0
- package/Source/DataSources/CompositeEntityCollection.js +0 -1
- package/Source/DataSources/CzmlDataSource.js +14 -0
- package/Source/DataSources/DataSourceDisplay.js +1 -1
- package/Source/DataSources/GeoJsonDataSource.js +0 -1
- package/Source/DataSources/GeometryVisualizer.js +1 -1
- package/Source/DataSources/KmlDataSource.js +529 -557
- package/Source/DataSources/PathGraphics.js +8 -1
- package/Source/DataSources/PathMode.js +27 -0
- package/Source/DataSources/PathVisualizer.js +298 -1
- package/Source/DataSources/PolylineVisualizer.js +1 -1
- package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
- package/Source/Renderer/AutomaticUniforms.js +23 -0
- package/Source/Renderer/Context.js +9 -3
- package/Source/Renderer/DrawCommand.js +22 -0
- package/Source/Renderer/Framebuffer.js +4 -0
- package/Source/Renderer/Pass.js +11 -9
- package/Source/Renderer/Texture.js +12 -1
- package/Source/Renderer/UniformState.js +7 -0
- package/Source/Renderer/VertexArray.js +1 -1
- package/Source/Renderer/createUniform.js +346 -239
- package/Source/Renderer/createUniformArray.js +494 -381
- package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Billboard.js +2 -1
- package/Source/Scene/BillboardCollection.js +15 -5
- package/Source/Scene/BillboardTexture.js +5 -3
- package/Source/Scene/BufferPointCollection.js +11 -1
- package/Source/Scene/BufferPolygonCollection.js +26 -0
- package/Source/Scene/BufferPolylineCollection.js +2 -0
- package/Source/Scene/BufferPrimitiveCollection.js +105 -32
- package/Source/Scene/Camera.js +85 -9
- package/Source/Scene/CameraEventAggregator.js +30 -18
- package/Source/Scene/CameraFlightPath.js +7 -4
- package/Source/Scene/Cesium3DTile.js +102 -4
- package/Source/Scene/Cesium3DTileContent.js +195 -254
- package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
- package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
- package/Source/Scene/Cesium3DTileStyle.js +40 -0
- package/Source/Scene/Cesium3DTileset.js +213 -8
- package/Source/Scene/Cesium3DTilesetTraversal.js +14 -0
- package/Source/Scene/ClippingPlaneCollection.js +4 -4
- package/Source/Scene/ClippingPolygon.js +2 -0
- package/Source/Scene/ClippingPolygonCollection.js +2 -2
- package/Source/Scene/Composite3DTileContent.js +254 -292
- package/Source/Scene/Controllers/Controller.js +63 -0
- package/Source/Scene/Controllers/ControllerHost.js +78 -0
- package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
- package/Source/Scene/Controllers/MouseButton.js +32 -0
- package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
- package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
- package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
- package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
- package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
- package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
- package/Source/Scene/DerivedCommand.js +98 -0
- package/Source/Scene/EdgeDisplayMode.js +50 -0
- package/Source/Scene/EdgeFramebuffer.js +1 -5
- package/Source/Scene/Empty3DTileContent.js +100 -132
- package/Source/Scene/Expression.js +6 -8
- package/Source/Scene/FrameState.js +17 -0
- package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
- package/Source/Scene/GeoJsonPrimitive.js +874 -0
- package/Source/Scene/Geometry3DTileContent.js +151 -185
- package/Source/Scene/Globe.js +22 -1
- package/Source/Scene/GlobeDepth.js +27 -1
- package/Source/Scene/GlobeSurfaceShaderSet.js +637 -540
- package/Source/Scene/GlobeSurfaceTile.js +575 -398
- package/Source/Scene/GlobeSurfaceTileProvider.js +1412 -1184
- package/Source/Scene/GltfBufferViewLoader.js +3 -3
- package/Source/Scene/GltfLoader.js +146 -3
- package/Source/Scene/GltfLoaderUtil.js +20 -4
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
- package/Source/Scene/GltfSpzLoader.js +1 -1
- package/Source/Scene/GltfVertexBufferLoader.js +6 -3
- package/Source/Scene/I3SDataProvider.js +1 -1
- package/Source/Scene/I3SLayer.js +1 -1
- package/Source/Scene/I3SNode.js +2 -2
- package/Source/Scene/ImageryLayer.js +2 -2
- package/Source/Scene/ImageryLayerCollection.js +190 -6
- package/Source/Scene/Implicit3DTileContent.js +192 -216
- package/Source/Scene/ImplicitTileCoordinates.js +17 -0
- package/Source/Scene/IonImageryProvider.js +1 -5
- package/Source/Scene/Label.js +4 -4
- package/Source/Scene/LabelCollection.js +4 -1
- package/Source/Scene/MVTDataProvider.js +555 -0
- package/Source/Scene/Material.js +1 -0
- package/Source/Scene/Model/B3dmLoader.js +1 -2
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +82 -312
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
- package/Source/Scene/Model/I3dmLoader.js +1 -1
- package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
- package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
- package/Source/Scene/Model/Model.js +45 -10
- package/Source/Scene/Model/Model3DTileContent.js +424 -458
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
- package/Source/Scene/Model/ModelDrawCommand.js +180 -8
- package/Source/Scene/Model/ModelDrawCommands.js +4 -0
- package/Source/Scene/Model/ModelSceneGraph.js +21 -0
- package/Source/Scene/Model/ModelUtility.js +5 -0
- package/Source/Scene/Model/PickingPipelineStage.js +29 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +645 -153
- package/Source/Scene/ModelComponents.js +112 -0
- package/Source/Scene/Multiple3DTileContent.js +291 -334
- package/Source/Scene/MvtLabelCandidates.js +295 -0
- package/Source/Scene/MvtLabelManager.js +1069 -0
- package/Source/Scene/Picking.js +19 -3
- package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
- package/Source/Scene/PntsParser.js +1 -1
- package/Source/Scene/PolylineCollection.js +5 -3
- package/Source/Scene/PostProcessStage.js +4 -2
- package/Source/Scene/QuadtreePrimitive.js +3 -2
- package/Source/Scene/ResourceCache.js +7 -4
- package/Source/Scene/ResourceCacheKey.js +21 -18
- package/Source/Scene/Scene.js +237 -11
- package/Source/Scene/SceneTransforms.js +6 -5
- package/Source/Scene/ShadowMap.js +9 -3
- package/Source/Scene/ShadowMapShader.js +50 -2
- package/Source/Scene/SnapFramebuffer.js +121 -0
- package/Source/Scene/Snapping.js +184 -0
- package/Source/Scene/TerrainFillMesh.js +3 -2
- package/Source/Scene/Tileset3DTileContent.js +113 -146
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +543 -0
- package/Source/Scene/Vector3DTileContent.js +207 -237
- package/Source/Scene/VectorGltf3DTileContent.js +185 -45
- package/Source/Scene/View.js +10 -8
- package/Source/Scene/VoxelPrimitive.js +159 -175
- package/Source/Scene/VoxelProvider.js +64 -91
- package/Source/Scene/VoxelTraversal.js +1 -1
- package/Source/Scene/buildVectorGltfFromMVT.js +1208 -0
- package/Source/Scene/buildVoxelCustomShader.js +199 -0
- package/Source/Scene/createElevationBandMaterial.js +1 -1
- package/Source/Scene/decodeMVT.js +877 -0
- package/Source/Scene/findMeshoptExtension.js +23 -0
- package/Source/Scene/renderBufferPointCollection.js +114 -64
- package/Source/Scene/renderBufferPolygonCollection.js +245 -53
- package/Source/Scene/renderBufferPolylineCollection.js +271 -145
- package/Source/Shaders/BillboardCollectionVS.glsl +23 -25
- package/Source/Shaders/BillboardCollectionVS.js +23 -25
- package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
- package/Source/Shaders/BufferPointMaterialFS.js +1 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
- package/Source/Shaders/BufferPointMaterialVS.js +20 -10
- package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolygonMaterialFS.js +13 -0
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +22 -4
- package/Source/Shaders/BufferPolygonMaterialVS.js +23 -5
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
- package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
- package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
- package/Source/Shaders/GlobeFS.glsl +10 -6
- package/Source/Shaders/GlobeFS.js +10 -6
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
- package/Source/Shaders/Model/MaterialStageFS.js +8 -2
- package/Source/Shaders/Model/ModelFS.glsl +105 -0
- package/Source/Shaders/Model/ModelFS.js +105 -0
- package/Source/Shaders/VectorCommon.glsl +178 -0
- package/Source/Shaders/VectorCommon.js +180 -0
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +30 -0
- package/Source/Workers/createMvtTile.js +39 -0
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
- package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
- package/index.js +214 -184
- package/package.json +13 -13
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import Axis from "./Axis.js";
|
|
4
|
+
import Empty3DTileContent from "./Empty3DTileContent.js";
|
|
5
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
6
|
+
import TaskProcessor from "../Core/TaskProcessor.js";
|
|
7
|
+
import destroyObject from "../Core/destroyObject.js";
|
|
8
|
+
import UrlTemplate3DTilesDataProvider from "./UrlTemplate3DTilesDataProvider.js";
|
|
9
|
+
import VectorGltf3DTileContent from "./VectorGltf3DTileContent.js";
|
|
10
|
+
import MvtLabelManager from "./MvtLabelManager.js";
|
|
11
|
+
import createMvtLabelCandidates, {
|
|
12
|
+
getMvtLabelCandidatesByteLength,
|
|
13
|
+
} from "./MvtLabelCandidates.js";
|
|
14
|
+
import HeightReference from "./HeightReference.js";
|
|
15
|
+
import oneTimeWarning from "../Core/oneTimeWarning.js";
|
|
16
|
+
import defined from "../Core/defined.js";
|
|
17
|
+
|
|
18
|
+
/** @import Cesium3DTile from "./Cesium3DTile.js"; */
|
|
19
|
+
/** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
|
|
20
|
+
/** @import FrameState from "./FrameState.js"; */
|
|
21
|
+
/** @import Rectangle from "../Core/Rectangle.js"; */
|
|
22
|
+
/** @import Resource from "../Core/Resource.js"; */
|
|
23
|
+
/** @import Scene from "./Scene.js"; */
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @typedef {object} MVTProviderOptions
|
|
27
|
+
* @property {number} [minZoom]
|
|
28
|
+
* @property {number} [maxZoom]
|
|
29
|
+
* @property {Rectangle} [extent]
|
|
30
|
+
* @property {string} [featureIdProperty]
|
|
31
|
+
* @property {Array<*>} [labelStyles]
|
|
32
|
+
* @property {HeightReference} [labelHeightReference]
|
|
33
|
+
* @property {number} [labelTransitionDuration]
|
|
34
|
+
* @property {number} [labelTransitionSteps]
|
|
35
|
+
* @property {number} [maximumRetiringLabels]
|
|
36
|
+
* @property {number} [maximumLabelsPerTile]
|
|
37
|
+
* @property {number} [maximumCachedGlyphs]
|
|
38
|
+
* @property {number} [minimumRebuildInterval]
|
|
39
|
+
* @property {number} [glyphReclaimMargin]
|
|
40
|
+
* @property {number} [maximumVisibleLabels]
|
|
41
|
+
* @property {boolean} [renderGeometry]
|
|
42
|
+
* @property {"mvt"|"geovis"} [format]
|
|
43
|
+
* @property {number} [maximumScreenSpaceError]
|
|
44
|
+
* @property {boolean} [adaptiveScreenSpaceError] Enables a camera-height-based
|
|
45
|
+
* screen-space-error schedule. The caller owns tile-service suitability.
|
|
46
|
+
* @property {object} [uniformLevelMode] Configuration forwarded to the backing
|
|
47
|
+
* Cesium3DTileset for uniform-level traversal.
|
|
48
|
+
* @property {boolean} [inheritGlobeUniformLevelMode=false] Keeps the tileset's
|
|
49
|
+
* uniform-level configuration synchronized with scene.globe.
|
|
50
|
+
* @property {number} [maximumConcurrentRequests]
|
|
51
|
+
* @property {number} [cacheBytes]
|
|
52
|
+
* @property {number} [maximumCacheOverflowBytes]
|
|
53
|
+
* @property {Scene} [scene]
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @typedef {object} MVTWorkerResult
|
|
58
|
+
* @property {ArrayBuffer} [glb]
|
|
59
|
+
* @property {boolean} hasFeatures
|
|
60
|
+
* @property {object} [decodedTile]
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
const createMvtTileTaskProcessor = new TaskProcessor("createMvtTile", 4);
|
|
64
|
+
const labelOnlyCacheBytes = 64 * 1024 * 1024;
|
|
65
|
+
const labelOnlyMaximumCacheOverflowBytes = 16 * 1024 * 1024;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* A Mapbox Vector Tiles (MVT) data provider. Loads .mvt or .pbf tiles, converting tiles
|
|
69
|
+
* dynamically (at runtime) into 3D Tiles.
|
|
70
|
+
*
|
|
71
|
+
* <div class="notice">
|
|
72
|
+
* This object is normally not instantiated directly, use {@link MVTDataProvider.fromUrl}.
|
|
73
|
+
* </div>
|
|
74
|
+
*
|
|
75
|
+
* @extends UrlTemplate3DTilesDataProvider
|
|
76
|
+
* @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
|
|
77
|
+
*/
|
|
78
|
+
class MVTDataProvider extends UrlTemplate3DTilesDataProvider {
|
|
79
|
+
/** @param {Resource|string} urlTemplate @param {MVTProviderOptions} [options] */
|
|
80
|
+
constructor(urlTemplate, options) {
|
|
81
|
+
options = options ?? {};
|
|
82
|
+
super(urlTemplate, options);
|
|
83
|
+
this._labelStyles = options.labelStyles ?? [];
|
|
84
|
+
this._labelsVisible = true;
|
|
85
|
+
this._labelHeightReference =
|
|
86
|
+
options.labelHeightReference ?? HeightReference.CLAMP_TO_GROUND;
|
|
87
|
+
this._labelTransitionDuration = options.labelTransitionDuration ?? 0.2;
|
|
88
|
+
this._labelTransitionSteps = options.labelTransitionSteps ?? 4;
|
|
89
|
+
this._maximumRetiringLabels = options.maximumRetiringLabels ?? 512;
|
|
90
|
+
this._renderGeometry = options.renderGeometry ?? true;
|
|
91
|
+
this._maximumLabelsPerTile = Math.max(
|
|
92
|
+
0,
|
|
93
|
+
Math.floor(options.maximumLabelsPerTile ?? 4096),
|
|
94
|
+
);
|
|
95
|
+
this._maximumCachedGlyphs = Math.max(
|
|
96
|
+
0,
|
|
97
|
+
Math.floor(options.maximumCachedGlyphs ?? 2048),
|
|
98
|
+
);
|
|
99
|
+
this._minimumRebuildInterval = options.minimumRebuildInterval;
|
|
100
|
+
this._glyphReclaimMargin = options.glyphReclaimMargin;
|
|
101
|
+
this._maximumVisibleLabels = options.maximumVisibleLabels;
|
|
102
|
+
this._cacheBytes =
|
|
103
|
+
options.cacheBytes ??
|
|
104
|
+
(this._renderGeometry ? undefined : labelOnlyCacheBytes);
|
|
105
|
+
this._maximumCacheOverflowBytes =
|
|
106
|
+
options.maximumCacheOverflowBytes ??
|
|
107
|
+
(this._renderGeometry ? undefined : labelOnlyMaximumCacheOverflowBytes);
|
|
108
|
+
this._format = options.format ?? "mvt";
|
|
109
|
+
this._maximumScreenSpaceError = options.maximumScreenSpaceError;
|
|
110
|
+
this._uniformLevelMode = options.uniformLevelMode;
|
|
111
|
+
this._inheritGlobeUniformLevelMode =
|
|
112
|
+
options.inheritGlobeUniformLevelMode === true;
|
|
113
|
+
this._usesAdaptiveScreenSpaceError =
|
|
114
|
+
options.adaptiveScreenSpaceError === true &&
|
|
115
|
+
!defined(this._maximumScreenSpaceError);
|
|
116
|
+
this._maximumConcurrentRequests = options.maximumConcurrentRequests ?? 12;
|
|
117
|
+
this._scene = options.scene;
|
|
118
|
+
this._labelManager = undefined;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Creates an MVTDataProvider from the specified URL template and options.
|
|
123
|
+
*
|
|
124
|
+
* @param {Resource|string} url URL template, containing {z}, {x}, and {y} placeholders.
|
|
125
|
+
* @param {object} [options] Provider options.
|
|
126
|
+
* @param {number} [options.minZoom=0] Minimum zoom level represented in the generated tileset.
|
|
127
|
+
* @param {number} [options.maxZoom] Maximum zoom level represented in the generated tileset.
|
|
128
|
+
* @param {Rectangle} [options.extent] Optional geographic extent in radians to constrain the generated tile tree.
|
|
129
|
+
* @param {string} [options.featureIdProperty] MVT property name to use as feature ID.
|
|
130
|
+
* @param {object[]} [options.labelStyles] Declarative MVT text-symbol rules.
|
|
131
|
+
* @param {HeightReference} [options.labelHeightReference=HeightReference.CLAMP_TO_GROUND] Height reference for MVT labels. Ground clamping keeps labels fixed to terrain and 3D Tiles while the camera moves.
|
|
132
|
+
* @param {number} [options.labelTransitionDuration=0.2] Seconds used to cross-fade labels when tile selection changes. Set to 0 to disable transitions.
|
|
133
|
+
* @param {number} [options.labelTransitionSteps=4] Opacity steps in each label transition. A small value keeps rapid zoom and pan updates bounded.
|
|
134
|
+
* @param {number} [options.maximumRetiringLabels=512] Maximum labels retained for fade-out after a tile switch. Excess labels are removed immediately to protect frame time during rapid navigation.
|
|
135
|
+
* @param {number} [options.maximumLabelsPerTile=4096] Maximum label candidates retained from one tile. Higher-priority styles are kept first.
|
|
136
|
+
* @param {number} [options.maximumCachedGlyphs=2048] Maximum distinct glyphs retained by the label atlas before it is rebuilt. Each glyph occupies roughly 68x68 atlas pixels, so 2048 glyphs need a 4096x4096 RGBA texture (about 67 MB). Set to 0 to disable atlas recycling.
|
|
137
|
+
* @param {number} [options.minimumRebuildInterval=10] Minimum seconds between label atlas rebuilds. Rebuilding re-rasterizes every visible glyph, so this bounds how often that cost can be paid.
|
|
138
|
+
* @param {number} [options.glyphReclaimMargin] Minimum number of unreferenced glyphs required before the atlas is rebuilt. Defaults to a quarter of `maximumCachedGlyphs`. A rebuild that would reclaim less than this is skipped, since it would discard and immediately re-rasterize the same glyphs.
|
|
139
|
+
* @param {number} [options.maximumVisibleLabels=1000] Maximum labels shown in one frame. Lower-priority labels are dropped, which keeps the set of live glyphs inside the atlas budget.
|
|
140
|
+
* @param {boolean} [options.renderGeometry=true] Render point, line, and polygon geometry in addition to labels.
|
|
141
|
+
* @param {"mvt"|"geovis"} [options.format="mvt"] PBF schema used by the tile service.
|
|
142
|
+
* @param {number} [options.maximumScreenSpaceError] Tile screen-space error.
|
|
143
|
+
* @param {boolean} [options.adaptiveScreenSpaceError=false] Adapt screen-space error from 16 at globe scale to 1 near street scale.
|
|
144
|
+
* @param {number} [options.maximumConcurrentRequests=12] Maximum pending MVT tile network requests. Limits the initial global-tile burst without requiring an extent.
|
|
145
|
+
* @param {number} [options.cacheBytes=67108864] Target tile cache size for labels-only providers. Geometry providers keep the Cesium3DTileset default unless configured.
|
|
146
|
+
* @param {number} [options.maximumCacheOverflowBytes=16777216] Additional cache headroom for labels-only providers. Geometry providers keep the Cesium3DTileset default unless configured.
|
|
147
|
+
* @param {Scene} [options.scene] Scene used for label decluttering and depth behavior.
|
|
148
|
+
* @returns {Promise<MVTDataProvider>}
|
|
149
|
+
*/
|
|
150
|
+
static async fromUrl(url, options) {
|
|
151
|
+
return /** @type {Promise<MVTDataProvider>} */ (
|
|
152
|
+
/** @type {Promise<MVTDataProvider>} */ (
|
|
153
|
+
/** @type {unknown} */ (super.fromUrl(url, options))
|
|
154
|
+
)
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* @returns {object}
|
|
160
|
+
* @protected
|
|
161
|
+
* @ignore
|
|
162
|
+
*/
|
|
163
|
+
_createTilesetLoadOptions() {
|
|
164
|
+
/** @type {*} */
|
|
165
|
+
const options = {
|
|
166
|
+
// Progressive traversal keeps an available lower-level label tile visible
|
|
167
|
+
// while a sharper child tile is loading. Immediate LOD skipping can select
|
|
168
|
+
// an empty child tile and leave the screen without text.
|
|
169
|
+
skipLevelOfDetail: false,
|
|
170
|
+
maximumSimultaneousTileRequests: this._maximumConcurrentRequests,
|
|
171
|
+
enablePick: true,
|
|
172
|
+
featureIdLabel: "featureId_0",
|
|
173
|
+
instanceFeatureIdLabel: "instanceFeatureId_0",
|
|
174
|
+
scene: this._scene,
|
|
175
|
+
uniformLevelMode: this._uniformLevelMode,
|
|
176
|
+
};
|
|
177
|
+
if (defined(this._cacheBytes)) {
|
|
178
|
+
options.cacheBytes = this._cacheBytes;
|
|
179
|
+
}
|
|
180
|
+
if (defined(this._maximumCacheOverflowBytes)) {
|
|
181
|
+
options.maximumCacheOverflowBytes = this._maximumCacheOverflowBytes;
|
|
182
|
+
}
|
|
183
|
+
return options;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* @param {Cesium3DTileset} tileset
|
|
188
|
+
* @protected
|
|
189
|
+
* @ignore
|
|
190
|
+
*/
|
|
191
|
+
_configureTileset(tileset) {
|
|
192
|
+
tileset._modelUpAxis = Axis.Z;
|
|
193
|
+
tileset._modelForwardAxis = Axis.X;
|
|
194
|
+
if (defined(this._maximumScreenSpaceError)) {
|
|
195
|
+
/** @type {*} */ (tileset).maximumScreenSpaceError =
|
|
196
|
+
this._maximumScreenSpaceError;
|
|
197
|
+
}
|
|
198
|
+
if (this._labelStyles.length > 0) {
|
|
199
|
+
this._labelManager = new MvtLabelManager({
|
|
200
|
+
scene: this._scene,
|
|
201
|
+
styles: this._labelStyles,
|
|
202
|
+
heightReference: this._labelHeightReference,
|
|
203
|
+
transitionDuration: this._labelTransitionDuration,
|
|
204
|
+
transitionSteps: this._labelTransitionSteps,
|
|
205
|
+
maximumRetiringLabels: this._maximumRetiringLabels,
|
|
206
|
+
maximumCachedGlyphs: this._maximumCachedGlyphs,
|
|
207
|
+
minimumRebuildInterval: this._minimumRebuildInterval,
|
|
208
|
+
glyphReclaimMargin: this._glyphReclaimMargin,
|
|
209
|
+
maximumVisibleLabels: this._maximumVisibleLabels,
|
|
210
|
+
});
|
|
211
|
+
this._labelManager.setVisible(this._labelsVisible);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/** @returns {boolean} */
|
|
216
|
+
get labelsVisible() {
|
|
217
|
+
return this._labelsVisible;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** @param {boolean} value */
|
|
221
|
+
set labelsVisible(value) {
|
|
222
|
+
this.setLabelsVisible(value);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Shows or hides labels without discarding the geometry tiles or reloading
|
|
227
|
+
* the tile source. Re-enabling labels rebuilds the visible set from tiles
|
|
228
|
+
* that are already selected by the tileset.
|
|
229
|
+
* @param {boolean} visible
|
|
230
|
+
*/
|
|
231
|
+
setLabelsVisible(visible) {
|
|
232
|
+
const nextValue = visible === true;
|
|
233
|
+
if (this._labelsVisible === nextValue) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
this._labelsVisible = nextValue;
|
|
237
|
+
this._labelManager?.setVisible(nextValue);
|
|
238
|
+
this._scene?.requestRender?.();
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* @returns {object}
|
|
243
|
+
* @protected
|
|
244
|
+
* @ignore
|
|
245
|
+
*/
|
|
246
|
+
_createCodec() {
|
|
247
|
+
const featureIdProperty = this._featureIdProperty;
|
|
248
|
+
const labelManager = this._labelManager;
|
|
249
|
+
const labelStyles = this._labelStyles;
|
|
250
|
+
return {
|
|
251
|
+
contentType: "mvt",
|
|
252
|
+
missingTilePolicy: { statusCodes: [404, 204] },
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @param {Cesium3DTileset} tileset
|
|
256
|
+
* @param {Cesium3DTile} tile
|
|
257
|
+
* @param {Resource} resource
|
|
258
|
+
* @param {ArrayBuffer} arrayBuffer
|
|
259
|
+
* @ignore
|
|
260
|
+
*/
|
|
261
|
+
createContent: async (tileset, tile, resource, arrayBuffer) => {
|
|
262
|
+
const tileCoordinates = parseTileCoordinates(
|
|
263
|
+
resource.getUrlComponent(true),
|
|
264
|
+
);
|
|
265
|
+
const result = await scheduleMvtTileTask({
|
|
266
|
+
arrayBuffer,
|
|
267
|
+
tileCoordinates,
|
|
268
|
+
featureIdProperty,
|
|
269
|
+
format: this._format,
|
|
270
|
+
includeDecodedTile: defined(labelManager),
|
|
271
|
+
buildGeometry: this._renderGeometry,
|
|
272
|
+
});
|
|
273
|
+
const labelCandidates = defined(result.decodedTile)
|
|
274
|
+
? createMvtLabelCandidates(
|
|
275
|
+
/** @type {{layers: Array<*>}} */ (result.decodedTile),
|
|
276
|
+
tileCoordinates,
|
|
277
|
+
labelStyles,
|
|
278
|
+
this._maximumLabelsPerTile,
|
|
279
|
+
)
|
|
280
|
+
: undefined;
|
|
281
|
+
if (!this._renderGeometry) {
|
|
282
|
+
if (defined(labelManager) && defined(labelCandidates)) {
|
|
283
|
+
return new MvtLabel3DTileContent(
|
|
284
|
+
tileset,
|
|
285
|
+
tile,
|
|
286
|
+
resource,
|
|
287
|
+
labelManager,
|
|
288
|
+
labelCandidates,
|
|
289
|
+
tileCoordinates,
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
return new Empty3DTileContent(tileset, tile);
|
|
293
|
+
}
|
|
294
|
+
if (!defined(result.glb)) {
|
|
295
|
+
if (!result.hasFeatures) {
|
|
296
|
+
return new Empty3DTileContent(tileset, tile);
|
|
297
|
+
}
|
|
298
|
+
throw new RuntimeError(
|
|
299
|
+
"Decoded MVT tile did not produce vector glTF content.",
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
return VectorGltf3DTileContent.fromGltf(
|
|
303
|
+
tileset,
|
|
304
|
+
tile,
|
|
305
|
+
resource,
|
|
306
|
+
new Uint8Array(result.glb),
|
|
307
|
+
labelManager,
|
|
308
|
+
labelCandidates,
|
|
309
|
+
tileCoordinates,
|
|
310
|
+
this._renderGeometry,
|
|
311
|
+
);
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* @param {*} frameState
|
|
318
|
+
* @protected
|
|
319
|
+
*/
|
|
320
|
+
update(frameState) {
|
|
321
|
+
const scene = /** @type {{ globe?: { uniformLevelMode?: object } }} */ (
|
|
322
|
+
this._scene
|
|
323
|
+
);
|
|
324
|
+
const tileset = /** @type {{ uniformLevelMode?: object }} */ (
|
|
325
|
+
this._tileset
|
|
326
|
+
);
|
|
327
|
+
if (
|
|
328
|
+
this._inheritGlobeUniformLevelMode &&
|
|
329
|
+
defined(tileset) &&
|
|
330
|
+
defined(scene?.globe)
|
|
331
|
+
) {
|
|
332
|
+
tileset.uniformLevelMode = scene.globe.uniformLevelMode;
|
|
333
|
+
}
|
|
334
|
+
if (this._usesAdaptiveScreenSpaceError && defined(this._tileset)) {
|
|
335
|
+
/** @type {*} */ (this._tileset).maximumScreenSpaceError =
|
|
336
|
+
getAdaptiveScreenSpaceError(
|
|
337
|
+
frameState.camera.positionCartographic?.height,
|
|
338
|
+
);
|
|
339
|
+
}
|
|
340
|
+
this._labelManager?.beginFrame(frameState);
|
|
341
|
+
super.update(frameState);
|
|
342
|
+
this._labelManager?.submitSelectedTiles(frameState);
|
|
343
|
+
this._labelManager?.endFrame(frameState);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
destroy() {
|
|
347
|
+
const labelManager = this._labelManager;
|
|
348
|
+
this._labelManager = undefined;
|
|
349
|
+
const result = super.destroy();
|
|
350
|
+
labelManager?.destroy();
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Lightweight content ownership for labels-only tiles. It satisfies the 3D
|
|
357
|
+
* Tiles content contract without constructing a glTF model or being classified
|
|
358
|
+
* as empty content by traversal.
|
|
359
|
+
* @private
|
|
360
|
+
*/
|
|
361
|
+
class MvtLabel3DTileContent {
|
|
362
|
+
/**
|
|
363
|
+
* @param {*} tileset
|
|
364
|
+
* @param {*} tile
|
|
365
|
+
* @param {*} resource
|
|
366
|
+
* @param {*} labelManager
|
|
367
|
+
* @param {Array<*>} labelCandidates
|
|
368
|
+
* @param {{tileX:number,tileY:number,tileZ:number}} tileCoordinates
|
|
369
|
+
*/
|
|
370
|
+
constructor(
|
|
371
|
+
tileset,
|
|
372
|
+
tile,
|
|
373
|
+
resource,
|
|
374
|
+
labelManager,
|
|
375
|
+
labelCandidates,
|
|
376
|
+
tileCoordinates,
|
|
377
|
+
) {
|
|
378
|
+
this._tileset = tileset;
|
|
379
|
+
this._tile = tile;
|
|
380
|
+
this._resource = resource;
|
|
381
|
+
this._labelManager = labelManager;
|
|
382
|
+
this._labelTile = labelManager.addTile(
|
|
383
|
+
tile,
|
|
384
|
+
tileCoordinates,
|
|
385
|
+
labelCandidates,
|
|
386
|
+
);
|
|
387
|
+
this._labelByteLength = getMvtLabelCandidatesByteLength(labelCandidates);
|
|
388
|
+
/** @type {*} */
|
|
389
|
+
this._metadata = undefined;
|
|
390
|
+
/** @type {*} */
|
|
391
|
+
this._group = undefined;
|
|
392
|
+
this.featurePropertiesDirty = false;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
get featuresLength() {
|
|
396
|
+
return 0;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
get pointsLength() {
|
|
400
|
+
return 0;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
get trianglesLength() {
|
|
404
|
+
return 0;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
get geometryByteLength() {
|
|
408
|
+
return 0;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
get texturesByteLength() {
|
|
412
|
+
return 0;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
get batchTableByteLength() {
|
|
416
|
+
return this._labelByteLength;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/** @returns {undefined} */
|
|
420
|
+
get innerContents() {
|
|
421
|
+
return undefined;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
get ready() {
|
|
425
|
+
return true;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
get tileset() {
|
|
429
|
+
return this._tileset;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
get tile() {
|
|
433
|
+
return this._tile;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
get url() {
|
|
437
|
+
return this._resource.getUrlComponent(true);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/** @returns {*} */
|
|
441
|
+
get metadata() {
|
|
442
|
+
return this._metadata;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
set metadata(value) {
|
|
446
|
+
this._metadata = value;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/** @returns {undefined} */
|
|
450
|
+
get batchTable() {
|
|
451
|
+
return undefined;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/** @returns {*} */
|
|
455
|
+
get group() {
|
|
456
|
+
return this._group;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
set group(value) {
|
|
460
|
+
this._group = value;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/** @param {*} batchId @param {string} name @returns {boolean} */
|
|
464
|
+
hasProperty(batchId, name) {
|
|
465
|
+
return false;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/** @param {*} batchId @returns {undefined} */
|
|
469
|
+
getFeature(batchId) {
|
|
470
|
+
return undefined;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/** @param {boolean} enabled @param {*} color */
|
|
474
|
+
applyDebugSettings(enabled, color) {}
|
|
475
|
+
|
|
476
|
+
/** @param {*} style */
|
|
477
|
+
applyStyle(style) {}
|
|
478
|
+
|
|
479
|
+
/** @param {*} tileset @param {*} frameState */
|
|
480
|
+
update(tileset, frameState) {}
|
|
481
|
+
|
|
482
|
+
/** @param {*} ray @param {*} frameState @param {*} result @returns {undefined} */
|
|
483
|
+
pick(ray, frameState, result) {
|
|
484
|
+
return undefined;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
isDestroyed() {
|
|
488
|
+
return false;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
destroy() {
|
|
492
|
+
this._labelManager?.removeTile(this._labelTile);
|
|
493
|
+
this._labelManager = undefined;
|
|
494
|
+
this._labelTile = undefined;
|
|
495
|
+
this._labelByteLength = 0;
|
|
496
|
+
return destroyObject(this);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/** @param {number|undefined} height */
|
|
501
|
+
function getAdaptiveScreenSpaceError(height) {
|
|
502
|
+
if (!Number.isFinite(height) || height > 3000000.0) {
|
|
503
|
+
return 16.0;
|
|
504
|
+
}
|
|
505
|
+
if (height > 1000000.0) {
|
|
506
|
+
return 12.0;
|
|
507
|
+
}
|
|
508
|
+
if (height > 200000.0) {
|
|
509
|
+
return 8.0;
|
|
510
|
+
}
|
|
511
|
+
if (height > 50000.0) {
|
|
512
|
+
return 4.0;
|
|
513
|
+
}
|
|
514
|
+
return 1.0;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/** @param {*} parameters @returns {Promise<MVTWorkerResult>} */
|
|
518
|
+
async function scheduleMvtTileTask(parameters) {
|
|
519
|
+
let promise;
|
|
520
|
+
while (!defined(promise)) {
|
|
521
|
+
promise = createMvtTileTaskProcessor.scheduleTask(parameters, [
|
|
522
|
+
parameters.arrayBuffer,
|
|
523
|
+
]);
|
|
524
|
+
if (!defined(promise)) {
|
|
525
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
return /** @type {Promise<MVTWorkerResult>} */ (promise);
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
/**
|
|
532
|
+
* @param {string} url
|
|
533
|
+
* @returns {{tileZ:number, tileX:number, tileY:number}}
|
|
534
|
+
* @ignore
|
|
535
|
+
*/
|
|
536
|
+
function parseTileCoordinates(url) {
|
|
537
|
+
const match = url.match(/\/(\d+)\/(\d+)\/(\d+)(?:\.[^/?#]+)?(?:[?#]|$)/i);
|
|
538
|
+
if (!match) {
|
|
539
|
+
oneTimeWarning(
|
|
540
|
+
"MVTDataProvider.parseTileCoordinates",
|
|
541
|
+
`MVT tile URL did not match /{z}/{x}/{y} pattern. Falling back to z/x/y = 0/0/0. URL: ${url}`,
|
|
542
|
+
);
|
|
543
|
+
return { tileZ: 0, tileX: 0, tileY: 0 };
|
|
544
|
+
}
|
|
545
|
+
return {
|
|
546
|
+
tileZ: parseInt(match[1], 10),
|
|
547
|
+
tileX: parseInt(match[2], 10),
|
|
548
|
+
tileY: parseInt(match[3], 10),
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
MVTDataProvider._parseTileCoordinates = parseTileCoordinates;
|
|
553
|
+
MVTDataProvider._MvtLabel3DTileContent = MvtLabel3DTileContent;
|
|
554
|
+
|
|
555
|
+
export default MVTDataProvider;
|
package/Source/Scene/Material.js
CHANGED
|
@@ -1135,6 +1135,7 @@ function createCubeMapUpdateFunction(uniformId) {
|
|
|
1135
1135
|
* @param {Material} material The material to load the cubemap images for.
|
|
1136
1136
|
* @param {string} uniformId The ID of the uniform that corresponds to the cubemap images.
|
|
1137
1137
|
* @returns A promise that resolves when the images are loaded, or a resolved promise if image loading is not necessary.
|
|
1138
|
+
* @ignore
|
|
1138
1139
|
*/
|
|
1139
1140
|
function loadCubeMapImagesForUniform(material, uniformId) {
|
|
1140
1141
|
const uniforms = material.uniforms;
|
|
@@ -163,7 +163,6 @@ class B3dmLoader extends ResourceLoader {
|
|
|
163
163
|
|
|
164
164
|
const b3dm = B3dmParser.parse(this._arrayBuffer, this._byteOffset);
|
|
165
165
|
|
|
166
|
-
let batchLength = b3dm.batchLength;
|
|
167
166
|
const featureTableJson = b3dm.featureTableJson;
|
|
168
167
|
const featureTableBinary = b3dm.featureTableBinary;
|
|
169
168
|
const batchTableJson = b3dm.batchTableJson;
|
|
@@ -173,7 +172,7 @@ class B3dmLoader extends ResourceLoader {
|
|
|
173
172
|
featureTableJson,
|
|
174
173
|
featureTableBinary,
|
|
175
174
|
);
|
|
176
|
-
batchLength = featureTable.getGlobalProperty("BATCH_LENGTH");
|
|
175
|
+
const batchLength = featureTable.getGlobalProperty("BATCH_LENGTH");
|
|
177
176
|
// Set batch length.
|
|
178
177
|
this._batchLength = batchLength;
|
|
179
178
|
// Set the RTC Center transform, if present.
|