@hztxi/cesium-engine 25.0.7 → 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-2NCNUVAT.js +56 -0
- package/Build/Workers/chunk-2ZYRUVVU.js +301 -0
- package/Build/Workers/chunk-36IU7N4V.js +1284 -0
- package/Build/Workers/chunk-3BDLET5S.js +198 -0
- package/Build/Workers/chunk-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-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-77DBX23X.js +455 -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-7Y642MCO.js +352 -0
- package/Build/Workers/chunk-7ZFKBLUE.js +1054 -0
- package/Build/Workers/chunk-A7LGY5XS.js +140 -0
- package/Build/Workers/chunk-AN2NVYL6.js +1483 -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-CEMXKBQO.js +1800 -0
- package/Build/Workers/chunk-CKW3STKA.js +1067 -0
- package/Build/Workers/chunk-CV5RICKT.js +1992 -0
- package/Build/Workers/chunk-DBWSISJT.js +56 -0
- package/Build/Workers/chunk-DSBSPPPJ.js +1344 -0
- package/Build/Workers/chunk-DSGLDRTI.js +278 -0
- package/Build/Workers/chunk-DXD7OPSP.js +1992 -0
- package/Build/Workers/chunk-DXECZBSA.js +368 -0
- package/Build/Workers/chunk-DZIRO6ZK.js +682 -0
- package/Build/Workers/chunk-E4CRPGX5.js +140 -0
- package/Build/Workers/chunk-E4IVMEBH.js +52 -0
- package/Build/Workers/chunk-ECN3VUMA.js +73 -0
- package/Build/Workers/chunk-ECSKVHUB.js +476 -0
- package/Build/Workers/chunk-EL4B5CSQ.js +162 -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-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-KSIEJYNL.js +3822 -0
- package/Build/Workers/chunk-KT3GG7AW.js +754 -0
- package/Build/Workers/chunk-KYCEM22I.js +1800 -0
- package/Build/Workers/chunk-LJTQW46H.js +57 -0
- package/Build/Workers/chunk-LMQGYJME.js +672 -0
- package/Build/Workers/chunk-LOBYJQA4.js +76 -0
- package/Build/Workers/chunk-LOF32O7F.js +163 -0
- package/Build/Workers/chunk-LOTIJA7D.js +124 -0
- package/Build/Workers/chunk-M7Z3MPAX.js +973 -0
- package/Build/Workers/chunk-MHNLTQHO.js +3201 -0
- package/Build/Workers/chunk-ML7OMD72.js +2342 -0
- package/Build/Workers/chunk-NBTGXEMT.js +945 -0
- package/Build/Workers/chunk-NQZC37F7.js +38 -0
- package/Build/Workers/chunk-O3X3D2Z3.js +352 -0
- package/Build/Workers/chunk-OBUIHPKF.js +352 -0
- package/Build/Workers/chunk-PAEWNYIV.js +138 -0
- package/Build/Workers/chunk-PANJ7YH6.js +102 -0
- package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
- package/Build/Workers/chunk-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-QQZPPXY4.js +3822 -0
- package/Build/Workers/chunk-QXLQLGL2.js +1067 -0
- package/Build/Workers/chunk-RC4YC3VU.js +278 -0
- package/Build/Workers/chunk-RGNNWVR6.js +171 -0
- package/Build/Workers/chunk-SBBIEHYT.js +44 -0
- package/Build/Workers/chunk-SWVZTU6X.js +305 -0
- package/Build/Workers/chunk-T3EUPM5A.js +454 -0
- package/Build/Workers/chunk-TA6IU2XL.js +171 -0
- package/Build/Workers/chunk-TLSGD5TR.js +280 -0
- package/Build/Workers/chunk-TOXDLWKZ.js +368 -0
- package/Build/Workers/chunk-TZBM6TAB.js +124 -0
- package/Build/Workers/chunk-U2OY6MX6.js +398 -0
- package/Build/Workers/chunk-UCY4B5EV.js +288 -0
- package/Build/Workers/chunk-V52FEPCV.js +754 -0
- package/Build/Workers/chunk-VBEXZBG5.js +147 -0
- package/Build/Workers/chunk-VC76B6GM.js +959 -0
- package/Build/Workers/chunk-VCUOYHWC.js +519 -0
- package/Build/Workers/chunk-VJIL5H6K.js +2719 -0
- package/Build/Workers/chunk-VMF7KOGY.js +162 -0
- package/Build/Workers/chunk-W5OCKMPJ.js +101 -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-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-Z7BONRW2.js +241 -0
- package/Build/Workers/chunk-ZK2R3DEJ.js +1054 -0
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +18 -18
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +39 -39
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -33
- package/Build/Workers/createCorridorGeometry.js +36 -37
- package/Build/Workers/createCorridorOutlineGeometry.js +34 -35
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +20 -20
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +20 -20
- package/Build/Workers/createGeometry.js +25 -24
- package/Build/Workers/createGroundPolylineGeometry.js +26 -26
- package/Build/Workers/createMvtTile.js +111 -19
- package/Build/Workers/createPlaneGeometry.js +18 -18
- package/Build/Workers/createPlaneOutlineGeometry.js +17 -17
- package/Build/Workers/createPolygonGeometry.js +36 -36
- package/Build/Workers/createPolygonOutlineGeometry.js +33 -33
- package/Build/Workers/createPolylineGeometry.js +28 -28
- package/Build/Workers/createPolylineVolumeGeometry.js +38 -36
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -31
- package/Build/Workers/createRectangleGeometry.js +29 -29
- package/Build/Workers/createRectangleOutlineGeometry.js +23 -23
- package/Build/Workers/createSimplePolylineGeometry.js +26 -26
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -26
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +23 -23
- package/Build/Workers/createVerticesFromHeightmap.js +23 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +21 -21
- package/Build/Workers/createWallGeometry.js +26 -26
- package/Build/Workers/createWallOutlineGeometry.js +26 -26
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +993 -2334
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +23 -23
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -26
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
- package/Source/Core/BoundingRectangle.js +6 -8
- package/Source/Core/BoundingSphere.js +0 -3
- package/Source/Core/Cartesian2.js +1 -1
- package/Source/Core/Cartesian3.js +1 -1
- package/Source/Core/Cartesian4.js +1 -1
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
- package/Source/Core/Color.js +1 -0
- package/Source/Core/ComponentDatatype.js +35 -0
- package/Source/Core/CoplanarPolygonGeometry.js +2 -2
- package/Source/Core/CorridorGeometry.js +2 -4
- package/Source/Core/CorridorOutlineGeometry.js +1 -3
- package/Source/Core/EarthOrientationParameters.js +2 -2
- package/Source/Core/EllipseGeometryLibrary.js +2 -2
- package/Source/Core/EllipsoidGeodesic.js +3 -3
- package/Source/Core/EllipsoidRhumbLine.js +1 -1
- package/Source/Core/Heap.js +1 -1
- package/Source/Core/HermitePolynomialApproximation.js +215 -179
- package/Source/Core/InterpolationAlgorithm.js +58 -50
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/JulianDate.js +1 -1
- package/Source/Core/LagrangePolynomialApproximation.js +55 -52
- package/Source/Core/LinearApproximation.js +69 -66
- package/Source/Core/MapProjection.js +1 -0
- package/Source/Core/Math.js +59 -0
- package/Source/Core/Matrix2.js +3 -3
- package/Source/Core/Matrix3.js +3 -3
- package/Source/Core/Matrix4.js +1 -1
- package/Source/Core/OrthographicFrustum.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +1 -1
- package/Source/Core/PolygonGeometry.js +2 -2
- package/Source/Core/PolygonGeometryLibrary.js +1 -1
- package/Source/Core/PolygonOutlineGeometry.js +1 -1
- package/Source/Core/PolylineGeometry.js +1 -1
- package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
- package/Source/Core/Rectangle.js +7 -1
- package/Source/Core/RectangleOutlineGeometry.js +1 -1
- package/Source/Core/Resource.js +1 -1
- package/Source/Core/ScreenSpaceEventHandler.js +51 -41
- package/Source/Core/SimplePolylineGeometry.js +1 -1
- package/Source/Core/TerrainEncoding.js +2 -2
- package/Source/Core/TerrainMesh.js +3 -3
- package/Source/Core/TerrainPicker.js +180 -168
- package/Source/Core/TimeIntervalCollection.js +1 -3
- package/Source/Core/Tipsify.js +1 -1
- package/Source/Core/Transforms.js +5 -1
- package/Source/Core/VectorPipeline.js +1117 -0
- package/Source/Core/VectorProvider.js +429 -0
- package/Source/Core/WallOutlineGeometry.js +1 -1
- package/Source/Core/createColorRamp.js +37 -0
- package/Source/Core/getTimestamp.js +4 -2
- package/Source/Core/globalTypes.js +25 -0
- package/Source/Core/writeTextToCanvas.js +1 -0
- package/Source/DataSources/CompositeEntityCollection.js +0 -1
- package/Source/DataSources/CzmlDataSource.js +14 -0
- package/Source/DataSources/DataSourceDisplay.js +1 -1
- package/Source/DataSources/GeoJsonDataSource.js +0 -1
- package/Source/DataSources/GeometryVisualizer.js +1 -1
- package/Source/DataSources/KmlDataSource.js +529 -557
- package/Source/DataSources/PathGraphics.js +8 -1
- package/Source/DataSources/PathMode.js +27 -0
- package/Source/DataSources/PathVisualizer.js +298 -1
- package/Source/DataSources/PolylineVisualizer.js +1 -1
- package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
- package/Source/Renderer/AutomaticUniforms.js +23 -0
- package/Source/Renderer/Context.js +9 -3
- package/Source/Renderer/DrawCommand.js +22 -0
- package/Source/Renderer/Framebuffer.js +4 -0
- package/Source/Renderer/Pass.js +11 -9
- package/Source/Renderer/Texture.js +12 -1
- package/Source/Renderer/UniformState.js +7 -0
- package/Source/Renderer/VertexArray.js +1 -1
- package/Source/Renderer/createUniform.js +346 -239
- package/Source/Renderer/createUniformArray.js +494 -381
- package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Billboard.js +2 -1
- package/Source/Scene/BillboardCollection.js +15 -5
- package/Source/Scene/BillboardTexture.js +5 -3
- package/Source/Scene/BufferPointCollection.js +11 -1
- package/Source/Scene/BufferPolygonCollection.js +26 -0
- package/Source/Scene/BufferPolylineCollection.js +2 -0
- package/Source/Scene/BufferPrimitiveCollection.js +105 -32
- package/Source/Scene/Camera.js +85 -9
- package/Source/Scene/CameraEventAggregator.js +30 -18
- package/Source/Scene/CameraFlightPath.js +7 -4
- package/Source/Scene/Cesium3DTile.js +102 -4
- package/Source/Scene/Cesium3DTileContent.js +195 -254
- package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
- package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
- package/Source/Scene/Cesium3DTileStyle.js +40 -0
- package/Source/Scene/Cesium3DTileset.js +213 -8
- package/Source/Scene/Cesium3DTilesetTraversal.js +14 -0
- package/Source/Scene/ClippingPlaneCollection.js +4 -4
- package/Source/Scene/ClippingPolygon.js +2 -0
- package/Source/Scene/ClippingPolygonCollection.js +2 -2
- package/Source/Scene/Composite3DTileContent.js +254 -292
- package/Source/Scene/Controllers/Controller.js +63 -0
- package/Source/Scene/Controllers/ControllerHost.js +78 -0
- package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
- package/Source/Scene/Controllers/MouseButton.js +32 -0
- package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
- package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
- package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
- package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
- package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
- package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
- package/Source/Scene/DerivedCommand.js +98 -0
- package/Source/Scene/EdgeDisplayMode.js +50 -0
- package/Source/Scene/EdgeFramebuffer.js +1 -5
- package/Source/Scene/Empty3DTileContent.js +100 -132
- package/Source/Scene/Expression.js +6 -8
- package/Source/Scene/FrameState.js +17 -0
- package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
- package/Source/Scene/GeoJsonPrimitive.js +874 -0
- package/Source/Scene/Geometry3DTileContent.js +151 -185
- package/Source/Scene/Globe.js +22 -1
- package/Source/Scene/GlobeDepth.js +27 -1
- package/Source/Scene/GlobeSurfaceShaderSet.js +637 -540
- package/Source/Scene/GlobeSurfaceTile.js +575 -398
- package/Source/Scene/GlobeSurfaceTileProvider.js +1412 -1184
- package/Source/Scene/GltfBufferViewLoader.js +3 -3
- package/Source/Scene/GltfLoader.js +146 -3
- package/Source/Scene/GltfLoaderUtil.js +20 -4
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
- package/Source/Scene/GltfSpzLoader.js +1 -1
- package/Source/Scene/GltfVertexBufferLoader.js +6 -3
- package/Source/Scene/I3SDataProvider.js +1 -1
- package/Source/Scene/I3SLayer.js +1 -1
- package/Source/Scene/I3SNode.js +2 -2
- package/Source/Scene/ImageryLayer.js +2 -2
- package/Source/Scene/ImageryLayerCollection.js +190 -6
- package/Source/Scene/Implicit3DTileContent.js +192 -216
- package/Source/Scene/ImplicitTileCoordinates.js +17 -0
- package/Source/Scene/IonImageryProvider.js +1 -5
- package/Source/Scene/Label.js +4 -4
- package/Source/Scene/LabelCollection.js +4 -1
- package/Source/Scene/MVTDataProvider.js +555 -0
- package/Source/Scene/Material.js +1 -0
- package/Source/Scene/Model/B3dmLoader.js +1 -2
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +82 -312
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
- package/Source/Scene/Model/I3dmLoader.js +1 -1
- package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
- package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
- package/Source/Scene/Model/Model.js +45 -10
- package/Source/Scene/Model/Model3DTileContent.js +424 -458
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
- package/Source/Scene/Model/ModelDrawCommand.js +180 -8
- package/Source/Scene/Model/ModelDrawCommands.js +4 -0
- package/Source/Scene/Model/ModelSceneGraph.js +21 -0
- package/Source/Scene/Model/ModelUtility.js +5 -0
- package/Source/Scene/Model/PickingPipelineStage.js +29 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +645 -153
- package/Source/Scene/ModelComponents.js +112 -0
- package/Source/Scene/Multiple3DTileContent.js +291 -334
- package/Source/Scene/MvtLabelCandidates.js +295 -0
- package/Source/Scene/MvtLabelManager.js +1069 -0
- package/Source/Scene/Picking.js +19 -3
- package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
- package/Source/Scene/PntsParser.js +1 -1
- package/Source/Scene/PolylineCollection.js +5 -3
- package/Source/Scene/PostProcessStage.js +4 -2
- package/Source/Scene/QuadtreePrimitive.js +3 -2
- package/Source/Scene/ResourceCache.js +7 -4
- package/Source/Scene/ResourceCacheKey.js +21 -18
- package/Source/Scene/Scene.js +237 -11
- package/Source/Scene/SceneTransforms.js +6 -5
- package/Source/Scene/ShadowMap.js +9 -3
- package/Source/Scene/ShadowMapShader.js +50 -2
- package/Source/Scene/SnapFramebuffer.js +121 -0
- package/Source/Scene/Snapping.js +184 -0
- package/Source/Scene/TerrainFillMesh.js +3 -2
- package/Source/Scene/Tileset3DTileContent.js +113 -146
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +543 -0
- package/Source/Scene/Vector3DTileContent.js +207 -237
- package/Source/Scene/VectorGltf3DTileContent.js +185 -45
- package/Source/Scene/View.js +10 -8
- package/Source/Scene/VoxelPrimitive.js +159 -175
- package/Source/Scene/VoxelProvider.js +64 -91
- package/Source/Scene/VoxelTraversal.js +1 -1
- package/Source/Scene/buildVectorGltfFromMVT.js +1208 -0
- package/Source/Scene/buildVoxelCustomShader.js +199 -0
- package/Source/Scene/createElevationBandMaterial.js +1 -1
- package/Source/Scene/decodeMVT.js +877 -0
- package/Source/Scene/findMeshoptExtension.js +23 -0
- package/Source/Scene/renderBufferPointCollection.js +114 -64
- package/Source/Scene/renderBufferPolygonCollection.js +245 -53
- package/Source/Scene/renderBufferPolylineCollection.js +271 -145
- package/Source/Shaders/BillboardCollectionVS.glsl +23 -25
- package/Source/Shaders/BillboardCollectionVS.js +23 -25
- package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
- package/Source/Shaders/BufferPointMaterialFS.js +1 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
- package/Source/Shaders/BufferPointMaterialVS.js +20 -10
- package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolygonMaterialFS.js +13 -0
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +22 -4
- package/Source/Shaders/BufferPolygonMaterialVS.js +23 -5
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
- package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
- package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
- package/Source/Shaders/GlobeFS.glsl +10 -6
- package/Source/Shaders/GlobeFS.js +10 -6
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
- package/Source/Shaders/Model/MaterialStageFS.js +8 -2
- package/Source/Shaders/Model/ModelFS.glsl +105 -0
- package/Source/Shaders/Model/ModelFS.js +105 -0
- package/Source/Shaders/VectorCommon.glsl +178 -0
- package/Source/Shaders/VectorCommon.js +180 -0
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +30 -0
- package/Source/Workers/createMvtTile.js +39 -0
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
- package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
- package/index.js +113 -83
- package/package.json +13 -13
|
@@ -10,16 +10,17 @@ import BufferPolyline from "./BufferPolyline.js";
|
|
|
10
10
|
import BufferPolylineCollection from "./BufferPolylineCollection.js";
|
|
11
11
|
import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
|
|
12
12
|
import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
|
|
13
|
-
import Color from "../Core/Color.js";
|
|
14
13
|
import Matrix4 from "../Core/Matrix4.js";
|
|
15
14
|
import Model from "./Model/Model.js";
|
|
16
15
|
import ModelUtility from "./Model/ModelUtility.js";
|
|
17
16
|
import Pass from "../Renderer/Pass.js";
|
|
17
|
+
import SceneMode from "./SceneMode.js";
|
|
18
18
|
import createVectorTileBuffersFromModelComponents from "./Model/createVectorTileBuffersFromModelComponents.js";
|
|
19
19
|
import defined from "../Core/defined.js";
|
|
20
20
|
import destroyObject from "../Core/destroyObject.js";
|
|
21
21
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
22
|
-
import
|
|
22
|
+
import { isHeightReferenceClamp } from "./HeightReference.js";
|
|
23
|
+
import { getMvtLabelCandidatesByteLength } from "./MvtLabelCandidates.js";
|
|
23
24
|
|
|
24
25
|
/** @import BufferPrimitive from "./BufferPrimitive.js"; */
|
|
25
26
|
/** @import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js"; */
|
|
@@ -29,11 +30,20 @@ import Check from "../Core/Check.js";
|
|
|
29
30
|
/** @import Cesium3DTileBatchTable from "./Cesium3DTileBatchTable.js"; */
|
|
30
31
|
/** @import Cesium3DTileVectorFeature from "./Cesium3DTileVectorFeature.js";*/
|
|
31
32
|
/** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
|
|
33
|
+
/** @import Color from "../Core/Color.js"; */
|
|
32
34
|
/** @import FrameState from "./FrameState.js"; */
|
|
33
35
|
/** @import ImplicitMetadataView from "./ImplicitMetadataView.js"; */
|
|
34
36
|
/** @import Ray from "../Core/Ray.js"; */
|
|
35
37
|
/** @import Resource from "../Core/Resource.js"; */
|
|
36
38
|
|
|
39
|
+
/**
|
|
40
|
+
* @typedef {object} VectorGltfModelStatistics
|
|
41
|
+
* @property {number} geometryByteLength
|
|
42
|
+
* @property {number} texturesByteLength
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/** @typedef {Model & {statistics: VectorGltfModelStatistics}} VectorGltfModel */
|
|
46
|
+
|
|
37
47
|
/** @ignore */
|
|
38
48
|
const point = new BufferPoint();
|
|
39
49
|
/** @ignore */
|
|
@@ -71,7 +81,7 @@ class VectorGltf3DTileContent {
|
|
|
71
81
|
/** @type {Resource} */
|
|
72
82
|
this._resource = resource;
|
|
73
83
|
|
|
74
|
-
/** @type {
|
|
84
|
+
/** @type {VectorGltfModel} */
|
|
75
85
|
this._model = undefined;
|
|
76
86
|
|
|
77
87
|
/**
|
|
@@ -109,9 +119,16 @@ class VectorGltf3DTileContent {
|
|
|
109
119
|
|
|
110
120
|
/** @type {boolean} */
|
|
111
121
|
this._ready = false;
|
|
122
|
+
/** @type {SceneMode|undefined} */
|
|
123
|
+
this._collectionSceneMode = undefined;
|
|
112
124
|
|
|
113
125
|
/** @type {Matrix4} */
|
|
114
126
|
this._modelMatrix = Matrix4.clone(Matrix4.IDENTITY);
|
|
127
|
+
|
|
128
|
+
this._mvtLabelManager = undefined;
|
|
129
|
+
this._mvtLabelTile = undefined;
|
|
130
|
+
this._mvtLabelByteLength = 0;
|
|
131
|
+
this._renderVectorGeometry = true;
|
|
115
132
|
}
|
|
116
133
|
|
|
117
134
|
get featuresLength() {
|
|
@@ -139,20 +156,24 @@ class VectorGltf3DTileContent {
|
|
|
139
156
|
}
|
|
140
157
|
|
|
141
158
|
get geometryByteLength() {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
159
|
+
// The source glTF model is retained after its components are baked into the
|
|
160
|
+
// vector collections, so its buffers must be reported for the tileset cache
|
|
161
|
+
// to size itself correctly.
|
|
162
|
+
return this._collections.reduce(
|
|
163
|
+
(totalByteLength, collection) => totalByteLength + collection.byteLength,
|
|
164
|
+
this._model?.statistics.geometryByteLength ?? 0,
|
|
165
|
+
);
|
|
145
166
|
}
|
|
146
167
|
|
|
147
168
|
get texturesByteLength() {
|
|
148
|
-
return 0;
|
|
169
|
+
return this._model?.statistics.texturesByteLength ?? 0;
|
|
149
170
|
}
|
|
150
171
|
|
|
151
172
|
get batchTableByteLength() {
|
|
152
173
|
return this.batchTables.reduce(
|
|
153
174
|
// @ts-expect-error Missing types.
|
|
154
175
|
(acc, batchTable) => acc + batchTable.batchTableByteLength,
|
|
155
|
-
|
|
176
|
+
this._mvtLabelByteLength,
|
|
156
177
|
);
|
|
157
178
|
}
|
|
158
179
|
|
|
@@ -210,21 +231,17 @@ class VectorGltf3DTileContent {
|
|
|
210
231
|
|
|
211
232
|
/**
|
|
212
233
|
* @param {number} featureId
|
|
213
|
-
* @param {number} featureTableId
|
|
234
|
+
* @param {number} [featureTableId]
|
|
214
235
|
* @returns {Cesium3DTileVectorFeature}
|
|
215
236
|
*/
|
|
216
237
|
getFeature(featureId, featureTableId) {
|
|
217
|
-
//>>includeStart('debug', pragmas.debug);
|
|
218
|
-
Check.typeOf.number("featureTableId", featureTableId);
|
|
219
|
-
//>>includeEnd('debug');
|
|
220
|
-
|
|
221
238
|
return this._featuresByTableId.get(featureTableId)?.get(featureId);
|
|
222
239
|
}
|
|
223
240
|
|
|
224
241
|
/**
|
|
225
242
|
* @param {number} featureId
|
|
226
243
|
* @param {string} name
|
|
227
|
-
* @param {number} featureTableId
|
|
244
|
+
* @param {number} [featureTableId]
|
|
228
245
|
* @returns {boolean}
|
|
229
246
|
*/
|
|
230
247
|
hasProperty(featureId, name, featureTableId) {
|
|
@@ -237,8 +254,10 @@ class VectorGltf3DTileContent {
|
|
|
237
254
|
* @param {Color} color
|
|
238
255
|
*/
|
|
239
256
|
applyDebugSettings(enabled, color) {
|
|
240
|
-
|
|
241
|
-
|
|
257
|
+
const colorString = enabled
|
|
258
|
+
? `color("${color.toCssHexString()}", 1.0)`
|
|
259
|
+
: 'color("white", 1.0)';
|
|
260
|
+
this.applyStyle(new Cesium3DTileStyle({ color: colorString }));
|
|
242
261
|
}
|
|
243
262
|
|
|
244
263
|
/**
|
|
@@ -258,11 +277,22 @@ class VectorGltf3DTileContent {
|
|
|
258
277
|
collection.get(i, point);
|
|
259
278
|
const feature = this.getFeature(point.featureId, featureTableId);
|
|
260
279
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
280
|
+
if (defined(style.show)) {
|
|
281
|
+
point.show = style.show.evaluate(feature);
|
|
282
|
+
}
|
|
283
|
+
if (defined(style.color)) {
|
|
284
|
+
style.color.evaluate(feature, pointMaterial.color);
|
|
285
|
+
}
|
|
286
|
+
if (defined(style.pointSize)) {
|
|
287
|
+
pointMaterial.size = style.pointSize.evaluate(feature);
|
|
288
|
+
}
|
|
289
|
+
if (defined(style.pointOutlineWidth)) {
|
|
290
|
+
pointMaterial.outlineWidth =
|
|
291
|
+
style.pointOutlineWidth.evaluate(feature);
|
|
292
|
+
}
|
|
293
|
+
if (defined(style.pointOutlineColor)) {
|
|
294
|
+
style.pointOutlineColor.evaluate(feature, pointMaterial.outlineColor);
|
|
295
|
+
}
|
|
266
296
|
|
|
267
297
|
point.setMaterial(pointMaterial);
|
|
268
298
|
}
|
|
@@ -274,9 +304,15 @@ class VectorGltf3DTileContent {
|
|
|
274
304
|
collection.get(i, polyline);
|
|
275
305
|
const feature = this.getFeature(polyline.featureId, featureTableId);
|
|
276
306
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
307
|
+
if (defined(style.show)) {
|
|
308
|
+
polyline.show = style.show.evaluate(feature);
|
|
309
|
+
}
|
|
310
|
+
if (defined(style.color)) {
|
|
311
|
+
style.color.evaluate(feature, polylineMaterial.color);
|
|
312
|
+
}
|
|
313
|
+
if (defined(style.lineWidth)) {
|
|
314
|
+
polylineMaterial.width = style.lineWidth.evaluate(feature);
|
|
315
|
+
}
|
|
280
316
|
|
|
281
317
|
polyline.setMaterial(polylineMaterial);
|
|
282
318
|
}
|
|
@@ -284,12 +320,31 @@ class VectorGltf3DTileContent {
|
|
|
284
320
|
|
|
285
321
|
for (const collection of this._collections.filter(isPolygonCollection)) {
|
|
286
322
|
const featureTableId = this._collectionFeatureTableIds.get(collection);
|
|
323
|
+
collection._polygonOutlineEnabled =
|
|
324
|
+
defined(style.polygonOutlineColor) ||
|
|
325
|
+
defined(style.polygonOutlineWidth);
|
|
287
326
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
288
327
|
collection.get(i, polygon);
|
|
289
328
|
const feature = this.getFeature(polygon.featureId, featureTableId);
|
|
290
329
|
|
|
291
|
-
|
|
292
|
-
|
|
330
|
+
if (defined(style.show)) {
|
|
331
|
+
polygon.show = style.show.evaluate(feature);
|
|
332
|
+
}
|
|
333
|
+
if (defined(style.color)) {
|
|
334
|
+
style.color.evaluate(feature, polygonMaterial.color);
|
|
335
|
+
}
|
|
336
|
+
if (defined(style.polygonOutlineColor)) {
|
|
337
|
+
style.polygonOutlineColor.evaluate(
|
|
338
|
+
feature,
|
|
339
|
+
polygonMaterial.outlineColor,
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
if (defined(style.polygonOutlineWidth)) {
|
|
343
|
+
const outlineWidth = style.polygonOutlineWidth.evaluate(feature);
|
|
344
|
+
polygonMaterial.outlineWidth = Number.isFinite(outlineWidth)
|
|
345
|
+
? Math.max(0, outlineWidth)
|
|
346
|
+
: 0;
|
|
347
|
+
}
|
|
293
348
|
|
|
294
349
|
polygon.setMaterial(polygonMaterial);
|
|
295
350
|
}
|
|
@@ -301,6 +356,9 @@ class VectorGltf3DTileContent {
|
|
|
301
356
|
* @param {FrameState} frameState
|
|
302
357
|
*/
|
|
303
358
|
update(_tileset, frameState) {
|
|
359
|
+
const tileset = this._tileset;
|
|
360
|
+
const vectorProvider = tileset._scene?.vectorProvider;
|
|
361
|
+
|
|
304
362
|
if (defined(this._model) && !this._ready) {
|
|
305
363
|
const model = this._model;
|
|
306
364
|
model.modelMatrix = this._tile.computedTransform;
|
|
@@ -308,24 +366,48 @@ class VectorGltf3DTileContent {
|
|
|
308
366
|
|
|
309
367
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
310
368
|
if (model.ready) {
|
|
311
|
-
initializeVectorPrimitives(this);
|
|
369
|
+
initializeVectorPrimitives(this, frameState);
|
|
370
|
+
this._collectionSceneMode = frameState.mode;
|
|
312
371
|
this._ready = true;
|
|
313
372
|
}
|
|
314
373
|
}
|
|
315
374
|
|
|
316
|
-
|
|
317
|
-
this.
|
|
318
|
-
this.
|
|
319
|
-
|
|
320
|
-
)
|
|
375
|
+
if (
|
|
376
|
+
this._ready &&
|
|
377
|
+
frameState.mode !== this._collectionSceneMode &&
|
|
378
|
+
frameState.mode !== SceneMode.MORPHING
|
|
379
|
+
) {
|
|
380
|
+
rebuildVectorPrimitives(this, frameState);
|
|
381
|
+
}
|
|
321
382
|
|
|
322
|
-
|
|
383
|
+
if (this._collectionSceneMode === SceneMode.SCENE3D) {
|
|
323
384
|
Matrix4.multiplyTransformation(
|
|
385
|
+
this._tile.computedTransform,
|
|
386
|
+
this._modelMatrix,
|
|
324
387
|
scratchTileModelMatrix,
|
|
325
|
-
this._collectionLocalMatrices[i],
|
|
326
|
-
this._collections[i].modelMatrix,
|
|
327
388
|
);
|
|
328
|
-
|
|
389
|
+
} else {
|
|
390
|
+
Matrix4.clone(Matrix4.IDENTITY, scratchTileModelMatrix);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
// Only bake collections selected to render this frame (avoids duplicates).
|
|
394
|
+
const isSelected = this._tile._selectedFrame === frameState.frameNumber;
|
|
395
|
+
|
|
396
|
+
if (this._renderVectorGeometry) {
|
|
397
|
+
for (let i = 0; i < this._collections.length; i++) {
|
|
398
|
+
const collection = this._collections[i];
|
|
399
|
+
Matrix4.multiplyTransformation(
|
|
400
|
+
scratchTileModelMatrix,
|
|
401
|
+
this._collectionLocalMatrices[i],
|
|
402
|
+
collection.modelMatrix,
|
|
403
|
+
);
|
|
404
|
+
|
|
405
|
+
if (!isHeightReferenceClamp(tileset._heightReference)) {
|
|
406
|
+
collection.update(frameState);
|
|
407
|
+
} else if (isSelected && defined(vectorProvider)) {
|
|
408
|
+
vectorProvider.markSelected(collection, frameState.frameNumber);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
329
411
|
}
|
|
330
412
|
}
|
|
331
413
|
|
|
@@ -344,9 +426,18 @@ class VectorGltf3DTileContent {
|
|
|
344
426
|
}
|
|
345
427
|
|
|
346
428
|
destroy() {
|
|
429
|
+
const vectorProvider = this._tileset._scene?.vectorProvider;
|
|
430
|
+
|
|
347
431
|
this._model?.destroy();
|
|
348
432
|
this._model = undefined;
|
|
349
|
-
|
|
433
|
+
for (const collection of this._collections) {
|
|
434
|
+
vectorProvider?.remove(collection);
|
|
435
|
+
collection.destroy();
|
|
436
|
+
}
|
|
437
|
+
this._mvtLabelManager?.removeTile(this._mvtLabelTile);
|
|
438
|
+
this._mvtLabelManager = undefined;
|
|
439
|
+
this._mvtLabelTile = undefined;
|
|
440
|
+
this._mvtLabelByteLength = 0;
|
|
350
441
|
this._collections.length = 0;
|
|
351
442
|
return destroyObject(this);
|
|
352
443
|
}
|
|
@@ -355,16 +446,42 @@ class VectorGltf3DTileContent {
|
|
|
355
446
|
* @param {Cesium3DTileset} tileset
|
|
356
447
|
* @param {Cesium3DTile} tile
|
|
357
448
|
* @param {Resource} resource
|
|
358
|
-
* @param {
|
|
449
|
+
* @param {Uint8Array} glb GLB binary produced by buildVectorGltfFromMVT
|
|
450
|
+
* @param {*} [mvtLabelManager]
|
|
451
|
+
* @param {Array<*>} [mvtLabelCandidates]
|
|
452
|
+
* @param {{tileX:number,tileY:number,tileZ:number}} [tileCoordinates]
|
|
453
|
+
* @param {boolean} [renderVectorGeometry=true]
|
|
359
454
|
* @returns {Promise<VectorGltf3DTileContent>}
|
|
360
455
|
*/
|
|
361
|
-
static async fromGltf(
|
|
456
|
+
static async fromGltf(
|
|
457
|
+
tileset,
|
|
458
|
+
tile,
|
|
459
|
+
resource,
|
|
460
|
+
glb,
|
|
461
|
+
mvtLabelManager,
|
|
462
|
+
mvtLabelCandidates,
|
|
463
|
+
tileCoordinates,
|
|
464
|
+
renderVectorGeometry,
|
|
465
|
+
) {
|
|
362
466
|
const content = new VectorGltf3DTileContent(tileset, tile, resource);
|
|
363
|
-
|
|
467
|
+
content._renderVectorGeometry = renderVectorGeometry ?? true;
|
|
468
|
+
const modelOptions = makeModelOptions(tileset, tile, content, glb);
|
|
364
469
|
const model = await Model.fromGltfAsync(modelOptions);
|
|
365
470
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
366
471
|
model.show = false;
|
|
367
|
-
content._model = model;
|
|
472
|
+
content._model = /** @type {VectorGltfModel} */ (model);
|
|
473
|
+
// Registered only once the load can no longer fail, so a rejected model
|
|
474
|
+
// cannot leave an orphaned tile in the label manager.
|
|
475
|
+
if (defined(mvtLabelManager) && defined(mvtLabelCandidates)) {
|
|
476
|
+
content._mvtLabelManager = mvtLabelManager;
|
|
477
|
+
content._mvtLabelTile = mvtLabelManager.addTile(
|
|
478
|
+
tile,
|
|
479
|
+
tileCoordinates,
|
|
480
|
+
mvtLabelCandidates,
|
|
481
|
+
);
|
|
482
|
+
content._mvtLabelByteLength =
|
|
483
|
+
getMvtLabelCandidatesByteLength(mvtLabelCandidates);
|
|
484
|
+
}
|
|
368
485
|
return content;
|
|
369
486
|
}
|
|
370
487
|
}
|
|
@@ -373,13 +490,13 @@ class VectorGltf3DTileContent {
|
|
|
373
490
|
* @param {Cesium3DTileset} tileset
|
|
374
491
|
* @param {Cesium3DTile} tile
|
|
375
492
|
* @param {VectorGltf3DTileContent} content
|
|
376
|
-
* @param {
|
|
493
|
+
* @param {Uint8Array} glb
|
|
377
494
|
* @returns {*}
|
|
378
495
|
* @ignore
|
|
379
496
|
*/
|
|
380
|
-
function makeModelOptions(tileset, tile, content,
|
|
497
|
+
function makeModelOptions(tileset, tile, content, glb) {
|
|
381
498
|
return {
|
|
382
|
-
gltf:
|
|
499
|
+
gltf: glb,
|
|
383
500
|
basePath: content._resource,
|
|
384
501
|
cull: false,
|
|
385
502
|
releaseGltfJson: true,
|
|
@@ -402,9 +519,10 @@ function makeModelOptions(tileset, tile, content, gltf) {
|
|
|
402
519
|
|
|
403
520
|
/**
|
|
404
521
|
* @param {VectorGltf3DTileContent} content
|
|
522
|
+
* @param {FrameState} frameState
|
|
405
523
|
* @ignore
|
|
406
524
|
*/
|
|
407
|
-
function initializeVectorPrimitives(content) {
|
|
525
|
+
function initializeVectorPrimitives(content, frameState) {
|
|
408
526
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
409
527
|
const components = content._model.sceneGraph.components;
|
|
410
528
|
|
|
@@ -423,12 +541,34 @@ function initializeVectorPrimitives(content) {
|
|
|
423
541
|
const result = createVectorTileBuffersFromModelComponents(
|
|
424
542
|
content,
|
|
425
543
|
components,
|
|
544
|
+
frameState,
|
|
426
545
|
);
|
|
427
546
|
|
|
428
547
|
content._collections = result.collections;
|
|
429
548
|
content._collectionLocalMatrices = result.collectionLocalMatrices;
|
|
430
549
|
content._collectionFeatureTableIds = result.collectionFeatureTableIds;
|
|
431
550
|
content._featuresByTableId = result.featuresByTableId;
|
|
551
|
+
content._collectionSceneMode = frameState.mode;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* @param {VectorGltf3DTileContent} content
|
|
556
|
+
* @param {FrameState} frameState
|
|
557
|
+
* @ignore
|
|
558
|
+
*/
|
|
559
|
+
function rebuildVectorPrimitives(content, frameState) {
|
|
560
|
+
const vectorProvider = content._tileset._scene?.vectorProvider;
|
|
561
|
+
for (const collection of content._collections) {
|
|
562
|
+
vectorProvider?.remove(collection);
|
|
563
|
+
collection.destroy();
|
|
564
|
+
}
|
|
565
|
+
content._collections.length = 0;
|
|
566
|
+
content._collectionLocalMatrices.length = 0;
|
|
567
|
+
content._collectionFeatureTableIds.clear();
|
|
568
|
+
content._featuresByTableId.clear();
|
|
569
|
+
initializeVectorPrimitives(content, frameState);
|
|
570
|
+
// @ts-expect-error Requires Cesium3DTileset conversion to ES6 class.
|
|
571
|
+
content.applyStyle(content._tileset.style);
|
|
432
572
|
}
|
|
433
573
|
|
|
434
574
|
export default VectorGltf3DTileContent;
|
package/Source/Scene/View.js
CHANGED
|
@@ -11,6 +11,7 @@ import Pass from "../Renderer/Pass.js";
|
|
|
11
11
|
import PassState from "../Renderer/PassState.js";
|
|
12
12
|
import Camera from "./Camera.js";
|
|
13
13
|
import EdgeFramebuffer from "./EdgeFramebuffer.js";
|
|
14
|
+
import PlanarFillIdFramebuffer from "./PlanarFillIdFramebuffer.js";
|
|
14
15
|
import FrustumCommands from "./FrustumCommands.js";
|
|
15
16
|
import GlobeDepth from "./GlobeDepth.js";
|
|
16
17
|
import GlobeTranslucencyFramebuffer from "./GlobeTranslucencyFramebuffer.js";
|
|
@@ -62,9 +63,11 @@ function View(scene, camera, viewport) {
|
|
|
62
63
|
this.viewport = viewport;
|
|
63
64
|
this.passState = passState;
|
|
64
65
|
this.pickFramebuffer = new PickFramebuffer(context);
|
|
66
|
+
this.snapFramebuffer = undefined;
|
|
65
67
|
this.pickDepthFramebuffer = new PickDepthFramebuffer();
|
|
66
68
|
this.sceneFramebuffer = new SceneFramebuffer();
|
|
67
69
|
this.edgeFramebuffer = new EdgeFramebuffer();
|
|
70
|
+
this.planarFillIdFramebuffer = new PlanarFillIdFramebuffer();
|
|
68
71
|
this.globeDepth = globeDepth;
|
|
69
72
|
this.globeTranslucencyFramebuffer = new GlobeTranslucencyFramebuffer();
|
|
70
73
|
this.oit = oit;
|
|
@@ -211,15 +214,11 @@ function updateFrustums(view, scene, near, far) {
|
|
|
211
214
|
curNear = Math.max(near, Math.pow(farToNearRatio, m) * near);
|
|
212
215
|
curFar = Math.min(far, farToNearRatio * curNear);
|
|
213
216
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
frustumCommands = frustumCommandsList[m] = new FrustumCommands(
|
|
217
|
-
curNear,
|
|
218
|
-
curFar,
|
|
219
|
-
);
|
|
217
|
+
if (!defined(frustumCommandsList[m])) {
|
|
218
|
+
frustumCommandsList[m] = new FrustumCommands(curNear, curFar);
|
|
220
219
|
} else {
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
frustumCommandsList[m].near = curNear;
|
|
221
|
+
frustumCommandsList[m].far = curFar;
|
|
223
222
|
}
|
|
224
223
|
}
|
|
225
224
|
}
|
|
@@ -443,11 +442,14 @@ View.prototype.createPotentiallyVisibleSet = function (scene) {
|
|
|
443
442
|
|
|
444
443
|
View.prototype.destroy = function () {
|
|
445
444
|
this.pickFramebuffer = this.pickFramebuffer && this.pickFramebuffer.destroy();
|
|
445
|
+
this.snapFramebuffer = this.snapFramebuffer && this.snapFramebuffer.destroy();
|
|
446
446
|
this.pickDepthFramebuffer =
|
|
447
447
|
this.pickDepthFramebuffer && this.pickDepthFramebuffer.destroy();
|
|
448
448
|
this.sceneFramebuffer =
|
|
449
449
|
this.sceneFramebuffer && this.sceneFramebuffer.destroy();
|
|
450
450
|
this.edgeFramebuffer = this.edgeFramebuffer && this.edgeFramebuffer.destroy();
|
|
451
|
+
this.planarFillIdFramebuffer =
|
|
452
|
+
this.planarFillIdFramebuffer && this.planarFillIdFramebuffer.destroy();
|
|
451
453
|
this.globeDepth = this.globeDepth && this.globeDepth.destroy();
|
|
452
454
|
this.oit = this.oit && this.oit.destroy();
|
|
453
455
|
this.translucentTileClassification =
|