@cesium/engine 24.0.0 → 26.0.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/Workers/{chunk-6WLHJFD3.js → chunk-3VFEWOBI.js} +59 -32
- package/Build/Workers/{chunk-UQU4RXLT.js → chunk-424RNO3D.js} +50 -45
- package/Build/Workers/chunk-4MGMYHOO.js +147 -0
- package/Build/Workers/{chunk-AMIHNSST.js → chunk-4S7IE3LB.js} +2 -2
- package/Build/Workers/{chunk-J6AW5YHS.js → chunk-52JDLOEM.js} +14 -14
- package/Build/Workers/{chunk-6RMS4S72.js → chunk-54I6Y66F.js} +6 -6
- package/Build/Workers/{chunk-C6P4IG5P.js → chunk-6YEE6JDR.js} +6 -6
- package/Build/Workers/{chunk-72VYSVEW.js → chunk-7J2HKPRH.js} +11 -10
- package/Build/Workers/{chunk-7O5XJTVE.js → chunk-7WM2PX4V.js} +5 -5
- package/Build/Workers/{chunk-5A2SW66E.js → chunk-ACXQXN46.js} +16 -16
- package/Build/Workers/{chunk-VLDEUTOP.js → chunk-AYKR4VBR.js} +2 -2
- package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-C6J67V5A.js} +3 -2
- package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-C6KNZ7T4.js} +17 -17
- package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-CFQP6LYM.js} +4 -4
- package/Build/Workers/{chunk-YAOZMOFL.js → chunk-CXOYE2WM.js} +5 -5
- package/Build/Workers/{chunk-B6SCUUFP.js → chunk-CZEYZU4N.js} +10 -10
- package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DBOEKL43.js} +7 -7
- package/Build/Workers/{chunk-44EMEGKW.js → chunk-DDWSZVMY.js} +5 -5
- package/Build/Workers/{chunk-7X322WP2.js → chunk-DOBXCNC3.js} +13 -13
- package/Build/Workers/{chunk-JCI63T3K.js → chunk-E7VQ76KE.js} +6 -6
- package/Build/Workers/{chunk-7TYLCBGK.js → chunk-EBSIOBXY.js} +12 -10
- package/Build/Workers/{chunk-GQUNK2XC.js → chunk-EF2QYXGA.js} +14 -14
- package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-EPYXRCDB.js} +12 -12
- package/Build/Workers/{chunk-63SIWPLS.js → chunk-F6QDY6HU.js} +13 -13
- package/Build/Workers/{chunk-XY6HMDGI.js → chunk-FRQZECAO.js} +5 -5
- package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-G7PXZRVF.js} +7 -7
- package/Build/Workers/{chunk-N65BAKSH.js → chunk-INUEEEQA.js} +8 -8
- package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-IRBKFCEJ.js} +2 -2
- package/Build/Workers/{chunk-UIGVOKKI.js → chunk-IYOUHCZB.js} +3 -2
- package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-J6BWOHUF.js} +3 -3
- package/Build/Workers/{chunk-A47HVBC5.js → chunk-KFSTQKNM.js} +7 -7
- package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-KKOSKAZB.js} +17 -17
- package/Build/Workers/{chunk-6MPGQEHA.js → chunk-KSSWJIZW.js} +2 -2
- package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-M3B5JKSM.js} +3 -2
- package/Build/Workers/chunk-MPZHGZU6.js +2342 -0
- package/Build/Workers/{chunk-YJZGW74L.js → chunk-MYP774IS.js} +2213 -1349
- package/Build/Workers/{chunk-LIB2H534.js → chunk-O3EA5HS7.js} +12 -11
- package/Build/Workers/{chunk-ILMFADZA.js → chunk-P3CK7MCY.js} +27 -5
- package/Build/Workers/chunk-Q3PY526V.js +3201 -0
- package/Build/Workers/chunk-QN67VG36.js +973 -0
- package/Build/Workers/{chunk-XJRBB253.js → chunk-QRWGUWI6.js} +11 -11
- package/Build/Workers/{chunk-AF3MU2RL.js → chunk-S4MCOY6I.js} +7 -6
- package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-SMQZZOW6.js} +10 -10
- package/Build/Workers/{chunk-PVV64VFW.js → chunk-TKKIREQ6.js} +3 -2
- package/Build/Workers/{chunk-MKM27KGV.js → chunk-U3ZA64U7.js} +2 -2
- package/Build/Workers/{chunk-2N4KDHS3.js → chunk-UA25D5MX.js} +12 -11
- package/Build/Workers/{chunk-RQNJD3O4.js → chunk-UOOIQ3KX.js} +12 -12
- package/Build/Workers/{chunk-GOQBUCXH.js → chunk-V7VQKN6N.js} +709 -431
- package/Build/Workers/{chunk-LXMCPFFS.js → chunk-VQYETPWC.js} +4 -4
- package/Build/Workers/{chunk-NKT5K3K3.js → chunk-VWV2IJRB.js} +13 -12
- package/Build/Workers/chunk-XZMBNNDX.js +1287 -0
- package/Build/Workers/{chunk-ISY4EZCA.js → chunk-Y57HREW5.js} +4 -4
- package/Build/Workers/{chunk-EDXL4W76.js → chunk-Y5BF6AFU.js} +2 -2
- package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-YLY7NKAB.js} +4 -4
- package/Build/Workers/{chunk-4TIG36AW.js → chunk-ZK3CF7ZD.js} +12 -12
- package/Build/Workers/{chunk-AJLTU6PF.js → chunk-ZP7JMQV4.js} +4 -1
- package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-ZZ46LWL6.js} +1 -1
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- 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 +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +175 -118
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- 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 +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +24 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- 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 +12 -9
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/ArcType.js +6 -1
- package/Source/Core/ArticulationStageType.js +5 -1
- package/Source/Core/AssociativeArray.js +100 -94
- package/Source/Core/BoundingSphere.js +1296 -1300
- package/Source/Core/Cartesian2.js +1 -1
- package/Source/Core/Cartesian3.js +2 -3
- package/Source/Core/Cartesian4.js +1 -1
- package/Source/Core/Cartographic.js +257 -249
- package/Source/Core/ClockRange.js +6 -1
- package/Source/Core/ClockStep.js +6 -1
- package/Source/Core/Color.js +844 -835
- package/Source/Core/ComponentDatatype.js +39 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/Ellipsoid.js +637 -660
- package/Source/Core/ExtrapolationType.js +6 -1
- package/Source/Core/GeocodeType.js +6 -1
- package/Source/Core/GeographicProjection.js +74 -74
- package/Source/Core/GeographicTilingScheme.js +179 -198
- package/Source/Core/GeometryOffsetAttribute.js +7 -1
- package/Source/Core/GeometryType.js +7 -1
- package/Source/Core/HeightmapEncoding.js +6 -1
- package/Source/Core/Iau2006XysData.js +24 -13
- package/Source/Core/IndexDatatype.js +3 -1
- package/Source/Core/InterpolationType.js +5 -1
- package/Source/Core/Intersect.js +6 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocodeProviderType.js +5 -1
- package/Source/Core/JulianDate.js +850 -848
- package/Source/Core/KeyboardEventModifier.js +6 -1
- package/Source/Core/MapProjection.js +40 -44
- package/Source/Core/Matrix2.js +906 -893
- package/Source/Core/Matrix3.js +1643 -1575
- package/Source/Core/Matrix4.js +2903 -2872
- package/Source/Core/PixelFormat.js +3 -1
- package/Source/Core/PrimitiveType.js +11 -1
- package/Source/Core/Ray.js +62 -60
- package/Source/Core/Rectangle.js +913 -904
- package/Source/Core/ReferenceFrame.js +6 -1
- package/Source/Core/RequestScheduler.js +8 -3
- package/Source/Core/RequestState.js +6 -1
- package/Source/Core/RequestType.js +6 -1
- package/Source/Core/Resource.js +1 -1
- package/Source/Core/ScreenSpaceEventHandler.js +51 -41
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainQuantization.js +6 -1
- package/Source/Core/TilingScheme.js +100 -98
- package/Source/Core/TimeConstants.js +6 -1
- package/Source/Core/TimeStandard.js +6 -1
- package/Source/Core/TrackingReferenceFrame.js +6 -1
- package/Source/Core/Visibility.js +6 -1
- package/Source/Core/VulkanConstants.js +6 -1
- package/Source/Core/WebGLConstants.js +6 -1
- package/Source/Core/WebMercatorProjection.js +108 -109
- package/Source/Core/WebMercatorTilingScheme.js +246 -242
- package/Source/Core/WindingOrder.js +3 -1
- package/Source/Core/createColorRamp.js +37 -0
- package/Source/Core/globalTypes.js +25 -0
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
- package/Source/DataSources/StripeOrientation.js +6 -1
- package/Source/Renderer/BufferUsage.js +20 -9
- package/Source/Renderer/Context.js +2 -29
- package/Source/Renderer/DrawCommand.js +435 -403
- package/Source/Renderer/MipmapHint.js +5 -1
- package/Source/Renderer/Pass.js +10 -3
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderbufferFormat.js +5 -1
- package/Source/Renderer/ShaderDestination.js +4 -1
- package/Source/Renderer/TextureMagnificationFilter.js +3 -1
- package/Source/Renderer/TextureMinificationFilter.js +3 -1
- package/Source/Renderer/TextureWrap.js +5 -1
- package/Source/Renderer/createUniform.js +346 -239
- package/Source/Renderer/createUniformArray.js +494 -381
- package/Source/Scene/AlphaMode.js +5 -1
- package/Source/Scene/ArcGisBaseMapType.js +6 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/AttributeType.js +3 -1
- package/Source/Scene/Axis.js +3 -1
- package/Source/Scene/BingMapsStyle.js +6 -1
- package/Source/Scene/BlendEquation.js +6 -1
- package/Source/Scene/BlendFunction.js +6 -1
- package/Source/Scene/BlendOption.js +6 -1
- package/Source/Scene/BlendingState.js +6 -1
- package/Source/Scene/BufferLoader.js +0 -2
- package/Source/Scene/BufferPoint.js +1 -0
- package/Source/Scene/BufferPointCollection.js +17 -1
- package/Source/Scene/BufferPolygon.js +3 -2
- package/Source/Scene/BufferPolygonCollection.js +13 -1
- package/Source/Scene/BufferPolyline.js +1 -0
- package/Source/Scene/BufferPolylineCollection.js +5 -1
- package/Source/Scene/BufferPrimitiveCollection.js +210 -43
- package/Source/Scene/CameraEventAggregator.js +30 -18
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTile.js +54 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContent.js +195 -254
- package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
- package/Source/Scene/Cesium3DTileContentState.js +6 -1
- package/Source/Scene/Cesium3DTileContentType.js +3 -1
- package/Source/Scene/Cesium3DTileFeature.js +289 -306
- package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
- package/Source/Scene/Cesium3DTilePass.js +5 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
- package/Source/Scene/Cesium3DTileRefine.js +6 -1
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +46 -6
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/Composite3DTileContent.js +254 -292
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EdgeDisplayMode.js +50 -0
- package/Source/Scene/Empty3DTileContent.js +100 -132
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
- package/Source/Scene/GeoJsonPrimitive.js +874 -0
- package/Source/Scene/Geometry3DTileContent.js +151 -185
- package/Source/Scene/GltfBufferViewLoader.js +0 -2
- package/Source/Scene/GltfDracoLoader.js +0 -2
- package/Source/Scene/GltfImageLoader.js +0 -3
- package/Source/Scene/GltfIndexBufferLoader.js +0 -4
- package/Source/Scene/GltfJsonLoader.js +0 -2
- package/Source/Scene/GltfLoader.js +109 -5
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +0 -2
- package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
- package/Source/Scene/GltfTextureLoader.js +0 -2
- package/Source/Scene/GltfVertexBufferLoader.js +0 -4
- package/Source/Scene/HeightReference.js +5 -1
- package/Source/Scene/HorizontalOrigin.js +6 -1
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- package/Source/Scene/Implicit3DTileContent.js +179 -214
- package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
- package/Source/Scene/InstanceAttributeSemantic.js +3 -1
- package/Source/Scene/IonWorldImageryStyle.js +6 -1
- package/Source/Scene/JobType.js +6 -1
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MVTDataProvider.js +147 -0
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/MetadataComponentType.js +3 -1
- package/Source/Scene/MetadataSchemaLoader.js +0 -2
- package/Source/Scene/MetadataSemantic.js +6 -2
- package/Source/Scene/MetadataType.js +3 -1
- package/Source/Scene/Model/B3dmLoader.js +0 -3
- package/Source/Scene/Model/CustomShaderMode.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +78 -337
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
- package/Source/Scene/Model/GeoJsonLoader.js +0 -2
- package/Source/Scene/Model/I3dmLoader.js +0 -3
- package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
- package/Source/Scene/Model/LightingModel.js +5 -1
- package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
- package/Source/Scene/Model/Model.js +34 -0
- package/Source/Scene/Model/Model3DTileContent.js +424 -458
- package/Source/Scene/Model/ModelDrawCommand.js +31 -3
- package/Source/Scene/Model/ModelReader.js +474 -3
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/ModelUtility.js +4 -0
- package/Source/Scene/Model/PntsLoader.js +4 -3
- package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
- package/Source/Scene/Model/UniformType.js +5 -1
- package/Source/Scene/Model/VaryingType.js +5 -1
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +500 -139
- package/Source/Scene/Model/pickModel.js +94 -299
- package/Source/Scene/ModelAnimationLoop.js +6 -1
- package/Source/Scene/ModelAnimationState.js +6 -1
- package/Source/Scene/ModelComponents.js +47 -2
- package/Source/Scene/Multiple3DTileContent.js +291 -334
- package/Source/Scene/PrimitiveState.js +7 -1
- package/Source/Scene/QuadtreeOccluders.js +20 -15
- package/Source/Scene/QuadtreeTile.js +547 -541
- package/Source/Scene/QuadtreeTileLoadState.js +6 -1
- package/Source/Scene/QuadtreeTileProvider.js +159 -175
- package/Source/Scene/ResourceLoader.js +0 -1
- package/Source/Scene/ResourceLoaderState.js +7 -1
- package/Source/Scene/Scene.js +26 -0
- package/Source/Scene/SceneMode.js +4 -1
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +1 -1
- package/Source/Scene/SplitDirection.js +6 -1
- package/Source/Scene/StencilFunction.js +6 -1
- package/Source/Scene/StencilOperation.js +6 -1
- package/Source/Scene/TerrainState.js +7 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tileset3DTileContent.js +113 -146
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
- package/Source/Scene/Vector3DTileContent.js +205 -234
- package/Source/Scene/VectorGltf3DTileContent.js +131 -61
- package/Source/Scene/VertexAttributeSemantic.js +3 -1
- package/Source/Scene/VerticalOrigin.js +6 -1
- package/Source/Scene/VoxelBoxShape.js +12 -6
- package/Source/Scene/VoxelContent.js +2 -0
- package/Source/Scene/VoxelCylinderShape.js +39 -38
- package/Source/Scene/VoxelEllipsoidShape.js +46 -96
- package/Source/Scene/VoxelMetadataOrder.js +6 -1
- package/Source/Scene/VoxelPrimitive.js +159 -175
- package/Source/Scene/VoxelProvider.js +64 -90
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
- package/Source/Scene/buildVoxelCustomShader.js +199 -0
- package/Source/Scene/decodeMVT.js +634 -0
- package/Source/Scene/renderBufferPointCollection.js +124 -127
- package/Source/Scene/renderBufferPolygonCollection.js +122 -122
- package/Source/Scene/renderBufferPolylineCollection.js +386 -238
- 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/BufferPolygonMaterialVS.glsl +13 -4
- package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
- package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
- package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
- package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
- package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
- package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
- package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
- package/Source/Widget/CesiumWidget.js +11 -4
- package/index.d.ts +595 -343
- package/index.js +392 -378
- package/package.json +3 -3
- package/Build/Workers/chunk-DVB56LG7.js +0 -114
- package/Build/Workers/chunk-HKUES6UG.js +0 -2357
- package/Build/Workers/chunk-HRHRYFHS.js +0 -940
- package/Build/Workers/chunk-KLPGTXS3.js +0 -642
- package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
|
@@ -21,314 +21,429 @@ import preprocess3DTileContent from "./preprocess3DTileContent.js";
|
|
|
21
21
|
*
|
|
22
22
|
* @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_multiple_contents|3DTILES_multiple_contents extension}
|
|
23
23
|
*
|
|
24
|
-
* @
|
|
25
|
-
* @constructor
|
|
26
|
-
*
|
|
27
|
-
* @param {Cesium3DTileset} tileset The tileset this content belongs to
|
|
28
|
-
* @param {Cesium3DTile} tile The content this content belongs to
|
|
29
|
-
* @param {Resource} tilesetResource The resource that points to the tileset. This will be used to derive each inner content's resource.
|
|
30
|
-
* @param {object} contentsJson Either the tile JSON containing the contents array (3D Tiles 1.1), or <code>3DTILES_multiple_contents</code> extension JSON
|
|
31
|
-
*
|
|
24
|
+
* @implements Cesium3DTileContent
|
|
32
25
|
* @private
|
|
33
26
|
* @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
|
|
34
27
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
28
|
+
class Multiple3DTileContent {
|
|
29
|
+
/**
|
|
30
|
+
* @param {Cesium3DTileset} tileset The tileset this content belongs to
|
|
31
|
+
* @param {Cesium3DTile} tile The content this content belongs to
|
|
32
|
+
* @param {Resource} tilesetResource The resource that points to the tileset. This will be used to derive each inner content's resource.
|
|
33
|
+
* @param {object} contentsJson Either the tile JSON containing the contents array (3D Tiles 1.1), or <code>3DTILES_multiple_contents</code> extension JSON
|
|
34
|
+
*/
|
|
35
|
+
constructor(tileset, tile, tilesetResource, contentsJson) {
|
|
36
|
+
this._tileset = tileset;
|
|
37
|
+
this._tile = tile;
|
|
38
|
+
this._tilesetResource = tilesetResource;
|
|
39
|
+
this._contents = [];
|
|
40
|
+
this._contentsCreated = false;
|
|
41
|
+
|
|
42
|
+
// An older version of 3DTILES_multiple_contents used "content" instead of "contents"
|
|
43
|
+
const contentHeaders = defined(contentsJson.contents)
|
|
44
|
+
? contentsJson.contents
|
|
45
|
+
: contentsJson.content;
|
|
46
|
+
|
|
47
|
+
this._innerContentHeaders = contentHeaders;
|
|
48
|
+
this._requestsInFlight = 0;
|
|
49
|
+
|
|
50
|
+
// How many times cancelPendingRequests() has been called. This is
|
|
51
|
+
// used to help short-circuit computations after a tile was canceled.
|
|
52
|
+
this._cancelCount = 0;
|
|
53
|
+
|
|
54
|
+
// The number of contents that turned out to be external tilesets
|
|
55
|
+
// in createInnerContent. When all contents are external tilesets,
|
|
56
|
+
// then tile.hasRenderableContent will become `false`
|
|
57
|
+
this._externalTilesetCount = 0;
|
|
58
|
+
|
|
59
|
+
const contentCount = this._innerContentHeaders.length;
|
|
60
|
+
this._arrayFetchPromises = new Array(contentCount);
|
|
61
|
+
this._requests = new Array(contentCount);
|
|
62
|
+
this._ready = false;
|
|
63
|
+
|
|
64
|
+
this._innerContentResources = new Array(contentCount);
|
|
65
|
+
this._serverKeys = new Array(contentCount);
|
|
66
|
+
|
|
67
|
+
for (let i = 0; i < contentCount; i++) {
|
|
68
|
+
const contentResource = tilesetResource.getDerivedResource({
|
|
69
|
+
url: contentHeaders[i].uri,
|
|
70
|
+
});
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
const serverKey = RequestScheduler.getServerKey(
|
|
73
|
+
contentResource.getUrlComponent(),
|
|
74
|
+
);
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
this._innerContentResources[i] = contentResource;
|
|
77
|
+
this._serverKeys[i] = serverKey;
|
|
78
|
+
}
|
|
78
79
|
}
|
|
79
|
-
}
|
|
80
80
|
|
|
81
|
-
Object.defineProperties(Multiple3DTileContent.prototype, {
|
|
82
81
|
/**
|
|
83
82
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code> checks if any of the inner contents have dirty featurePropertiesDirty.
|
|
84
|
-
* @memberof Multiple3DTileContent.prototype
|
|
85
83
|
*
|
|
86
84
|
* @type {boolean}
|
|
87
85
|
*
|
|
88
86
|
* @private
|
|
89
87
|
*/
|
|
90
|
-
featurePropertiesDirty
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
88
|
+
get featurePropertiesDirty() {
|
|
89
|
+
const contents = this._contents;
|
|
90
|
+
const length = contents.length;
|
|
91
|
+
for (let i = 0; i < length; ++i) {
|
|
92
|
+
if (contents[i].featurePropertiesDirty) {
|
|
93
|
+
return true;
|
|
98
94
|
}
|
|
95
|
+
}
|
|
99
96
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
set featurePropertiesDirty(value) {
|
|
101
|
+
const contents = this._contents;
|
|
102
|
+
const length = contents.length;
|
|
103
|
+
for (let i = 0; i < length; ++i) {
|
|
104
|
+
contents[i].featurePropertiesDirty = value;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
110
107
|
|
|
111
108
|
/**
|
|
112
109
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
113
110
|
* always returns <code>0</code>. Instead call <code>featuresLength</code> for a specific inner content.
|
|
114
111
|
*
|
|
115
|
-
* @memberof Multiple3DTileContent.prototype
|
|
116
112
|
*
|
|
117
113
|
* @type {number}
|
|
118
114
|
* @readonly
|
|
119
115
|
*
|
|
120
116
|
* @private
|
|
121
117
|
*/
|
|
122
|
-
featuresLength
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
},
|
|
126
|
-
},
|
|
118
|
+
get featuresLength() {
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
127
121
|
|
|
128
122
|
/**
|
|
129
123
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
130
124
|
* always returns <code>0</code>. Instead, call <code>pointsLength</code> for a specific inner content.
|
|
131
125
|
*
|
|
132
|
-
* @memberof Multiple3DTileContent.prototype
|
|
133
126
|
*
|
|
134
127
|
* @type {number}
|
|
135
128
|
* @readonly
|
|
136
129
|
*
|
|
137
130
|
* @private
|
|
138
131
|
*/
|
|
139
|
-
pointsLength
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
},
|
|
143
|
-
},
|
|
132
|
+
get pointsLength() {
|
|
133
|
+
return 0;
|
|
134
|
+
}
|
|
144
135
|
|
|
145
136
|
/**
|
|
146
137
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
147
138
|
* always returns <code>0</code>. Instead call <code>trianglesLength</code> for a specific inner content.
|
|
148
139
|
*
|
|
149
|
-
* @memberof Multiple3DTileContent.prototype
|
|
150
140
|
*
|
|
151
141
|
* @type {number}
|
|
152
142
|
* @readonly
|
|
153
143
|
*
|
|
154
144
|
* @private
|
|
155
145
|
*/
|
|
156
|
-
trianglesLength
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
},
|
|
160
|
-
},
|
|
146
|
+
get trianglesLength() {
|
|
147
|
+
return 0;
|
|
148
|
+
}
|
|
161
149
|
|
|
162
150
|
/**
|
|
163
151
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
164
152
|
* always returns <code>0</code>. Instead call <code>geometryByteLength</code> for a specific inner content.
|
|
165
153
|
*
|
|
166
|
-
* @memberof Multiple3DTileContent.prototype
|
|
167
154
|
*
|
|
168
155
|
* @type {number}
|
|
169
156
|
* @readonly
|
|
170
157
|
*
|
|
171
158
|
* @private
|
|
172
159
|
*/
|
|
173
|
-
geometryByteLength
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
},
|
|
177
|
-
},
|
|
160
|
+
get geometryByteLength() {
|
|
161
|
+
return 0;
|
|
162
|
+
}
|
|
178
163
|
|
|
179
164
|
/**
|
|
180
165
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
181
166
|
* always returns <code>0</code>. Instead call <code>texturesByteLength</code> for a specific inner content.
|
|
182
167
|
*
|
|
183
|
-
* @memberof Multiple3DTileContent.prototype
|
|
184
168
|
*
|
|
185
169
|
* @type {number}
|
|
186
170
|
* @readonly
|
|
187
171
|
*
|
|
188
172
|
* @private
|
|
189
173
|
*/
|
|
190
|
-
texturesByteLength
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
},
|
|
194
|
-
},
|
|
174
|
+
get texturesByteLength() {
|
|
175
|
+
return 0;
|
|
176
|
+
}
|
|
195
177
|
|
|
196
178
|
/**
|
|
197
179
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
198
180
|
* always returns <code>0</code>. Instead call <code>batchTableByteLength</code> for a specific inner content.
|
|
199
181
|
*
|
|
200
|
-
* @memberof Multiple3DTileContent.prototype
|
|
201
182
|
*
|
|
202
183
|
* @type {number}
|
|
203
184
|
* @readonly
|
|
204
185
|
*
|
|
205
186
|
* @private
|
|
206
187
|
*/
|
|
207
|
-
batchTableByteLength
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
get: function () {
|
|
215
|
-
return this._contents;
|
|
216
|
-
},
|
|
217
|
-
},
|
|
188
|
+
get batchTableByteLength() {
|
|
189
|
+
return 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
get innerContents() {
|
|
193
|
+
return this._contents;
|
|
194
|
+
}
|
|
218
195
|
|
|
219
196
|
/**
|
|
220
197
|
* Returns true when the tile's content is ready to render; otherwise false
|
|
221
198
|
*
|
|
222
|
-
* @memberof Multiple3DTileContent.prototype
|
|
223
199
|
*
|
|
224
200
|
* @type {boolean}
|
|
225
201
|
* @readonly
|
|
226
202
|
* @private
|
|
227
203
|
*/
|
|
228
|
-
ready
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
204
|
+
get ready() {
|
|
205
|
+
if (!this._contentsCreated) {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
233
208
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
},
|
|
209
|
+
return this._ready;
|
|
210
|
+
}
|
|
237
211
|
|
|
238
|
-
tileset
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
},
|
|
242
|
-
},
|
|
212
|
+
get tileset() {
|
|
213
|
+
return this._tileset;
|
|
214
|
+
}
|
|
243
215
|
|
|
244
|
-
tile
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
},
|
|
248
|
-
},
|
|
216
|
+
get tile() {
|
|
217
|
+
return this._tile;
|
|
218
|
+
}
|
|
249
219
|
|
|
250
220
|
/**
|
|
251
221
|
* Part of the {@link Cesium3DTileContent} interface.
|
|
252
222
|
* Unlike other content types, <code>Multiple3DTileContent</code> does not
|
|
253
223
|
* have a single URL, so this returns undefined.
|
|
254
|
-
* @memberof Multiple3DTileContent.prototype
|
|
255
224
|
*
|
|
256
225
|
* @type {string}
|
|
257
226
|
* @readonly
|
|
258
227
|
* @private
|
|
259
228
|
*/
|
|
260
|
-
url
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
},
|
|
264
|
-
},
|
|
229
|
+
get url() {
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
265
232
|
|
|
266
233
|
/**
|
|
267
234
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
268
235
|
* always returns <code>undefined</code>. Instead call <code>metadata</code> for a specific inner content.
|
|
269
|
-
* @memberof Multiple3DTileContent.prototype
|
|
270
236
|
* @private
|
|
271
237
|
*/
|
|
272
|
-
metadata
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
},
|
|
238
|
+
get metadata() {
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
set metadata(_) {
|
|
243
|
+
//>>includeStart('debug', pragmas.debug);
|
|
244
|
+
throw new DeveloperError("Multiple3DTileContent cannot have metadata");
|
|
245
|
+
//>>includeEnd('debug');
|
|
246
|
+
}
|
|
282
247
|
|
|
283
248
|
/**
|
|
284
249
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
285
250
|
* always returns <code>undefined</code>. Instead call <code>batchTable</code> for a specific inner content.
|
|
286
|
-
* @memberof Multiple3DTileContent.prototype
|
|
287
251
|
* @private
|
|
288
252
|
*/
|
|
289
|
-
batchTable
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
},
|
|
293
|
-
},
|
|
253
|
+
get batchTable() {
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
294
256
|
|
|
295
257
|
/**
|
|
296
258
|
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
297
259
|
* always returns <code>undefined</code>. Instead call <code>group</code> for a specific inner content.
|
|
298
|
-
* @memberof Multiple3DTileContent.prototype
|
|
299
260
|
* @private
|
|
300
261
|
*/
|
|
301
|
-
group
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
},
|
|
262
|
+
get group() {
|
|
263
|
+
return undefined;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
set group(_) {
|
|
267
|
+
//>>includeStart('debug', pragmas.debug);
|
|
268
|
+
throw new DeveloperError(
|
|
269
|
+
"Multiple3DTileContent cannot have group metadata",
|
|
270
|
+
);
|
|
271
|
+
//>>includeEnd('debug');
|
|
272
|
+
}
|
|
313
273
|
|
|
314
274
|
/**
|
|
315
275
|
* Get an array of the inner content URLs, regardless of whether they've
|
|
316
276
|
* been fetched or not. This is intended for use with
|
|
317
277
|
* {@link Cesium3DTileset#debugShowUrl}.
|
|
318
|
-
* @memberof Multiple3DTileContent.prototype
|
|
319
278
|
*
|
|
320
279
|
* @type {string[]}
|
|
321
280
|
* @readonly
|
|
322
281
|
* @private
|
|
323
282
|
*/
|
|
324
|
-
innerContentUrls
|
|
325
|
-
|
|
326
|
-
return
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
283
|
+
get innerContentUrls() {
|
|
284
|
+
return this._innerContentHeaders.map(function (contentHeader) {
|
|
285
|
+
return contentHeader.uri;
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Request the inner contents of this <code>Multiple3DTileContent</code>. This must be called once a frame until
|
|
291
|
+
* {@link Multiple3DTileContent#contentsFetchedPromise} is defined. This promise
|
|
292
|
+
* becomes available as soon as all requests are scheduled.
|
|
293
|
+
* <p>
|
|
294
|
+
* This method also updates the tile statistics' pending request count if the
|
|
295
|
+
* requests are successfully scheduled.
|
|
296
|
+
* </p>
|
|
297
|
+
*
|
|
298
|
+
* @return {Promise<void>|undefined} A promise that resolves when the request completes, or undefined if there is no request needed, or the request cannot be scheduled.
|
|
299
|
+
* @private
|
|
300
|
+
*/
|
|
301
|
+
requestInnerContents() {
|
|
302
|
+
// It's possible for these promises to leak content array buffers if the
|
|
303
|
+
// camera moves before they all are scheduled. To prevent this leak, check
|
|
304
|
+
// if we can schedule all the requests at once. If not, no requests are
|
|
305
|
+
// scheduled
|
|
306
|
+
if (!canScheduleAllRequests(this._serverKeys)) {
|
|
307
|
+
this.tileset.statistics.numberOfAttemptedRequests +=
|
|
308
|
+
this._serverKeys.length;
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
const contentHeaders = this._innerContentHeaders;
|
|
313
|
+
updatePendingRequests(this, contentHeaders.length);
|
|
314
|
+
|
|
315
|
+
const originalCancelCount = this._cancelCount;
|
|
316
|
+
for (let i = 0; i < contentHeaders.length; i++) {
|
|
317
|
+
// The cancel count is needed to avoid a race condition where a content
|
|
318
|
+
// is canceled multiple times.
|
|
319
|
+
this._arrayFetchPromises[i] = requestInnerContent(
|
|
320
|
+
this,
|
|
321
|
+
i,
|
|
322
|
+
originalCancelCount,
|
|
323
|
+
this._tile._contentState,
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
return createInnerContents(this);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Cancel all requests for inner contents. This is called by the tile
|
|
332
|
+
* when a tile goes out of view.
|
|
333
|
+
*
|
|
334
|
+
* @private
|
|
335
|
+
*/
|
|
336
|
+
cancelRequests() {
|
|
337
|
+
for (let i = 0; i < this._requests.length; i++) {
|
|
338
|
+
const request = this._requests[i];
|
|
339
|
+
if (defined(request)) {
|
|
340
|
+
request.cancel();
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
347
|
+
* always returns <code>false</code>. Instead call <code>hasProperty</code> for a specific inner content
|
|
348
|
+
* @private
|
|
349
|
+
*/
|
|
350
|
+
hasProperty(batchId, name) {
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
356
|
+
* always returns <code>undefined</code>. Instead call <code>getFeature</code> for a specific inner content
|
|
357
|
+
* @private
|
|
358
|
+
*/
|
|
359
|
+
getFeature(batchId) {
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
applyDebugSettings(enabled, color) {
|
|
364
|
+
const contents = this._contents;
|
|
365
|
+
const length = contents.length;
|
|
366
|
+
for (let i = 0; i < length; ++i) {
|
|
367
|
+
contents[i].applyDebugSettings(enabled, color);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
applyStyle(style) {
|
|
372
|
+
const contents = this._contents;
|
|
373
|
+
const length = contents.length;
|
|
374
|
+
for (let i = 0; i < length; ++i) {
|
|
375
|
+
contents[i].applyStyle(style);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
update(tileset, frameState) {
|
|
380
|
+
const contents = this._contents;
|
|
381
|
+
const length = contents.length;
|
|
382
|
+
let ready = true;
|
|
383
|
+
for (let i = 0; i < length; ++i) {
|
|
384
|
+
contents[i].update(tileset, frameState);
|
|
385
|
+
ready = ready && contents[i].ready;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
if (!this._ready && ready) {
|
|
389
|
+
this._ready = true;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Find an intersection between a ray and the tile content surface that was rendered. The ray must be given in world coordinates.
|
|
395
|
+
*
|
|
396
|
+
* @param {Ray} ray The ray to test for intersection.
|
|
397
|
+
* @param {FrameState} frameState The frame state.
|
|
398
|
+
* @param {Cartesian3|undefined} [result] The intersection or <code>undefined</code> if none was found.
|
|
399
|
+
* @returns {Cartesian3|undefined} The intersection or <code>undefined</code> if none was found.
|
|
400
|
+
*
|
|
401
|
+
* @private
|
|
402
|
+
*/
|
|
403
|
+
pick(ray, frameState, result) {
|
|
404
|
+
if (!this._ready) {
|
|
405
|
+
return undefined;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
let intersection;
|
|
409
|
+
let minDistance = Number.POSITIVE_INFINITY;
|
|
410
|
+
const contents = this._contents;
|
|
411
|
+
const length = contents.length;
|
|
412
|
+
|
|
413
|
+
for (let i = 0; i < length; ++i) {
|
|
414
|
+
const candidate = contents[i].pick(ray, frameState, result);
|
|
415
|
+
|
|
416
|
+
if (!defined(candidate)) {
|
|
417
|
+
continue;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
const distance = Cartesian3.distance(ray.origin, candidate);
|
|
421
|
+
if (distance < minDistance) {
|
|
422
|
+
intersection = candidate;
|
|
423
|
+
minDistance = distance;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
if (!defined(intersection)) {
|
|
428
|
+
return undefined;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
return result;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
isDestroyed() {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
destroy() {
|
|
439
|
+
const contents = this._contents;
|
|
440
|
+
const length = contents.length;
|
|
441
|
+
for (let i = 0; i < length; ++i) {
|
|
442
|
+
contents[i].destroy();
|
|
443
|
+
}
|
|
444
|
+
return destroyObject(this);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
332
447
|
|
|
333
448
|
function updatePendingRequests(multipleContents, deltaRequestCount) {
|
|
334
449
|
multipleContents._requestsInFlight += deltaRequestCount;
|
|
@@ -353,47 +468,6 @@ function cancelPendingRequests(multipleContents, originalContentState) {
|
|
|
353
468
|
multipleContents._arrayFetchPromises = new Array(contentCount);
|
|
354
469
|
}
|
|
355
470
|
|
|
356
|
-
/**
|
|
357
|
-
* Request the inner contents of this <code>Multiple3DTileContent</code>. This must be called once a frame until
|
|
358
|
-
* {@link Multiple3DTileContent#contentsFetchedPromise} is defined. This promise
|
|
359
|
-
* becomes available as soon as all requests are scheduled.
|
|
360
|
-
* <p>
|
|
361
|
-
* This method also updates the tile statistics' pending request count if the
|
|
362
|
-
* requests are successfully scheduled.
|
|
363
|
-
* </p>
|
|
364
|
-
*
|
|
365
|
-
* @return {Promise<void>|undefined} A promise that resolves when the request completes, or undefined if there is no request needed, or the request cannot be scheduled.
|
|
366
|
-
* @private
|
|
367
|
-
*/
|
|
368
|
-
Multiple3DTileContent.prototype.requestInnerContents = function () {
|
|
369
|
-
// It's possible for these promises to leak content array buffers if the
|
|
370
|
-
// camera moves before they all are scheduled. To prevent this leak, check
|
|
371
|
-
// if we can schedule all the requests at once. If not, no requests are
|
|
372
|
-
// scheduled
|
|
373
|
-
if (!canScheduleAllRequests(this._serverKeys)) {
|
|
374
|
-
this.tileset.statistics.numberOfAttemptedRequests +=
|
|
375
|
-
this._serverKeys.length;
|
|
376
|
-
return;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
const contentHeaders = this._innerContentHeaders;
|
|
380
|
-
updatePendingRequests(this, contentHeaders.length);
|
|
381
|
-
|
|
382
|
-
const originalCancelCount = this._cancelCount;
|
|
383
|
-
for (let i = 0; i < contentHeaders.length; i++) {
|
|
384
|
-
// The cancel count is needed to avoid a race condition where a content
|
|
385
|
-
// is canceled multiple times.
|
|
386
|
-
this._arrayFetchPromises[i] = requestInnerContent(
|
|
387
|
-
this,
|
|
388
|
-
i,
|
|
389
|
-
originalCancelCount,
|
|
390
|
-
this._tile._contentState,
|
|
391
|
-
);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
return createInnerContents(this);
|
|
395
|
-
};
|
|
396
|
-
|
|
397
471
|
/**
|
|
398
472
|
* Check if all requests for inner contents can be scheduled at once. This is slower, but it avoids a potential memory leak.
|
|
399
473
|
* @param {string[]} serverKeys The server keys for all of the inner contents
|
|
@@ -602,121 +676,4 @@ function handleInnerContentFailed(multipleContents, index, error) {
|
|
|
602
676
|
}
|
|
603
677
|
}
|
|
604
678
|
|
|
605
|
-
/**
|
|
606
|
-
* Cancel all requests for inner contents. This is called by the tile
|
|
607
|
-
* when a tile goes out of view.
|
|
608
|
-
*
|
|
609
|
-
* @private
|
|
610
|
-
*/
|
|
611
|
-
Multiple3DTileContent.prototype.cancelRequests = function () {
|
|
612
|
-
for (let i = 0; i < this._requests.length; i++) {
|
|
613
|
-
const request = this._requests[i];
|
|
614
|
-
if (defined(request)) {
|
|
615
|
-
request.cancel();
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
};
|
|
619
|
-
|
|
620
|
-
/**
|
|
621
|
-
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
622
|
-
* always returns <code>false</code>. Instead call <code>hasProperty</code> for a specific inner content
|
|
623
|
-
* @private
|
|
624
|
-
*/
|
|
625
|
-
Multiple3DTileContent.prototype.hasProperty = function (batchId, name) {
|
|
626
|
-
return false;
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
/**
|
|
630
|
-
* Part of the {@link Cesium3DTileContent} interface. <code>Multiple3DTileContent</code>
|
|
631
|
-
* always returns <code>undefined</code>. Instead call <code>getFeature</code> for a specific inner content
|
|
632
|
-
* @private
|
|
633
|
-
*/
|
|
634
|
-
Multiple3DTileContent.prototype.getFeature = function (batchId) {
|
|
635
|
-
return undefined;
|
|
636
|
-
};
|
|
637
|
-
|
|
638
|
-
Multiple3DTileContent.prototype.applyDebugSettings = function (enabled, color) {
|
|
639
|
-
const contents = this._contents;
|
|
640
|
-
const length = contents.length;
|
|
641
|
-
for (let i = 0; i < length; ++i) {
|
|
642
|
-
contents[i].applyDebugSettings(enabled, color);
|
|
643
|
-
}
|
|
644
|
-
};
|
|
645
|
-
|
|
646
|
-
Multiple3DTileContent.prototype.applyStyle = function (style) {
|
|
647
|
-
const contents = this._contents;
|
|
648
|
-
const length = contents.length;
|
|
649
|
-
for (let i = 0; i < length; ++i) {
|
|
650
|
-
contents[i].applyStyle(style);
|
|
651
|
-
}
|
|
652
|
-
};
|
|
653
|
-
|
|
654
|
-
Multiple3DTileContent.prototype.update = function (tileset, frameState) {
|
|
655
|
-
const contents = this._contents;
|
|
656
|
-
const length = contents.length;
|
|
657
|
-
let ready = true;
|
|
658
|
-
for (let i = 0; i < length; ++i) {
|
|
659
|
-
contents[i].update(tileset, frameState);
|
|
660
|
-
ready = ready && contents[i].ready;
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
if (!this._ready && ready) {
|
|
664
|
-
this._ready = true;
|
|
665
|
-
}
|
|
666
|
-
};
|
|
667
|
-
|
|
668
|
-
/**
|
|
669
|
-
* Find an intersection between a ray and the tile content surface that was rendered. The ray must be given in world coordinates.
|
|
670
|
-
*
|
|
671
|
-
* @param {Ray} ray The ray to test for intersection.
|
|
672
|
-
* @param {FrameState} frameState The frame state.
|
|
673
|
-
* @param {Cartesian3|undefined} [result] The intersection or <code>undefined</code> if none was found.
|
|
674
|
-
* @returns {Cartesian3|undefined} The intersection or <code>undefined</code> if none was found.
|
|
675
|
-
*
|
|
676
|
-
* @private
|
|
677
|
-
*/
|
|
678
|
-
Multiple3DTileContent.prototype.pick = function (ray, frameState, result) {
|
|
679
|
-
if (!this._ready) {
|
|
680
|
-
return undefined;
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
let intersection;
|
|
684
|
-
let minDistance = Number.POSITIVE_INFINITY;
|
|
685
|
-
const contents = this._contents;
|
|
686
|
-
const length = contents.length;
|
|
687
|
-
|
|
688
|
-
for (let i = 0; i < length; ++i) {
|
|
689
|
-
const candidate = contents[i].pick(ray, frameState, result);
|
|
690
|
-
|
|
691
|
-
if (!defined(candidate)) {
|
|
692
|
-
continue;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
const distance = Cartesian3.distance(ray.origin, candidate);
|
|
696
|
-
if (distance < minDistance) {
|
|
697
|
-
intersection = candidate;
|
|
698
|
-
minDistance = distance;
|
|
699
|
-
}
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
if (!defined(intersection)) {
|
|
703
|
-
return undefined;
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
return result;
|
|
707
|
-
};
|
|
708
|
-
|
|
709
|
-
Multiple3DTileContent.prototype.isDestroyed = function () {
|
|
710
|
-
return false;
|
|
711
|
-
};
|
|
712
|
-
|
|
713
|
-
Multiple3DTileContent.prototype.destroy = function () {
|
|
714
|
-
const contents = this._contents;
|
|
715
|
-
const length = contents.length;
|
|
716
|
-
for (let i = 0; i < length; ++i) {
|
|
717
|
-
contents[i].destroy();
|
|
718
|
-
}
|
|
719
|
-
return destroyObject(this);
|
|
720
|
-
};
|
|
721
|
-
|
|
722
679
|
export default Multiple3DTileContent;
|