@cesium/engine 26.1.0 → 26.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/ThirdParty/Workers/zip-web-worker.js +586 -480
- package/Build/Workers/chunk-27FWRTJI.js +454 -0
- package/Build/Workers/chunk-2H5264K7.js +1284 -0
- package/Build/Workers/chunk-2H73KDBM.js +511 -0
- package/Build/Workers/chunk-2RGJPWQX.js +1284 -0
- package/Build/Workers/chunk-2Z4ZLVOD.js +352 -0
- package/Build/Workers/chunk-2ZKH2QZB.js +387 -0
- package/Build/Workers/chunk-36NI5E6W.js +3820 -0
- package/Build/Workers/chunk-37SW7SYS.js +778 -0
- package/Build/Workers/chunk-3GHVJ3SO.js +455 -0
- package/Build/Workers/chunk-3LB4UVPU.js +387 -0
- package/Build/Workers/chunk-3PONLKEL.js +778 -0
- package/Build/Workers/chunk-3PSS3T43.js +102 -0
- package/Build/Workers/chunk-3QR662HH.js +3820 -0
- package/Build/Workers/chunk-3SX2WYSO.js +973 -0
- package/Build/Workers/chunk-3UDN6LYX.js +476 -0
- package/Build/Workers/chunk-47MCBSXI.js +9237 -0
- package/Build/Workers/chunk-4E626OCE.js +1067 -0
- package/Build/Workers/chunk-4NW2MJKH.js +455 -0
- package/Build/Workers/chunk-52YK5BSN.js +198 -0
- package/Build/Workers/chunk-5RNAQZK6.js +9234 -0
- package/Build/Workers/chunk-5YPQBFRD.js +519 -0
- package/Build/Workers/chunk-6FHT43QR.js +140 -0
- package/Build/Workers/chunk-6FZDPMTO.js +455 -0
- package/Build/Workers/chunk-6R5X2GUA.js +1284 -0
- package/Build/Workers/chunk-7A2OGDHT.js +305 -0
- package/Build/Workers/chunk-7CGEQUM2.js +305 -0
- package/Build/Workers/chunk-7I325HV6.js +1344 -0
- package/Build/Workers/chunk-7MM3N2VE.js +1067 -0
- package/Build/Workers/chunk-7TKLTCZW.js +219 -0
- package/Build/Workers/chunk-7UUKBDH6.js +1054 -0
- package/Build/Workers/chunk-7W6DUHAB.js +693 -0
- package/Build/Workers/chunk-7XM5JK5F.js +162 -0
- package/Build/Workers/chunk-7YG3ND3P.js +454 -0
- package/Build/Workers/chunk-A62YI6S6.js +305 -0
- package/Build/Workers/chunk-A7TTWVTF.js +2719 -0
- package/Build/Workers/chunk-ACTVJHSP.js +519 -0
- package/Build/Workers/chunk-ADX3CBKD.js +9234 -0
- package/Build/Workers/chunk-AF7DTMJ7.js +398 -0
- package/Build/Workers/chunk-AJSFRY4U.js +1344 -0
- package/Build/Workers/chunk-ARZICEEP.js +301 -0
- package/Build/Workers/chunk-B3QHNA4A.js +147 -0
- package/Build/Workers/chunk-BKPQFCXH.js +511 -0
- package/Build/Workers/chunk-BSPCI2LO.js +959 -0
- package/Build/Workers/chunk-BUJWSX5S.js +301 -0
- package/Build/Workers/chunk-C7QDUNI3.js +138 -0
- package/Build/Workers/chunk-CIV5DJOQ.js +778 -0
- package/Build/Workers/chunk-CQNFIAZU.js +56 -0
- package/Build/Workers/chunk-CRCGE4J4.js +9237 -0
- package/Build/Workers/chunk-CUTRKXUQ.js +288 -0
- package/Build/Workers/chunk-D6AY775A.js +3201 -0
- package/Build/Workers/chunk-DSGLDRTI.js +278 -0
- package/Build/Workers/chunk-DZBQUULR.js +138 -0
- package/Build/Workers/chunk-DZUFEE4L.js +140 -0
- package/Build/Workers/chunk-E2NKV5YT.js +3820 -0
- package/Build/Workers/chunk-EB3Y5P3A.js +368 -0
- package/Build/Workers/chunk-ELE6SC2C.js +837 -0
- package/Build/Workers/chunk-EOWDZN5S.js +288 -0
- package/Build/Workers/chunk-ERKUET22.js +3201 -0
- package/Build/Workers/chunk-EZGQPOIG.js +162 -0
- package/Build/Workers/chunk-F2IMBMZY.js +241 -0
- package/Build/Workers/chunk-F4CSNRZO.js +219 -0
- package/Build/Workers/chunk-FBP4DUQJ.js +693 -0
- package/Build/Workers/chunk-FJWZMGOQ.js +1992 -0
- package/Build/Workers/chunk-FQ42MT7M.js +58 -0
- package/Build/Workers/chunk-FU4BGABC.js +398 -0
- package/Build/Workers/chunk-FX3VEAIU.js +2719 -0
- package/Build/Workers/chunk-GGNWQWSB.js +301 -0
- package/Build/Workers/chunk-GHXVQVUM.js +1344 -0
- package/Build/Workers/chunk-GNKXEN4C.js +682 -0
- package/Build/Workers/chunk-GVA7XQI2.js +368 -0
- package/Build/Workers/chunk-GXDHRC4J.js +1344 -0
- package/Build/Workers/chunk-GYSYP6PC.js +1067 -0
- package/Build/Workers/chunk-H2WCFXLP.js +241 -0
- package/Build/Workers/chunk-HDL4HOXZ.js +778 -0
- package/Build/Workers/chunk-HLW2ZRVK.js +368 -0
- package/Build/Workers/chunk-HT6FASOT.js +973 -0
- package/Build/Workers/chunk-I74ZH5LK.js +959 -0
- package/Build/Workers/chunk-IDVHUDZT.js +352 -0
- package/Build/Workers/chunk-IJZJMIUY.js +789 -0
- package/Build/Workers/chunk-IMBVP57H.js +44 -0
- package/Build/Workers/chunk-IOO7Z2AV.js +57 -0
- package/Build/Workers/chunk-IUIFLOYO.js +44 -0
- package/Build/Workers/chunk-J73T2VOY.js +171 -0
- package/Build/Workers/chunk-JALGQYDY.js +288 -0
- package/Build/Workers/chunk-JXYLJCTC.js +124 -0
- package/Build/Workers/chunk-K27QOAW6.js +97 -0
- package/Build/Workers/chunk-KMV25A63.js +789 -0
- package/Build/Workers/chunk-KP5QD7WU.js +693 -0
- package/Build/Workers/chunk-KZWFWJML.js +2719 -0
- package/Build/Workers/chunk-LCXRRALY.js +387 -0
- package/Build/Workers/chunk-LDRQSYBN.js +1800 -0
- package/Build/Workers/chunk-M4JZ6TSZ.js +959 -0
- package/Build/Workers/chunk-M6QKXVAU.js +1054 -0
- package/Build/Workers/chunk-MAAHFYPC.js +198 -0
- package/Build/Workers/chunk-MCJDRDJQ.js +102 -0
- package/Build/Workers/chunk-MEENMEAH.js +198 -0
- package/Build/Workers/chunk-NAWU5RF4.js +162 -0
- package/Build/Workers/chunk-NCL22ZUX.js +56 -0
- package/Build/Workers/chunk-NEFDMMLY.js +241 -0
- package/Build/Workers/chunk-NJVBJG63.js +124 -0
- package/Build/Workers/chunk-NLLCQBX3.js +73 -0
- package/Build/Workers/chunk-NSKZ6SBK.js +1483 -0
- package/Build/Workers/chunk-NXGQBQWE.js +837 -0
- package/Build/Workers/chunk-O3DKEX7Q.js +352 -0
- package/Build/Workers/chunk-O3XFXGPZ.js +476 -0
- package/Build/Workers/chunk-OA6MYL2C.js +837 -0
- package/Build/Workers/chunk-OHP4ELS7.js +198 -0
- package/Build/Workers/chunk-OZGPS7FB.js +138 -0
- package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
- package/Build/Workers/chunk-PD4GK4EM.js +57 -0
- package/Build/Workers/chunk-PEDU33QG.js +2342 -0
- package/Build/Workers/chunk-PRWUMCXF.js +682 -0
- package/Build/Workers/chunk-PVTSNNVI.js +288 -0
- package/Build/Workers/chunk-QFSSCLLZ.js +973 -0
- package/Build/Workers/chunk-QHPZH22L.js +241 -0
- package/Build/Workers/chunk-QIZDWZK6.js +301 -0
- package/Build/Workers/chunk-QV6DG2YX.js +1483 -0
- package/Build/Workers/chunk-R4K7EHOU.js +171 -0
- package/Build/Workers/chunk-R7JGHDD6.js +789 -0
- package/Build/Workers/chunk-RASQEYD4.js +1483 -0
- package/Build/Workers/chunk-RW6ITX7Q.js +3820 -0
- package/Build/Workers/chunk-RYSQVJR6.js +398 -0
- package/Build/Workers/chunk-S6RJU5NM.js +1054 -0
- package/Build/Workers/chunk-SA2A2AN5.js +2342 -0
- package/Build/Workers/chunk-SDFHDNS4.js +147 -0
- package/Build/Workers/chunk-SJYSIOEM.js +414 -0
- package/Build/Workers/chunk-SMTGMFBL.js +97 -0
- package/Build/Workers/chunk-SXSP3JHS.js +38 -0
- package/Build/Workers/chunk-TN35HP5B.js +1067 -0
- package/Build/Workers/chunk-TNWKJNUZ.js +454 -0
- package/Build/Workers/chunk-TOAF47AQ.js +102 -0
- package/Build/Workers/chunk-TQ4QCOXT.js +2719 -0
- package/Build/Workers/chunk-TSDSILQB.js +124 -0
- package/Build/Workers/chunk-U5LV3F3Z.js +1054 -0
- package/Build/Workers/chunk-UAZUP4I5.js +1992 -0
- package/Build/Workers/chunk-UF46SZEZ.js +789 -0
- package/Build/Workers/chunk-UNRTMCET.js +398 -0
- package/Build/Workers/chunk-UTB7U3O6.js +1992 -0
- package/Build/Workers/chunk-V46YGZE6.js +352 -0
- package/Build/Workers/chunk-VDGOCROW.js +57 -0
- package/Build/Workers/chunk-VFWSSBPT.js +511 -0
- package/Build/Workers/chunk-VVYMXI3I.js +1284 -0
- package/Build/Workers/chunk-VXWHPYQM.js +837 -0
- package/Build/Workers/chunk-VXYUBRSB.js +219 -0
- package/Build/Workers/chunk-VZLDLEWI.js +387 -0
- package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
- package/Build/Workers/chunk-WN3F4CVG.js +3201 -0
- package/Build/Workers/chunk-WPRUWXGV.js +693 -0
- package/Build/Workers/chunk-WTO2ERBP.js +414 -0
- package/Build/Workers/chunk-WVHMDVG4.js +959 -0
- package/Build/Workers/chunk-XCBZVTIV.js +280 -0
- package/Build/Workers/chunk-XGA23TAX.js +73 -0
- package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
- package/Build/Workers/chunk-XQH66YJC.js +147 -0
- package/Build/Workers/chunk-XTA7BXJG.js +682 -0
- package/Build/Workers/chunk-XTIDAFRS.js +476 -0
- package/Build/Workers/chunk-XUEDWBUD.js +682 -0
- package/Build/Workers/chunk-XYFLRH3H.js +124 -0
- package/Build/Workers/chunk-Y7JRTRTO.js +305 -0
- package/Build/Workers/chunk-Y7QSMDCJ.js +352 -0
- package/Build/Workers/chunk-YCB5TYTR.js +1483 -0
- package/Build/Workers/chunk-YEYOSTJX.js +219 -0
- package/Build/Workers/chunk-YGFVAGYF.js +630 -0
- package/Build/Workers/chunk-YIIACKQO.js +368 -0
- package/Build/Workers/chunk-YJGSP6PE.js +511 -0
- package/Build/Workers/chunk-Z4LR5EHE.js +454 -0
- package/Build/Workers/chunk-Z66EVE2A.js +44 -0
- package/Build/Workers/chunk-ZHIHHHTB.js +414 -0
- package/Build/Workers/chunk-ZNWHFSLE.js +171 -0
- package/Build/Workers/chunk-ZQLZG4IN.js +2342 -0
- package/Build/Workers/chunk-ZRTSMUZ2.js +414 -0
- package/Build/Workers/chunk-ZZUVT5BM.js +476 -0
- package/Build/Workers/combineGeometry.js +16 -16
- package/Build/Workers/createBoxGeometry.js +10 -10
- package/Build/Workers/createBoxOutlineGeometry.js +8 -8
- package/Build/Workers/createCircleGeometry.js +18 -18
- package/Build/Workers/createCircleOutlineGeometry.js +11 -11
- package/Build/Workers/createCoplanarPolygonGeometry.js +27 -27
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +23 -23
- package/Build/Workers/createCorridorGeometry.js +23 -25
- package/Build/Workers/createCorridorOutlineGeometry.js +21 -23
- package/Build/Workers/createCylinderGeometry.js +12 -12
- package/Build/Workers/createCylinderOutlineGeometry.js +10 -10
- package/Build/Workers/createEllipseGeometry.js +18 -18
- package/Build/Workers/createEllipseOutlineGeometry.js +11 -11
- package/Build/Workers/createEllipsoidGeometry.js +11 -11
- package/Build/Workers/createEllipsoidOutlineGeometry.js +10 -10
- package/Build/Workers/createFrustumGeometry.js +11 -11
- package/Build/Workers/createFrustumOutlineGeometry.js +11 -11
- package/Build/Workers/createGeometry.js +16 -16
- package/Build/Workers/createGroundPolylineGeometry.js +16 -16
- package/Build/Workers/createPlaneGeometry.js +9 -9
- package/Build/Workers/createPlaneOutlineGeometry.js +8 -8
- package/Build/Workers/createPolygonGeometry.js +25 -25
- package/Build/Workers/createPolygonOutlineGeometry.js +22 -22
- package/Build/Workers/createPolylineGeometry.js +18 -18
- package/Build/Workers/createPolylineVolumeGeometry.js +24 -24
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +20 -20
- package/Build/Workers/createRectangleGeometry.js +19 -19
- package/Build/Workers/createRectangleOutlineGeometry.js +13 -13
- package/Build/Workers/createSimplePolylineGeometry.js +16 -16
- package/Build/Workers/createSphereGeometry.js +11 -11
- package/Build/Workers/createSphereOutlineGeometry.js +10 -10
- package/Build/Workers/createVectorTileClampedPolylines.js +7 -7
- package/Build/Workers/createVectorTileGeometries.js +15 -15
- package/Build/Workers/createVectorTilePoints.js +6 -6
- package/Build/Workers/createVectorTilePolygons.js +14 -14
- package/Build/Workers/createVectorTilePolylines.js +7 -7
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +17 -17
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +14 -14
- package/Build/Workers/createVerticesFromHeightmap.js +14 -14
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +12 -12
- package/Build/Workers/createWallGeometry.js +17 -17
- package/Build/Workers/createWallOutlineGeometry.js +17 -17
- package/Build/Workers/decodeDraco.js +2 -2
- package/Build/Workers/decodeI3S.js +5 -5
- package/Build/Workers/incrementallyBuildTerrainPicker.js +4 -4
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +14 -14
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +17 -17
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
- package/Source/Core/BoundingSphere.js +0 -3
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
- 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 +2 -2
- package/Source/Core/Heap.js +1 -1
- package/Source/Core/HermitePolynomialApproximation.js +215 -179
- package/Source/Core/InterpolationAlgorithm.js +1 -0
- 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/Math.js +59 -0
- package/Source/Core/Matrix2.js +2 -2
- package/Source/Core/Matrix3.js +2 -2
- package/Source/Core/OrthographicFrustum.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +1 -1
- package/Source/Core/PolygonGeometry.js +2 -2
- package/Source/Core/PolygonGeometryLibrary.js +1 -1
- package/Source/Core/PolygonOutlineGeometry.js +1 -1
- package/Source/Core/PolylineGeometry.js +1 -1
- package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
- package/Source/Core/Rectangle.js +7 -1
- package/Source/Core/RectangleOutlineGeometry.js +1 -1
- package/Source/Core/SimplePolylineGeometry.js +1 -1
- package/Source/Core/TerrainEncoding.js +2 -2
- package/Source/Core/TerrainPicker.js +179 -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/getTimestamp.js +4 -2
- package/Source/DataSources/CompositeEntityCollection.js +0 -1
- package/Source/DataSources/CzmlDataSource.js +2 -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 +1 -2
- 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 -10
- package/Source/Renderer/Texture.js +11 -0
- package/Source/Renderer/UniformState.js +7 -0
- package/Source/Renderer/VertexArray.js +0 -1
- 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 +7 -3
- package/Source/Scene/BufferPrimitiveCollection.js +27 -5
- package/Source/Scene/Camera.js +71 -5
- package/Source/Scene/Cesium3DTileset.js +1 -1
- package/Source/Scene/ClippingPlaneCollection.js +2 -2
- 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 +94 -0
- package/Source/Scene/EdgeFramebuffer.js +1 -5
- package/Source/Scene/FrameState.js +17 -0
- package/Source/Scene/Globe.js +20 -0
- package/Source/Scene/GlobeDepth.js +27 -1
- package/Source/Scene/GlobeSurfaceShaderSet.js +12 -2
- package/Source/Scene/GlobeSurfaceTile.js +48 -10
- package/Source/Scene/GlobeSurfaceTileProvider.js +121 -3
- package/Source/Scene/GltfLoader.js +32 -3
- package/Source/Scene/GltfSpzLoader.js +1 -1
- package/Source/Scene/GltfVertexBufferLoader.js +6 -3
- package/Source/Scene/I3SDataProvider.js +1 -1
- package/Source/Scene/I3SLayer.js +1 -1
- package/Source/Scene/I3SNode.js +2 -2
- package/Source/Scene/ImageryLayerCollection.js +188 -4
- package/Source/Scene/IonImageryProvider.js +1 -5
- package/Source/Scene/Label.js +4 -4
- package/Source/Scene/LabelCollection.js +1 -1
- package/Source/Scene/MVTDataProvider.js +2 -0
- package/Source/Scene/Model/B3dmLoader.js +1 -2
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +10 -8
- 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 +8 -10
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
- package/Source/Scene/Model/ModelDrawCommand.js +160 -16
- package/Source/Scene/Model/ModelDrawCommands.js +4 -0
- package/Source/Scene/Model/ModelSceneGraph.js +21 -0
- package/Source/Scene/Model/PickingPipelineStage.js +29 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
- package/Source/Scene/ModelComponents.js +71 -0
- package/Source/Scene/Picking.js +16 -5
- package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
- package/Source/Scene/PntsParser.js +0 -1
- package/Source/Scene/PolylineCollection.js +1 -1
- package/Source/Scene/PostProcessStage.js +4 -2
- package/Source/Scene/ResourceCache.js +7 -4
- package/Source/Scene/ResourceCacheKey.js +16 -13
- package/Source/Scene/Scene.js +202 -5
- package/Source/Scene/ScreenSpaceCameraController.js +1 -2
- 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/UrlTemplate3DTilesDataProvider.js +1 -1
- package/Source/Scene/Vector3DTileContent.js +2 -3
- package/Source/Scene/VectorGltf3DTileContent.js +23 -3
- package/Source/Scene/View.js +10 -8
- package/Source/Scene/VoxelTraversal.js +1 -1
- package/Source/Scene/createElevationBandMaterial.js +1 -1
- package/Source/Scene/renderBufferPointCollection.js +1 -2
- package/Source/Scene/renderBufferPolygonCollection.js +1 -2
- package/Source/Scene/renderBufferPolylineCollection.js +1 -2
- 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/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/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 +2 -0
- package/Source/Shaders/GlobeFS.glsl +10 -5
- package/Source/Shaders/GlobeFS.js +9 -5
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
- package/Source/Shaders/Model/MaterialStageFS.js +8 -2
- package/Source/Shaders/Model/ModelFS.glsl +105 -0
- package/Source/Shaders/Model/ModelFS.js +105 -0
- package/Source/Shaders/VectorCommon.glsl +178 -0
- package/Source/Shaders/VectorCommon.js +75 -0
- package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +30 -0
- package/index.d.ts +770 -10
- package/index.js +177 -160
- package/package.json +1 -1
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import BufferPolygonCollection from "../Scene/BufferPolygonCollection.js";
|
|
4
|
+
import BufferPolylineCollection from "../Scene/BufferPolylineCollection.js";
|
|
5
|
+
import Rectangle from "./Rectangle.js";
|
|
6
|
+
import defined from "./defined.js";
|
|
7
|
+
import VectorPipeline from "./VectorPipeline.js";
|
|
8
|
+
|
|
9
|
+
/** @import BufferPrimitive from "../Scene/BufferPrimitive.js"; */
|
|
10
|
+
/** @import BufferPrimitiveCollection from "../Scene/BufferPrimitiveCollection.js"; */
|
|
11
|
+
/** @import Context from "../Renderer/Context.js"; */
|
|
12
|
+
/** @import Ellipsoid from "./Ellipsoid.js"; */
|
|
13
|
+
/** @import TilingScheme from "./TilingScheme.js"; */
|
|
14
|
+
/** @import { VectorCollectionData, VectorTileData } from "./VectorPipeline.js"; */
|
|
15
|
+
|
|
16
|
+
/** @ignore */
|
|
17
|
+
const scratchTileRectangle = new Rectangle();
|
|
18
|
+
const scratchCollectionRectangle = new Rectangle();
|
|
19
|
+
const scratchIntersectRectangle = new Rectangle();
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Extracts a collection's snapshot of projected positions and per-primitive
|
|
23
|
+
* material properties.
|
|
24
|
+
*
|
|
25
|
+
* @callback PackCollectionData
|
|
26
|
+
* @param {*} collection
|
|
27
|
+
* @param {TilingScheme} tilingScheme
|
|
28
|
+
* @param {VectorCollectionData} [result]
|
|
29
|
+
* @returns {VectorCollectionData}
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Packs a collection's primitives into a tile's vector data.
|
|
35
|
+
*
|
|
36
|
+
* @callback PackTilePrimitives
|
|
37
|
+
* @param {*} collection
|
|
38
|
+
* @param {VectorCollectionData} collectionData
|
|
39
|
+
* @param {Rectangle} rectangle
|
|
40
|
+
* @param {VectorTileData} result
|
|
41
|
+
* @returns {void}
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Packing functions for a collection type.
|
|
47
|
+
*
|
|
48
|
+
* @typedef {object} CollectionPacker
|
|
49
|
+
* @property {PackCollectionData} packCollectionData Extracts the per-collection snapshot.
|
|
50
|
+
* @property {PackTilePrimitives} packTilePrimitives Packs the collection's primitives into a tile.
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Per-type packing functions, keyed by collection class.
|
|
56
|
+
* @type {Map<Function, CollectionPacker>}
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
const collectionPackers = new Map();
|
|
60
|
+
collectionPackers.set(BufferPolylineCollection, {
|
|
61
|
+
packCollectionData: VectorPipeline.packPolylineCollectionData,
|
|
62
|
+
packTilePrimitives: VectorPipeline.packPolylineSegments,
|
|
63
|
+
});
|
|
64
|
+
collectionPackers.set(BufferPolygonCollection, {
|
|
65
|
+
packCollectionData: VectorPipeline.packPolygonCollectionData,
|
|
66
|
+
packTilePrimitives: VectorPipeline.packPolygonRings,
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @typedef {object} VectorProviderConstructorOptions
|
|
71
|
+
* @property {TilingScheme} tilingScheme
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @ignore
|
|
77
|
+
*/
|
|
78
|
+
class VectorProvider {
|
|
79
|
+
/** @param {VectorProviderConstructorOptions} options */
|
|
80
|
+
constructor(options) {
|
|
81
|
+
/** @private */
|
|
82
|
+
this._tilingScheme = options.tilingScheme;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
this._collections = new Set();
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Per-collection snapshot of projected positions and per-primitive
|
|
92
|
+
* material properties, keyed by collection version.
|
|
93
|
+
* @type {WeakMap<BufferPrimitiveCollection<BufferPrimitive>, VectorCollectionData>}
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
this._collectionDataCache = new WeakMap();
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Collections marked selected this frame (only these are baked).
|
|
100
|
+
* @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
this._selectedThisFrame = new Set();
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Collections added via markSelected (not add); only these are pruned.
|
|
107
|
+
* @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
108
|
+
* @private
|
|
109
|
+
*/
|
|
110
|
+
this._selectionDriven = new Set();
|
|
111
|
+
|
|
112
|
+
/** @private */
|
|
113
|
+
this._selectionFrameNumber = -1;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Cartographic regions changed since the last
|
|
117
|
+
* {@link VectorProvider#makeClean}, so only overlapping terrain
|
|
118
|
+
* tiles are re-baked.
|
|
119
|
+
* @type {Rectangle[]}
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
this._dirtyRectangles = [];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** @type {TilingScheme} */
|
|
126
|
+
get tilingScheme() {
|
|
127
|
+
return this._tilingScheme;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
set tilingScheme(value) {
|
|
131
|
+
this._tilingScheme = value;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** @type {Ellipsoid} */
|
|
135
|
+
get ellipsoid() {
|
|
136
|
+
return this._tilingScheme.ellipsoid;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
141
|
+
*/
|
|
142
|
+
add(collection) {
|
|
143
|
+
const previousSize = this._collections.size;
|
|
144
|
+
this._collections.add(collection);
|
|
145
|
+
if (this._collections.size !== previousSize) {
|
|
146
|
+
this._markCollectionRegionDirty(collection);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
152
|
+
*/
|
|
153
|
+
remove(collection) {
|
|
154
|
+
this._selectedThisFrame.delete(collection);
|
|
155
|
+
this._selectionDriven.delete(collection);
|
|
156
|
+
if (this._collections.delete(collection)) {
|
|
157
|
+
this._markCollectionRegionDirty(collection);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Marks a collection as selected this frame so it is baked; collections not
|
|
163
|
+
* marked are pruned next frame, keeping the baked set aligned with the
|
|
164
|
+
* rendered LOD.
|
|
165
|
+
*
|
|
166
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
167
|
+
* @param {number} frameNumber
|
|
168
|
+
*/
|
|
169
|
+
markSelected(collection, frameNumber) {
|
|
170
|
+
if (frameNumber !== this._selectionFrameNumber) {
|
|
171
|
+
this._commitSelectedFrame();
|
|
172
|
+
this._selectionFrameNumber = frameNumber;
|
|
173
|
+
}
|
|
174
|
+
this._selectedThisFrame.add(collection);
|
|
175
|
+
this._selectionDriven.add(collection);
|
|
176
|
+
const previousSize = this._collections.size;
|
|
177
|
+
this._collections.add(collection);
|
|
178
|
+
if (this._collections.size !== previousSize) {
|
|
179
|
+
this._markCollectionRegionDirty(collection);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Prunes selection-driven collections not marked in the frame that just ended.
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
_commitSelectedFrame() {
|
|
188
|
+
for (const collection of this._selectionDriven) {
|
|
189
|
+
if (!this._selectedThisFrame.has(collection)) {
|
|
190
|
+
this._selectionDriven.delete(collection);
|
|
191
|
+
if (this._collections.delete(collection)) {
|
|
192
|
+
this._markCollectionRegionDirty(collection);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
this._selectedThisFrame.clear();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Records a changed collection's region(s) so the next re-bake only touches
|
|
201
|
+
* overlapping tiles.
|
|
202
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
203
|
+
* @private
|
|
204
|
+
*/
|
|
205
|
+
_markCollectionRegionDirty(collection) {
|
|
206
|
+
const collectionRectangle = Rectangle.fromBoundingSphere(
|
|
207
|
+
collection.boundingVolume,
|
|
208
|
+
this._tilingScheme.ellipsoid,
|
|
209
|
+
new Rectangle(),
|
|
210
|
+
);
|
|
211
|
+
this._dirtyRectangles.push(collectionRectangle);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* @param {number} x
|
|
216
|
+
* @param {number} y
|
|
217
|
+
* @param {number} level
|
|
218
|
+
* @param {Context} context
|
|
219
|
+
* @returns {VectorTileData}
|
|
220
|
+
*/
|
|
221
|
+
requestTileData(x, y, level, context) {
|
|
222
|
+
const tilingScheme = this._tilingScheme;
|
|
223
|
+
const tileRectangle = tilingScheme.tileXYToRectangle(x, y, level);
|
|
224
|
+
|
|
225
|
+
/** @type {VectorTileData} */
|
|
226
|
+
const result = { show: true };
|
|
227
|
+
|
|
228
|
+
for (const collection of this._collections) {
|
|
229
|
+
const packer = collectionPackers.get(collection.constructor);
|
|
230
|
+
if (!defined(packer)) {
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const collectionRectangle = Rectangle.fromBoundingSphere(
|
|
235
|
+
collection.boundingVolume,
|
|
236
|
+
tilingScheme.ellipsoid,
|
|
237
|
+
scratchCollectionRectangle,
|
|
238
|
+
);
|
|
239
|
+
|
|
240
|
+
const isIntersected = !!Rectangle.intersection(
|
|
241
|
+
tileRectangle,
|
|
242
|
+
collectionRectangle,
|
|
243
|
+
scratchIntersectRectangle,
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
if (!isIntersected) {
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const collectionData = this._getCollectionDataCached(
|
|
251
|
+
collection,
|
|
252
|
+
packer.packCollectionData,
|
|
253
|
+
);
|
|
254
|
+
packer.packTilePrimitives(
|
|
255
|
+
collection,
|
|
256
|
+
collectionData,
|
|
257
|
+
tileRectangle,
|
|
258
|
+
result,
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const hasPolylines =
|
|
263
|
+
defined(result.polylineSegments) && result.polylineSegments.length > 0;
|
|
264
|
+
const hasPolygons =
|
|
265
|
+
defined(result.polygonRings) && result.polygonRings.length > 0;
|
|
266
|
+
|
|
267
|
+
if (!hasPolylines && !hasPolygons) {
|
|
268
|
+
result.show = false;
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (hasPolylines) {
|
|
273
|
+
VectorPipeline.packPolylineGrid(result);
|
|
274
|
+
VectorPipeline.packPolylineTextures(context, result);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (hasPolygons) {
|
|
278
|
+
VectorPipeline.packPolygonGrid(result);
|
|
279
|
+
VectorPipeline.packPolygonTextures(context, result);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
VectorPipeline.packPrimitiveTextures(context, result);
|
|
283
|
+
|
|
284
|
+
return result;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* @param {VectorTileData} data
|
|
289
|
+
*/
|
|
290
|
+
releaseTileData(data) {
|
|
291
|
+
VectorPipeline.freeResources(data);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Re-bakes a tile's vector data if the tile overlaps a region changed since
|
|
296
|
+
* the last {@link VectorProvider#makeClean}, releasing the previous data.
|
|
297
|
+
* Returns the current data unchanged when the tile is outside every changed
|
|
298
|
+
* region.
|
|
299
|
+
*
|
|
300
|
+
* @param {number} x
|
|
301
|
+
* @param {number} y
|
|
302
|
+
* @param {number} level
|
|
303
|
+
* @param {Context} context
|
|
304
|
+
* @param {VectorTileData|undefined} currentData
|
|
305
|
+
* @returns {VectorTileData|undefined}
|
|
306
|
+
*/
|
|
307
|
+
updateTileData(x, y, level, context, currentData) {
|
|
308
|
+
const dirtyRectangles = this._dirtyRectangles;
|
|
309
|
+
const tilingScheme = this._tilingScheme;
|
|
310
|
+
if (!intersectRectangles(x, y, level, dirtyRectangles, tilingScheme)) {
|
|
311
|
+
return currentData;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
if (defined(currentData)) {
|
|
315
|
+
this.releaseTileData(currentData);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return this.requestTileData(x, y, level, context);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Clears the regions recorded as changed. Call once after a re-bake pass has
|
|
323
|
+
* updated the overlapping tiles via {@link VectorProvider#updateTileData}.
|
|
324
|
+
*/
|
|
325
|
+
makeClean() {
|
|
326
|
+
this._dirtyRectangles.length = 0;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Records dirty regions for collections whose content has changed since
|
|
331
|
+
* their last extraction, so overlapping tiles are re-baked. Call once per
|
|
332
|
+
* frame, before {@link VectorProvider#updateTileData}.
|
|
333
|
+
*/
|
|
334
|
+
update() {
|
|
335
|
+
for (const collection of this._collections) {
|
|
336
|
+
const cache = this._collectionDataCache.get(collection);
|
|
337
|
+
if (!defined(cache)) {
|
|
338
|
+
// Never extracted; new tiles bake on request.
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
const changed =
|
|
342
|
+
collection._dirtyCount > 0 || cache.version !== collection._version;
|
|
343
|
+
if (!changed) {
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
// Re-bake both the previously baked region (content may have moved
|
|
347
|
+
// away from it) and the collection's current region.
|
|
348
|
+
if (defined(cache.rectangle)) {
|
|
349
|
+
this._dirtyRectangles.push(Rectangle.clone(cache.rectangle));
|
|
350
|
+
}
|
|
351
|
+
this._markCollectionRegionDirty(collection);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Returns the collection's {@link VectorCollectionData} snapshot,
|
|
357
|
+
* re-extracted when the collection has changed. The collection is marked
|
|
358
|
+
* clean only after everything has been read back.
|
|
359
|
+
*
|
|
360
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
361
|
+
* @param {PackCollectionData} packCollectionData
|
|
362
|
+
* @returns {VectorCollectionData}
|
|
363
|
+
* @private
|
|
364
|
+
*/
|
|
365
|
+
_getCollectionDataCached(collection, packCollectionData) {
|
|
366
|
+
const cache = this._collectionDataCache.get(collection);
|
|
367
|
+
const dirty = collection._dirtyCount > 0;
|
|
368
|
+
const outdated = cache?.version !== collection._version;
|
|
369
|
+
|
|
370
|
+
if (defined(cache) && !dirty && !outdated) {
|
|
371
|
+
return cache;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
const data = packCollectionData(collection, this._tilingScheme, cache);
|
|
375
|
+
|
|
376
|
+
// If dirty, the version increments +1 when marked clean below.
|
|
377
|
+
data.version = collection._version + (dirty ? 1 : 0);
|
|
378
|
+
data.rectangle = Rectangle.fromBoundingSphere(
|
|
379
|
+
collection.boundingVolume,
|
|
380
|
+
this.ellipsoid,
|
|
381
|
+
data.rectangle,
|
|
382
|
+
);
|
|
383
|
+
this._collectionDataCache.set(collection, data);
|
|
384
|
+
|
|
385
|
+
collection._makeClean();
|
|
386
|
+
|
|
387
|
+
return data;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* @param {number} x
|
|
393
|
+
* @param {number} y
|
|
394
|
+
* @param {number} level
|
|
395
|
+
* @param {Rectangle[]} rectangles
|
|
396
|
+
* @param {TilingScheme} tilingScheme
|
|
397
|
+
* @returns {boolean}
|
|
398
|
+
* @private
|
|
399
|
+
*/
|
|
400
|
+
function intersectRectangles(x, y, level, rectangles, tilingScheme) {
|
|
401
|
+
// No dirty regions recorded — nothing to re-bake. A caller needing a full
|
|
402
|
+
// re-bake should record Rectangle.MAX_VALUE instead.
|
|
403
|
+
if (rectangles.length === 0) {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const tileRectangle = tilingScheme.tileXYToRectangle(
|
|
408
|
+
x,
|
|
409
|
+
y,
|
|
410
|
+
level,
|
|
411
|
+
scratchTileRectangle,
|
|
412
|
+
);
|
|
413
|
+
|
|
414
|
+
for (let i = 0; i < rectangles.length; i++) {
|
|
415
|
+
const isIntersected = Rectangle.intersection(
|
|
416
|
+
tileRectangle,
|
|
417
|
+
rectangles[i],
|
|
418
|
+
scratchIntersectRectangle,
|
|
419
|
+
);
|
|
420
|
+
|
|
421
|
+
if (isIntersected) {
|
|
422
|
+
return true;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
export default VectorProvider;
|
|
@@ -419,7 +419,7 @@ WallOutlineGeometry.createGeometry = function (wallGeometry) {
|
|
|
419
419
|
}
|
|
420
420
|
|
|
421
421
|
indices[edgeIndex++] = numVertices - 2;
|
|
422
|
-
indices[edgeIndex
|
|
422
|
+
indices[edgeIndex] = numVertices - 1;
|
|
423
423
|
|
|
424
424
|
return new Geometry({
|
|
425
425
|
attributes: attributes,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Gets a timestamp that can be used in measuring the time between events. Timestamps
|
|
3
5
|
* are expressed in milliseconds, but it is not specified what the milliseconds are
|
|
4
6
|
* measured from. This function uses performance.now() if it is available, or Date.now()
|
|
5
7
|
* otherwise.
|
|
6
|
-
*
|
|
8
|
+
* @type {Function}
|
|
7
9
|
* @function getTimestamp
|
|
8
|
-
*
|
|
9
10
|
* @returns {number} The timestamp in milliseconds since some unspecified reference time.
|
|
10
11
|
*/
|
|
11
12
|
let getTimestamp;
|
|
@@ -23,4 +24,5 @@ if (
|
|
|
23
24
|
return Date.now();
|
|
24
25
|
};
|
|
25
26
|
}
|
|
27
|
+
|
|
26
28
|
export default getTimestamp;
|
|
@@ -218,7 +218,6 @@ CompositeEntityCollection.prototype.addCollection = function (
|
|
|
218
218
|
//>>includeEnd('debug');
|
|
219
219
|
|
|
220
220
|
if (!hasIndex) {
|
|
221
|
-
index = this._collections.length;
|
|
222
221
|
this._collections.push(collection);
|
|
223
222
|
} else {
|
|
224
223
|
this._collections.splice(index, 0, collection);
|
|
@@ -497,6 +497,8 @@ function getPropertyType(czmlInterval) {
|
|
|
497
497
|
return Object;
|
|
498
498
|
} else if (czmlInterval.hasOwnProperty("unitQuaternion")) {
|
|
499
499
|
return Quaternion;
|
|
500
|
+
} else if (czmlInterval.hasOwnProperty("pathMode")) {
|
|
501
|
+
return PathMode;
|
|
500
502
|
} else if (czmlInterval.hasOwnProperty("shadowMode")) {
|
|
501
503
|
return ShadowMode;
|
|
502
504
|
} else if (czmlInterval.hasOwnProperty("string")) {
|
|
@@ -415,7 +415,7 @@ DataSourceDisplay.prototype.getBoundingSphere = function (
|
|
|
415
415
|
const tmp = getBoundingSphereBoundingSphereScratch;
|
|
416
416
|
|
|
417
417
|
let count = 0;
|
|
418
|
-
let state
|
|
418
|
+
let state;
|
|
419
419
|
const visualizers = dataSource._visualizers;
|
|
420
420
|
const visualizersLength = visualizers.length;
|
|
421
421
|
|
|
@@ -149,7 +149,6 @@ function createObject(geoJson, entityCollection, describe) {
|
|
|
149
149
|
const lowerKey = key.toLowerCase();
|
|
150
150
|
|
|
151
151
|
if (namePropertyPrecedence > 1 && lowerKey === "title") {
|
|
152
|
-
namePropertyPrecedence = 1;
|
|
153
152
|
nameProperty = key;
|
|
154
153
|
break;
|
|
155
154
|
} else if (namePropertyPrecedence > 2 && lowerKey === "name") {
|
|
@@ -336,7 +336,7 @@ GeometryVisualizer.prototype.getBoundingSphere = function (entity, result) {
|
|
|
336
336
|
const tmp = getBoundingSphereBoundingSphereScratch;
|
|
337
337
|
|
|
338
338
|
let count = 0;
|
|
339
|
-
let state
|
|
339
|
+
let state;
|
|
340
340
|
const batches = this._batches;
|
|
341
341
|
const batchesLength = batches.length;
|
|
342
342
|
|
|
@@ -1495,9 +1495,8 @@ function processPositionGraphics(
|
|
|
1495
1495
|
billboard.image = undefined;
|
|
1496
1496
|
}
|
|
1497
1497
|
|
|
1498
|
-
let scale = 1.0;
|
|
1499
1498
|
if (defined(billboard.scale)) {
|
|
1500
|
-
scale = billboard.scale.getValue();
|
|
1499
|
+
const scale = billboard.scale.getValue();
|
|
1501
1500
|
if (scale !== 0) {
|
|
1502
1501
|
label.pixelOffset = new Cartesian2(scale * 16 + 1, 0);
|
|
1503
1502
|
} else {
|
|
@@ -295,7 +295,7 @@ PolylineVisualizer.prototype.getBoundingSphere = function (entity, result) {
|
|
|
295
295
|
const tmp = getBoundingSphereBoundingSphereScratch;
|
|
296
296
|
|
|
297
297
|
let count = 0;
|
|
298
|
-
let state
|
|
298
|
+
let state;
|
|
299
299
|
const batches = this._batches;
|
|
300
300
|
const batchesLength = batches.length;
|
|
301
301
|
const updater = this._updaters.get(entity.id);
|
|
@@ -375,7 +375,7 @@ StaticOutlineGeometryBatch.prototype.update = function (time) {
|
|
|
375
375
|
const translucentBatchesLength = translucentBatches.length;
|
|
376
376
|
let itemsToRemove;
|
|
377
377
|
let isUpdated = true;
|
|
378
|
-
let needUpdate
|
|
378
|
+
let needUpdate;
|
|
379
379
|
|
|
380
380
|
do {
|
|
381
381
|
needUpdate = false;
|
|
@@ -222,6 +222,29 @@ const AutomaticUniforms = {
|
|
|
222
222
|
},
|
|
223
223
|
}),
|
|
224
224
|
|
|
225
|
+
/**
|
|
226
|
+
* An automatic GLSL uniform containing the feature-ID texture produced by
|
|
227
|
+
* the planar fill pre-pass (BENTLEY_materials_planar_fill). Non-behind
|
|
228
|
+
* planar fill geometry writes its per-fragment feature ID here so that
|
|
229
|
+
* behind fills can test whether the existing pixel belongs to the same
|
|
230
|
+
* logical object.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* // GLSL declaration
|
|
234
|
+
* uniform sampler2D czm_planarFillIdTexture;
|
|
235
|
+
*
|
|
236
|
+
* // Sample
|
|
237
|
+
* vec2 coords = gl_FragCoord.xy / czm_viewport.zw;
|
|
238
|
+
* float existingFeatureId = texture(czm_planarFillIdTexture, coords).r;
|
|
239
|
+
*/
|
|
240
|
+
czm_planarFillIdTexture: new AutomaticUniform({
|
|
241
|
+
size: 1,
|
|
242
|
+
datatype: WebGLConstants.SAMPLER_2D,
|
|
243
|
+
getValue: function (uniformState) {
|
|
244
|
+
return uniformState.planarFillIdTexture;
|
|
245
|
+
},
|
|
246
|
+
}),
|
|
247
|
+
|
|
225
248
|
/**
|
|
226
249
|
* An automatic GLSL uniform representing a 4x4 model transformation matrix that
|
|
227
250
|
* transforms model coordinates to world coordinates.
|
|
@@ -1010,20 +1010,26 @@ Object.defineProperties(Context.prototype, {
|
|
|
1010
1010
|
},
|
|
1011
1011
|
|
|
1012
1012
|
/**
|
|
1013
|
-
* A 1x1 RGBA texture initialized to
|
|
1014
|
-
* be used as a placeholder texture while other textures are downloaded.
|
|
1013
|
+
* A 1x1 RGBA texture initialized to the color defined by {@link Texture.defaultColor}.
|
|
1014
|
+
* This can be used as a placeholder texture while other textures are downloaded.
|
|
1015
1015
|
* @memberof Context.prototype
|
|
1016
1016
|
* @type {Texture}
|
|
1017
1017
|
*/
|
|
1018
1018
|
defaultTexture: {
|
|
1019
1019
|
get: function () {
|
|
1020
1020
|
if (this._defaultTexture === undefined) {
|
|
1021
|
+
const color = Texture.defaultColor;
|
|
1021
1022
|
this._defaultTexture = new Texture({
|
|
1022
1023
|
context: this,
|
|
1023
1024
|
source: {
|
|
1024
1025
|
width: 1,
|
|
1025
1026
|
height: 1,
|
|
1026
|
-
arrayBufferView: new Uint8Array([
|
|
1027
|
+
arrayBufferView: new Uint8Array([
|
|
1028
|
+
color.red * 255,
|
|
1029
|
+
color.green * 255,
|
|
1030
|
+
color.blue * 255,
|
|
1031
|
+
color.alpha * 255,
|
|
1032
|
+
]),
|
|
1027
1033
|
},
|
|
1028
1034
|
flipY: false,
|
|
1029
1035
|
});
|
|
@@ -47,6 +47,7 @@ const Flags = {
|
|
|
47
47
|
* @property {Pass} [pass]
|
|
48
48
|
* @property {object} [owner]
|
|
49
49
|
* @property {string} [pickId]
|
|
50
|
+
* @property {string} [snapId]
|
|
50
51
|
* @property {boolean} [pickMetadataAllowed=false]
|
|
51
52
|
* @property {boolean} [cull=true]
|
|
52
53
|
* @property {boolean} [occlude=true]
|
|
@@ -102,6 +103,7 @@ class DrawCommand {
|
|
|
102
103
|
this._debugOverlappingFrustums = 0;
|
|
103
104
|
/** @private */
|
|
104
105
|
this._pickId = options.pickId;
|
|
106
|
+
this._snapId = options.snapId;
|
|
105
107
|
/** @private */
|
|
106
108
|
this._pickMetadataAllowed = options.pickMetadataAllowed === true;
|
|
107
109
|
/**
|
|
@@ -532,6 +534,25 @@ class DrawCommand {
|
|
|
532
534
|
}
|
|
533
535
|
}
|
|
534
536
|
|
|
537
|
+
/**
|
|
538
|
+
* A GLSL string that will evaluate to the float snap payload written during
|
|
539
|
+
* a snapping pass (see {@link Scene#snap}). When <code>undefined</code>, the
|
|
540
|
+
* command does not render during a snapping pass.
|
|
541
|
+
*
|
|
542
|
+
* @type {string|undefined}
|
|
543
|
+
* @default undefined
|
|
544
|
+
*/
|
|
545
|
+
get snapId() {
|
|
546
|
+
return this._snapId;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
set snapId(value) {
|
|
550
|
+
if (this._snapId !== value) {
|
|
551
|
+
this._snapId = value;
|
|
552
|
+
this.dirty = true;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
535
556
|
/**
|
|
536
557
|
* Whether metadata picking is allowed.
|
|
537
558
|
*
|
|
@@ -628,6 +649,7 @@ class DrawCommand {
|
|
|
628
649
|
result._owner = command._owner;
|
|
629
650
|
result._debugOverlappingFrustums = command._debugOverlappingFrustums;
|
|
630
651
|
result._pickId = command._pickId;
|
|
652
|
+
result._snapId = command._snapId;
|
|
631
653
|
result._pickMetadataAllowed = command._pickMetadataAllowed;
|
|
632
654
|
result._pickedMetadataInfo = command._pickedMetadataInfo;
|
|
633
655
|
result._flags = command._flags;
|
|
@@ -287,6 +287,10 @@ function Framebuffer(options) {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
this._unBind();
|
|
290
|
+
|
|
291
|
+
// _bind and _unBind bypass the context's framebuffer binding cache. The GL
|
|
292
|
+
// binding is now the default framebuffer; update the cache to match.
|
|
293
|
+
context._currentFramebuffer = undefined;
|
|
290
294
|
}
|
|
291
295
|
|
|
292
296
|
Object.defineProperties(Framebuffer.prototype, {
|
package/Source/Renderer/Pass.js
CHANGED
|
@@ -19,16 +19,17 @@ const Pass = {
|
|
|
19
19
|
GLOBE: 2,
|
|
20
20
|
TERRAIN_CLASSIFICATION: 3,
|
|
21
21
|
CESIUM_3D_TILE_EDGES: 4,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
CESIUM_3D_TILE_PLANAR_FILL_ID: 5,
|
|
23
|
+
CESIUM_3D_TILE: 6,
|
|
24
|
+
CESIUM_3D_TILE_CLASSIFICATION: 7,
|
|
25
|
+
CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW: 8,
|
|
26
|
+
OPAQUE: 9,
|
|
27
|
+
TRANSLUCENT: 10,
|
|
28
|
+
VOXELS: 11,
|
|
29
|
+
GAUSSIAN_SPLATS: 12,
|
|
30
|
+
CESIUM_3D_TILE_EDGES_DIRECT: 13,
|
|
31
|
+
OVERLAY: 14,
|
|
32
|
+
NUMBER_OF_PASSES: 15,
|
|
32
33
|
};
|
|
33
34
|
|
|
34
35
|
Object.freeze(Pass);
|