@hztxi/cesium-engine 25.0.6 → 26.2.1
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-2GJAWJJT.js +1344 -0
- package/Build/Workers/chunk-2J2VS5RI.js +288 -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-375SHKGW.js +44 -0
- package/Build/Workers/chunk-3BDLET5S.js +198 -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-4N227IPR.js +973 -0
- package/Build/Workers/chunk-4P6OAPBM.js +97 -0
- package/Build/Workers/chunk-4ZOLEPZK.js +519 -0
- package/Build/Workers/chunk-5EF3WWQG.js +352 -0
- package/Build/Workers/chunk-5FYUSABU.js +945 -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-5WU37CUJ.js +630 -0
- package/Build/Workers/chunk-6EBDN5WS.js +97 -0
- package/Build/Workers/chunk-75HIWCEV.js +301 -0
- package/Build/Workers/chunk-77DBX23X.js +455 -0
- package/Build/Workers/chunk-7AMVPXZY.js +1992 -0
- package/Build/Workers/chunk-7BMDD6SM.js +124 -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-7OME2OKM.js +171 -0
- package/Build/Workers/chunk-7Y642MCO.js +352 -0
- package/Build/Workers/chunk-7ZFKBLUE.js +1054 -0
- package/Build/Workers/chunk-A2BROW3D.js +352 -0
- package/Build/Workers/chunk-A7LGY5XS.js +140 -0
- package/Build/Workers/chunk-AN2NVYL6.js +1483 -0
- package/Build/Workers/chunk-B4XOVZGA.js +476 -0
- package/Build/Workers/chunk-B7PT2VL5.js +630 -0
- package/Build/Workers/chunk-C6XQGBPV.js +476 -0
- package/Build/Workers/chunk-CAEC5DA2.js +57 -0
- package/Build/Workers/chunk-CBCOHH5O.js +837 -0
- package/Build/Workers/chunk-CDLPLYLV.js +1287 -0
- package/Build/Workers/chunk-CEKCKPFN.js +368 -0
- package/Build/Workers/chunk-CEMXKBQO.js +1800 -0
- package/Build/Workers/chunk-CHMDKP5L.js +2342 -0
- package/Build/Workers/chunk-CKW3STKA.js +1067 -0
- package/Build/Workers/chunk-CV5RICKT.js +1992 -0
- package/Build/Workers/chunk-CWGB3D4Z.js +257 -0
- package/Build/Workers/chunk-DBWSISJT.js +56 -0
- package/Build/Workers/chunk-DQEUGBGA.js +2719 -0
- package/Build/Workers/chunk-DSBSPPPJ.js +1344 -0
- package/Build/Workers/chunk-DSGLDRTI.js +278 -0
- package/Build/Workers/chunk-DUBE5G2H.js +497 -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-E4PBNWWK.js +58 -0
- package/Build/Workers/chunk-E5MWOMVC.js +57 -0
- package/Build/Workers/chunk-ECN3VUMA.js +73 -0
- package/Build/Workers/chunk-ECSKVHUB.js +476 -0
- package/Build/Workers/chunk-EE3XBOQI.js +1483 -0
- package/Build/Workers/chunk-EHA2ZDPZ.js +415 -0
- package/Build/Workers/chunk-EKEKPAJF.js +454 -0
- package/Build/Workers/chunk-EL4B5CSQ.js +162 -0
- package/Build/Workers/chunk-EOHKUXPX.js +198 -0
- package/Build/Workers/chunk-ERENMHG2.js +754 -0
- package/Build/Workers/chunk-ESQGFRLZ.js +163 -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-FQ42MT7M.js +58 -0
- package/Build/Workers/chunk-FQDYQG4P.js +1284 -0
- package/Build/Workers/chunk-FTCBY5HH.js +138 -0
- package/Build/Workers/chunk-FV4OWDV4.js +9230 -0
- package/Build/Workers/chunk-FYRNNQSL.js +280 -0
- package/Build/Workers/chunk-GI5RWJAY.js +101 -0
- package/Build/Workers/chunk-GNLMSDRO.js +945 -0
- package/Build/Workers/chunk-GVUJ6O3R.js +73 -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-IU3YAYPT.js +1344 -0
- package/Build/Workers/chunk-J7MZR7B2.js +1483 -0
- package/Build/Workers/chunk-JMF4ATAS.js +3794 -0
- package/Build/Workers/chunk-KEJKMITY.js +82 -0
- package/Build/Workers/chunk-KSIEJYNL.js +3822 -0
- package/Build/Workers/chunk-KT3GG7AW.js +754 -0
- package/Build/Workers/chunk-KW2QZDUS.js +147 -0
- package/Build/Workers/chunk-KYCEM22I.js +1800 -0
- package/Build/Workers/chunk-L6B5XPBL.js +73 -0
- package/Build/Workers/chunk-LGJXN2VP.js +352 -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-LY2UG3HV.js +38 -0
- package/Build/Workers/chunk-M7Z3MPAX.js +973 -0
- package/Build/Workers/chunk-MHNLTQHO.js +3201 -0
- package/Build/Workers/chunk-ML7OMD72.js +2342 -0
- package/Build/Workers/chunk-NBTGXEMT.js +945 -0
- package/Build/Workers/chunk-NCPJBP24.js +140 -0
- package/Build/Workers/chunk-NFY5V6MR.js +102 -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-OYPSUED3.js +1067 -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-PIIUGRQD.js +387 -0
- package/Build/Workers/chunk-POKD22OT.js +2719 -0
- package/Build/Workers/chunk-PQMA7MFS.js +9237 -0
- package/Build/Workers/chunk-PURIPUSY.js +682 -0
- package/Build/Workers/chunk-QIOOTLWN.js +56 -0
- package/Build/Workers/chunk-QQZPPXY4.js +3822 -0
- package/Build/Workers/chunk-QUPRALOD.js +101 -0
- package/Build/Workers/chunk-QXLQLGL2.js +1067 -0
- package/Build/Workers/chunk-RBEVHHXK.js +3201 -0
- package/Build/Workers/chunk-RC4YC3VU.js +278 -0
- package/Build/Workers/chunk-RGNNWVR6.js +171 -0
- package/Build/Workers/chunk-RHO5HV52.js +305 -0
- package/Build/Workers/chunk-SBBIEHYT.js +44 -0
- package/Build/Workers/chunk-SVCZUP5R.js +837 -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-TBHW5UME.js +973 -0
- package/Build/Workers/chunk-TLSGD5TR.js +280 -0
- package/Build/Workers/chunk-TOXDLWKZ.js +368 -0
- package/Build/Workers/chunk-TPOX6IOR.js +1054 -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-ULNBTI6R.js +138 -0
- package/Build/Workers/chunk-UMUS2AQQ.js +398 -0
- package/Build/Workers/chunk-UZ7GTP2L.js +162 -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-VJIL5H6K.js +2719 -0
- package/Build/Workers/chunk-VMF7KOGY.js +162 -0
- package/Build/Workers/chunk-W3C7OHXF.js +387 -0
- package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
- package/Build/Workers/chunk-WB5GWYDP.js +455 -0
- package/Build/Workers/chunk-WN6MAL25.js +682 -0
- package/Build/Workers/chunk-WTR7KMQA.js +693 -0
- package/Build/Workers/chunk-WTTFMU3P.js +241 -0
- package/Build/Workers/chunk-WULONJZC.js +1800 -0
- package/Build/Workers/chunk-WZPMAVTV.js +511 -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-Y7KVUJEB.js +219 -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-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-Z6JV4DZG.js +1046 -0
- package/Build/Workers/chunk-Z7BONRW2.js +241 -0
- package/Build/Workers/chunk-ZK2R3DEJ.js +1054 -0
- package/Build/Workers/chunk-ZTK5EBUI.js +76 -0
- package/Build/Workers/chunk-ZZPDORJK.js +56 -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 +98 -34
- 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/GroundPolylineGeometry.js +99 -4
- 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/PolylinePipeline.js +9 -2
- 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/PolylineGeometryUpdater.js +125 -7
- 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 +137 -8
- package/Source/Scene/CameraEventAggregator.js +30 -18
- package/Source/Scene/CameraFlightPath.js +17 -0
- 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/ColumbusWorlds.js +190 -0
- 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 +27 -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 +110 -22
- package/Source/Scene/GlobeDepth.js +243 -6
- package/Source/Scene/GlobeSurfaceShaderSet.js +637 -540
- package/Source/Scene/GlobeSurfaceTile.js +575 -398
- package/Source/Scene/GlobeSurfaceTileProvider.js +2289 -1842
- 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/GroundPolylinePrimitive.js +2 -1
- 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/Polyline.js +32 -5
- package/Source/Scene/PolylineCollection.js +39 -0
- package/Source/Scene/PostProcessStage.js +4 -2
- package/Source/Scene/Primitive.js +12 -13
- package/Source/Scene/PrimitivePipeline.js +158 -28
- 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 +655 -6
- package/Source/Scene/SceneTransforms.js +18 -0
- package/Source/Scene/ScreenSpaceCameraController.js +12 -3
- 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/PolylineShadowVolumeFS.glsl +14 -0
- package/Source/Shaders/PolylineShadowVolumeFS.js +14 -0
- package/Source/Shaders/RestoreDepth.glsl +8 -0
- package/Source/Shaders/RestoreDepth.js +10 -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.d.ts +535 -1393
- package/index.js +125 -93
- package/package.json +13 -13
|
@@ -76,6 +76,8 @@ function Cesium3DTileStyle(style) {
|
|
|
76
76
|
|
|
77
77
|
// Vector Tiles in 3D Tiles 2.0.
|
|
78
78
|
this._lineWidth = undefined;
|
|
79
|
+
this._polygonOutlineColor = undefined;
|
|
80
|
+
this._polygonOutlineWidth = undefined;
|
|
79
81
|
|
|
80
82
|
this._colorShaderFunction = undefined;
|
|
81
83
|
this._showShaderFunction = undefined;
|
|
@@ -122,6 +124,8 @@ function setup(that, styleJson) {
|
|
|
122
124
|
|
|
123
125
|
// Vector Tiles in 3D Tiles 2.0.
|
|
124
126
|
that.lineWidth = styleJson.lineWidth;
|
|
127
|
+
that.polygonOutlineColor = styleJson.polygonOutlineColor;
|
|
128
|
+
that.polygonOutlineWidth = styleJson.polygonOutlineWidth;
|
|
125
129
|
|
|
126
130
|
const meta = {};
|
|
127
131
|
if (defined(styleJson.meta)) {
|
|
@@ -1290,6 +1294,42 @@ Object.defineProperties(Cesium3DTileStyle.prototype, {
|
|
|
1290
1294
|
},
|
|
1291
1295
|
},
|
|
1292
1296
|
|
|
1297
|
+
/**
|
|
1298
|
+
* Internal-only, supported in Vector Tiles with 3D Tiles 2.0.
|
|
1299
|
+
* @memberof Cesium3DTileStyle.prototype
|
|
1300
|
+
* @type {StyleExpression}
|
|
1301
|
+
* @ignore
|
|
1302
|
+
*/
|
|
1303
|
+
polygonOutlineColor: {
|
|
1304
|
+
get: function () {
|
|
1305
|
+
return this._polygonOutlineColor;
|
|
1306
|
+
},
|
|
1307
|
+
set: function (value) {
|
|
1308
|
+
this._polygonOutlineColor = getExpression(this, value);
|
|
1309
|
+
this._style.polygonOutlineColor = getJsonFromExpression(
|
|
1310
|
+
this._polygonOutlineColor,
|
|
1311
|
+
);
|
|
1312
|
+
},
|
|
1313
|
+
},
|
|
1314
|
+
|
|
1315
|
+
/**
|
|
1316
|
+
* Internal-only, supported in Vector Tiles with 3D Tiles 2.0.
|
|
1317
|
+
* @memberof Cesium3DTileStyle.prototype
|
|
1318
|
+
* @type {StyleExpression}
|
|
1319
|
+
* @ignore
|
|
1320
|
+
*/
|
|
1321
|
+
polygonOutlineWidth: {
|
|
1322
|
+
get: function () {
|
|
1323
|
+
return this._polygonOutlineWidth;
|
|
1324
|
+
},
|
|
1325
|
+
set: function (value) {
|
|
1326
|
+
this._polygonOutlineWidth = getExpression(this, value);
|
|
1327
|
+
this._style.polygonOutlineWidth = getJsonFromExpression(
|
|
1328
|
+
this._polygonOutlineWidth,
|
|
1329
|
+
);
|
|
1330
|
+
},
|
|
1331
|
+
},
|
|
1332
|
+
|
|
1293
1333
|
/**
|
|
1294
1334
|
* Internal-only, supported in Vector Tiles with 3D Tiles 2.0.
|
|
1295
1335
|
* @memberof Cesium3DTileStyle.prototype
|
|
@@ -42,6 +42,7 @@ import Cesium3DTilesetStatistics from "./Cesium3DTilesetStatistics.js";
|
|
|
42
42
|
import Cesium3DTileStyleEngine from "./Cesium3DTileStyleEngine.js";
|
|
43
43
|
import ClippingPlaneCollection from "./ClippingPlaneCollection.js";
|
|
44
44
|
import ClippingPolygonCollection from "./ClippingPolygonCollection.js";
|
|
45
|
+
import EdgeDisplayMode from "./EdgeDisplayMode.js";
|
|
45
46
|
import hasExtension from "./hasExtension.js";
|
|
46
47
|
import ImplicitTileset from "./ImplicitTileset.js";
|
|
47
48
|
import ImplicitTileCoordinates from "./ImplicitTileCoordinates.js";
|
|
@@ -75,6 +76,8 @@ import ImageryLayerCollection from "./ImageryLayerCollection.js";
|
|
|
75
76
|
* @property {Axis} [modelForwardAxis=Axis.X] Which axis is considered forward when loading models for tile contents.
|
|
76
77
|
* @property {ShadowMode} [shadows=ShadowMode.ENABLED] Determines whether the tileset casts or receives shadows from light sources.
|
|
77
78
|
* @property {number} [maximumScreenSpaceError=16] The maximum screen space error used to drive level of detail refinement.
|
|
79
|
+
* @property {object} [uniformLevelMode] Evaluates tile refinement against a shared
|
|
80
|
+
* per-frame reference distance so visible tiles converge on a uniform level.
|
|
78
81
|
* @property {number} [cacheBytes=536870912] The size (in bytes) to which the tile cache will be trimmed, if the cache contains tiles not needed for the current view.
|
|
79
82
|
* @property {number} [maximumCacheOverflowBytes=536870912] The maximum additional memory (in bytes) to allow for cache headroom, if more than {@link Cesium3DTileset#cacheBytes} are needed for the current view.
|
|
80
83
|
* @property {boolean} [cullWithChildrenBounds=true] Optimization option. Whether to cull tiles using the union of their children bounding volumes.
|
|
@@ -99,10 +102,11 @@ import ImageryLayerCollection from "./ImageryLayerCollection.js";
|
|
|
99
102
|
* @property {number} [skipLevels=1] When <code>skipLevelOfDetail</code> is <code>true</code>, a constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. Used in conjunction with <code>skipScreenSpaceErrorFactor</code> to determine which tiles to load.
|
|
100
103
|
* @property {boolean} [immediatelyLoadDesiredLevelOfDetail=false] When <code>skipLevelOfDetail</code> is <code>true</code>, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.
|
|
101
104
|
* @property {boolean} [loadSiblings=false] When <code>skipLevelOfDetail</code> is <code>true</code>, determines whether siblings of visible tiles are always downloaded during traversal.
|
|
105
|
+
* @property {number} [maximumSimultaneousTileRequests=Infinity] Maximum number of this tileset's tile network requests that may be pending at once.
|
|
102
106
|
* @property {ClippingPlaneCollection} [clippingPlanes] The {@link ClippingPlaneCollection} used to selectively disable rendering the tileset.
|
|
103
107
|
* @property {ClippingPolygonCollection} [clippingPolygons] The {@link ClippingPolygonCollection} used to selectively disable rendering the tileset.
|
|
104
108
|
* @property {ClassificationType} [classificationType] Determines whether terrain, 3D Tiles or both will be classified by this tileset. See {@link Cesium3DTileset#classificationType} for details about restrictions and limitations.
|
|
105
|
-
* @property {HeightReference} [heightReference] Sets the {@link HeightReference} for
|
|
109
|
+
* @property {HeightReference} [heightReference] Sets the {@link HeightReference} for features in vector tilesets.
|
|
106
110
|
* @property {Scene} [scene] The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
|
|
107
111
|
* @property {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid determining the size and shape of the globe.
|
|
108
112
|
* @property {object} [pointCloudShading] Options for constructing a {@link PointCloudShading} object to control point attenuation based on geometric error and lighting.
|
|
@@ -128,6 +132,7 @@ import ImageryLayerCollection from "./ImageryLayerCollection.js";
|
|
|
128
132
|
* @property {boolean} [debugColorizeTiles=false] For debugging only. When true, assigns a random color to each tile.
|
|
129
133
|
* @property {boolean} [enableDebugWireframe=false] For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has been created.
|
|
130
134
|
* @property {boolean} [debugWireframe=false] For debugging only. When true, render's each tile's content as a wireframe.
|
|
135
|
+
* @property {EdgeDisplayMode} [edgeDisplayMode=EdgeDisplayMode.SURFACES_ONLY] Controls how edges from the {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility} glTF extension are rendered relative to surface geometry.
|
|
131
136
|
* @property {boolean} [debugShowBoundingVolume=false] For debugging only. When true, renders the bounding volume for each tile.
|
|
132
137
|
* @property {boolean} [debugShowContentBoundingVolume=false] For debugging only. When true, renders the bounding volume for each tile's content.
|
|
133
138
|
* @property {boolean} [debugShowViewerRequestVolume=false] For debugging only. When true, renders the viewer request volume for each tile.
|
|
@@ -242,6 +247,17 @@ function Cesium3DTileset(options) {
|
|
|
242
247
|
|
|
243
248
|
this._maximumScreenSpaceError = options.maximumScreenSpaceError ?? 16;
|
|
244
249
|
this._memoryAdjustedScreenSpaceError = this._maximumScreenSpaceError;
|
|
250
|
+
this._uniformLevelMode = options.uniformLevelMode;
|
|
251
|
+
this._uniformLevelState = {
|
|
252
|
+
active: false,
|
|
253
|
+
engage: 0.0,
|
|
254
|
+
referenceDistance: undefined,
|
|
255
|
+
deviationFactor: 8.0,
|
|
256
|
+
coarsenFactor: 2.0,
|
|
257
|
+
};
|
|
258
|
+
this._nearestTileDistanceThisFrame = undefined;
|
|
259
|
+
this._nearestTileDistanceLastFrame = undefined;
|
|
260
|
+
this._uniformLevelFrameNumber = -1;
|
|
245
261
|
|
|
246
262
|
this._cacheBytes = options.cacheBytes ?? 512 * 1024 * 1024;
|
|
247
263
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -759,6 +775,30 @@ function Cesium3DTileset(options) {
|
|
|
759
775
|
|
|
760
776
|
this._disableSkipLevelOfDetail = false;
|
|
761
777
|
|
|
778
|
+
/**
|
|
779
|
+
* Optional runtime content codec injected by data providers
|
|
780
|
+
* (e.g. {@link MVTDataProvider}). When set, {@link Cesium3DTile} bypasses
|
|
781
|
+
* the standard magic-number / URL based content dispatch and delegates
|
|
782
|
+
* content construction to <code>codec.createContent(...)</code>. This
|
|
783
|
+
* keeps format-specific logic out of the runtime.
|
|
784
|
+
*
|
|
785
|
+
* Shape:
|
|
786
|
+
* {
|
|
787
|
+
* contentType: string, // diagnostic only
|
|
788
|
+
* disableSkipLevelOfDetail?: boolean,
|
|
789
|
+
* createContent: (tileset, tile, resource, arrayBuffer) => Promise<Cesium3DTileContent>,
|
|
790
|
+
* missingTilePolicy?: { statusCodes?: number[] }
|
|
791
|
+
* // A missing tile policy specifies HTTP Status Codes to be interpreted
|
|
792
|
+
* // as "no content", and rendered as empty tiles, rather than throwing
|
|
793
|
+
* // errors or retrying the request. Allows tiles to be statically hosted,
|
|
794
|
+
* // without generating and serving unnecessary content for empty tiles.
|
|
795
|
+
* }
|
|
796
|
+
*
|
|
797
|
+
* @type {object|undefined}
|
|
798
|
+
* @ignore
|
|
799
|
+
*/
|
|
800
|
+
this._runtimeContentCodec = undefined;
|
|
801
|
+
|
|
762
802
|
/**
|
|
763
803
|
* The screen space error that must be reached before skipping levels of detail.
|
|
764
804
|
* <p>
|
|
@@ -820,6 +860,16 @@ function Cesium3DTileset(options) {
|
|
|
820
860
|
*/
|
|
821
861
|
this.loadSiblings = options.loadSiblings ?? false;
|
|
822
862
|
|
|
863
|
+
/**
|
|
864
|
+
* Maximum number of this tileset's tile network requests that may be
|
|
865
|
+
* pending at once.
|
|
866
|
+
*
|
|
867
|
+
* @type {number}
|
|
868
|
+
* @default Infinity
|
|
869
|
+
*/
|
|
870
|
+
this.maximumSimultaneousTileRequests =
|
|
871
|
+
options.maximumSimultaneousTileRequests ?? Number.POSITIVE_INFINITY;
|
|
872
|
+
|
|
823
873
|
this._clippingPlanes = undefined;
|
|
824
874
|
if (defined(options.clippingPlanes)) {
|
|
825
875
|
ClippingPlaneCollection.setOwner(
|
|
@@ -957,6 +1007,20 @@ function Cesium3DTileset(options) {
|
|
|
957
1007
|
);
|
|
958
1008
|
}
|
|
959
1009
|
|
|
1010
|
+
/**
|
|
1011
|
+
* Controls how edges from the
|
|
1012
|
+
* {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
|
|
1013
|
+
* glTF extension are rendered relative to surface geometry. Tile content
|
|
1014
|
+
* primitives that do not declare the extension are unaffected.
|
|
1015
|
+
*
|
|
1016
|
+
* @type {EdgeDisplayMode}
|
|
1017
|
+
* @default EdgeDisplayMode.SURFACES_ONLY
|
|
1018
|
+
*
|
|
1019
|
+
* @experimental This feature is using part of the glTF spec that is not yet final and is subject to change without Cesium's standard deprecation policy.
|
|
1020
|
+
*/
|
|
1021
|
+
this.edgeDisplayMode =
|
|
1022
|
+
options.edgeDisplayMode ?? EdgeDisplayMode.SURFACES_ONLY;
|
|
1023
|
+
|
|
960
1024
|
/**
|
|
961
1025
|
* This property is for debugging only; it is not optimized for production use.
|
|
962
1026
|
* <p>
|
|
@@ -1515,6 +1579,27 @@ Object.defineProperties(Cesium3DTileset.prototype, {
|
|
|
1515
1579
|
},
|
|
1516
1580
|
},
|
|
1517
1581
|
|
|
1582
|
+
/**
|
|
1583
|
+
* Uniform level-of-detail configuration. When enabled, perspective screen-space
|
|
1584
|
+
* error is blended toward the error at a single reference distance, preventing
|
|
1585
|
+
* visible tiles at different distances from selecting different levels solely
|
|
1586
|
+
* because of distance.
|
|
1587
|
+
*
|
|
1588
|
+
* @memberof Cesium3DTileset.prototype
|
|
1589
|
+
*
|
|
1590
|
+
* @type {object|undefined}
|
|
1591
|
+
*/
|
|
1592
|
+
uniformLevelMode: {
|
|
1593
|
+
get: function () {
|
|
1594
|
+
return this._uniformLevelMode;
|
|
1595
|
+
},
|
|
1596
|
+
set: function (value) {
|
|
1597
|
+
this._uniformLevelMode = value;
|
|
1598
|
+
this._uniformLevelState.active = false;
|
|
1599
|
+
this._uniformLevelState.referenceDistance = undefined;
|
|
1600
|
+
},
|
|
1601
|
+
},
|
|
1602
|
+
|
|
1518
1603
|
/**
|
|
1519
1604
|
* The amount of GPU memory (in bytes) used to cache tiles. This memory usage is estimated from
|
|
1520
1605
|
* geometry, textures, and batch table textures of loaded tiles. For point clouds, this value also
|
|
@@ -2632,7 +2717,7 @@ function sortTilesByPriority(a, b) {
|
|
|
2632
2717
|
|
|
2633
2718
|
/**
|
|
2634
2719
|
* Perform any pass invariant tasks here. Called after the render pass.
|
|
2635
|
-
* @
|
|
2720
|
+
* @ignore
|
|
2636
2721
|
* @param {FrameState} frameState
|
|
2637
2722
|
*/
|
|
2638
2723
|
Cesium3DTileset.prototype.postPassesUpdate = function (frameState) {
|
|
@@ -2655,7 +2740,7 @@ Cesium3DTileset.prototype.postPassesUpdate = function (frameState) {
|
|
|
2655
2740
|
|
|
2656
2741
|
/**
|
|
2657
2742
|
* Perform any pass invariant tasks here. Called before any passes are executed.
|
|
2658
|
-
* @
|
|
2743
|
+
* @ignore
|
|
2659
2744
|
* @param {FrameState} frameState
|
|
2660
2745
|
*/
|
|
2661
2746
|
Cesium3DTileset.prototype.prePassesUpdate = function (frameState) {
|
|
@@ -2708,11 +2793,14 @@ function cancelOutOfViewRequests(tileset, frameState) {
|
|
|
2708
2793
|
|
|
2709
2794
|
// NOTE: This is framerate dependant so make sure the threshold check is small
|
|
2710
2795
|
const outOfView = frameState.frameNumber - tile._touchedFrame >= 1;
|
|
2796
|
+
const noLongerDesired =
|
|
2797
|
+
tileset.immediatelyLoadDesiredLevelOfDetail &&
|
|
2798
|
+
tile._desiredFrame !== frameState.frameNumber;
|
|
2711
2799
|
if (tile._contentState !== Cesium3DTileContentState.LOADING) {
|
|
2712
2800
|
// No longer fetching from host, don't need to track it anymore. Gets marked as LOADING in Cesium3DTile::requestContent().
|
|
2713
2801
|
++removeCount;
|
|
2714
2802
|
continue;
|
|
2715
|
-
} else if (outOfView) {
|
|
2803
|
+
} else if (outOfView || noLongerDesired) {
|
|
2716
2804
|
// RequestScheduler will take care of cancelling it
|
|
2717
2805
|
tile.cancelRequests();
|
|
2718
2806
|
++removeCount;
|
|
@@ -2736,7 +2824,13 @@ function cancelOutOfViewRequests(tileset, frameState) {
|
|
|
2736
2824
|
function requestTiles(tileset) {
|
|
2737
2825
|
const requestedTiles = tileset._requestedTiles;
|
|
2738
2826
|
requestedTiles.sort(sortTilesByPriority);
|
|
2739
|
-
|
|
2827
|
+
const availableRequests = Math.max(
|
|
2828
|
+
0,
|
|
2829
|
+
tileset.maximumSimultaneousTileRequests -
|
|
2830
|
+
tileset._requestedTilesInFlight.length,
|
|
2831
|
+
);
|
|
2832
|
+
const requestCount = Math.min(requestedTiles.length, availableRequests);
|
|
2833
|
+
for (let i = 0; i < requestCount; ++i) {
|
|
2740
2834
|
requestContent(tileset, requestedTiles[i]);
|
|
2741
2835
|
}
|
|
2742
2836
|
}
|
|
@@ -2915,6 +3009,115 @@ function decreaseScreenSpaceError(tileset) {
|
|
|
2915
3009
|
);
|
|
2916
3010
|
}
|
|
2917
3011
|
|
|
3012
|
+
const uniformLevelScratchUp = new Cartesian3();
|
|
3013
|
+
const uniformLevelScratchRay = new Ray();
|
|
3014
|
+
|
|
3015
|
+
/**
|
|
3016
|
+
* Compute the shared reference distance and engagement used by uniform-level SSE.
|
|
3017
|
+
* @private
|
|
3018
|
+
* @param {Cesium3DTileset} tileset
|
|
3019
|
+
* @param {FrameState} frameState
|
|
3020
|
+
*/
|
|
3021
|
+
function updateUniformLevelState(tileset, frameState) {
|
|
3022
|
+
const state = tileset._uniformLevelState;
|
|
3023
|
+
if (tileset._uniformLevelFrameNumber !== frameState.frameNumber) {
|
|
3024
|
+
tileset._uniformLevelFrameNumber = frameState.frameNumber;
|
|
3025
|
+
tileset._nearestTileDistanceLastFrame =
|
|
3026
|
+
tileset._nearestTileDistanceThisFrame;
|
|
3027
|
+
tileset._nearestTileDistanceThisFrame = undefined;
|
|
3028
|
+
}
|
|
3029
|
+
state.active = false;
|
|
3030
|
+
|
|
3031
|
+
const mode = tileset._uniformLevelMode;
|
|
3032
|
+
if (!defined(mode) || mode.enabled !== true) {
|
|
3033
|
+
state.referenceDistance = undefined;
|
|
3034
|
+
return;
|
|
3035
|
+
}
|
|
3036
|
+
|
|
3037
|
+
const camera = frameState.camera;
|
|
3038
|
+
const alignment = CesiumMath.clamp(
|
|
3039
|
+
-Cartesian3.dot(
|
|
3040
|
+
Cartesian3.normalize(camera.positionWC, uniformLevelScratchUp),
|
|
3041
|
+
camera.directionWC,
|
|
3042
|
+
),
|
|
3043
|
+
0.0,
|
|
3044
|
+
1.0,
|
|
3045
|
+
);
|
|
3046
|
+
|
|
3047
|
+
let engage = 1.0;
|
|
3048
|
+
const pitchRange = mode.pitchRangeDegrees;
|
|
3049
|
+
if (defined(pitchRange) && pitchRange !== null) {
|
|
3050
|
+
const fullAlignment = Math.sin(
|
|
3051
|
+
CesiumMath.toRadians(Math.abs(pitchRange[0])),
|
|
3052
|
+
);
|
|
3053
|
+
const noneAlignment = Math.sin(
|
|
3054
|
+
CesiumMath.toRadians(Math.abs(pitchRange[1])),
|
|
3055
|
+
);
|
|
3056
|
+
const alignmentRange = Math.max(fullAlignment - noneAlignment, 1e-6);
|
|
3057
|
+
let interpolation = (alignment - noneAlignment) / alignmentRange;
|
|
3058
|
+
interpolation = CesiumMath.clamp(interpolation, 0.0, 1.0);
|
|
3059
|
+
engage = interpolation * interpolation * (3.0 - 2.0 * interpolation);
|
|
3060
|
+
}
|
|
3061
|
+
if (engage <= 0.0) {
|
|
3062
|
+
return;
|
|
3063
|
+
}
|
|
3064
|
+
|
|
3065
|
+
let referenceDistance;
|
|
3066
|
+
const nearestDistance = tileset._nearestTileDistanceLastFrame;
|
|
3067
|
+
if (mode.reference === "nearest") {
|
|
3068
|
+
referenceDistance = nearestDistance;
|
|
3069
|
+
} else if (frameState.mode === SceneMode.COLUMBUS_VIEW) {
|
|
3070
|
+
const directionX = camera.directionWC.x;
|
|
3071
|
+
if (directionX !== 0.0) {
|
|
3072
|
+
const scalar = -camera.positionWC.x / directionX;
|
|
3073
|
+
referenceDistance = scalar > 0.0 ? scalar : undefined;
|
|
3074
|
+
}
|
|
3075
|
+
} else {
|
|
3076
|
+
Cartesian3.clone(camera.positionWC, uniformLevelScratchRay.origin);
|
|
3077
|
+
Cartesian3.clone(camera.directionWC, uniformLevelScratchRay.direction);
|
|
3078
|
+
const intersection = IntersectionTests.rayEllipsoid(
|
|
3079
|
+
uniformLevelScratchRay,
|
|
3080
|
+
tileset.ellipsoid,
|
|
3081
|
+
);
|
|
3082
|
+
referenceDistance = defined(intersection) ? intersection.start : undefined;
|
|
3083
|
+
}
|
|
3084
|
+
|
|
3085
|
+
if (!defined(referenceDistance) && defined(nearestDistance)) {
|
|
3086
|
+
referenceDistance = nearestDistance;
|
|
3087
|
+
}
|
|
3088
|
+
if (
|
|
3089
|
+
defined(referenceDistance) &&
|
|
3090
|
+
defined(nearestDistance) &&
|
|
3091
|
+
nearestDistance > 0.0
|
|
3092
|
+
) {
|
|
3093
|
+
referenceDistance = Math.min(referenceDistance, 8.0 * nearestDistance);
|
|
3094
|
+
}
|
|
3095
|
+
if (!defined(referenceDistance) || referenceDistance <= 0.0) {
|
|
3096
|
+
return;
|
|
3097
|
+
}
|
|
3098
|
+
|
|
3099
|
+
const previous = state.referenceDistance;
|
|
3100
|
+
if (defined(previous) && previous > 0.0) {
|
|
3101
|
+
const ratio = referenceDistance / previous;
|
|
3102
|
+
if (ratio >= 0.5 && ratio <= 2.0) {
|
|
3103
|
+
referenceDistance = previous + 0.25 * (referenceDistance - previous);
|
|
3104
|
+
}
|
|
3105
|
+
}
|
|
3106
|
+
|
|
3107
|
+
const maxDeviationLevels = CesiumMath.clamp(
|
|
3108
|
+
mode.maxDeviationLevels ?? 3,
|
|
3109
|
+
0,
|
|
3110
|
+
10,
|
|
3111
|
+
);
|
|
3112
|
+
const maxCoarsenLevels = CesiumMath.clamp(mode.maxCoarsenLevels ?? 1, 0, 10);
|
|
3113
|
+
|
|
3114
|
+
state.referenceDistance = referenceDistance;
|
|
3115
|
+
state.engage = engage;
|
|
3116
|
+
state.deviationFactor = 2 ** maxDeviationLevels;
|
|
3117
|
+
state.coarsenFactor = 2 ** maxCoarsenLevels;
|
|
3118
|
+
state.active = true;
|
|
3119
|
+
}
|
|
3120
|
+
|
|
2918
3121
|
const scratchCartesian = new Cartesian3();
|
|
2919
3122
|
|
|
2920
3123
|
const stringOptions = {
|
|
@@ -3393,6 +3596,8 @@ function update(tileset, frameState, passStatistics, passOptions) {
|
|
|
3393
3596
|
// Update any tracked min max values
|
|
3394
3597
|
resetMinimumMaximum(tileset);
|
|
3395
3598
|
|
|
3599
|
+
updateUniformLevelState(tileset, frameState);
|
|
3600
|
+
|
|
3396
3601
|
detectModelMatrixChanged(tileset, frameState);
|
|
3397
3602
|
tileset._cullRequestsWhileMoving =
|
|
3398
3603
|
tileset.cullRequestsWhileMoving && !tileset._modelMatrixChanged;
|
|
@@ -3477,7 +3682,7 @@ Cesium3DTileset.prototype.getTraversal = function (passOptions) {
|
|
|
3477
3682
|
};
|
|
3478
3683
|
|
|
3479
3684
|
/**
|
|
3480
|
-
* @
|
|
3685
|
+
* @ignore
|
|
3481
3686
|
* @param {FrameState} frameState
|
|
3482
3687
|
*/
|
|
3483
3688
|
Cesium3DTileset.prototype.update = function (frameState) {
|
|
@@ -3485,7 +3690,7 @@ Cesium3DTileset.prototype.update = function (frameState) {
|
|
|
3485
3690
|
};
|
|
3486
3691
|
|
|
3487
3692
|
/**
|
|
3488
|
-
* @
|
|
3693
|
+
* @ignore
|
|
3489
3694
|
* @param {FrameState} frameState
|
|
3490
3695
|
* @param {object} tilesetPassState
|
|
3491
3696
|
*/
|
|
@@ -3670,11 +3875,11 @@ Cesium3DTileset.supportedExtensions = {
|
|
|
3670
3875
|
"3DTILES_metadata": true,
|
|
3671
3876
|
"3DTILES_implicit_tiling": true,
|
|
3672
3877
|
"3DTILES_content_gltf": true,
|
|
3878
|
+
"3DTILES_content_gltf_vector": true,
|
|
3673
3879
|
"3DTILES_multiple_contents": true,
|
|
3674
3880
|
"3DTILES_bounding_volume_S2": true,
|
|
3675
3881
|
"3DTILES_batch_table_hierarchy": true,
|
|
3676
3882
|
"3DTILES_draco_point_compression": true,
|
|
3677
|
-
CESIUM_mesh_vector: true,
|
|
3678
3883
|
MAXAR_content_geojson: true,
|
|
3679
3884
|
};
|
|
3680
3885
|
|
|
@@ -130,6 +130,9 @@ Cesium3DTilesetTraversal.touchTile = function (tile, frameState) {
|
|
|
130
130
|
*/
|
|
131
131
|
Cesium3DTilesetTraversal.loadTile = function (tile, frameState) {
|
|
132
132
|
const { tileset } = tile;
|
|
133
|
+
if (tileset.immediatelyLoadDesiredLevelOfDetail) {
|
|
134
|
+
tile._desiredFrame = frameState.frameNumber;
|
|
135
|
+
}
|
|
133
136
|
if (
|
|
134
137
|
tile._requestedFrame === frameState.frameNumber ||
|
|
135
138
|
(!tile.hasUnloadedRenderableContent && !tile.contentExpired)
|
|
@@ -189,6 +192,17 @@ function isOnScreenLongEnough(tile, frameState) {
|
|
|
189
192
|
*/
|
|
190
193
|
Cesium3DTilesetTraversal.updateTile = function (tile, frameState) {
|
|
191
194
|
updateTileVisibility(tile, frameState);
|
|
195
|
+
const uniformMode = tile.tileset.uniformLevelMode;
|
|
196
|
+
if (
|
|
197
|
+
defined(uniformMode) &&
|
|
198
|
+
uniformMode.enabled === true &&
|
|
199
|
+
defined(tile._distanceToCamera)
|
|
200
|
+
) {
|
|
201
|
+
const nearest = tile.tileset._nearestTileDistanceThisFrame;
|
|
202
|
+
if (!defined(nearest) || tile._distanceToCamera < nearest) {
|
|
203
|
+
tile.tileset._nearestTileDistanceThisFrame = tile._distanceToCamera;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
192
206
|
tile.updateExpiration();
|
|
193
207
|
|
|
194
208
|
tile._wasMinPriorityChild = false;
|
|
@@ -545,8 +545,8 @@ ClippingPlaneCollection.prototype.update = function (frameState) {
|
|
|
545
545
|
}
|
|
546
546
|
if (!this._multipleDirtyPlanes) {
|
|
547
547
|
// partial updates possible
|
|
548
|
-
let offsetX
|
|
549
|
-
let offsetY
|
|
548
|
+
let offsetX;
|
|
549
|
+
let offsetY;
|
|
550
550
|
if (useFloatTexture) {
|
|
551
551
|
offsetY = Math.floor(dirtyIndex / clippingPlanesTexture.width);
|
|
552
552
|
offsetX = Math.floor(dirtyIndex - offsetY * clippingPlanesTexture.width);
|
|
@@ -605,7 +605,7 @@ const scratchMatrix = new Matrix4();
|
|
|
605
605
|
const scratchPlane = new Plane(Cartesian3.UNIT_X, 0.0);
|
|
606
606
|
/**
|
|
607
607
|
* Determines the type intersection with the planes of this ClippingPlaneCollection instance and the specified {@link TileBoundingVolume}.
|
|
608
|
-
* @
|
|
608
|
+
* @ignore
|
|
609
609
|
*
|
|
610
610
|
* @param {object} tileBoundingVolume The volume to determine the intersection with the planes.
|
|
611
611
|
* @param {Matrix4} [transform] An optional, additional matrix to transform the plane to world coordinates.
|
|
@@ -656,7 +656,7 @@ ClippingPlaneCollection.prototype.computeIntersectionWithBoundingVolume =
|
|
|
656
656
|
* @param {ClippingPlaneCollection} [clippingPlaneCollection] A ClippingPlaneCollection (or undefined) being attached to an object
|
|
657
657
|
* @param {object} owner An Object that should receive the new ClippingPlaneCollection
|
|
658
658
|
* @param {string} key The Key for the Object to reference the ClippingPlaneCollection
|
|
659
|
-
* @
|
|
659
|
+
* @ignore
|
|
660
660
|
*/
|
|
661
661
|
ClippingPlaneCollection.setOwner = function (
|
|
662
662
|
clippingPlaneCollection,
|
|
@@ -84,6 +84,7 @@ function ClippingPolygon(options) {
|
|
|
84
84
|
*
|
|
85
85
|
* @param {Cartesian3[]|undefined} input The input array
|
|
86
86
|
* @returns {Cartesian3[]|undefined} The copy
|
|
87
|
+
* @ignore
|
|
87
88
|
*/
|
|
88
89
|
function copyArrayCartesian3(input) {
|
|
89
90
|
if (!defined(input)) {
|
|
@@ -110,6 +111,7 @@ function copyArrayCartesian3(input) {
|
|
|
110
111
|
* @param {Cartesian3[]|undefined} a The first array
|
|
111
112
|
* @param {Cartesian3[]|undefined} b The second array
|
|
112
113
|
* @returns {boolean} Whether the arrays are equal
|
|
114
|
+
* @ignore
|
|
113
115
|
*/
|
|
114
116
|
function equalsArrayCartesian3(a, b) {
|
|
115
117
|
if (!defined(a) && !defined(b)) {
|
|
@@ -897,7 +897,7 @@ const scratchRectangleIntersection = new Rectangle();
|
|
|
897
897
|
const scratchRectanglePolygon = new Rectangle();
|
|
898
898
|
/**
|
|
899
899
|
* Determines the type intersection with the polygons of this ClippingPolygonCollection instance and the specified {@link TileBoundingVolume}.
|
|
900
|
-
* @
|
|
900
|
+
* @ignore
|
|
901
901
|
*
|
|
902
902
|
* @param {object} tileBoundingVolume The volume to determine the intersection with the polygons.
|
|
903
903
|
* @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid on which the bounding volumes are defined.
|
|
@@ -963,7 +963,7 @@ ClippingPolygonCollection.prototype.computeIntersectionWithBoundingVolume =
|
|
|
963
963
|
* @param {ClippingPolygonCollection} [clippingPolygonsCollection] A ClippingPolygonCollection (or undefined) being attached to an object
|
|
964
964
|
* @param {object} owner An Object that should receive the new ClippingPolygonCollection
|
|
965
965
|
* @param {string} key The Key for the Object to reference the ClippingPolygonCollection
|
|
966
|
-
* @
|
|
966
|
+
* @ignore
|
|
967
967
|
*/
|
|
968
968
|
ClippingPolygonCollection.setOwner = function (
|
|
969
969
|
clippingPolygonsCollection,
|