@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
package/Source/Scene/Camera.js
CHANGED
|
@@ -3,6 +3,7 @@ import Cartesian2 from "../Core/Cartesian2.js";
|
|
|
3
3
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
4
4
|
import Cartesian4 from "../Core/Cartesian4.js";
|
|
5
5
|
import Cartographic from "../Core/Cartographic.js";
|
|
6
|
+
import Check from "../Core/Check.js";
|
|
6
7
|
import Frozen from "../Core/Frozen.js";
|
|
7
8
|
import defined from "../Core/defined.js";
|
|
8
9
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
@@ -26,6 +27,7 @@ import Ray from "../Core/Ray.js";
|
|
|
26
27
|
import Rectangle from "../Core/Rectangle.js";
|
|
27
28
|
import Transforms from "../Core/Transforms.js";
|
|
28
29
|
import CameraFlightPath from "./CameraFlightPath.js";
|
|
30
|
+
import ColumbusWorlds from "./ColumbusWorlds.js";
|
|
29
31
|
import MapMode2D from "./MapMode2D.js";
|
|
30
32
|
import SceneMode from "./SceneMode.js";
|
|
31
33
|
|
|
@@ -537,6 +539,18 @@ function convertTransformForColumbusView(camera) {
|
|
|
537
539
|
camera._transform,
|
|
538
540
|
camera._actualTransform,
|
|
539
541
|
);
|
|
542
|
+
|
|
543
|
+
if (camera._scene.columbusRepeatWorlds === true) {
|
|
544
|
+
// Columbus repeat worlds: anchor the converted reference frame on the
|
|
545
|
+
// world copy nearest the camera (element [13] is the translation's
|
|
546
|
+
// map-u component in the column-major matrix) so the frame, and offsets
|
|
547
|
+
// within it, stay continuous with the camera's current copy.
|
|
548
|
+
camera._actualTransform[13] = ColumbusWorlds.nearestWorldU(
|
|
549
|
+
camera._positionWC.y,
|
|
550
|
+
camera._actualTransform[13],
|
|
551
|
+
camera._projection,
|
|
552
|
+
);
|
|
553
|
+
}
|
|
540
554
|
}
|
|
541
555
|
|
|
542
556
|
const scratchCartographic = new Cartographic();
|
|
@@ -752,6 +766,18 @@ function updateMembers(camera) {
|
|
|
752
766
|
}
|
|
753
767
|
|
|
754
768
|
camera._projection.unproject(positionENU, camera._positionCartographic);
|
|
769
|
+
|
|
770
|
+
if (
|
|
771
|
+
(mode === SceneMode.SCENE2D || mode === SceneMode.COLUMBUS_VIEW) &&
|
|
772
|
+
camera._scene.columbusRepeatWorlds === true
|
|
773
|
+
) {
|
|
774
|
+
// Repeat worlds: the camera may sit on any world copy, which unprojects
|
|
775
|
+
// to a longitude outside [-180°, 180°]; wrap it so rectangle
|
|
776
|
+
// containment checks see the equivalent primary point.
|
|
777
|
+
camera._positionCartographic.longitude = CesiumMath.negativePiToPi(
|
|
778
|
+
camera._positionCartographic.longitude,
|
|
779
|
+
);
|
|
780
|
+
}
|
|
755
781
|
}
|
|
756
782
|
}
|
|
757
783
|
|
|
@@ -1315,6 +1341,15 @@ function setViewCV(camera, position, hpr, convert) {
|
|
|
1315
1341
|
);
|
|
1316
1342
|
position = projection.project(cartographic, scratchSetViewCartesian);
|
|
1317
1343
|
}
|
|
1344
|
+
if (camera._scene.columbusRepeatWorlds === true) {
|
|
1345
|
+
// Columbus repeat worlds: keep the view continuous with the camera's
|
|
1346
|
+
// current world copy instead of snapping back to the primary world.
|
|
1347
|
+
position.x = ColumbusWorlds.nearestWorldU(
|
|
1348
|
+
camera.positionWC.y,
|
|
1349
|
+
position.x,
|
|
1350
|
+
camera._projection,
|
|
1351
|
+
);
|
|
1352
|
+
}
|
|
1318
1353
|
Cartesian3.clone(position, camera.position);
|
|
1319
1354
|
}
|
|
1320
1355
|
hpr.heading = hpr.heading - CesiumMath.PI_OVER_TWO;
|
|
@@ -1353,6 +1388,16 @@ function setView2D(camera, position, hpr, convert) {
|
|
|
1353
1388
|
|
|
1354
1389
|
Cartesian2.clone(position, camera.position);
|
|
1355
1390
|
|
|
1391
|
+
if (camera._scene.columbusRepeatWorlds === true) {
|
|
1392
|
+
// Repeat worlds: keep the destination on the camera's current world copy
|
|
1393
|
+
// instead of snapping the view back to the primary world.
|
|
1394
|
+
camera.position.x = ColumbusWorlds.nearestWorldU(
|
|
1395
|
+
camera.positionWC.y,
|
|
1396
|
+
camera.position.x,
|
|
1397
|
+
camera._projection,
|
|
1398
|
+
);
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1356
1401
|
const newLeft = -position.z * 0.5;
|
|
1357
1402
|
const newRight = -newLeft;
|
|
1358
1403
|
|
|
@@ -2356,7 +2401,7 @@ const scratchLookAtHeadingPitchRangeQuaternion1 = new Quaternion();
|
|
|
2356
2401
|
const scratchLookAtHeadingPitchRangeQuaternion2 = new Quaternion();
|
|
2357
2402
|
const scratchHeadingPitchRangeMatrix3 = new Matrix3();
|
|
2358
2403
|
|
|
2359
|
-
function offsetFromHeadingPitchRange(heading, pitch, range) {
|
|
2404
|
+
function offsetFromHeadingPitchRange(heading, pitch, range, result) {
|
|
2360
2405
|
pitch = CesiumMath.clamp(
|
|
2361
2406
|
pitch,
|
|
2362
2407
|
-CesiumMath.PI_OVER_TWO,
|
|
@@ -2380,10 +2425,7 @@ function offsetFromHeadingPitchRange(heading, pitch, range) {
|
|
|
2380
2425
|
scratchHeadingPitchRangeMatrix3,
|
|
2381
2426
|
);
|
|
2382
2427
|
|
|
2383
|
-
const offset = Cartesian3.clone(
|
|
2384
|
-
Cartesian3.UNIT_X,
|
|
2385
|
-
scratchLookAtHeadingPitchRangeOffset,
|
|
2386
|
-
);
|
|
2428
|
+
const offset = Cartesian3.clone(Cartesian3.UNIT_X, result);
|
|
2387
2429
|
Matrix3.multiplyByVector(rotMatrix, offset, offset);
|
|
2388
2430
|
Cartesian3.negate(offset, offset);
|
|
2389
2431
|
Cartesian3.multiplyByScalar(offset, range, offset);
|
|
@@ -2441,6 +2483,7 @@ Camera.prototype.lookAtTransform = function (transform, offset) {
|
|
|
2441
2483
|
offset.heading,
|
|
2442
2484
|
offset.pitch,
|
|
2443
2485
|
offset.range,
|
|
2486
|
+
scratchLookAtHeadingPitchRangeOffset,
|
|
2444
2487
|
);
|
|
2445
2488
|
} else {
|
|
2446
2489
|
cartesianOffset = offset;
|
|
@@ -2492,6 +2535,72 @@ Camera.prototype.lookAtTransform = function (transform, offset) {
|
|
|
2492
2535
|
this._adjustOrthographicFrustum(true);
|
|
2493
2536
|
};
|
|
2494
2537
|
|
|
2538
|
+
const scratchLookAtWorldPositionTransform = new Matrix4();
|
|
2539
|
+
const scratchLookAtWorldPositionDirection = new Cartesian3();
|
|
2540
|
+
const scratchLookAtWorldPositionWorldUp = new Cartesian3();
|
|
2541
|
+
const scratchLookAtWorldPositionRight = new Cartesian3();
|
|
2542
|
+
|
|
2543
|
+
/**
|
|
2544
|
+
* Sets the camera orientation to look at a target position in world coordinates. The camera's up vector will be oriented to the world up vector at the target position.
|
|
2545
|
+
* If the camera is at the target position, the camera will be oriented to the world up vector at the target position.
|
|
2546
|
+
* @param {Cartesian3} target The target position in world coordinates.
|
|
2547
|
+
* @param {Ellipsoid} [ellipsoid=Ellipsoid.default] The ellipsoid to use for determining the world up.
|
|
2548
|
+
*/
|
|
2549
|
+
Camera.prototype.lookAtWorldPosition = function (
|
|
2550
|
+
target,
|
|
2551
|
+
ellipsoid = Ellipsoid.default,
|
|
2552
|
+
) {
|
|
2553
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2554
|
+
Check.typeOf.object("target", target);
|
|
2555
|
+
Check.typeOf.object("ellipsoid", ellipsoid);
|
|
2556
|
+
//>>includeEnd('debug');
|
|
2557
|
+
|
|
2558
|
+
const transform = Matrix4.clone(
|
|
2559
|
+
this._transform,
|
|
2560
|
+
scratchLookAtWorldPositionTransform,
|
|
2561
|
+
);
|
|
2562
|
+
|
|
2563
|
+
this._setTransform(Matrix4.IDENTITY);
|
|
2564
|
+
|
|
2565
|
+
// Get direction to look at target
|
|
2566
|
+
let direction = Cartesian3.subtract(
|
|
2567
|
+
target,
|
|
2568
|
+
this.positionWC,
|
|
2569
|
+
scratchLookAtWorldPositionDirection,
|
|
2570
|
+
);
|
|
2571
|
+
|
|
2572
|
+
// If the camera is at the target position, we can't look at it, but we should still continue to re-orient the camera to the world up vector at the target position.
|
|
2573
|
+
if (Cartesian3.magnitudeSquared(direction) < CesiumMath.EPSILON8) {
|
|
2574
|
+
direction = Cartesian3.clone(
|
|
2575
|
+
this.directionWC,
|
|
2576
|
+
scratchLookAtWorldPositionDirection,
|
|
2577
|
+
);
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
direction = Cartesian3.normalize(direction, this.direction);
|
|
2581
|
+
|
|
2582
|
+
// Orient the camera to the world up vector at the target position
|
|
2583
|
+
const worldUp = ellipsoid.geodeticSurfaceNormal(
|
|
2584
|
+
target,
|
|
2585
|
+
scratchLookAtWorldPositionWorldUp,
|
|
2586
|
+
);
|
|
2587
|
+
|
|
2588
|
+
let right = Cartesian3.cross(
|
|
2589
|
+
direction,
|
|
2590
|
+
worldUp,
|
|
2591
|
+
scratchLookAtWorldPositionRight,
|
|
2592
|
+
);
|
|
2593
|
+
if (Cartesian3.magnitudeSquared(right) < CesiumMath.EPSILON8) {
|
|
2594
|
+
right = Cartesian3.clone(this.rightWC, scratchLookAtWorldPositionRight);
|
|
2595
|
+
}
|
|
2596
|
+
Cartesian3.normalize(right, this.right);
|
|
2597
|
+
|
|
2598
|
+
const up = Cartesian3.cross(right, direction, this.up);
|
|
2599
|
+
Cartesian3.normalize(up, this.up);
|
|
2600
|
+
|
|
2601
|
+
this._setTransform(transform);
|
|
2602
|
+
};
|
|
2603
|
+
|
|
2495
2604
|
const viewRectangle3DCartographic1 = new Cartographic();
|
|
2496
2605
|
const viewRectangle3DCartographic2 = new Cartographic();
|
|
2497
2606
|
const viewRectangle3DNorthEast = new Cartesian3();
|
|
@@ -2874,13 +2983,19 @@ function pickMapColumbusView(camera, windowPosition, projection, result) {
|
|
|
2874
2983
|
|
|
2875
2984
|
if (
|
|
2876
2985
|
cart.latitude < -CesiumMath.PI_OVER_TWO ||
|
|
2877
|
-
cart.latitude > CesiumMath.PI_OVER_TWO
|
|
2878
|
-
cart.longitude < -Math.PI ||
|
|
2879
|
-
cart.longitude > Math.PI
|
|
2986
|
+
cart.latitude > CesiumMath.PI_OVER_TWO
|
|
2880
2987
|
) {
|
|
2881
2988
|
return undefined;
|
|
2882
2989
|
}
|
|
2883
2990
|
|
|
2991
|
+
// The longitude may fall outside [-PI, PI] when Columbus repeat worlds are
|
|
2992
|
+
// enabled and the picked point is on a translated world copy. Accept it:
|
|
2993
|
+
// the returned ECEF position is the equivalent primary-world point, so
|
|
2994
|
+
// picks on world copies succeed instead of returning undefined. Callers
|
|
2995
|
+
// that need to know which copy was picked should use
|
|
2996
|
+
// Globe.pickWorldCoordinates or Scene.pickPosition, which operate in scene
|
|
2997
|
+
// (map-plane) world coordinates.
|
|
2998
|
+
|
|
2884
2999
|
return projection.ellipsoid.cartographicToCartesian(cart, result);
|
|
2885
3000
|
}
|
|
2886
3001
|
|
|
@@ -3190,6 +3305,19 @@ function createAnimationCV(camera, duration) {
|
|
|
3190
3305
|
|
|
3191
3306
|
position = camera.cameraToWorldCoordinatesPoint(camera.position, posScratch);
|
|
3192
3307
|
|
|
3308
|
+
if (camera._scene.columbusRepeatWorlds === true) {
|
|
3309
|
+
// Columbus repeat worlds: the camera may sit on any world copy; wrapping
|
|
3310
|
+
// its map-u coordinate into the primary world is visually identical (the
|
|
3311
|
+
// map repeats) and keeps the bounds checks below meaningful.
|
|
3312
|
+
const worldWidth = ColumbusWorlds.getWorldWidth(camera._projection);
|
|
3313
|
+
position.y =
|
|
3314
|
+
CesiumMath.mod(position.y + worldWidth * 0.5, worldWidth) -
|
|
3315
|
+
worldWidth * 0.5;
|
|
3316
|
+
center.y =
|
|
3317
|
+
CesiumMath.mod(center.y + worldWidth * 0.5, worldWidth) -
|
|
3318
|
+
worldWidth * 0.5;
|
|
3319
|
+
}
|
|
3320
|
+
|
|
3193
3321
|
const tanPhi = Math.tan(camera.frustum.fovy * 0.5);
|
|
3194
3322
|
const tanTheta = camera.frustum.aspectRatio * tanPhi;
|
|
3195
3323
|
const distToC = Cartesian3.magnitude(
|
|
@@ -3621,6 +3749,7 @@ Camera.prototype.flyToBoundingSphere = function (boundingSphere, options) {
|
|
|
3621
3749
|
offset.heading,
|
|
3622
3750
|
offset.pitch,
|
|
3623
3751
|
offset.range,
|
|
3752
|
+
scratchflyToBoundingSphereDestination,
|
|
3624
3753
|
);
|
|
3625
3754
|
}
|
|
3626
3755
|
|
|
@@ -8,12 +8,29 @@ import ScreenSpaceEventHandler from "../Core/ScreenSpaceEventHandler.js";
|
|
|
8
8
|
import ScreenSpaceEventType from "../Core/ScreenSpaceEventType.js";
|
|
9
9
|
import CameraEventType from "./CameraEventType.js";
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const keyboardModifierCombinations = [
|
|
12
|
+
KeyboardEventModifier.SHIFT,
|
|
13
|
+
KeyboardEventModifier.CTRL,
|
|
14
|
+
KeyboardEventModifier.ALT,
|
|
15
|
+
[KeyboardEventModifier.SHIFT, KeyboardEventModifier.CTRL],
|
|
16
|
+
[KeyboardEventModifier.SHIFT, KeyboardEventModifier.ALT],
|
|
17
|
+
[KeyboardEventModifier.CTRL, KeyboardEventModifier.ALT],
|
|
18
|
+
[
|
|
19
|
+
KeyboardEventModifier.SHIFT,
|
|
20
|
+
KeyboardEventModifier.CTRL,
|
|
21
|
+
KeyboardEventModifier.ALT,
|
|
22
|
+
],
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
function getKey(type, modifiers) {
|
|
26
|
+
if (!defined(modifiers)) {
|
|
27
|
+
return `${type}`;
|
|
15
28
|
}
|
|
16
|
-
|
|
29
|
+
|
|
30
|
+
const modifierList = Array.isArray(modifiers)
|
|
31
|
+
? modifiers.toSorted()
|
|
32
|
+
: [modifiers];
|
|
33
|
+
return `${type}+${modifierList.join("+")}`;
|
|
17
34
|
}
|
|
18
35
|
|
|
19
36
|
function clonePinchMovement(pinchMovement, result) {
|
|
@@ -219,7 +236,7 @@ function listenMouseButtonDownUp(aggregator, modifier, type) {
|
|
|
219
236
|
aggregator._eventHandler.setInputAction(
|
|
220
237
|
function () {
|
|
221
238
|
cancelMouseDownAction(getKey(type, undefined), aggregator);
|
|
222
|
-
for (const modifier of
|
|
239
|
+
for (const modifier of keyboardModifierCombinations) {
|
|
223
240
|
const cancelKey = getKey(type, modifier);
|
|
224
241
|
cancelMouseDownAction(cancelKey, aggregator);
|
|
225
242
|
}
|
|
@@ -382,18 +399,13 @@ function CameraEventAggregator(canvas) {
|
|
|
382
399
|
listenMouseButtonDownUp(this, undefined, CameraEventType.MIDDLE_DRAG);
|
|
383
400
|
listenMouseMove(this, undefined);
|
|
384
401
|
|
|
385
|
-
for (const
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
listenMouseButtonDownUp(this, modifier, CameraEventType.RIGHT_DRAG);
|
|
393
|
-
listenMouseButtonDownUp(this, modifier, CameraEventType.MIDDLE_DRAG);
|
|
394
|
-
listenMouseMove(this, modifier);
|
|
395
|
-
}
|
|
396
|
-
}
|
|
402
|
+
for (const modifiers of keyboardModifierCombinations) {
|
|
403
|
+
listenToWheel(this, modifiers);
|
|
404
|
+
listenToPinch(this, modifiers, canvas);
|
|
405
|
+
listenMouseButtonDownUp(this, modifiers, CameraEventType.LEFT_DRAG);
|
|
406
|
+
listenMouseButtonDownUp(this, modifiers, CameraEventType.RIGHT_DRAG);
|
|
407
|
+
listenMouseButtonDownUp(this, modifiers, CameraEventType.MIDDLE_DRAG);
|
|
408
|
+
listenMouseMove(this, modifiers);
|
|
397
409
|
}
|
|
398
410
|
}
|
|
399
411
|
|
|
@@ -8,6 +8,7 @@ import EasingFunction from "../Core/EasingFunction.js";
|
|
|
8
8
|
import CesiumMath from "../Core/Math.js";
|
|
9
9
|
import PerspectiveFrustum from "../Core/PerspectiveFrustum.js";
|
|
10
10
|
import PerspectiveOffCenterFrustum from "../Core/PerspectiveOffCenterFrustum.js";
|
|
11
|
+
import ColumbusWorlds from "./ColumbusWorlds.js";
|
|
11
12
|
import SceneMode from "./SceneMode.js";
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -436,6 +437,22 @@ CameraFlightPath.createTween = function (scene, options) {
|
|
|
436
437
|
}
|
|
437
438
|
|
|
438
439
|
const camera = scene.camera;
|
|
440
|
+
|
|
441
|
+
if (
|
|
442
|
+
(mode === SceneMode.SCENE2D || mode === SceneMode.COLUMBUS_VIEW) &&
|
|
443
|
+
scene.columbusRepeatWorlds === true
|
|
444
|
+
) {
|
|
445
|
+
// Repeat worlds: fly to the copy of the destination nearest the camera's
|
|
446
|
+
// current copy so the flight pans locally instead of crossing a full
|
|
447
|
+
// world. In local (u, v, h) coordinates, u is the x component.
|
|
448
|
+
scratchDestination.x = ColumbusWorlds.nearestWorldU(
|
|
449
|
+
camera.position.x,
|
|
450
|
+
destination.x,
|
|
451
|
+
projection,
|
|
452
|
+
);
|
|
453
|
+
destination = scratchDestination;
|
|
454
|
+
}
|
|
455
|
+
|
|
439
456
|
const transform = options.endTransform;
|
|
440
457
|
if (defined(transform)) {
|
|
441
458
|
camera._setTransform(transform);
|
|
@@ -503,6 +503,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
503
503
|
this._selectedFrame = 0;
|
|
504
504
|
this._wasSelectedLastFrame = false;
|
|
505
505
|
this._requestedFrame = 0;
|
|
506
|
+
this._desiredFrame = 0;
|
|
506
507
|
this._ancestorWithContent = undefined;
|
|
507
508
|
this._ancestorWithContentAvailable = undefined;
|
|
508
509
|
this._refines = false;
|
|
@@ -944,13 +945,34 @@ Cesium3DTile.prototype.getScreenSpaceError = function (
|
|
|
944
945
|
error = geometricError / pixelSize;
|
|
945
946
|
} else {
|
|
946
947
|
// Avoid divide by zero when viewer is inside the tile
|
|
947
|
-
const
|
|
948
|
+
const tileDistance = Math.max(this._distanceToCamera, CesiumMath.EPSILON7);
|
|
948
949
|
const sseDenominator = frustum.sseDenominator;
|
|
949
|
-
error = (geometricError * height) / (
|
|
950
|
+
error = (geometricError * height) / (tileDistance * sseDenominator);
|
|
951
|
+
const uniformLevel = tileset._uniformLevelState;
|
|
952
|
+
if (uniformLevel.active) {
|
|
953
|
+
const referenceDistance = Math.max(
|
|
954
|
+
uniformLevel.referenceDistance,
|
|
955
|
+
CesiumMath.EPSILON7,
|
|
956
|
+
);
|
|
957
|
+
const uniformError =
|
|
958
|
+
(geometricError * height) / (referenceDistance * sseDenominator);
|
|
959
|
+
const cappedUniformError = CesiumMath.clamp(
|
|
960
|
+
uniformError,
|
|
961
|
+
error / uniformLevel.coarsenFactor,
|
|
962
|
+
error * uniformLevel.deviationFactor,
|
|
963
|
+
);
|
|
964
|
+
error += (cappedUniformError - error) * uniformLevel.engage;
|
|
965
|
+
}
|
|
950
966
|
if (tileset.dynamicScreenSpaceError) {
|
|
951
967
|
const density = tileset._dynamicScreenSpaceErrorComputedDensity;
|
|
952
968
|
const factor = tileset.dynamicScreenSpaceErrorFactor;
|
|
953
|
-
|
|
969
|
+
let dynamicError = CesiumMath.fog(tileDistance, density) * factor;
|
|
970
|
+
if (uniformLevel.active) {
|
|
971
|
+
const uniformDynamicError =
|
|
972
|
+
CesiumMath.fog(uniformLevel.referenceDistance, density) * factor;
|
|
973
|
+
dynamicError +=
|
|
974
|
+
(uniformDynamicError - dynamicError) * uniformLevel.engage;
|
|
975
|
+
}
|
|
954
976
|
error -= dynamicError;
|
|
955
977
|
}
|
|
956
978
|
}
|
|
@@ -1232,6 +1254,16 @@ async function processArrayBuffer(
|
|
|
1232
1254
|
return;
|
|
1233
1255
|
}
|
|
1234
1256
|
|
|
1257
|
+
if (isEmptyTile(tile, error)) {
|
|
1258
|
+
if (expired) {
|
|
1259
|
+
tile.expireDate = undefined;
|
|
1260
|
+
}
|
|
1261
|
+
tile._content = new Empty3DTileContent(tileset, tile);
|
|
1262
|
+
markTileAsEmptyContent(tile);
|
|
1263
|
+
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1264
|
+
return tile._content;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1235
1267
|
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1236
1268
|
throw error;
|
|
1237
1269
|
}
|
|
@@ -1256,6 +1288,7 @@ async function processArrayBuffer(
|
|
|
1256
1288
|
|
|
1257
1289
|
if (tile.isDestroyed()) {
|
|
1258
1290
|
// Tile is unloaded before the content can process
|
|
1291
|
+
destroyUnattachedContent(content);
|
|
1259
1292
|
return;
|
|
1260
1293
|
}
|
|
1261
1294
|
|
|
@@ -1264,6 +1297,9 @@ async function processArrayBuffer(
|
|
|
1264
1297
|
}
|
|
1265
1298
|
|
|
1266
1299
|
tile._content = content;
|
|
1300
|
+
if (content instanceof Empty3DTileContent) {
|
|
1301
|
+
markTileAsEmptyContent(tile);
|
|
1302
|
+
}
|
|
1267
1303
|
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1268
1304
|
|
|
1269
1305
|
return content;
|
|
@@ -1316,6 +1352,49 @@ function requestSingleContent(tile) {
|
|
|
1316
1352
|
return processArrayBuffer(tile, tileset, request, expired, promise);
|
|
1317
1353
|
}
|
|
1318
1354
|
|
|
1355
|
+
/**
|
|
1356
|
+
* Determines whether a tile load error should be interpreted as "no content"
|
|
1357
|
+
* (empty tile) rather than a true failure. A missing tile policy specifies
|
|
1358
|
+
* HTTP Status Codes to be interpreted as "no content", allowing tiles to be
|
|
1359
|
+
* statically hosted without generating and serving unnecessary content for
|
|
1360
|
+
* empty tiles.
|
|
1361
|
+
* @ignore
|
|
1362
|
+
*/
|
|
1363
|
+
function isEmptyTile(tile, error) {
|
|
1364
|
+
const tileset = tile._tileset;
|
|
1365
|
+
const policy = tileset?._runtimeContentCodec?.missingTilePolicy;
|
|
1366
|
+
if (!defined(policy)) {
|
|
1367
|
+
return false;
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
if (!defined(error.statusCode)) {
|
|
1371
|
+
return false;
|
|
1372
|
+
}
|
|
1373
|
+
return policy.statusCodes.includes(error.statusCode);
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
function markTileAsEmptyContent(tile) {
|
|
1377
|
+
// These flags are mutable instance state initialized in the constructor.
|
|
1378
|
+
tile.hasEmptyContent = true;
|
|
1379
|
+
tile.hasRenderableContent = false;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
/**
|
|
1383
|
+
* Releases content that was constructed but never attached to its tile, which
|
|
1384
|
+
* happens when the tile is destroyed while the payload is still decoding. Some
|
|
1385
|
+
* content types register themselves with shared owners during construction, so
|
|
1386
|
+
* dropping the reference alone would leak.
|
|
1387
|
+
* @param {Cesium3DTileContent|undefined} content
|
|
1388
|
+
* @private
|
|
1389
|
+
*/
|
|
1390
|
+
function destroyUnattachedContent(content) {
|
|
1391
|
+
if (defined(content) && !content.isDestroyed()) {
|
|
1392
|
+
content.destroy();
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
Cesium3DTile._isEmptyTile = isEmptyTile;
|
|
1397
|
+
|
|
1319
1398
|
/**
|
|
1320
1399
|
* Given a downloaded content payload, construct a {@link Cesium3DTileContent}.
|
|
1321
1400
|
* <p>
|
|
@@ -1328,10 +1407,29 @@ function requestSingleContent(tile) {
|
|
|
1328
1407
|
* @private
|
|
1329
1408
|
*/
|
|
1330
1409
|
async function makeContent(tile, arrayBuffer) {
|
|
1410
|
+
const tileset = tile._tileset;
|
|
1411
|
+
const codec = tileset?._runtimeContentCodec;
|
|
1412
|
+
// Runtime codecs own leaf payloads. Implicit placeholder tiles first load a
|
|
1413
|
+
// subtree JSON/binary payload, which must continue through normal dispatch
|
|
1414
|
+
// so it can expand into the codec's derived content tiles.
|
|
1415
|
+
if (
|
|
1416
|
+
!defined(tile.implicitTileset) &&
|
|
1417
|
+
defined(codec) &&
|
|
1418
|
+
typeof codec.createContent === "function"
|
|
1419
|
+
) {
|
|
1420
|
+
const content = await Promise.resolve(
|
|
1421
|
+
codec.createContent(tileset, tile, tile._contentResource, arrayBuffer),
|
|
1422
|
+
);
|
|
1423
|
+
if (tile.isDestroyed()) {
|
|
1424
|
+
destroyUnattachedContent(content);
|
|
1425
|
+
return;
|
|
1426
|
+
}
|
|
1427
|
+
return content;
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1331
1430
|
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
1332
1431
|
|
|
1333
1432
|
// Vector and Geometry tile rendering do not support the skip LOD optimization.
|
|
1334
|
-
const tileset = tile._tileset;
|
|
1335
1433
|
tileset._disableSkipLevelOfDetail =
|
|
1336
1434
|
tileset._disableSkipLevelOfDetail ||
|
|
1337
1435
|
preprocessed.contentType === Cesium3DTileContentType.GEOMETRY ||
|