@cesium/engine 14.0.0 → 16.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-WVNLSTOF.js → chunk-2TQ64T4I.js} +2 -2
- package/Build/Workers/{chunk-ED6GLQTK.js → chunk-34EWMUFG.js} +1 -1
- package/Build/Workers/{chunk-HEZHXDYB.js → chunk-4LHK6E47.js} +1 -1
- package/Build/Workers/{chunk-7EO56M5R.js → chunk-5TN3LG2T.js} +2 -2
- package/Build/Workers/{chunk-7ZB2RVIQ.js → chunk-6B7KGA5P.js} +16 -19
- package/Build/Workers/{chunk-3QLSKXKF.js → chunk-B75OO2DU.js} +7 -10
- package/Build/Workers/{chunk-Q4ZVWJXX.js → chunk-COOLDICB.js} +9 -11
- package/Build/Workers/{chunk-3PIZQT3I.js → chunk-CQNYYX3N.js} +4 -4
- package/Build/Workers/{chunk-JPDKYBLF.js → chunk-CUJH7PS5.js} +27 -29
- package/Build/Workers/{chunk-CI2HEJFC.js → chunk-EAWYQ44R.js} +39 -41
- package/Build/Workers/{chunk-SDIDRZDG.js → chunk-EJJDBH5W.js} +7 -7
- package/Build/Workers/{chunk-5KWRW7YL.js → chunk-EO44CO62.js} +2 -2
- package/Build/Workers/{chunk-N2XAJBC6.js → chunk-EOIUWEAK.js} +26 -28
- package/Build/Workers/{chunk-YJX7X577.js → chunk-ERKJ7IWJ.js} +21 -23
- package/Build/Workers/{chunk-J7IH4EYI.js → chunk-ESED7XBA.js} +13 -16
- package/Build/Workers/{chunk-F4CUH4MR.js → chunk-FW2OX42E.js} +18 -21
- package/Build/Workers/{chunk-FX4R4MTH.js → chunk-GH6I7PBY.js} +6 -9
- package/Build/Workers/{chunk-FYGLNDKG.js → chunk-GQVSADCI.js} +19 -22
- package/Build/Workers/{chunk-TY4DKOWR.js → chunk-ICU72UPR.js} +4 -4
- package/Build/Workers/{chunk-DT5NFR5C.js → chunk-ILVAXLMC.js} +7 -7
- package/Build/Workers/{chunk-ZGFIT57T.js → chunk-KKV6XBF5.js} +27 -23
- package/Build/Workers/{chunk-HKHQ3EDR.js → chunk-KV6TEHXY.js} +4 -4
- package/Build/Workers/{chunk-B4GSRXE3.js → chunk-LCSH4ZOB.js} +7 -10
- package/Build/Workers/{chunk-LNSWJ43X.js → chunk-M5J3S3HY.js} +17 -26
- package/Build/Workers/{chunk-LJBJM6VI.js → chunk-NB6D74SQ.js} +6 -6
- package/Build/Workers/{chunk-4CHMVQTQ.js → chunk-NREPBWCX.js} +14 -14
- package/Build/Workers/{chunk-PWF4EY5P.js → chunk-OD4Q7HE5.js} +4 -4
- package/Build/Workers/{chunk-77XPS7ZA.js → chunk-OMFZ4IN6.js} +15 -24
- package/Build/Workers/{chunk-HUFQVUMY.js → chunk-OMZGZVHI.js} +12 -17
- package/Build/Workers/{chunk-LOZ4NKY3.js → chunk-ORIMMEHO.js} +18 -20
- package/Build/Workers/{chunk-5S5OOA6U.js → chunk-OWLBD6BL.js} +1 -1
- package/Build/Workers/{chunk-VCNOFQYH.js → chunk-PB6SE3SZ.js} +9 -12
- package/Build/Workers/{chunk-3JBEPBPL.js → chunk-PT6U7UNY.js} +25 -30
- package/Build/Workers/{chunk-G3BVMPWG.js → chunk-RWAFHSX3.js} +2 -2
- package/Build/Workers/{chunk-KHWLAQVA.js → chunk-S2NKKWYE.js} +1 -1
- package/Build/Workers/{chunk-FFBJDW4A.js → chunk-S3IQBSIB.js} +6 -6
- package/Build/Workers/{chunk-3LYROPON.js → chunk-SCUQTTCN.js} +16 -19
- package/Build/Workers/{chunk-ZMNLEL6W.js → chunk-TBSA4MNF.js} +5 -8
- package/Build/Workers/{chunk-EWDGNOJE.js → chunk-TEUGW455.js} +9 -12
- package/Build/Workers/{chunk-XK4OP6VA.js → chunk-TL5YKZJF.js} +33 -41
- package/Build/Workers/{chunk-KM6MITPF.js → chunk-V4Y7C25O.js} +46 -42
- package/Build/Workers/{chunk-OMXHEJTK.js → chunk-VNDECE6N.js} +2 -2
- package/Build/Workers/{chunk-LS3KVHYY.js → chunk-VVTAI2TN.js} +6 -9
- package/Build/Workers/{chunk-WEHZP4SE.js → chunk-VXAAIRJ7.js} +129 -146
- package/Build/Workers/{chunk-MVM4JV5U.js → chunk-WGIOUM2S.js} +9 -12
- package/Build/Workers/{chunk-JHBPC4LK.js → chunk-XF6EBVKV.js} +7 -7
- package/Build/Workers/{chunk-D7ZBZPHV.js → chunk-XMKE4XB2.js} +5 -5
- package/Build/Workers/{chunk-7UHKH6M3.js → chunk-YA4XALD5.js} +34 -36
- package/Build/Workers/{chunk-KSYBJA4M.js → chunk-YFXXUW6U.js} +6 -12
- package/Build/Workers/{chunk-Z3QWTHI7.js → chunk-YL26OJCG.js} +21 -23
- package/Build/Workers/{chunk-K4AH3TDT.js → chunk-ZLJDDRGB.js} +14 -17
- package/Build/Workers/combineGeometry.js +21 -22
- package/Build/Workers/createBoxGeometry.js +15 -16
- package/Build/Workers/createBoxOutlineGeometry.js +20 -25
- package/Build/Workers/createCircleGeometry.js +26 -28
- package/Build/Workers/createCircleOutlineGeometry.js +19 -21
- package/Build/Workers/createCoplanarPolygonGeometry.js +38 -42
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +34 -36
- package/Build/Workers/createCorridorGeometry.js +42 -49
- package/Build/Workers/createCorridorOutlineGeometry.js +36 -43
- package/Build/Workers/createCylinderGeometry.js +17 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +23 -25
- package/Build/Workers/createEllipseGeometry.js +23 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -17
- package/Build/Workers/createEllipsoidGeometry.js +16 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -16
- package/Build/Workers/createFrustumGeometry.js +15 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -21
- package/Build/Workers/createGeometry.js +22 -25
- package/Build/Workers/createGroundPolylineGeometry.js +34 -42
- package/Build/Workers/createPlaneGeometry.js +19 -21
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -13
- package/Build/Workers/createPolygonGeometry.js +45 -50
- package/Build/Workers/createPolygonOutlineGeometry.js +39 -44
- package/Build/Workers/createPolylineGeometry.js +33 -40
- package/Build/Workers/createPolylineVolumeGeometry.js +37 -44
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -39
- package/Build/Workers/createRectangleGeometry.js +41 -51
- package/Build/Workers/createRectangleOutlineGeometry.js +28 -33
- package/Build/Workers/createSimplePolylineGeometry.js +29 -34
- package/Build/Workers/createSphereGeometry.js +17 -20
- package/Build/Workers/createSphereOutlineGeometry.js +16 -19
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -13
- package/Build/Workers/createVectorTileGeometries.js +21 -22
- package/Build/Workers/createVectorTilePoints.js +11 -12
- package/Build/Workers/createVectorTilePolygons.js +19 -20
- package/Build/Workers/createVectorTilePolylines.js +12 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -23
- package/Build/Workers/createVerticesFromHeightmap.js +31 -58
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -18
- package/Build/Workers/createWallGeometry.js +30 -35
- package/Build/Workers/createWallOutlineGeometry.js +28 -33
- package/Build/Workers/decodeDraco.js +10 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -16
- package/Build/Workers/transcodeKTX2.js +50 -46
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -20
- package/Source/Core/ApproximateTerrainHeights.js +2 -3
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +6 -6
- package/Source/Core/AxisAlignedBoundingBox.js +2 -3
- package/Source/Core/BingMapsGeocoderService.js +2 -2
- package/Source/Core/BoundingRectangle.js +7 -8
- package/Source/Core/BoundingSphere.js +10 -11
- package/Source/Core/BoxGeometry.js +7 -7
- package/Source/Core/BoxOutlineGeometry.js +7 -9
- package/Source/Core/Cartesian2.js +4 -5
- package/Source/Core/Cartesian3.js +7 -8
- package/Source/Core/Cartesian4.js +6 -7
- package/Source/Core/Cartographic.js +5 -6
- package/Source/Core/CatmullRomSpline.js +2 -2
- package/Source/Core/CesiumTerrainProvider.js +11 -14
- package/Source/Core/CircleGeometry.js +2 -2
- package/Source/Core/CircleOutlineGeometry.js +2 -2
- package/Source/Core/Clock.js +7 -10
- package/Source/Core/Color.js +28 -28
- package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
- package/Source/Core/ComponentDatatype.js +4 -6
- package/Source/Core/CoplanarPolygonGeometry.js +8 -10
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
- package/Source/Core/CorridorGeometry.js +15 -20
- package/Source/Core/CorridorOutlineGeometry.js +10 -15
- package/Source/Core/Credit.js +1 -2
- package/Source/Core/CullingVolume.js +1 -2
- package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
- package/Source/Core/CylinderGeometry.js +7 -7
- package/Source/Core/CylinderOutlineGeometry.js +7 -7
- package/Source/Core/DistanceDisplayCondition.js +4 -5
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
- package/Source/Core/EarthOrientationParameters.js +4 -4
- package/Source/Core/EllipseGeometry.js +17 -23
- package/Source/Core/EllipseOutlineGeometry.js +12 -15
- package/Source/Core/Ellipsoid.js +7 -8
- package/Source/Core/EllipsoidGeodesic.js +1 -2
- package/Source/Core/EllipsoidGeometry.js +15 -15
- package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
- package/Source/Core/EllipsoidRhumbLine.js +3 -4
- package/Source/Core/EllipsoidTangentPlane.js +1 -2
- package/Source/Core/EllipsoidTerrainProvider.js +4 -4
- package/Source/Core/EllipsoidalOccluder.js +2 -3
- package/Source/Core/FeatureDetection.js +1 -2
- package/Source/Core/Frozen.js +24 -0
- package/Source/Core/FrustumGeometry.js +7 -8
- package/Source/Core/FrustumOutlineGeometry.js +3 -4
- package/Source/Core/GeographicProjection.js +1 -2
- package/Source/Core/GeographicTilingScheme.js +6 -12
- package/Source/Core/Geometry.js +4 -7
- package/Source/Core/GeometryAttribute.js +3 -3
- package/Source/Core/GeometryAttributes.js +2 -2
- package/Source/Core/GeometryInstance.js +4 -6
- package/Source/Core/GeometryInstanceAttribute.js +3 -3
- package/Source/Core/GeometryPipeline.js +3 -4
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +13 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +9 -12
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +3 -3
- package/Source/Core/GoogleGeocoderService.js +2 -2
- package/Source/Core/GregorianDate.js +8 -9
- package/Source/Core/GroundPolylineGeometry.js +8 -8
- package/Source/Core/HeadingPitchRange.js +3 -4
- package/Source/Core/HeadingPitchRoll.js +3 -4
- package/Source/Core/Heap.js +3 -4
- package/Source/Core/HeightmapTerrainData.js +22 -38
- package/Source/Core/HeightmapTessellator.js +21 -37
- package/Source/Core/HermitePolynomialApproximation.js +1 -2
- package/Source/Core/HermiteSpline.js +5 -5
- package/Source/Core/ITwinPlatform.js +66 -12
- package/Source/Core/Iau2006XysData.js +8 -10
- package/Source/Core/IntersectionTests.js +1 -2
- package/Source/Core/Interval.js +2 -4
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +6 -10
- package/Source/Core/IonResource.js +6 -6
- package/Source/Core/JulianDate.js +11 -12
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/ManagedArray.js +2 -3
- package/Source/Core/Math.js +36 -27
- package/Source/Core/Matrix2.js +7 -8
- package/Source/Core/Matrix3.js +12 -13
- package/Source/Core/Matrix4.js +28 -28
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +6 -7
- package/Source/Core/Occluder.js +1 -2
- package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
- package/Source/Core/OpenCageGeocoderService.js +1 -2
- package/Source/Core/OrientedBoundingBox.js +7 -8
- package/Source/Core/OrthographicFrustum.js +6 -6
- package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
- package/Source/Core/PerspectiveFrustum.js +8 -8
- package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
- package/Source/Core/PlaneGeometry.js +5 -5
- package/Source/Core/PolygonGeometry.js +16 -19
- package/Source/Core/PolygonGeometryLibrary.js +27 -6
- package/Source/Core/PolygonOutlineGeometry.js +11 -14
- package/Source/Core/PolygonPipeline.js +5 -6
- package/Source/Core/PolylineGeometry.js +10 -15
- package/Source/Core/PolylinePipeline.js +7 -14
- package/Source/Core/PolylineVolumeGeometry.js +8 -13
- package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
- package/Source/Core/QuantizedMeshTerrainData.js +12 -16
- package/Source/Core/Quaternion.js +7 -8
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Ray.js +2 -3
- package/Source/Core/Rectangle.js +18 -19
- package/Source/Core/RectangleGeometry.js +17 -25
- package/Source/Core/RectangleGeometryLibrary.js +1 -1
- package/Source/Core/RectangleOutlineGeometry.js +10 -13
- package/Source/Core/Request.js +6 -6
- package/Source/Core/RequestScheduler.js +4 -6
- package/Source/Core/Resource.js +13 -16
- package/Source/Core/S2Cell.js +2 -3
- package/Source/Core/ScreenSpaceEventHandler.js +1 -2
- package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
- package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
- package/Source/Core/SimplePolylineGeometry.js +8 -11
- package/Source/Core/SphereGeometry.js +1 -2
- package/Source/Core/SphereOutlineGeometry.js +1 -2
- package/Source/Core/Spherical.js +4 -5
- package/Source/Core/Spline.js +1 -2
- package/Source/Core/SteppedSpline.js +2 -2
- package/Source/Core/TaskProcessor.js +2 -9
- package/Source/Core/TerrainData.js +1 -1
- package/Source/Core/TerrainEncoding.js +4 -11
- package/Source/Core/TerrainMesh.js +1 -3
- package/Source/Core/TerrainProvider.js +1 -1
- package/Source/Core/TexturePacker.js +166 -0
- package/Source/Core/TileProviderError.js +1 -2
- package/Source/Core/TimeInterval.js +7 -7
- package/Source/Core/TimeIntervalCollection.js +7 -7
- package/Source/Core/Tipsify.js +5 -5
- package/Source/Core/Transforms.js +10 -15
- package/Source/Core/TranslationRotationScale.js +3 -6
- package/Source/Core/VRTheWorldTerrainProvider.js +5 -5
- package/Source/Core/VertexFormat.js +10 -10
- package/Source/Core/VerticalExaggeration.js +1 -1
- package/Source/Core/VideoSynchronizer.js +6 -6
- package/Source/Core/WallGeometry.js +8 -11
- package/Source/Core/WallOutlineGeometry.js +7 -10
- package/Source/Core/WebMercatorProjection.js +1 -2
- package/Source/Core/WebMercatorTilingScheme.js +5 -11
- package/Source/Core/arrayRemoveDuplicates.js +1 -2
- package/Source/Core/clone.js +1 -3
- package/Source/Core/combine.js +1 -2
- package/Source/Core/createWorldBathymetryAsync.js +3 -3
- package/Source/Core/createWorldTerrainAsync.js +4 -4
- package/Source/Core/defaultValue.js +20 -1
- package/Source/Core/destroyObject.js +1 -5
- package/Source/Core/getAbsoluteUri.js +1 -2
- package/Source/Core/getMagic.js +1 -2
- package/Source/Core/getStringFromTypedArray.js +2 -3
- package/Source/Core/loadImageFromTypedArray.js +2 -6
- package/Source/Core/oneTimeWarning.js +1 -2
- package/Source/Core/writeTextToCanvas.js +10 -13
- package/Source/DataSources/BillboardGraphics.js +27 -53
- package/Source/DataSources/BillboardVisualizer.js +3 -3
- package/Source/DataSources/BoxGraphics.js +13 -18
- package/Source/DataSources/CallbackPositionProperty.js +1 -2
- package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
- package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
- package/Source/DataSources/CompositePositionProperty.js +1 -2
- package/Source/DataSources/ConstantPositionProperty.js +1 -2
- package/Source/DataSources/CorridorGraphics.js +23 -35
- package/Source/DataSources/CylinderGraphics.js +18 -25
- package/Source/DataSources/CzmlDataSource.js +34 -60
- package/Source/DataSources/DataSourceClock.js +12 -13
- package/Source/DataSources/DataSourceCollection.js +2 -3
- package/Source/DataSources/DataSourceDisplay.js +2 -5
- package/Source/DataSources/EllipseGraphics.js +26 -40
- package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
- package/Source/DataSources/EllipsoidGraphics.js +21 -32
- package/Source/DataSources/Entity.js +7 -9
- package/Source/DataSources/EntityCluster.js +53 -28
- package/Source/DataSources/EntityView.js +1 -2
- package/Source/DataSources/GeoJsonDataSource.js +12 -12
- package/Source/DataSources/GeometryUpdater.js +12 -17
- package/Source/DataSources/GeometryVisualizer.js +2 -3
- package/Source/DataSources/GpxDataSource.js +4 -7
- package/Source/DataSources/GridMaterialProperty.js +2 -2
- package/Source/DataSources/GroundGeometryUpdater.js +1 -2
- package/Source/DataSources/ImageMaterialProperty.js +2 -2
- package/Source/DataSources/KmlDataSource.js +84 -158
- package/Source/DataSources/LabelGraphics.js +27 -56
- package/Source/DataSources/LabelVisualizer.js +1 -2
- package/Source/DataSources/ModelGraphics.js +29 -63
- package/Source/DataSources/ModelVisualizer.js +1 -2
- package/Source/DataSources/NodeTransformationProperty.js +2 -2
- package/Source/DataSources/PathGraphics.js +10 -12
- package/Source/DataSources/PlaneGraphics.js +13 -15
- package/Source/DataSources/PointGraphics.js +17 -32
- package/Source/DataSources/PolygonGraphics.js +28 -45
- package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
- package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGraphics.js +16 -23
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineVisualizer.js +2 -3
- package/Source/DataSources/PolylineVolumeGraphics.js +15 -17
- package/Source/DataSources/PositionPropertyArray.js +1 -2
- package/Source/DataSources/Property.js +1 -2
- package/Source/DataSources/PropertyBag.js +1 -2
- package/Source/DataSources/RectangleGraphics.js +23 -35
- package/Source/DataSources/Rotation.js +4 -5
- package/Source/DataSources/SampledPositionProperty.js +2 -3
- package/Source/DataSources/SampledProperty.js +6 -11
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -2
- package/Source/DataSources/StripeMaterialProperty.js +2 -2
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
- package/Source/DataSources/VelocityOrientationProperty.js +1 -2
- package/Source/DataSources/VelocityVectorProperty.js +1 -2
- package/Source/DataSources/WallGraphics.js +15 -23
- package/Source/DataSources/createPropertyDescriptor.js +2 -3
- package/Source/DataSources/exportKml.js +11 -14
- package/Source/Renderer/Buffer.js +5 -5
- package/Source/Renderer/ClearCommand.js +2 -2
- package/Source/Renderer/ComputeCommand.js +3 -3
- package/Source/Renderer/Context.js +22 -37
- package/Source/Renderer/CubeMap.js +6 -6
- package/Source/Renderer/CubeMapFace.js +11 -12
- package/Source/Renderer/DrawCommand.js +14 -25
- package/Source/Renderer/Framebuffer.js +3 -3
- package/Source/Renderer/FramebufferManager.js +25 -39
- package/Source/Renderer/MultisampleFramebuffer.js +2 -2
- package/Source/Renderer/RenderState.js +63 -92
- package/Source/Renderer/Renderbuffer.js +4 -4
- package/Source/Renderer/Sampler.js +2 -2
- package/Source/Renderer/ShaderBuilder.js +2 -3
- package/Source/Renderer/ShaderProgram.js +3 -3
- package/Source/Renderer/ShaderSource.js +3 -3
- package/Source/Renderer/Texture.js +16 -15
- package/Source/Renderer/TextureAtlas.js +802 -0
- package/Source/Renderer/UniformState.js +6 -11
- package/Source/Renderer/VertexArray.js +14 -23
- package/Source/Renderer/VertexArrayFacade.js +7 -11
- package/Source/Scene/Appearance.js +4 -4
- package/Source/Scene/ArcGisMapServerImageryProvider.js +23 -37
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/B3dmParser.js +2 -3
- package/Source/Scene/BatchTableHierarchy.js +6 -13
- package/Source/Scene/Billboard.js +105 -182
- package/Source/Scene/BillboardCollection.js +140 -224
- package/Source/Scene/BillboardLoadState.js +44 -0
- package/Source/Scene/BillboardTexture.js +348 -0
- package/Source/Scene/BingMapsImageryProvider.js +6 -6
- package/Source/Scene/BoxEmitter.js +1 -2
- package/Source/Scene/BufferLoader.js +2 -2
- package/Source/Scene/Camera.js +45 -64
- package/Source/Scene/CameraFlightPath.js +6 -6
- package/Source/Scene/Cesium3DContentGroup.js +2 -2
- package/Source/Scene/Cesium3DTile.js +3 -4
- package/Source/Scene/Cesium3DTileBatchTable.js +6 -49
- package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
- package/Source/Scene/Cesium3DTilePointFeature.js +10 -18
- package/Source/Scene/Cesium3DTileStyle.js +4 -7
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +419 -137
- package/Source/Scene/Cesium3DTileset.js +77 -143
- package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
- package/Source/Scene/Cesium3DTilesetStatistics.js +0 -1
- package/Source/Scene/CircleEmitter.js +2 -3
- package/Source/Scene/ClassificationPrimitive.js +15 -26
- package/Source/Scene/ClippingPlaneCollection.js +7 -12
- package/Source/Scene/ClippingPolygon.js +1 -2
- package/Source/Scene/ClippingPolygonCollection.js +4 -4
- package/Source/Scene/CloudCollection.js +9 -11
- package/Source/Scene/Composite3DTileContent.js +1 -2
- package/Source/Scene/ConeEmitter.js +1 -2
- package/Source/Scene/ContentMetadata.js +2 -2
- package/Source/Scene/CreditDisplay.js +5 -9
- package/Source/Scene/CumulusCloud.js +9 -15
- package/Source/Scene/DebugAppearance.js +7 -7
- package/Source/Scene/DebugCameraPrimitive.js +5 -5
- package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
- package/Source/Scene/DepthPlane.js +1 -2
- package/Source/Scene/DirectionalLight.js +2 -3
- package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
- package/Source/Scene/DynamicEnvironmentMapManager.js +15 -24
- package/Source/Scene/EllipsoidPrimitive.js +11 -19
- package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
- package/Source/Scene/Expression.js +1 -0
- package/Source/Scene/FrameRateMonitor.js +12 -21
- package/Source/Scene/FrustumCommands.js +2 -3
- package/Source/Scene/Geometry3DTileContent.js +9 -16
- package/Source/Scene/Globe.js +3 -4
- package/Source/Scene/GlobeSurfaceTileProvider.js +9 -18
- package/Source/Scene/GlobeTranslucencyState.js +12 -25
- package/Source/Scene/GltfBufferViewLoader.js +4 -4
- package/Source/Scene/GltfDracoLoader.js +2 -2
- package/Source/Scene/GltfImageLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +22 -37
- package/Source/Scene/GltfLoaderUtil.js +11 -11
- package/Source/Scene/GltfPipeline/addDefaults.js +37 -64
- package/Source/Scene/GltfPipeline/addToArray.js +1 -3
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -5
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -5
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +1 -2
- package/Source/Scene/GltfPipeline/updateVersion.js +28 -49
- package/Source/Scene/GltfStructuralMetadataLoader.js +5 -6
- package/Source/Scene/GltfTextureLoader.js +3 -3
- package/Source/Scene/GltfVertexBufferLoader.js +5 -5
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +3 -4
- package/Source/Scene/GridImageryProvider.js +10 -13
- package/Source/Scene/GroundPolylinePrimitive.js +11 -22
- package/Source/Scene/GroundPrimitive.js +13 -24
- package/Source/Scene/GroupMetadata.js +2 -2
- package/Source/Scene/I3SDataProvider.js +10 -15
- package/Source/Scene/I3SNode.js +1 -6
- package/Source/Scene/I3SSublayer.js +1 -2
- package/Source/Scene/I3SSymbology.js +2 -3
- package/Source/Scene/I3dmParser.js +1 -2
- package/Source/Scene/ITwinData.js +11 -6
- package/Source/Scene/ImageBasedLighting.js +2 -2
- package/Source/Scene/ImageryLayer.js +42 -71
- package/Source/Scene/ImageryLayerCollection.js +2 -3
- package/Source/Scene/Implicit3DTileContent.js +3 -4
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +10 -15
- package/Source/Scene/ImplicitSubtreeCache.js +3 -3
- package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
- package/Source/Scene/InstanceAttributeSemantic.js +1 -1
- package/Source/Scene/IonImageryProvider.js +3 -3
- package/Source/Scene/KeyframeNode.js +16 -2
- package/Source/Scene/Label.js +19 -36
- package/Source/Scene/LabelCollection.js +218 -196
- package/Source/Scene/MapboxImageryProvider.js +4 -4
- package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
- package/Source/Scene/Material.js +14 -20
- package/Source/Scene/MaterialAppearance.js +12 -18
- package/Source/Scene/Megatexture.js +145 -82
- package/Source/Scene/MetadataClass.js +4 -4
- package/Source/Scene/MetadataClassProperty.js +11 -14
- package/Source/Scene/MetadataEnum.js +4 -7
- package/Source/Scene/MetadataEnumValue.js +2 -2
- package/Source/Scene/MetadataSchema.js +4 -4
- package/Source/Scene/MetadataSchemaLoader.js +2 -2
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +17 -31
- package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
- package/Source/Scene/Model/B3dmLoader.js +15 -26
- package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +2 -2
- package/Source/Scene/Model/CustomShader.js +10 -14
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
- package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
- package/Source/Scene/Model/GeoJsonLoader.js +5 -8
- package/Source/Scene/Model/I3dmLoader.js +13 -21
- package/Source/Scene/Model/MaterialPipelineStage.js +1 -2
- package/Source/Scene/Model/Model.js +41 -63
- package/Source/Scene/Model/ModelAnimation.js +5 -6
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +2 -2
- package/Source/Scene/Model/ModelDrawCommand.js +3 -3
- package/Source/Scene/Model/ModelFeatureTable.js +3 -9
- package/Source/Scene/Model/ModelLightingOptions.js +3 -3
- package/Source/Scene/Model/ModelNode.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -2
- package/Source/Scene/Model/ModelSceneGraph.js +2 -2
- package/Source/Scene/Model/ModelSkin.js +2 -2
- package/Source/Scene/Model/ModelUtility.js +5 -1
- package/Source/Scene/Model/PickingPipelineStage.js +1 -2
- package/Source/Scene/Model/PntsLoader.js +6 -6
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
- package/Source/Scene/Model/TextureUniform.js +5 -8
- package/Source/Scene/Model/VaryingType.js +2 -2
- package/Source/Scene/Model/pickModel.js +4 -5
- package/Source/Scene/Moon.js +5 -5
- package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
- package/Source/Scene/Particle.js +11 -17
- package/Source/Scene/ParticleBurst.js +5 -5
- package/Source/Scene/ParticleSystem.js +24 -54
- package/Source/Scene/PerInstanceColorAppearance.js +8 -8
- package/Source/Scene/PerformanceDisplay.js +3 -3
- package/Source/Scene/PickFramebuffer.js +4 -5
- package/Source/Scene/Picking.js +3 -4
- package/Source/Scene/PntsParser.js +1 -2
- package/Source/Scene/PointCloud.js +6 -12
- package/Source/Scene/PointCloudShading.js +9 -18
- package/Source/Scene/PointPrimitive.js +11 -21
- package/Source/Scene/PointPrimitiveCollection.js +6 -14
- package/Source/Scene/Polyline.js +5 -5
- package/Source/Scene/PolylineCollection.js +5 -10
- package/Source/Scene/PolylineColorAppearance.js +7 -11
- package/Source/Scene/PolylineMaterialAppearance.js +7 -11
- package/Source/Scene/PostProcessStage.js +2 -2
- package/Source/Scene/PostProcessStageComposite.js +3 -6
- package/Source/Scene/Primitive.js +21 -42
- package/Source/Scene/PrimitiveCollection.js +4 -4
- package/Source/Scene/PrimitivePipeline.js +1 -2
- package/Source/Scene/PropertyAttribute.js +2 -2
- package/Source/Scene/PropertyAttributeProperty.js +4 -4
- package/Source/Scene/PropertyTable.js +2 -2
- package/Source/Scene/PropertyTexture.js +2 -2
- package/Source/Scene/PropertyTextureProperty.js +4 -4
- package/Source/Scene/QuadtreePrimitive.js +84 -66
- package/Source/Scene/QuadtreeTile.js +170 -0
- package/Source/Scene/ResourceCache.js +11 -11
- package/Source/Scene/ResourceCacheKey.js +11 -11
- package/Source/Scene/Scene.js +66 -40
- package/Source/Scene/ScreenSpaceCameraController.js +10 -20
- package/Source/Scene/ShadowMap.js +15 -15
- package/Source/Scene/ShadowVolumeAppearance.js +1 -2
- package/Source/Scene/SingleTileImageryProvider.js +4 -4
- package/Source/Scene/SkyAtmosphere.js +1 -2
- package/Source/Scene/SkyBox.js +1 -2
- package/Source/Scene/SpatialNode.js +4 -11
- package/Source/Scene/SphereEmitter.js +2 -3
- package/Source/Scene/StructuralMetadata.js +2 -2
- package/Source/Scene/SunLight.js +4 -4
- package/Source/Scene/SupportedImageFormats.js +4 -4
- package/Source/Scene/TileBoundingRegion.js +4 -5
- package/Source/Scene/TileBoundingS2Cell.js +3 -4
- package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
- package/Source/Scene/TileMapServiceImageryProvider.js +18 -27
- package/Source/Scene/TileMetadata.js +2 -2
- package/Source/Scene/TilesetMetadata.js +2 -2
- package/Source/Scene/TimeDynamicImagery.js +2 -2
- package/Source/Scene/TimeDynamicPointCloud.js +8 -10
- package/Source/Scene/TweenCollection.js +13 -16
- package/Source/Scene/UrlTemplateImageryProvider.js +11 -15
- package/Source/Scene/Vector3DTileClampedPolylines.js +1 -2
- package/Source/Scene/Vector3DTileContent.js +16 -20
- package/Source/Scene/Vector3DTileGeometry.js +1 -2
- package/Source/Scene/Vector3DTilePoints.js +2 -5
- package/Source/Scene/Vector3DTilePolygons.js +2 -3
- package/Source/Scene/Vector3DTilePolylines.js +1 -2
- package/Source/Scene/Vector3DTilePrimitive.js +9 -13
- package/Source/Scene/VoxelBoxShape.js +14 -8
- package/Source/Scene/VoxelCell.js +6 -5
- package/Source/Scene/VoxelContent.js +171 -107
- package/Source/Scene/VoxelCylinderShape.js +69 -69
- package/Source/Scene/VoxelEllipsoidShape.js +17 -8
- package/Source/Scene/VoxelMetadataOrder.js +24 -0
- package/Source/Scene/VoxelPrimitive.js +134 -79
- package/Source/Scene/VoxelProvider.js +22 -29
- package/Source/Scene/VoxelRenderResources.js +26 -7
- package/Source/Scene/VoxelShape.js +10 -3
- package/Source/Scene/VoxelTraversal.js +260 -180
- package/Source/Scene/WebMapServiceImageryProvider.js +17 -24
- package/Source/Scene/WebMapTileServiceImageryProvider.js +7 -10
- package/Source/Scene/createElevationBandMaterial.js +4 -4
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +8 -16
- package/Source/Scene/createOsmBuildingsAsync.js +3 -6
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
- package/Source/Scene/createWorldImageryAsync.js +3 -3
- package/Source/Scene/findContentMetadata.js +2 -5
- package/Source/Scene/findTileMetadata.js +2 -5
- package/Source/Scene/parseBatchTable.js +1 -5
- package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
- package/Source/Scene/parseStructuralMetadata.js +2 -2
- package/Source/Scene/processVoxelProperties.js +3 -0
- package/Source/Shaders/GlobeFS.glsl +10 -1
- package/Source/Shaders/GlobeFS.js +10 -1
- package/Source/Shaders/Voxels/Megatexture.glsl +4 -16
- package/Source/Shaders/Voxels/Megatexture.js +4 -16
- package/Source/Shaders/Voxels/Octree.glsl +44 -7
- package/Source/Shaders/Voxels/Octree.js +44 -7
- package/Source/Shaders/Voxels/VoxelFS.glsl +9 -15
- package/Source/Shaders/Voxels/VoxelFS.js +9 -15
- package/Source/Shaders/Voxels/convertUvToCylinder.glsl +15 -15
- package/Source/Shaders/Voxels/convertUvToCylinder.js +15 -15
- package/Source/Widget/CesiumWidget.js +17 -25
- package/Source/Workers/createGeometry.js +1 -2
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
- package/Source/Workers/decodeI3S.js +1 -5
- package/Source/Workers/transcodeKTX2.js +1 -2
- package/index.d.ts +231 -92
- package/index.js +315 -310
- package/package.json +3 -3
- package/Build/Workers/chunk-TVL3F7IU.js +0 -39
- package/Source/Scene/TextureAtlas.js +0 -558
|
@@ -1,26 +1,50 @@
|
|
|
1
1
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
2
|
+
import Cesium3DTilesetMetadata from "./Cesium3DTilesetMetadata.js";
|
|
2
3
|
import Check from "../Core/Check.js";
|
|
3
|
-
import
|
|
4
|
+
import Frozen from "../Core/Frozen.js";
|
|
4
5
|
import defined from "../Core/defined.js";
|
|
5
6
|
import Ellipsoid from "../Core/Ellipsoid.js";
|
|
6
|
-
import Matrix4 from "../Core/Matrix4.js";
|
|
7
|
-
import OrientedBoundingBox from "../Core/OrientedBoundingBox.js";
|
|
8
|
-
import Resource from "../Core/Resource.js";
|
|
9
|
-
import RuntimeError from "../Core/RuntimeError.js";
|
|
10
|
-
import Cesium3DTilesetMetadata from "./Cesium3DTilesetMetadata.js";
|
|
11
7
|
import hasExtension from "./hasExtension.js";
|
|
12
8
|
import ImplicitSubtree from "./ImplicitSubtree.js";
|
|
13
9
|
import ImplicitSubtreeCache from "./ImplicitSubtreeCache.js";
|
|
14
10
|
import ImplicitTileCoordinates from "./ImplicitTileCoordinates.js";
|
|
15
11
|
import ImplicitTileset from "./ImplicitTileset.js";
|
|
12
|
+
import Matrix4 from "../Core/Matrix4.js";
|
|
16
13
|
import MetadataSemantic from "./MetadataSemantic.js";
|
|
17
14
|
import MetadataType from "./MetadataType.js";
|
|
15
|
+
import OrientedBoundingBox from "../Core/OrientedBoundingBox.js";
|
|
18
16
|
import preprocess3DTileContent from "./preprocess3DTileContent.js";
|
|
17
|
+
import Resource from "../Core/Resource.js";
|
|
19
18
|
import ResourceCache from "./ResourceCache.js";
|
|
19
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
20
20
|
import VoxelBoxShape from "./VoxelBoxShape.js";
|
|
21
21
|
import VoxelContent from "./VoxelContent.js";
|
|
22
|
-
import
|
|
22
|
+
import VoxelMetadataOrder from "./VoxelMetadataOrder.js";
|
|
23
23
|
import VoxelShapeType from "./VoxelShapeType.js";
|
|
24
|
+
import CesiumMath from "../Core/Math.js";
|
|
25
|
+
import Quaternion from "../Core/Quaternion.js";
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @typedef {Object} Cesium3DTilesVoxelProvider.ConstructorOptions
|
|
29
|
+
*
|
|
30
|
+
* Initialization options for the Cesium3DTilesVoxelProvider constructor
|
|
31
|
+
*
|
|
32
|
+
* @property {string} className The class in the tileset schema describing voxel metadata.
|
|
33
|
+
* @property {string[]} names The metadata names.
|
|
34
|
+
* @property {MetadataType[]} types The metadata types.
|
|
35
|
+
* @property {MetadataComponentType[]} componentTypes The metadata component types.
|
|
36
|
+
* @property {VoxelShapeType} shape The {@link VoxelShapeType}.
|
|
37
|
+
* @property {Cartesian3} dimensions The number of voxels per dimension of a tile. This is the same for all tiles in the dataset.
|
|
38
|
+
* @property {Cartesian3} [paddingBefore=Cartesian3.ZERO] The number of padding voxels before the tile. This improves rendering quality when sampling the edge of a tile, but it increases memory usage.
|
|
39
|
+
* @property {Cartesian3} [paddingAfter=Cartesian3.ZERO] The number of padding voxels after the tile. This improves rendering quality when sampling the edge of a tile, but it increases memory usage.
|
|
40
|
+
* @property {Matrix4} [globalTransform=Matrix4.IDENTITY] A transform from local space to global space.
|
|
41
|
+
* @property {Matrix4} [shapeTransform=Matrix4.IDENTITY] A transform from shape space to local space.
|
|
42
|
+
* @property {Cartesian3} [minBounds] The minimum bounds.
|
|
43
|
+
* @property {Cartesian3} [maxBounds] The maximum bounds.
|
|
44
|
+
* @property {number[][]} [minimumValues] The metadata minimum values.
|
|
45
|
+
* @property {number[][]} [maximumValues] The metadata maximum values.
|
|
46
|
+
* @property {number} [maximumTileCount] The maximum number of tiles that exist for this provider. This value is used as a hint to the voxel renderer to allocate an appropriate amount of GPU memory. If this value is not known it can be undefined.
|
|
47
|
+
*/
|
|
24
48
|
|
|
25
49
|
/**
|
|
26
50
|
* A {@link VoxelProvider} that fetches voxel data from a 3D Tiles tileset.
|
|
@@ -35,7 +59,7 @@ import VoxelShapeType from "./VoxelShapeType.js";
|
|
|
35
59
|
* @constructor
|
|
36
60
|
* @augments VoxelProvider
|
|
37
61
|
*
|
|
38
|
-
* @param {
|
|
62
|
+
* @param {Cesium3DTilesVoxelProvider.ConstructorOptions} options An object describing initialization options
|
|
39
63
|
*
|
|
40
64
|
* @see Cesium3DTilesVoxelProvider.fromUrl
|
|
41
65
|
* @see VoxelProvider
|
|
@@ -45,60 +69,281 @@ import VoxelShapeType from "./VoxelShapeType.js";
|
|
|
45
69
|
* @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
|
|
46
70
|
*/
|
|
47
71
|
function Cesium3DTilesVoxelProvider(options) {
|
|
48
|
-
options =
|
|
72
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
73
|
+
|
|
74
|
+
const {
|
|
75
|
+
className,
|
|
76
|
+
names,
|
|
77
|
+
types,
|
|
78
|
+
componentTypes,
|
|
79
|
+
shape,
|
|
80
|
+
dimensions,
|
|
81
|
+
paddingBefore = Cartesian3.ZERO.clone(),
|
|
82
|
+
paddingAfter = Cartesian3.ZERO.clone(),
|
|
83
|
+
globalTransform = Matrix4.IDENTITY.clone(),
|
|
84
|
+
shapeTransform = Matrix4.IDENTITY.clone(),
|
|
85
|
+
minBounds,
|
|
86
|
+
maxBounds,
|
|
87
|
+
minimumValues,
|
|
88
|
+
maximumValues,
|
|
89
|
+
maximumTileCount,
|
|
90
|
+
} = options;
|
|
49
91
|
|
|
50
|
-
|
|
51
|
-
|
|
92
|
+
//>>includeStart('debug', pragmas.debug);
|
|
93
|
+
Check.typeOf.string("className", className);
|
|
94
|
+
Check.typeOf.object("names", names);
|
|
95
|
+
Check.typeOf.object("types", types);
|
|
96
|
+
Check.typeOf.object("componentTypes", componentTypes);
|
|
97
|
+
Check.typeOf.string("shape", shape);
|
|
98
|
+
Check.typeOf.object("dimensions", dimensions);
|
|
99
|
+
//>>includeEnd('debug');
|
|
52
100
|
|
|
53
|
-
|
|
54
|
-
this.
|
|
101
|
+
this._shapeTransform = shapeTransform;
|
|
102
|
+
this._globalTransform = globalTransform;
|
|
103
|
+
this._shape = shape;
|
|
104
|
+
this._minBounds = minBounds;
|
|
105
|
+
this._maxBounds = maxBounds;
|
|
106
|
+
this._dimensions = dimensions;
|
|
107
|
+
this._paddingBefore = paddingBefore;
|
|
108
|
+
this._paddingAfter = paddingAfter;
|
|
109
|
+
this._className = className;
|
|
110
|
+
this._names = names;
|
|
111
|
+
this._types = types;
|
|
112
|
+
this._componentTypes = componentTypes;
|
|
113
|
+
this._metadataOrder =
|
|
114
|
+
shape === VoxelShapeType.ELLIPSOID
|
|
115
|
+
? VoxelMetadataOrder.Z_UP
|
|
116
|
+
: VoxelMetadataOrder.Y_UP;
|
|
117
|
+
this._minimumValues = minimumValues;
|
|
118
|
+
this._maximumValues = maximumValues;
|
|
119
|
+
this._maximumTileCount = maximumTileCount;
|
|
120
|
+
this._availableLevels = undefined;
|
|
121
|
+
this._implicitTileset = undefined;
|
|
122
|
+
this._subtreeCache = new ImplicitSubtreeCache();
|
|
123
|
+
}
|
|
55
124
|
|
|
56
|
-
|
|
57
|
-
|
|
125
|
+
Object.defineProperties(Cesium3DTilesVoxelProvider.prototype, {
|
|
126
|
+
/**
|
|
127
|
+
* A transform from local space to global space.
|
|
128
|
+
*
|
|
129
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
130
|
+
* @type {Matrix4}
|
|
131
|
+
* @default Matrix4.IDENTITY
|
|
132
|
+
* @readonly
|
|
133
|
+
*/
|
|
134
|
+
globalTransform: {
|
|
135
|
+
get: function () {
|
|
136
|
+
return this._globalTransform;
|
|
137
|
+
},
|
|
138
|
+
},
|
|
58
139
|
|
|
59
|
-
/**
|
|
60
|
-
|
|
140
|
+
/**
|
|
141
|
+
* A transform from shape space to local space.
|
|
142
|
+
*
|
|
143
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
144
|
+
* @type {Matrix4}
|
|
145
|
+
* @default Matrix4.IDENTITY
|
|
146
|
+
* @readonly
|
|
147
|
+
*/
|
|
148
|
+
shapeTransform: {
|
|
149
|
+
get: function () {
|
|
150
|
+
return this._shapeTransform;
|
|
151
|
+
},
|
|
152
|
+
},
|
|
61
153
|
|
|
62
|
-
/**
|
|
63
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Gets the {@link VoxelShapeType}
|
|
156
|
+
*
|
|
157
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
158
|
+
* @type {VoxelShapeType}
|
|
159
|
+
* @readonly
|
|
160
|
+
*/
|
|
161
|
+
shape: {
|
|
162
|
+
get: function () {
|
|
163
|
+
return this._shape;
|
|
164
|
+
},
|
|
165
|
+
},
|
|
64
166
|
|
|
65
|
-
/**
|
|
66
|
-
|
|
167
|
+
/**
|
|
168
|
+
* Gets the minimum bounds.
|
|
169
|
+
* If undefined, the shape's default minimum bounds will be used instead.
|
|
170
|
+
*
|
|
171
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
172
|
+
* @type {Cartesian3|undefined}
|
|
173
|
+
* @readonly
|
|
174
|
+
*/
|
|
175
|
+
minBounds: {
|
|
176
|
+
get: function () {
|
|
177
|
+
return this._minBounds;
|
|
178
|
+
},
|
|
179
|
+
},
|
|
67
180
|
|
|
68
|
-
/**
|
|
69
|
-
|
|
181
|
+
/**
|
|
182
|
+
* Gets the maximum bounds.
|
|
183
|
+
* If undefined, the shape's default maximum bounds will be used instead.
|
|
184
|
+
*
|
|
185
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
186
|
+
* @type {Cartesian3|undefined}
|
|
187
|
+
* @readonly
|
|
188
|
+
*/
|
|
189
|
+
maxBounds: {
|
|
190
|
+
get: function () {
|
|
191
|
+
return this._maxBounds;
|
|
192
|
+
},
|
|
193
|
+
},
|
|
70
194
|
|
|
71
|
-
/**
|
|
72
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Gets the number of voxels per dimension of a tile. This is the same for all tiles in the dataset.
|
|
197
|
+
*
|
|
198
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
199
|
+
* @type {Cartesian3}
|
|
200
|
+
* @readonly
|
|
201
|
+
*/
|
|
202
|
+
dimensions: {
|
|
203
|
+
get: function () {
|
|
204
|
+
return this._dimensions;
|
|
205
|
+
},
|
|
206
|
+
},
|
|
73
207
|
|
|
74
|
-
/**
|
|
75
|
-
|
|
208
|
+
/**
|
|
209
|
+
* Gets the number of padding voxels before the tile. This improves rendering quality when sampling the edge of a tile, but it increases memory usage.
|
|
210
|
+
*
|
|
211
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
212
|
+
* @type {Cartesian3}
|
|
213
|
+
* @default Cartesian3.ZERO
|
|
214
|
+
* @readonly
|
|
215
|
+
*/
|
|
216
|
+
paddingBefore: {
|
|
217
|
+
get: function () {
|
|
218
|
+
return this._paddingBefore;
|
|
219
|
+
},
|
|
220
|
+
},
|
|
76
221
|
|
|
77
|
-
/**
|
|
78
|
-
|
|
222
|
+
/**
|
|
223
|
+
* Gets the number of padding voxels after the tile. This improves rendering quality when sampling the edge of a tile, but it increases memory usage.
|
|
224
|
+
*
|
|
225
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
226
|
+
* @type {Cartesian3}
|
|
227
|
+
* @default Cartesian3.ZERO
|
|
228
|
+
* @readonly
|
|
229
|
+
*/
|
|
230
|
+
paddingAfter: {
|
|
231
|
+
get: function () {
|
|
232
|
+
return this._paddingAfter;
|
|
233
|
+
},
|
|
234
|
+
},
|
|
79
235
|
|
|
80
|
-
/**
|
|
81
|
-
|
|
236
|
+
/**
|
|
237
|
+
* The metadata class for this tileset.
|
|
238
|
+
*
|
|
239
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
240
|
+
* @type {string}
|
|
241
|
+
* @readonly
|
|
242
|
+
*/
|
|
243
|
+
className: {
|
|
244
|
+
get: function () {
|
|
245
|
+
return this._className;
|
|
246
|
+
},
|
|
247
|
+
},
|
|
82
248
|
|
|
83
|
-
/**
|
|
84
|
-
|
|
249
|
+
/**
|
|
250
|
+
* Gets the metadata names.
|
|
251
|
+
*
|
|
252
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
253
|
+
* @type {string[]}
|
|
254
|
+
* @readonly
|
|
255
|
+
*/
|
|
256
|
+
names: {
|
|
257
|
+
get: function () {
|
|
258
|
+
return this._names;
|
|
259
|
+
},
|
|
260
|
+
},
|
|
85
261
|
|
|
86
|
-
/**
|
|
87
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Gets the metadata types.
|
|
264
|
+
*
|
|
265
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
266
|
+
* @type {MetadataType[]}
|
|
267
|
+
* @readonly
|
|
268
|
+
*/
|
|
269
|
+
types: {
|
|
270
|
+
get: function () {
|
|
271
|
+
return this._types;
|
|
272
|
+
},
|
|
273
|
+
},
|
|
88
274
|
|
|
89
|
-
/**
|
|
90
|
-
|
|
275
|
+
/**
|
|
276
|
+
* Gets the metadata component types.
|
|
277
|
+
*
|
|
278
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
279
|
+
* @type {MetadataComponentType[]}
|
|
280
|
+
* @readonly
|
|
281
|
+
*/
|
|
282
|
+
componentTypes: {
|
|
283
|
+
get: function () {
|
|
284
|
+
return this._componentTypes;
|
|
285
|
+
},
|
|
286
|
+
},
|
|
91
287
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
288
|
+
/**
|
|
289
|
+
* Gets the ordering of the metadata in the buffers.
|
|
290
|
+
*
|
|
291
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
292
|
+
* @type {VoxelMetadataOrder}
|
|
293
|
+
* @readonly
|
|
294
|
+
* @private
|
|
295
|
+
*/
|
|
296
|
+
metadataOrder: {
|
|
297
|
+
get: function () {
|
|
298
|
+
return this._metadataOrder;
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Gets the metadata minimum values.
|
|
304
|
+
*
|
|
305
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
306
|
+
* @type {number[][]|undefined}
|
|
307
|
+
* @readonly
|
|
308
|
+
*/
|
|
309
|
+
minimumValues: {
|
|
310
|
+
get: function () {
|
|
311
|
+
return this._minimumValues;
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Gets the metadata maximum values.
|
|
317
|
+
*
|
|
318
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
319
|
+
* @type {number[][]|undefined}
|
|
320
|
+
* @readonly
|
|
321
|
+
*/
|
|
322
|
+
maximumValues: {
|
|
323
|
+
get: function () {
|
|
324
|
+
return this._maximumValues;
|
|
325
|
+
},
|
|
326
|
+
},
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* The maximum number of tiles that exist for this provider.
|
|
330
|
+
* This value is used as a hint to the voxel renderer to allocate an appropriate amount of GPU memory.
|
|
331
|
+
* If this value is not known it can be undefined.
|
|
332
|
+
*
|
|
333
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
334
|
+
* @type {number|undefined}
|
|
335
|
+
* @readonly
|
|
336
|
+
*/
|
|
337
|
+
maximumTileCount: {
|
|
338
|
+
get: function () {
|
|
339
|
+
return this._maximumTileCount;
|
|
340
|
+
},
|
|
341
|
+
},
|
|
96
342
|
|
|
97
|
-
Object.defineProperties(Cesium3DTilesVoxelProvider.prototype, {
|
|
98
343
|
/**
|
|
99
344
|
* The number of levels of detail containing available tiles in the tileset.
|
|
100
345
|
*
|
|
101
|
-
* @memberof
|
|
346
|
+
* @memberof Cesium3DTilesVoxelProvider.prototype
|
|
102
347
|
* @type {number|undefined}
|
|
103
348
|
* @readonly
|
|
104
349
|
*/
|
|
@@ -110,7 +355,7 @@ Object.defineProperties(Cesium3DTilesVoxelProvider.prototype, {
|
|
|
110
355
|
});
|
|
111
356
|
|
|
112
357
|
/**
|
|
113
|
-
* Creates a {@link
|
|
358
|
+
* Creates a {@link Cesium3DTilesVoxelProvider} that fetches voxel data from a 3D Tiles tileset.
|
|
114
359
|
*
|
|
115
360
|
* @param {Resource|string} url The URL to a tileset JSON file
|
|
116
361
|
* @returns {Promise<Cesium3DTilesVoxelProvider>} The created provider
|
|
@@ -120,6 +365,22 @@ Object.defineProperties(Cesium3DTilesVoxelProvider.prototype, {
|
|
|
120
365
|
* @exception {RuntimeException} Root tile must have implicit tiling
|
|
121
366
|
* @exception {RuntimeException} Tileset must have a metadata schema
|
|
122
367
|
* @exception {RuntimeException} Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider
|
|
368
|
+
*
|
|
369
|
+
* @example
|
|
370
|
+
* try {
|
|
371
|
+
* const voxelProvider = await Cesium3DTilesVoxelProvider.fromUrl(
|
|
372
|
+
* "http://localhost:8002/tilesets/voxel/tileset.json"
|
|
373
|
+
* );
|
|
374
|
+
* const voxelPrimitive = new VoxelPrimitive({
|
|
375
|
+
* provider: voxelProvider,
|
|
376
|
+
* customShader: customShader,
|
|
377
|
+
* });
|
|
378
|
+
* scene.primitives.add(voxelPrimitive);
|
|
379
|
+
* } catch (error) {
|
|
380
|
+
* console.error(`Error creating voxel primitive: ${error}`);
|
|
381
|
+
* }
|
|
382
|
+
*
|
|
383
|
+
* @see {@link VoxelPrimitive}
|
|
123
384
|
*/
|
|
124
385
|
Cesium3DTilesVoxelProvider.fromUrl = async function (url) {
|
|
125
386
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -134,48 +395,38 @@ Cesium3DTilesVoxelProvider.fromUrl = async function (url) {
|
|
|
134
395
|
const schemaLoader = getMetadataSchemaLoader(tilesetJson, resource);
|
|
135
396
|
await schemaLoader.load();
|
|
136
397
|
|
|
137
|
-
const root = tilesetJson
|
|
138
|
-
const voxel = root.content.extensions["3DTILES_content_voxels"];
|
|
139
|
-
const className = voxel.class;
|
|
398
|
+
const { root } = tilesetJson;
|
|
140
399
|
|
|
141
400
|
const metadataJson = hasExtension(tilesetJson, "3DTILES_metadata")
|
|
142
401
|
? tilesetJson.extensions["3DTILES_metadata"]
|
|
143
402
|
: tilesetJson;
|
|
144
403
|
|
|
145
|
-
const
|
|
146
|
-
const metadata = new Cesium3DTilesetMetadata({
|
|
404
|
+
const tilesetMetadata = new Cesium3DTilesetMetadata({
|
|
147
405
|
metadataJson: metadataJson,
|
|
148
|
-
schema:
|
|
406
|
+
schema: schemaLoader.schema,
|
|
149
407
|
});
|
|
150
408
|
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
addAttributeInfo(provider, metadata, className);
|
|
154
|
-
|
|
155
|
-
const implicitTileset = new ImplicitTileset(resource, root, metadataSchema);
|
|
156
|
-
|
|
157
|
-
const { shape, minBounds, maxBounds, shapeTransform, globalTransform } =
|
|
158
|
-
getShape(root);
|
|
409
|
+
const voxel = root.content.extensions["3DTILES_content_voxels"];
|
|
410
|
+
const className = voxel.class;
|
|
159
411
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
provider.maxBounds = maxBounds;
|
|
163
|
-
provider.dimensions = Cartesian3.unpack(voxel.dimensions);
|
|
164
|
-
provider.shapeTransform = shapeTransform;
|
|
165
|
-
provider.globalTransform = globalTransform;
|
|
166
|
-
provider.maximumTileCount = getTileCount(metadata);
|
|
412
|
+
const providerOptions = getAttributeInfo(tilesetMetadata, className);
|
|
413
|
+
Object.assign(providerOptions, getShape(root));
|
|
167
414
|
|
|
168
|
-
|
|
169
|
-
|
|
415
|
+
providerOptions.dimensions = Cartesian3.unpack(voxel.dimensions);
|
|
416
|
+
providerOptions.maximumTileCount = getTileCount(tilesetMetadata);
|
|
170
417
|
|
|
171
418
|
if (defined(voxel.padding)) {
|
|
172
|
-
paddingBefore = Cartesian3.unpack(voxel.padding.before);
|
|
173
|
-
paddingAfter = Cartesian3.unpack(voxel.padding.after);
|
|
419
|
+
providerOptions.paddingBefore = Cartesian3.unpack(voxel.padding.before);
|
|
420
|
+
providerOptions.paddingAfter = Cartesian3.unpack(voxel.padding.after);
|
|
174
421
|
}
|
|
175
422
|
|
|
176
|
-
provider
|
|
177
|
-
provider.paddingAfter = paddingAfter;
|
|
423
|
+
const provider = new Cesium3DTilesVoxelProvider(providerOptions);
|
|
178
424
|
|
|
425
|
+
const implicitTileset = new ImplicitTileset(
|
|
426
|
+
resource,
|
|
427
|
+
root,
|
|
428
|
+
schemaLoader.schema,
|
|
429
|
+
);
|
|
179
430
|
provider._implicitTileset = implicitTileset;
|
|
180
431
|
provider._availableLevels = implicitTileset.availableLevels;
|
|
181
432
|
|
|
@@ -239,7 +490,7 @@ function getShape(tile) {
|
|
|
239
490
|
return getEllipsoidShape(boundingVolume.region);
|
|
240
491
|
} else if (hasExtension(boundingVolume, "3DTILES_bounding_volume_cylinder")) {
|
|
241
492
|
return getCylinderShape(
|
|
242
|
-
boundingVolume.extensions["3DTILES_bounding_volume_cylinder"]
|
|
493
|
+
boundingVolume.extensions["3DTILES_bounding_volume_cylinder"],
|
|
243
494
|
tileTransform,
|
|
244
495
|
);
|
|
245
496
|
}
|
|
@@ -288,16 +539,39 @@ function getBoxShape(box, tileTransform) {
|
|
|
288
539
|
}
|
|
289
540
|
|
|
290
541
|
function getCylinderShape(cylinder, tileTransform) {
|
|
291
|
-
const
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
542
|
+
const {
|
|
543
|
+
minRadius,
|
|
544
|
+
maxRadius,
|
|
545
|
+
height,
|
|
546
|
+
minAngle = -CesiumMath.PI,
|
|
547
|
+
maxAngle = CesiumMath.PI,
|
|
548
|
+
translation = [0, 0, 0],
|
|
549
|
+
rotation = [0, 0, 0, 1],
|
|
550
|
+
} = cylinder;
|
|
551
|
+
|
|
552
|
+
//>>includeStart('debug', pragmas.debug);
|
|
553
|
+
Check.typeOf.number("minRadius", minRadius);
|
|
554
|
+
Check.typeOf.number("maxRadius", maxRadius);
|
|
555
|
+
Check.typeOf.number("height", height);
|
|
556
|
+
Check.typeOf.number("minAngle", minAngle);
|
|
557
|
+
Check.typeOf.number("maxAngle", maxAngle);
|
|
558
|
+
Check.typeOf.object("translation", translation);
|
|
559
|
+
Check.typeOf.object("rotation", rotation);
|
|
560
|
+
//>>includeEnd('debug');
|
|
561
|
+
|
|
562
|
+
const minHeight = -0.5 * height + translation[2];
|
|
563
|
+
const maxHeight = 0.5 * height + translation[2];
|
|
564
|
+
|
|
565
|
+
const shapeTransform = Matrix4.fromTranslationQuaternionRotationScale(
|
|
566
|
+
Cartesian3.unpack(translation),
|
|
567
|
+
Quaternion.unpack(rotation),
|
|
568
|
+
new Cartesian3(maxRadius, maxRadius, 0.5 * height),
|
|
295
569
|
);
|
|
296
570
|
|
|
297
571
|
return {
|
|
298
572
|
shape: VoxelShapeType.CYLINDER,
|
|
299
|
-
minBounds: Cartesian3.
|
|
300
|
-
maxBounds: Cartesian3.
|
|
573
|
+
minBounds: Cartesian3.fromElements(minRadius, minAngle, minHeight),
|
|
574
|
+
maxBounds: Cartesian3.fromElements(maxRadius, maxAngle, maxHeight),
|
|
301
575
|
shapeTransform: shapeTransform,
|
|
302
576
|
globalTransform: tileTransform,
|
|
303
577
|
};
|
|
@@ -315,7 +589,7 @@ function getMetadataSchemaLoader(tilesetJson, resource) {
|
|
|
315
589
|
});
|
|
316
590
|
}
|
|
317
591
|
|
|
318
|
-
function
|
|
592
|
+
function getAttributeInfo(metadata, className) {
|
|
319
593
|
const { schema, statistics } = metadata;
|
|
320
594
|
const classStatistics = statistics?.classes[className];
|
|
321
595
|
const properties = schema.classes[className].properties;
|
|
@@ -331,16 +605,22 @@ function addAttributeInfo(provider, metadata, className) {
|
|
|
331
605
|
return { id, type, componentType, minValue, maxValue };
|
|
332
606
|
});
|
|
333
607
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
608
|
+
const names = propertyInfo.map((info) => info.id);
|
|
609
|
+
const types = propertyInfo.map((info) => info.type);
|
|
610
|
+
const componentTypes = propertyInfo.map((info) => info.componentType);
|
|
337
611
|
|
|
338
612
|
const minimumValues = propertyInfo.map((info) => info.minValue);
|
|
339
613
|
const maximumValues = propertyInfo.map((info) => info.maxValue);
|
|
340
614
|
const hasMinimumValues = minimumValues.some(defined);
|
|
341
615
|
|
|
342
|
-
|
|
343
|
-
|
|
616
|
+
return {
|
|
617
|
+
className,
|
|
618
|
+
names,
|
|
619
|
+
types,
|
|
620
|
+
componentTypes,
|
|
621
|
+
minimumValues: hasMinimumValues ? minimumValues : undefined,
|
|
622
|
+
maximumValues: hasMinimumValues ? maximumValues : undefined,
|
|
623
|
+
};
|
|
344
624
|
}
|
|
345
625
|
|
|
346
626
|
function copyArray(values, length) {
|
|
@@ -356,29 +636,14 @@ function copyArray(values, length) {
|
|
|
356
636
|
return Array.from({ length }, (v, i) => valuesArray[i]);
|
|
357
637
|
}
|
|
358
638
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const arrayBuffer = await voxelResource.fetchArrayBuffer();
|
|
369
|
-
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
370
|
-
|
|
371
|
-
const voxelContent = await VoxelContent.fromJson(
|
|
372
|
-
voxelResource,
|
|
373
|
-
preprocessed.jsonPayload,
|
|
374
|
-
preprocessed.binaryPayload,
|
|
375
|
-
implicitTileset.metadataSchema,
|
|
376
|
-
);
|
|
377
|
-
|
|
378
|
-
return voxelContent;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
async function getSubtreePromise(provider, subtreeCoord) {
|
|
639
|
+
/**
|
|
640
|
+
* Get the subtree at a given subtree coordinate
|
|
641
|
+
* @param {VoxelProvider} provider The voxel provider
|
|
642
|
+
* @param {ImplicitTileCoordinates} subtreeCoord The coordinate at which to retrieve the subtree
|
|
643
|
+
* @returns {Promise<ImplicitSubtree>} The subtree at the given coordinate
|
|
644
|
+
* @private
|
|
645
|
+
*/
|
|
646
|
+
async function getSubtree(provider, subtreeCoord) {
|
|
382
647
|
const implicitTileset = provider._implicitTileset;
|
|
383
648
|
const subtreeCache = provider._subtreeCache;
|
|
384
649
|
|
|
@@ -419,27 +684,38 @@ async function getSubtreePromise(provider, subtreeCoord) {
|
|
|
419
684
|
return subtree;
|
|
420
685
|
}
|
|
421
686
|
|
|
422
|
-
/**
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
687
|
+
/**
|
|
688
|
+
* Requests the data for a given tile.
|
|
689
|
+
*
|
|
690
|
+
* @param {object} [options] Object with the following properties:
|
|
691
|
+
* @param {number} [options.tileLevel=0] The tile's level.
|
|
692
|
+
* @param {number} [options.tileX=0] The tile's X coordinate.
|
|
693
|
+
* @param {number} [options.tileY=0] The tile's Y coordinate.
|
|
694
|
+
* @param {number} [options.tileZ=0] The tile's Z coordinate.
|
|
695
|
+
* @privateparam {number} [options.keyframe=0] The requested keyframe.
|
|
696
|
+
* @returns {Promise<VoxelContent>|undefined} A promise resolving to a VoxelContent containing the data for the tile, or undefined if the request could not be scheduled this frame.
|
|
697
|
+
*/
|
|
698
|
+
Cesium3DTilesVoxelProvider.prototype.requestData = async function (options) {
|
|
699
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
700
|
+
const {
|
|
701
|
+
tileLevel = 0,
|
|
702
|
+
tileX = 0,
|
|
703
|
+
tileY = 0,
|
|
704
|
+
tileZ = 0,
|
|
705
|
+
keyframe = 0,
|
|
706
|
+
} = options;
|
|
430
707
|
|
|
431
|
-
// 3D Tiles currently doesn't support time-dynamic data.
|
|
432
708
|
if (keyframe !== 0) {
|
|
433
|
-
return
|
|
709
|
+
return Promise.reject(
|
|
710
|
+
`3D Tiles currently doesn't support time-dynamic data.`,
|
|
711
|
+
);
|
|
434
712
|
}
|
|
435
713
|
|
|
436
714
|
// 1. Load the subtree that the tile belongs to (possibly from the subtree cache)
|
|
437
715
|
// 2. Load the voxel content if available
|
|
438
716
|
|
|
439
|
-
const implicitTileset = this._implicitTileset;
|
|
440
|
-
const names = this.names;
|
|
441
|
-
|
|
442
717
|
// Can't use a scratch variable here because the object is used inside the promise chain.
|
|
718
|
+
const implicitTileset = this._implicitTileset;
|
|
443
719
|
const tileCoordinates = new ImplicitTileCoordinates({
|
|
444
720
|
subdivisionScheme: implicitTileset.subdivisionScheme,
|
|
445
721
|
subtreeLevels: implicitTileset.subtreeLevels,
|
|
@@ -461,23 +737,29 @@ Cesium3DTilesVoxelProvider.prototype.requestData = function (options) {
|
|
|
461
737
|
|
|
462
738
|
const that = this;
|
|
463
739
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
740
|
+
const subtree = await getSubtree(that, subtreeCoord);
|
|
741
|
+
// NOTE: these two subtree methods are ONLY used by voxels!
|
|
742
|
+
const isAvailable = isSubtreeRoot
|
|
743
|
+
? subtree.childSubtreeIsAvailableAtCoordinates
|
|
744
|
+
: subtree.tileIsAvailableAtCoordinates;
|
|
745
|
+
|
|
746
|
+
const available = isAvailable.call(subtree, tileCoordinates);
|
|
747
|
+
|
|
748
|
+
if (!available) {
|
|
749
|
+
return Promise.reject(
|
|
750
|
+
`Tile is not available at level ${tileLevel}, x ${tileX}, y ${tileY}, z ${tileZ}.`,
|
|
751
|
+
);
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
const { contentUriTemplates, baseResource } = implicitTileset;
|
|
755
|
+
const gltfRelative = contentUriTemplates[0].getDerivedResource({
|
|
756
|
+
templateValues: tileCoordinates.getTemplateValues(),
|
|
757
|
+
});
|
|
758
|
+
const gltfResource = baseResource.getDerivedResource({
|
|
759
|
+
url: gltfRelative.url,
|
|
760
|
+
});
|
|
761
|
+
|
|
762
|
+
return VoxelContent.fromGltf(gltfResource);
|
|
481
763
|
};
|
|
482
764
|
|
|
483
765
|
export default Cesium3DTilesVoxelProvider;
|