@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,7 +1,7 @@
|
|
|
1
1
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
2
2
|
import Color from "../Core/Color.js";
|
|
3
3
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
4
|
-
import
|
|
4
|
+
import Frozen from "../Core/Frozen.js";
|
|
5
5
|
import defined from "../Core/defined.js";
|
|
6
6
|
import destroyObject from "../Core/destroyObject.js";
|
|
7
7
|
import IndexDatatype from "../Core/IndexDatatype.js";
|
|
@@ -51,7 +51,7 @@ import Vector3DTileBatch from "./Vector3DTileBatch.js";
|
|
|
51
51
|
* @private
|
|
52
52
|
*/
|
|
53
53
|
function Vector3DTilePrimitive(options) {
|
|
54
|
-
options =
|
|
54
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
55
55
|
|
|
56
56
|
this._batchTable = options.batchTable;
|
|
57
57
|
this._batchIds = options.batchIds;
|
|
@@ -70,7 +70,7 @@ function Vector3DTilePrimitive(options) {
|
|
|
70
70
|
this._boundingVolume = options.boundingVolume;
|
|
71
71
|
this._boundingVolumes = options.boundingVolumes;
|
|
72
72
|
|
|
73
|
-
this._center =
|
|
73
|
+
this._center = options.center ?? Cartesian3.ZERO;
|
|
74
74
|
|
|
75
75
|
this._va = undefined;
|
|
76
76
|
this._sp = undefined;
|
|
@@ -127,10 +127,8 @@ function Vector3DTilePrimitive(options) {
|
|
|
127
127
|
* @type {ClassificationType}
|
|
128
128
|
* @default ClassificationType.BOTH
|
|
129
129
|
*/
|
|
130
|
-
this.classificationType =
|
|
131
|
-
options.classificationType
|
|
132
|
-
ClassificationType.BOTH,
|
|
133
|
-
);
|
|
130
|
+
this.classificationType =
|
|
131
|
+
options.classificationType ?? ClassificationType.BOTH;
|
|
134
132
|
|
|
135
133
|
// Hidden options
|
|
136
134
|
this._vertexShaderSource = options._vertexShaderSource;
|
|
@@ -257,10 +255,8 @@ function createShaders(primitive, context) {
|
|
|
257
255
|
}
|
|
258
256
|
|
|
259
257
|
const batchTable = primitive._batchTable;
|
|
260
|
-
const attributeLocations =
|
|
261
|
-
primitive._attributeLocations
|
|
262
|
-
defaultAttributeLocations,
|
|
263
|
-
);
|
|
258
|
+
const attributeLocations =
|
|
259
|
+
primitive._attributeLocations ?? defaultAttributeLocations;
|
|
264
260
|
|
|
265
261
|
let pickId = primitive._pickId;
|
|
266
262
|
const vertexShaderSource = primitive._vertexShaderSource;
|
|
@@ -769,7 +765,7 @@ function createColorCommands(primitive, context) {
|
|
|
769
765
|
|
|
770
766
|
const vertexArray = primitive._va;
|
|
771
767
|
const sp = primitive._sp;
|
|
772
|
-
const modelMatrix =
|
|
768
|
+
const modelMatrix = primitive._modelMatrix ?? Matrix4.IDENTITY;
|
|
773
769
|
const uniformMap = primitive._uniformMap;
|
|
774
770
|
const bv = primitive._boundingVolume;
|
|
775
771
|
|
|
@@ -876,7 +872,7 @@ function createPickCommands(primitive) {
|
|
|
876
872
|
const vertexArray = primitive._va;
|
|
877
873
|
const spStencil = primitive._spStencil;
|
|
878
874
|
const spPick = primitive._spPick;
|
|
879
|
-
const modelMatrix =
|
|
875
|
+
const modelMatrix = primitive._modelMatrix ?? Matrix4.IDENTITY;
|
|
880
876
|
const uniformMap = primitive._uniformMap;
|
|
881
877
|
|
|
882
878
|
for (let j = 0; j < length; ++j) {
|
|
@@ -5,7 +5,6 @@ import Check from "../Core/Check.js";
|
|
|
5
5
|
import Matrix3 from "../Core/Matrix3.js";
|
|
6
6
|
import Matrix4 from "../Core/Matrix4.js";
|
|
7
7
|
import OrientedBoundingBox from "../Core/OrientedBoundingBox.js";
|
|
8
|
-
import defaultValue from "../Core/defaultValue.js";
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* A box {@link VoxelShape}.
|
|
@@ -24,6 +23,7 @@ function VoxelBoxShape() {
|
|
|
24
23
|
/**
|
|
25
24
|
* An oriented bounding box containing the bounded shape.
|
|
26
25
|
* The update function must be called before accessing this value.
|
|
26
|
+
* @private
|
|
27
27
|
* @type {OrientedBoundingBox}
|
|
28
28
|
* @readonly
|
|
29
29
|
*/
|
|
@@ -32,6 +32,7 @@ function VoxelBoxShape() {
|
|
|
32
32
|
/**
|
|
33
33
|
* A bounding sphere containing the bounded shape.
|
|
34
34
|
* The update function must be called before accessing this value.
|
|
35
|
+
* @private
|
|
35
36
|
* @type {BoundingSphere}
|
|
36
37
|
* @readonly
|
|
37
38
|
*/
|
|
@@ -40,6 +41,7 @@ function VoxelBoxShape() {
|
|
|
40
41
|
/**
|
|
41
42
|
* A transformation matrix containing the bounded shape.
|
|
42
43
|
* The update function must be called before accessing this value.
|
|
44
|
+
* @private
|
|
43
45
|
* @type {Matrix4}
|
|
44
46
|
* @readonly
|
|
45
47
|
*/
|
|
@@ -48,6 +50,7 @@ function VoxelBoxShape() {
|
|
|
48
50
|
/**
|
|
49
51
|
* A transformation matrix containing the shape, ignoring the bounds.
|
|
50
52
|
* The update function must be called before accessing this value.
|
|
53
|
+
* @private
|
|
51
54
|
* @type {Matrix4}
|
|
52
55
|
* @readonly
|
|
53
56
|
*/
|
|
@@ -72,6 +75,7 @@ function VoxelBoxShape() {
|
|
|
72
75
|
);
|
|
73
76
|
|
|
74
77
|
/**
|
|
78
|
+
* @private
|
|
75
79
|
* @type {Object<string, any>}
|
|
76
80
|
* @readonly
|
|
77
81
|
*/
|
|
@@ -83,6 +87,7 @@ function VoxelBoxShape() {
|
|
|
83
87
|
};
|
|
84
88
|
|
|
85
89
|
/**
|
|
90
|
+
* @private
|
|
86
91
|
* @type {Object<string, any>}
|
|
87
92
|
* @readonly
|
|
88
93
|
*/
|
|
@@ -93,6 +98,7 @@ function VoxelBoxShape() {
|
|
|
93
98
|
|
|
94
99
|
/**
|
|
95
100
|
* The maximum number of intersections against the shape for any ray direction.
|
|
101
|
+
* @private
|
|
96
102
|
* @type {number}
|
|
97
103
|
* @readonly
|
|
98
104
|
*/
|
|
@@ -115,7 +121,7 @@ const transformLocalToUv = Matrix4.fromRotationTranslation(
|
|
|
115
121
|
|
|
116
122
|
/**
|
|
117
123
|
* Update the shape's state.
|
|
118
|
-
*
|
|
124
|
+
* @private
|
|
119
125
|
* @param {Matrix4} modelMatrix The model matrix.
|
|
120
126
|
* @param {Cartesian3} minBounds The minimum bounds.
|
|
121
127
|
* @param {Cartesian3} maxBounds The maximum bounds.
|
|
@@ -130,8 +136,8 @@ VoxelBoxShape.prototype.update = function (
|
|
|
130
136
|
clipMinBounds,
|
|
131
137
|
clipMaxBounds,
|
|
132
138
|
) {
|
|
133
|
-
clipMinBounds =
|
|
134
|
-
clipMaxBounds =
|
|
139
|
+
clipMinBounds = clipMinBounds ?? VoxelBoxShape.DefaultMinBounds;
|
|
140
|
+
clipMaxBounds = clipMaxBounds ?? VoxelBoxShape.DefaultMaxBounds;
|
|
135
141
|
//>>includeStart('debug', pragmas.debug);
|
|
136
142
|
Check.typeOf.object("modelMatrix", modelMatrix);
|
|
137
143
|
Check.typeOf.object("minBounds", minBounds);
|
|
@@ -302,7 +308,7 @@ const scratchTileMaxBounds = new Cartesian3();
|
|
|
302
308
|
/**
|
|
303
309
|
* Computes an oriented bounding box for a specified tile.
|
|
304
310
|
* The update function must be called before calling this function.
|
|
305
|
-
*
|
|
311
|
+
* @private
|
|
306
312
|
* @param {number} tileLevel The tile's level.
|
|
307
313
|
* @param {number} tileX The tile's x coordinate.
|
|
308
314
|
* @param {number} tileY The tile's y coordinate.
|
|
@@ -356,7 +362,7 @@ const sampleSizeScratch = new Cartesian3();
|
|
|
356
362
|
/**
|
|
357
363
|
* Computes an oriented bounding box for a specified sample within a specified tile.
|
|
358
364
|
* The update function must be called before calling this function.
|
|
359
|
-
*
|
|
365
|
+
* @private
|
|
360
366
|
* @param {SpatialNode} spatialNode The spatial node containing the sample
|
|
361
367
|
* @param {Cartesian3} tileDimensions The size of the tile in number of samples, before padding
|
|
362
368
|
* @param {Cartesian3} tileUv The sample coordinate within the tile
|
|
@@ -429,7 +435,7 @@ VoxelBoxShape.prototype.computeOrientedBoundingBoxForSample = function (
|
|
|
429
435
|
|
|
430
436
|
/**
|
|
431
437
|
* Defines the minimum bounds of the shape. Corresponds to minimum X, Y, Z.
|
|
432
|
-
*
|
|
438
|
+
* @private
|
|
433
439
|
* @type {Cartesian3}
|
|
434
440
|
* @constant
|
|
435
441
|
* @readonly
|
|
@@ -440,7 +446,7 @@ VoxelBoxShape.DefaultMinBounds = Object.freeze(
|
|
|
440
446
|
|
|
441
447
|
/**
|
|
442
448
|
* Defines the maximum bounds of the shape. Corresponds to maximum X, Y, Z.
|
|
443
|
-
*
|
|
449
|
+
* @private
|
|
444
450
|
* @type {Cartesian3}
|
|
445
451
|
* @constant
|
|
446
452
|
* @readonly
|
|
@@ -71,8 +71,8 @@ VoxelCell.fromKeyframeNode = function (
|
|
|
71
71
|
//>>includeEnd('debug');
|
|
72
72
|
|
|
73
73
|
const voxelCell = new VoxelCell(primitive, tileIndex, sampleIndex);
|
|
74
|
-
const { spatialNode,
|
|
75
|
-
voxelCell._metadata = getMetadataForSample(primitive,
|
|
74
|
+
const { spatialNode, content } = keyframeNode;
|
|
75
|
+
voxelCell._metadata = getMetadataForSample(primitive, content, sampleIndex);
|
|
76
76
|
voxelCell._orientedBoundingBox = getOrientedBoundingBox(
|
|
77
77
|
primitive,
|
|
78
78
|
spatialNode,
|
|
@@ -85,15 +85,16 @@ VoxelCell.fromKeyframeNode = function (
|
|
|
85
85
|
/**
|
|
86
86
|
* @private
|
|
87
87
|
* @param {VoxelPrimitive} primitive
|
|
88
|
-
* @param {
|
|
88
|
+
* @param {VoxelContent} content
|
|
89
89
|
* @param {number} sampleIndex
|
|
90
90
|
* @returns {object}
|
|
91
91
|
*/
|
|
92
|
-
function getMetadataForSample(primitive,
|
|
93
|
-
if (!defined(metadata)) {
|
|
92
|
+
function getMetadataForSample(primitive, content, sampleIndex) {
|
|
93
|
+
if (!defined(content) || !defined(content.metadata)) {
|
|
94
94
|
return undefined;
|
|
95
95
|
}
|
|
96
96
|
const { names, types } = primitive.provider;
|
|
97
|
+
const { metadata } = content;
|
|
97
98
|
const metadataMap = {};
|
|
98
99
|
for (let i = 0; i < names.length; i++) {
|
|
99
100
|
const name = names[i];
|
|
@@ -1,167 +1,231 @@
|
|
|
1
|
+
import { destroyObject } from "@cesium/engine";
|
|
1
2
|
import Check from "../Core/Check.js";
|
|
3
|
+
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
2
4
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
3
5
|
import defined from "../Core/defined.js";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
+
import GltfLoader from "./GltfLoader.js";
|
|
7
|
+
import MetadataComponentType from "./MetadataComponentType.js";
|
|
8
|
+
import MetadataType from "./MetadataType.js";
|
|
6
9
|
|
|
7
10
|
/**
|
|
11
|
+
* <div class="notice">
|
|
12
|
+
* To construct a VoxelContent, call {@link VoxelContent.fromMetadataArray} or {@link VoxelContent.fromGltf}. Do not call the constructor directly.
|
|
13
|
+
* </div>
|
|
8
14
|
* An object representing voxel content for a {@link Cesium3DTilesVoxelProvider}.
|
|
9
15
|
*
|
|
10
16
|
* @alias VoxelContent
|
|
11
|
-
* @
|
|
17
|
+
* @internalConstructor
|
|
12
18
|
*
|
|
13
|
-
* @
|
|
19
|
+
* @privateParam {object} options An object with the following properties:
|
|
20
|
+
* @privateParam {ResourceLoader} [options.loader] The loader used to load the voxel content.
|
|
21
|
+
* @privateParam {Int8Array[]|Uint8Array[]|Int16Array[]|Uint16Array[]|Int32Array[]|Uint32Array[]|Float32Array[]|Float64Array[]} [options.metadata] The metadata for this voxel content.
|
|
22
|
+
*
|
|
23
|
+
* @exception {DeveloperError} One of loader and metadata must be defined.
|
|
24
|
+
* @exception {DeveloperError} metadata must be an array of TypedArrays.
|
|
14
25
|
*
|
|
15
|
-
* @private
|
|
16
26
|
* @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
|
|
17
27
|
*/
|
|
18
|
-
function VoxelContent(
|
|
28
|
+
function VoxelContent(options) {
|
|
19
29
|
//>>includeStart('debug', pragmas.debug);
|
|
20
|
-
Check.typeOf.object("
|
|
30
|
+
Check.typeOf.object("options", options);
|
|
31
|
+
if (!defined(options.loader)) {
|
|
32
|
+
if (!defined(options.metadata)) {
|
|
33
|
+
throw new DeveloperError("One of loader and metadata must be defined.");
|
|
34
|
+
}
|
|
35
|
+
if (!Array.isArray(options.metadata)) {
|
|
36
|
+
throw new DeveloperError("metadata must be an array of TypedArrays.");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
21
39
|
//>>includeEnd('debug');
|
|
22
40
|
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
const { loader, metadata } = options;
|
|
42
|
+
|
|
43
|
+
this._loader = loader;
|
|
44
|
+
this._metadata = metadata;
|
|
45
|
+
this._resourcesLoaded = false;
|
|
46
|
+
this._ready = false;
|
|
25
47
|
}
|
|
26
48
|
|
|
27
49
|
Object.defineProperties(VoxelContent.prototype, {
|
|
28
50
|
/**
|
|
29
|
-
*
|
|
51
|
+
* Returns true when the content is ready to render; otherwise false
|
|
52
|
+
*
|
|
53
|
+
* @memberof VoxelContent.prototype
|
|
30
54
|
*
|
|
31
|
-
* @type {
|
|
55
|
+
* @type {boolean}
|
|
32
56
|
* @readonly
|
|
33
57
|
* @private
|
|
34
58
|
*/
|
|
35
|
-
|
|
59
|
+
ready: {
|
|
60
|
+
get: function () {
|
|
61
|
+
return this._ready;
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The metadata for this voxel content.
|
|
67
|
+
* The metadata is an array of typed arrays, one for each field.
|
|
68
|
+
* The data for one field is a flattened 3D array ordered by X, then Y, then Z.
|
|
69
|
+
* @type {Int8Array[]|Uint8Array[]|Int16Array[]|Uint16Array[]|Int32Array[]|Uint32Array[]|Float32Array[]|Float64Array[]}
|
|
70
|
+
* @readonly
|
|
71
|
+
*/
|
|
72
|
+
metadata: {
|
|
36
73
|
get: function () {
|
|
37
|
-
return this.
|
|
74
|
+
return this._metadata;
|
|
38
75
|
},
|
|
39
76
|
},
|
|
40
77
|
});
|
|
41
78
|
|
|
42
79
|
/**
|
|
43
|
-
*
|
|
80
|
+
* Constructs a VoxelContent from an array of metadata.
|
|
81
|
+
*
|
|
82
|
+
* @param {Int8Array[]|Uint8Array[]|Int16Array[]|Uint16Array[]|Int32Array[]|Uint32Array[]|Float32Array[]|Float64Array[]} metadata The metadata to use for this voxel content.
|
|
83
|
+
* @returns {VoxelContent} A VoxelContent containing the specified metadata.
|
|
84
|
+
*/
|
|
85
|
+
VoxelContent.fromMetadataArray = function (metadata) {
|
|
86
|
+
//>>includeStart('debug', pragmas.debug);
|
|
87
|
+
Check.typeOf.object("metadata", metadata);
|
|
88
|
+
if (!Array.isArray(metadata)) {
|
|
89
|
+
throw new DeveloperError("metadata must be an array of TypedArrays.");
|
|
90
|
+
}
|
|
91
|
+
//>>includeEnd('debug');
|
|
92
|
+
|
|
93
|
+
return new VoxelContent({ metadata });
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Constructs a VoxelContent from a glTF resource.
|
|
44
98
|
*
|
|
45
|
-
* @param {Resource} resource
|
|
46
|
-
* @
|
|
47
|
-
* @param {Uint8Array} [binary] Voxel binary contents. Mutually exclusive with json.
|
|
48
|
-
* @param {MetadataSchema} metadataSchema The metadata schema used by property tables in the voxel content
|
|
49
|
-
* @returns {Promise<VoxelContent>}
|
|
99
|
+
* @param {Resource} resource A Resource pointing to a glTF containing voxel content.
|
|
100
|
+
* @returns {Promise<VoxelContent>} A promise that resolves to the voxel content.
|
|
50
101
|
*
|
|
51
|
-
* @
|
|
102
|
+
* @private
|
|
52
103
|
*/
|
|
53
|
-
VoxelContent.
|
|
54
|
-
resource,
|
|
55
|
-
json,
|
|
56
|
-
binary,
|
|
57
|
-
metadataSchema,
|
|
58
|
-
) {
|
|
104
|
+
VoxelContent.fromGltf = async function (resource) {
|
|
59
105
|
//>>includeStart('debug', pragmas.debug);
|
|
60
106
|
Check.typeOf.object("resource", resource);
|
|
61
|
-
if (defined(json) === defined(binary)) {
|
|
62
|
-
throw new DeveloperError("One of json and binary must be defined.");
|
|
63
|
-
}
|
|
64
107
|
//>>includeEnd('debug');
|
|
65
108
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
109
|
+
// Construct the glTF loader
|
|
110
|
+
const loader = new GltfLoader({
|
|
111
|
+
gltfResource: resource,
|
|
112
|
+
releaseGltfJson: false,
|
|
113
|
+
loadAttributesAsTypedArray: true,
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
try {
|
|
117
|
+
// This loads the gltf JSON and ensures the gltf is valid
|
|
118
|
+
// Further resource loading is handled synchronously in loader.process()
|
|
119
|
+
// via voxelContent.update() as the frameState is needed
|
|
120
|
+
await loader.load();
|
|
121
|
+
} catch (error) {
|
|
122
|
+
loader.destroy();
|
|
123
|
+
throw error;
|
|
74
124
|
}
|
|
75
125
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
126
|
+
return new VoxelContent({ loader });
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Updates the content until all resources are ready for rendering.
|
|
131
|
+
* @param {FrameState} frameState The frame state
|
|
132
|
+
* @private
|
|
133
|
+
*/
|
|
134
|
+
VoxelContent.prototype.update = function (primitive, frameState) {
|
|
135
|
+
const loader = this._loader;
|
|
136
|
+
|
|
137
|
+
if (this._ready) {
|
|
138
|
+
// Nothing to do
|
|
139
|
+
return;
|
|
86
140
|
}
|
|
87
141
|
|
|
88
|
-
|
|
89
|
-
|
|
142
|
+
// Ensures frames continue to render in requestRender mode while resources are processing
|
|
143
|
+
frameState.afterRender.push(() => true);
|
|
90
144
|
|
|
91
|
-
|
|
145
|
+
if (!defined(loader)) {
|
|
146
|
+
this._ready = true;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
92
149
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
150
|
+
if (this._resourcesLoaded) {
|
|
151
|
+
const { structuralMetadata, scene } = loader.components;
|
|
152
|
+
const { attributes } = scene.nodes[0].primitives[0];
|
|
153
|
+
this._metadata = processAttributes(
|
|
154
|
+
attributes,
|
|
155
|
+
structuralMetadata,
|
|
156
|
+
primitive,
|
|
157
|
+
);
|
|
158
|
+
this._ready = true;
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
99
161
|
|
|
100
|
-
|
|
162
|
+
this._resourcesLoaded = loader.process(frameState);
|
|
101
163
|
};
|
|
102
164
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Processes the attributes from the glTF loader, reordering them into the order expected by the primitive.
|
|
167
|
+
*
|
|
168
|
+
* @param {ModelComponents.Attribute[]} attributes The attributes to process
|
|
169
|
+
* @param {StructuralMetadata} structuralMetadata Information from the glTF EXT_structural_metadata extension
|
|
170
|
+
* @param {VoxelPrimitive} primitive The primitive for which this voxel content will be used.
|
|
171
|
+
* @returns {Int8Array[]|Uint8Array[]|Int16Array[]|Uint16Array[]|Int32Array[]|Uint32Array[]|Float32Array[]|Float64Array[]} An array of typed arrays containing the attribute values
|
|
172
|
+
* @private
|
|
173
|
+
*/
|
|
174
|
+
function processAttributes(attributes, structuralMetadata, primitive) {
|
|
175
|
+
const { className, names, types, componentTypes } = primitive.provider;
|
|
176
|
+
const propertyAttribute = structuralMetadata.propertyAttributes.find(
|
|
177
|
+
(p) => p.class.id === className,
|
|
178
|
+
);
|
|
179
|
+
const { properties } = propertyAttribute;
|
|
180
|
+
const data = new Array(names.length);
|
|
181
|
+
|
|
182
|
+
for (let i = 0; i < attributes.length; i++) {
|
|
183
|
+
// Find the appropriate glTF attribute based on its name.
|
|
184
|
+
const name = properties[names[i]].attribute;
|
|
185
|
+
const attribute = attributes.find((a) => a.name === name);
|
|
186
|
+
if (!defined(attribute)) {
|
|
187
|
+
continue;
|
|
120
188
|
}
|
|
189
|
+
|
|
190
|
+
const componentDatatype = MetadataComponentType.toComponentDatatype(
|
|
191
|
+
componentTypes[i],
|
|
192
|
+
);
|
|
193
|
+
const componentCount = MetadataType.getComponentCount(types[i]);
|
|
194
|
+
const totalCount = attribute.count * componentCount;
|
|
195
|
+
data[i] = ComponentDatatype.createArrayBufferView(
|
|
196
|
+
componentDatatype,
|
|
197
|
+
attribute.typedArray.buffer,
|
|
198
|
+
attribute.typedArray.byteOffset + attribute.byteOffset,
|
|
199
|
+
totalCount,
|
|
200
|
+
);
|
|
121
201
|
}
|
|
122
202
|
|
|
123
|
-
return
|
|
203
|
+
return data;
|
|
124
204
|
}
|
|
125
205
|
|
|
126
206
|
/**
|
|
127
|
-
*
|
|
207
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
208
|
+
* <br /><br />
|
|
209
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
210
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
211
|
+
*
|
|
212
|
+
* @returns {boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
|
|
213
|
+
*
|
|
214
|
+
* @see VoxelContent#destroy
|
|
128
215
|
*
|
|
129
|
-
* @typedef {object} VoxelChunks
|
|
130
|
-
* @property {object} json The json chunk of the binary voxel content
|
|
131
|
-
* @property {Uint8Array} binary The binary chunk of the binary voxel content. This represents the internal buffer.
|
|
132
216
|
* @private
|
|
133
217
|
*/
|
|
218
|
+
VoxelContent.prototype.isDestroyed = function () {
|
|
219
|
+
return false;
|
|
220
|
+
};
|
|
134
221
|
|
|
135
222
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* @param {Uint8Array} binaryView The binary voxel content
|
|
139
|
-
* @returns {VoxelChunks} An object containing the JSON and binary chunks
|
|
223
|
+
* Frees the resources used by this object.
|
|
140
224
|
* @private
|
|
141
225
|
*/
|
|
142
|
-
function
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
// Skip to the chunk lengths
|
|
147
|
-
let byteOffset = 8;
|
|
148
|
-
|
|
149
|
-
// Read the bottom 32 bits of the 64-bit byte length. This is ok for now because:
|
|
150
|
-
// 1) not all browsers have native 64-bit operations
|
|
151
|
-
// 2) the data is well under 4GB
|
|
152
|
-
const jsonByteLength = reader.getUint32(byteOffset, littleEndian);
|
|
153
|
-
byteOffset += 8;
|
|
154
|
-
const binaryByteLength = reader.getUint32(byteOffset, littleEndian);
|
|
155
|
-
byteOffset += 8;
|
|
156
|
-
|
|
157
|
-
const json = getJsonFromTypedArray(binaryView, byteOffset, jsonByteLength);
|
|
158
|
-
byteOffset += jsonByteLength;
|
|
159
|
-
const binary = binaryView.subarray(byteOffset, byteOffset + binaryByteLength);
|
|
160
|
-
|
|
161
|
-
return {
|
|
162
|
-
json: json,
|
|
163
|
-
binary: binary,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
226
|
+
VoxelContent.prototype.destroy = function () {
|
|
227
|
+
this._loader = this._loader && this._loader.destroy();
|
|
228
|
+
return destroyObject(this);
|
|
229
|
+
};
|
|
166
230
|
|
|
167
231
|
export default VoxelContent;
|