@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,4 +1,5 @@
|
|
|
1
1
|
import Cartesian2 from "../Core/Cartesian2.js";
|
|
2
|
+
import Cartesian3 from "../Core/Cartesian3.js";
|
|
2
3
|
import CesiumMath from "../Core/Math.js";
|
|
3
4
|
import CullingVolume from "../Core/CullingVolume.js";
|
|
4
5
|
import defined from "../Core/defined.js";
|
|
@@ -15,6 +16,7 @@ import SpatialNode from "./SpatialNode.js";
|
|
|
15
16
|
import Texture from "../Renderer/Texture.js";
|
|
16
17
|
import TextureMagnificationFilter from "../Renderer/TextureMagnificationFilter.js";
|
|
17
18
|
import TextureMinificationFilter from "../Renderer/TextureMinificationFilter.js";
|
|
19
|
+
import VoxelMetadataOrder from "./VoxelMetadataOrder.js";
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* Handles tileset traversal, tile requests, and GPU resources. Intended to be
|
|
@@ -23,32 +25,59 @@ import TextureMinificationFilter from "../Renderer/TextureMinificationFilter.js"
|
|
|
23
25
|
* @alias VoxelTraversal
|
|
24
26
|
* @constructor
|
|
25
27
|
*
|
|
26
|
-
* @param {VoxelPrimitive} primitive
|
|
27
|
-
* @param {Context} context
|
|
28
|
-
* @param {
|
|
29
|
-
* @param {
|
|
30
|
-
* @param {MetadataComponentType[]} componentTypes
|
|
31
|
-
* @param {number} keyframeCount
|
|
32
|
-
* @param {number} [maximumTextureMemoryByteLength]
|
|
28
|
+
* @param {VoxelPrimitive} primitive The voxel primitive for which this traversal will be used.
|
|
29
|
+
* @param {Context} context The context in which to create GPU resources.
|
|
30
|
+
* @param {number} keyframeCount The number of keyframes in the tileset.
|
|
31
|
+
* @param {number} [maximumTextureMemoryByteLength] The maximum amount of memory to use for textures.
|
|
33
32
|
*
|
|
34
33
|
* @private
|
|
35
34
|
*/
|
|
36
35
|
function VoxelTraversal(
|
|
37
36
|
primitive,
|
|
38
37
|
context,
|
|
39
|
-
dimensions,
|
|
40
|
-
types,
|
|
41
|
-
componentTypes,
|
|
42
38
|
keyframeCount,
|
|
43
39
|
maximumTextureMemoryByteLength,
|
|
44
40
|
) {
|
|
41
|
+
const { provider, dimensions, paddingBefore, paddingAfter } = primitive;
|
|
42
|
+
const { types, componentTypes, metadataOrder } = provider;
|
|
43
|
+
|
|
44
|
+
const inputDimensions = Cartesian3.add(
|
|
45
|
+
dimensions,
|
|
46
|
+
paddingBefore,
|
|
47
|
+
new Cartesian3(),
|
|
48
|
+
);
|
|
49
|
+
Cartesian3.add(inputDimensions, paddingAfter, inputDimensions);
|
|
50
|
+
|
|
51
|
+
if (metadataOrder === VoxelMetadataOrder.Y_UP) {
|
|
52
|
+
const inputDimensionsY = inputDimensions.y;
|
|
53
|
+
inputDimensions.y = inputDimensions.z;
|
|
54
|
+
inputDimensions.z = inputDimensionsY;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (
|
|
58
|
+
!defined(maximumTextureMemoryByteLength) &&
|
|
59
|
+
defined(provider.maximumTileCount)
|
|
60
|
+
) {
|
|
61
|
+
maximumTextureMemoryByteLength = getApproximateTextureMemoryByteLength(
|
|
62
|
+
provider.maximumTileCount,
|
|
63
|
+
inputDimensions,
|
|
64
|
+
types,
|
|
65
|
+
componentTypes,
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
45
69
|
/**
|
|
46
|
-
* TODO: maybe this shouldn't be stored or passed into update function?
|
|
47
70
|
* @type {VoxelPrimitive}
|
|
48
71
|
* @private
|
|
49
72
|
*/
|
|
50
73
|
this._primitive = primitive;
|
|
51
74
|
|
|
75
|
+
/**
|
|
76
|
+
* @type {number}
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
this.textureMemoryByteLength = 0;
|
|
80
|
+
|
|
52
81
|
/**
|
|
53
82
|
* @type {Megatexture[]}
|
|
54
83
|
* @readonly
|
|
@@ -63,11 +92,14 @@ function VoxelTraversal(
|
|
|
63
92
|
|
|
64
93
|
this.megatextures[i] = new Megatexture(
|
|
65
94
|
context,
|
|
66
|
-
|
|
95
|
+
inputDimensions,
|
|
67
96
|
componentCount,
|
|
68
97
|
componentType,
|
|
69
98
|
maximumTextureMemoryByteLength,
|
|
70
99
|
);
|
|
100
|
+
|
|
101
|
+
this.textureMemoryByteLength +=
|
|
102
|
+
this.megatextures[i].textureMemoryByteLength;
|
|
71
103
|
}
|
|
72
104
|
|
|
73
105
|
const maximumTileCount = this.megatextures[0].maximumTileCount;
|
|
@@ -84,6 +116,12 @@ function VoxelTraversal(
|
|
|
84
116
|
*/
|
|
85
117
|
this._debugPrint = false;
|
|
86
118
|
|
|
119
|
+
/**
|
|
120
|
+
* @type {boolean}
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
this._calculateStatistics = this._primitive._calculateStatistics ?? false;
|
|
124
|
+
|
|
87
125
|
/**
|
|
88
126
|
* @type {number}
|
|
89
127
|
* @private
|
|
@@ -113,6 +151,12 @@ function VoxelTraversal(
|
|
|
113
151
|
*/
|
|
114
152
|
this._highPriorityKeyframeNodes = new Array(maximumTileCount);
|
|
115
153
|
|
|
154
|
+
/**
|
|
155
|
+
* @type {number}
|
|
156
|
+
* @private
|
|
157
|
+
*/
|
|
158
|
+
this._highPriorityKeyframeNodeCount = 0;
|
|
159
|
+
|
|
116
160
|
/**
|
|
117
161
|
* @type {KeyframeNode[]}
|
|
118
162
|
* @private
|
|
@@ -318,15 +362,18 @@ VoxelTraversal.prototype.update = function (
|
|
|
318
362
|
|
|
319
363
|
this._frameNumber = frameState.frameNumber;
|
|
320
364
|
const timestamp0 = getTimestamp();
|
|
321
|
-
|
|
365
|
+
selectKeyframeNodes(this, frameState);
|
|
366
|
+
updateKeyframeNodes(this, frameState);
|
|
322
367
|
const timestamp1 = getTimestamp();
|
|
323
368
|
generateOctree(this, sampleCount, levelBlendFactor);
|
|
324
369
|
const timestamp2 = getTimestamp();
|
|
370
|
+
|
|
325
371
|
const checkEventListeners =
|
|
326
372
|
primitive.loadProgress.numberOfListeners > 0 ||
|
|
327
373
|
primitive.allTilesLoaded.numberOfListeners > 0 ||
|
|
328
374
|
primitive.initialTilesLoaded.numberOfListeners > 0;
|
|
329
|
-
|
|
375
|
+
|
|
376
|
+
if (this._debugPrint || this._calculateStatistics || checkEventListeners) {
|
|
330
377
|
const loadAndUnloadTimeMs = timestamp1 - timestamp0;
|
|
331
378
|
const generateOctreeTimeMs = timestamp2 - timestamp1;
|
|
332
379
|
const totalTimeMs = timestamp2 - timestamp0;
|
|
@@ -384,6 +431,7 @@ VoxelTraversal.prototype.destroy = function () {
|
|
|
384
431
|
for (let i = 0; i < megatextureLength; i++) {
|
|
385
432
|
megatextures[i] = megatextures[i] && megatextures[i].destroy();
|
|
386
433
|
}
|
|
434
|
+
this.textureMemoryByteLength = 0;
|
|
387
435
|
|
|
388
436
|
this.internalNodeTexture =
|
|
389
437
|
this.internalNodeTexture && this.internalNodeTexture.destroy();
|
|
@@ -427,7 +475,8 @@ function requestData(that, keyframeNode) {
|
|
|
427
475
|
return;
|
|
428
476
|
}
|
|
429
477
|
|
|
430
|
-
const
|
|
478
|
+
const primitive = that._primitive;
|
|
479
|
+
const provider = primitive.provider;
|
|
431
480
|
const { keyframe, spatialNode } = keyframeNode;
|
|
432
481
|
if (
|
|
433
482
|
defined(provider.availableLevels) &&
|
|
@@ -436,66 +485,34 @@ function requestData(that, keyframeNode) {
|
|
|
436
485
|
return;
|
|
437
486
|
}
|
|
438
487
|
|
|
439
|
-
const requestOptions = {
|
|
440
|
-
tileLevel: spatialNode.level,
|
|
441
|
-
tileX: spatialNode.x,
|
|
442
|
-
tileY: spatialNode.y,
|
|
443
|
-
tileZ: spatialNode.z,
|
|
444
|
-
keyframe: keyframe,
|
|
445
|
-
};
|
|
446
|
-
|
|
447
488
|
function postRequestSuccess(result) {
|
|
448
489
|
that._simultaneousRequestCount--;
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
} else if (result === KeyframeNode.LoadState.FAILED) {
|
|
454
|
-
keyframeNode.state = KeyframeNode.LoadState.FAILED;
|
|
455
|
-
} else if (!Array.isArray(result) || result.length !== length) {
|
|
456
|
-
// TODO should this throw runtime error?
|
|
457
|
-
keyframeNode.state = KeyframeNode.LoadState.FAILED;
|
|
458
|
-
} else {
|
|
459
|
-
const megatextures = that.megatextures;
|
|
460
|
-
for (let i = 0; i < length; i++) {
|
|
461
|
-
const { voxelCountPerTile, channelCount } = megatextures[i];
|
|
462
|
-
const { x, y, z } = voxelCountPerTile;
|
|
463
|
-
const tileVoxelCount = x * y * z;
|
|
464
|
-
|
|
465
|
-
const data = result[i];
|
|
466
|
-
const expectedLength = tileVoxelCount * channelCount;
|
|
467
|
-
if (data.length === expectedLength) {
|
|
468
|
-
keyframeNode.metadata[i] = data;
|
|
469
|
-
// State is received only when all metadata requests have been received
|
|
470
|
-
keyframeNode.state = KeyframeNode.LoadState.RECEIVED;
|
|
471
|
-
that._primitive.tileLoad.raiseEvent();
|
|
472
|
-
} else {
|
|
473
|
-
keyframeNode.state = KeyframeNode.LoadState.FAILED;
|
|
474
|
-
break;
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
if (keyframeNode.state === KeyframeNode.LoadState.FAILED) {
|
|
479
|
-
that._primitive.tileFailed.raiseEvent();
|
|
480
|
-
}
|
|
490
|
+
keyframeNode.content = result;
|
|
491
|
+
keyframeNode.state = defined(result)
|
|
492
|
+
? KeyframeNode.LoadState.PROCESSING
|
|
493
|
+
: KeyframeNode.LoadState.UNAVAILABLE;
|
|
481
494
|
}
|
|
482
495
|
|
|
483
|
-
function postRequestFailure() {
|
|
496
|
+
function postRequestFailure(error) {
|
|
484
497
|
that._simultaneousRequestCount--;
|
|
485
498
|
keyframeNode.state = KeyframeNode.LoadState.FAILED;
|
|
486
499
|
that._primitive.tileFailed.raiseEvent();
|
|
487
500
|
}
|
|
488
501
|
|
|
489
|
-
const
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
|
|
502
|
+
const requestParameters = {
|
|
503
|
+
tileLevel: spatialNode.level,
|
|
504
|
+
tileX: spatialNode.x,
|
|
505
|
+
tileY: spatialNode.y,
|
|
506
|
+
tileZ: spatialNode.z,
|
|
507
|
+
keyframe: keyframe,
|
|
508
|
+
};
|
|
509
|
+
const promise = provider.requestData(requestParameters);
|
|
510
|
+
if (!defined(promise)) {
|
|
511
|
+
return;
|
|
498
512
|
}
|
|
513
|
+
that._simultaneousRequestCount++;
|
|
514
|
+
keyframeNode.state = KeyframeNode.LoadState.RECEIVING;
|
|
515
|
+
promise.then(postRequestSuccess).catch(postRequestFailure);
|
|
499
516
|
}
|
|
500
517
|
|
|
501
518
|
/**
|
|
@@ -511,105 +528,23 @@ function mapInfiniteRangeToZeroOne(x) {
|
|
|
511
528
|
}
|
|
512
529
|
|
|
513
530
|
/**
|
|
514
|
-
* @function
|
|
515
|
-
*
|
|
516
531
|
* @param {VoxelTraversal} that
|
|
517
532
|
* @param {FrameState} frameState
|
|
518
533
|
*
|
|
519
534
|
* @private
|
|
520
535
|
*/
|
|
521
|
-
function
|
|
536
|
+
function selectKeyframeNodes(that, frameState) {
|
|
522
537
|
const frameNumber = that._frameNumber;
|
|
523
|
-
const primitive = that._primitive;
|
|
524
|
-
const shape = primitive._shape;
|
|
525
|
-
const targetScreenSpaceError = primitive.screenSpaceError;
|
|
526
538
|
const priorityQueue = that._priorityQueue;
|
|
527
|
-
const keyframeCount = that._keyframeCount;
|
|
528
|
-
|
|
529
|
-
const previousKeyframe = CesiumMath.clamp(
|
|
530
|
-
Math.floor(that._keyframeLocation),
|
|
531
|
-
0,
|
|
532
|
-
keyframeCount - 2,
|
|
533
|
-
);
|
|
534
|
-
const nextKeyframe = previousKeyframe + 1;
|
|
535
|
-
|
|
536
|
-
const { camera, context, pixelRatio } = frameState;
|
|
537
|
-
const { positionWC, frustum } = camera;
|
|
538
|
-
const screenHeight = context.drawingBufferHeight / pixelRatio;
|
|
539
|
-
const screenSpaceErrorMultiplier = screenHeight / frustum.sseDenominator;
|
|
540
|
-
|
|
541
|
-
/**
|
|
542
|
-
* @ignore
|
|
543
|
-
* @param {SpatialNode} spatialNode
|
|
544
|
-
* @param {number} visibilityPlaneMask
|
|
545
|
-
*/
|
|
546
|
-
function addToQueueRecursive(spatialNode, visibilityPlaneMask) {
|
|
547
|
-
spatialNode.computeScreenSpaceError(positionWC, screenSpaceErrorMultiplier);
|
|
548
|
-
|
|
549
|
-
visibilityPlaneMask = spatialNode.visibility(
|
|
550
|
-
frameState,
|
|
551
|
-
visibilityPlaneMask,
|
|
552
|
-
);
|
|
553
|
-
if (visibilityPlaneMask === CullingVolume.MASK_OUTSIDE) {
|
|
554
|
-
return;
|
|
555
|
-
}
|
|
556
|
-
spatialNode.visitedFrameNumber = frameNumber;
|
|
557
|
-
|
|
558
|
-
// Create keyframe nodes at the playhead.
|
|
559
|
-
// If they already exist, nothing will be created.
|
|
560
|
-
if (keyframeCount === 1) {
|
|
561
|
-
spatialNode.createKeyframeNode(0);
|
|
562
|
-
} else if (spatialNode.keyframeNodes.length !== keyframeCount) {
|
|
563
|
-
for (let k = 0; k < keyframeCount; k++) {
|
|
564
|
-
spatialNode.createKeyframeNode(k);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
const { screenSpaceError, keyframeNodes } = spatialNode;
|
|
568
|
-
const ssePriority = mapInfiniteRangeToZeroOne(screenSpaceError);
|
|
569
|
-
|
|
570
|
-
let hasLoadedKeyframe = false;
|
|
571
|
-
for (let i = 0; i < keyframeNodes.length; i++) {
|
|
572
|
-
const keyframeNode = keyframeNodes[i];
|
|
573
|
-
|
|
574
|
-
keyframeNode.priority =
|
|
575
|
-
10.0 * ssePriority +
|
|
576
|
-
keyframePriority(
|
|
577
|
-
previousKeyframe,
|
|
578
|
-
keyframeNode.keyframe,
|
|
579
|
-
nextKeyframe,
|
|
580
|
-
that,
|
|
581
|
-
);
|
|
582
|
-
|
|
583
|
-
if (
|
|
584
|
-
keyframeNode.state !== KeyframeNode.LoadState.UNAVAILABLE &&
|
|
585
|
-
keyframeNode.state !== KeyframeNode.LoadState.FAILED &&
|
|
586
|
-
keyframeNode.priority !== -Number.MAX_VALUE
|
|
587
|
-
) {
|
|
588
|
-
priorityQueue.insert(keyframeNode);
|
|
589
|
-
}
|
|
590
|
-
if (keyframeNode.state === KeyframeNode.LoadState.LOADED) {
|
|
591
|
-
hasLoadedKeyframe = true;
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
if (screenSpaceError < targetScreenSpaceError || !hasLoadedKeyframe) {
|
|
596
|
-
// Free up memory
|
|
597
|
-
spatialNode.children = undefined;
|
|
598
|
-
return;
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
if (!defined(spatialNode.children)) {
|
|
602
|
-
spatialNode.constructChildNodes(shape);
|
|
603
|
-
}
|
|
604
|
-
for (let childIndex = 0; childIndex < 8; childIndex++) {
|
|
605
|
-
const child = spatialNode.children[childIndex];
|
|
606
|
-
addToQueueRecursive(child, visibilityPlaneMask);
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
539
|
|
|
610
540
|
// Add all the nodes to the queue, to sort them by priority.
|
|
611
541
|
priorityQueue.reset();
|
|
612
|
-
addToQueueRecursive(
|
|
542
|
+
addToQueueRecursive(
|
|
543
|
+
that.rootNode,
|
|
544
|
+
CullingVolume.MASK_INDETERMINATE,
|
|
545
|
+
that,
|
|
546
|
+
frameState,
|
|
547
|
+
);
|
|
613
548
|
|
|
614
549
|
// Move the nodes from the queue to array of high priority nodes.
|
|
615
550
|
const highPriorityKeyframeNodes = that._highPriorityKeyframeNodes;
|
|
@@ -622,23 +557,29 @@ function loadAndUnload(that, frameState) {
|
|
|
622
557
|
highPriorityKeyframeNode;
|
|
623
558
|
highPriorityKeyframeNodeCount++;
|
|
624
559
|
}
|
|
560
|
+
that._highPriorityKeyframeNodeCount = highPriorityKeyframeNodeCount;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* @param {VoxelTraversal} that
|
|
565
|
+
* @param {FrameState} frameState
|
|
566
|
+
*
|
|
567
|
+
* @private
|
|
568
|
+
*/
|
|
569
|
+
function updateKeyframeNodes(that, frameState) {
|
|
570
|
+
const megatexture = that.megatextures[0];
|
|
571
|
+
const keyframeNodesInMegatextureCount = megatexture.occupiedCount;
|
|
625
572
|
|
|
626
573
|
// Sort the list of keyframe nodes in the megatexture by priority, so
|
|
627
574
|
// we can remove the lowest priority nodes if we need space.
|
|
628
575
|
const keyframeNodesInMegatexture = that._keyframeNodesInMegatexture;
|
|
629
|
-
// TODO: some of the megatexture state should be stored once, not duplicate for each megatexture
|
|
630
|
-
const megatexture = that.megatextures[0];
|
|
631
|
-
const keyframeNodesInMegatextureCount = megatexture.occupiedCount;
|
|
632
576
|
keyframeNodesInMegatexture.length = keyframeNodesInMegatextureCount;
|
|
633
|
-
keyframeNodesInMegatexture.sort(
|
|
634
|
-
if (a.highPriorityFrameNumber === b.highPriorityFrameNumber) {
|
|
635
|
-
return b.priority - a.priority;
|
|
636
|
-
}
|
|
637
|
-
return b.highPriorityFrameNumber - a.highPriorityFrameNumber;
|
|
638
|
-
});
|
|
577
|
+
keyframeNodesInMegatexture.sort(keyframeNodeSort);
|
|
639
578
|
|
|
640
579
|
// Add the high priority nodes to the megatexture,
|
|
641
580
|
// removing existing lower-priority nodes if necessary.
|
|
581
|
+
const highPriorityKeyframeNodes = that._highPriorityKeyframeNodes;
|
|
582
|
+
const highPriorityKeyframeNodeCount = that._highPriorityKeyframeNodeCount;
|
|
642
583
|
let destroyedCount = 0;
|
|
643
584
|
let addedCount = 0;
|
|
644
585
|
|
|
@@ -647,7 +588,7 @@ function loadAndUnload(that, frameState) {
|
|
|
647
588
|
highPriorityKeyframeNodeIndex < highPriorityKeyframeNodeCount;
|
|
648
589
|
highPriorityKeyframeNodeIndex++
|
|
649
590
|
) {
|
|
650
|
-
highPriorityKeyframeNode =
|
|
591
|
+
const highPriorityKeyframeNode =
|
|
651
592
|
highPriorityKeyframeNodes[highPriorityKeyframeNodeIndex];
|
|
652
593
|
|
|
653
594
|
if (
|
|
@@ -661,7 +602,18 @@ function loadAndUnload(that, frameState) {
|
|
|
661
602
|
if (highPriorityKeyframeNode.state === KeyframeNode.LoadState.UNLOADED) {
|
|
662
603
|
requestData(that, highPriorityKeyframeNode);
|
|
663
604
|
}
|
|
664
|
-
if (highPriorityKeyframeNode.state === KeyframeNode.LoadState.
|
|
605
|
+
if (highPriorityKeyframeNode.state === KeyframeNode.LoadState.PROCESSING) {
|
|
606
|
+
const { content } = highPriorityKeyframeNode;
|
|
607
|
+
content.update(that._primitive, frameState);
|
|
608
|
+
if (!content.ready) {
|
|
609
|
+
continue;
|
|
610
|
+
}
|
|
611
|
+
if (!validateMetadata(content.metadata, that)) {
|
|
612
|
+
highPriorityKeyframeNode.content = undefined;
|
|
613
|
+
highPriorityKeyframeNode.state = KeyframeNode.LoadState.FAILED;
|
|
614
|
+
that._primitive.tileFailed.raiseEvent();
|
|
615
|
+
continue;
|
|
616
|
+
}
|
|
665
617
|
let addNodeIndex = 0;
|
|
666
618
|
if (megatexture.isFull()) {
|
|
667
619
|
// If the megatexture is full, try removing a discardable node with the lowest priority.
|
|
@@ -682,11 +634,140 @@ function loadAndUnload(that, frameState) {
|
|
|
682
634
|
highPriorityKeyframeNode,
|
|
683
635
|
that.megatextures,
|
|
684
636
|
);
|
|
637
|
+
highPriorityKeyframeNode.state = KeyframeNode.LoadState.LOADED;
|
|
685
638
|
keyframeNodesInMegatexture[addNodeIndex] = highPriorityKeyframeNode;
|
|
639
|
+
that._primitive.tileLoad.raiseEvent();
|
|
686
640
|
}
|
|
687
641
|
}
|
|
688
642
|
}
|
|
689
643
|
|
|
644
|
+
function keyframeNodeSort(a, b) {
|
|
645
|
+
if (a.highPriorityFrameNumber === b.highPriorityFrameNumber) {
|
|
646
|
+
return b.priority - a.priority;
|
|
647
|
+
}
|
|
648
|
+
return b.highPriorityFrameNumber - a.highPriorityFrameNumber;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
/**
|
|
652
|
+
* Check if an array of metadata is of the expected type and size
|
|
653
|
+
*
|
|
654
|
+
* @param {TypedArray[]} metadata The metadata to validate
|
|
655
|
+
* @param {VoxelTraversal} traversal The traversal to validate against
|
|
656
|
+
* @returns {boolean} <code>true</code> if the metadata is valid, <code>false</code> otherwise
|
|
657
|
+
*
|
|
658
|
+
* @private
|
|
659
|
+
*/
|
|
660
|
+
function validateMetadata(metadata, traversal) {
|
|
661
|
+
const length = traversal._primitive.provider.types.length;
|
|
662
|
+
if (!Array.isArray(metadata) || metadata.length !== length) {
|
|
663
|
+
return false;
|
|
664
|
+
}
|
|
665
|
+
const { megatextures } = traversal;
|
|
666
|
+
for (let i = 0; i < length; i++) {
|
|
667
|
+
const { voxelCountPerTile, channelCount } = megatextures[i];
|
|
668
|
+
const { x, y, z } = voxelCountPerTile;
|
|
669
|
+
const tileVoxelCount = x * y * z;
|
|
670
|
+
|
|
671
|
+
const data = metadata[i];
|
|
672
|
+
const expectedLength = tileVoxelCount * channelCount;
|
|
673
|
+
if (data.length !== expectedLength) {
|
|
674
|
+
return false;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return true;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
/**
|
|
681
|
+
* @param {SpatialNode} spatialNode
|
|
682
|
+
* @param {number} visibilityPlaneMask
|
|
683
|
+
* @param {VoxelTraversal} that
|
|
684
|
+
* @param {FrameState} frameState
|
|
685
|
+
*
|
|
686
|
+
* @private
|
|
687
|
+
*/
|
|
688
|
+
function addToQueueRecursive(
|
|
689
|
+
spatialNode,
|
|
690
|
+
visibilityPlaneMask,
|
|
691
|
+
that,
|
|
692
|
+
frameState,
|
|
693
|
+
) {
|
|
694
|
+
const { camera, context, pixelRatio, frameNumber } = frameState;
|
|
695
|
+
const { positionWC, frustum } = camera;
|
|
696
|
+
const screenHeight = context.drawingBufferHeight / pixelRatio;
|
|
697
|
+
const screenSpaceErrorMultiplier = screenHeight / frustum.sseDenominator;
|
|
698
|
+
|
|
699
|
+
spatialNode.computeScreenSpaceError(positionWC, screenSpaceErrorMultiplier);
|
|
700
|
+
|
|
701
|
+
visibilityPlaneMask = spatialNode.visibility(frameState, visibilityPlaneMask);
|
|
702
|
+
if (visibilityPlaneMask === CullingVolume.MASK_OUTSIDE) {
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
spatialNode.visitedFrameNumber = frameNumber;
|
|
706
|
+
|
|
707
|
+
const primitive = that._primitive;
|
|
708
|
+
const shape = primitive._shape;
|
|
709
|
+
const targetScreenSpaceError = primitive.screenSpaceError;
|
|
710
|
+
const priorityQueue = that._priorityQueue;
|
|
711
|
+
const keyframeCount = that._keyframeCount;
|
|
712
|
+
const previousKeyframe = CesiumMath.clamp(
|
|
713
|
+
Math.floor(that._keyframeLocation),
|
|
714
|
+
0,
|
|
715
|
+
keyframeCount - 2,
|
|
716
|
+
);
|
|
717
|
+
const nextKeyframe = previousKeyframe + 1;
|
|
718
|
+
|
|
719
|
+
// Create keyframe nodes at the playhead.
|
|
720
|
+
// If they already exist, nothing will be created.
|
|
721
|
+
if (keyframeCount === 1) {
|
|
722
|
+
spatialNode.createKeyframeNode(0);
|
|
723
|
+
} else if (spatialNode.keyframeNodes.length !== keyframeCount) {
|
|
724
|
+
for (let k = 0; k < keyframeCount; k++) {
|
|
725
|
+
spatialNode.createKeyframeNode(k);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
const { screenSpaceError, keyframeNodes } = spatialNode;
|
|
729
|
+
const ssePriority = mapInfiniteRangeToZeroOne(screenSpaceError);
|
|
730
|
+
|
|
731
|
+
let hasLoadedKeyframe = false;
|
|
732
|
+
for (let i = 0; i < keyframeNodes.length; i++) {
|
|
733
|
+
const keyframeNode = keyframeNodes[i];
|
|
734
|
+
|
|
735
|
+
keyframeNode.priority =
|
|
736
|
+
10.0 * ssePriority +
|
|
737
|
+
keyframePriority(
|
|
738
|
+
previousKeyframe,
|
|
739
|
+
keyframeNode.keyframe,
|
|
740
|
+
nextKeyframe,
|
|
741
|
+
that,
|
|
742
|
+
);
|
|
743
|
+
|
|
744
|
+
if (
|
|
745
|
+
keyframeNode.state !== KeyframeNode.LoadState.UNAVAILABLE &&
|
|
746
|
+
keyframeNode.state !== KeyframeNode.LoadState.FAILED &&
|
|
747
|
+
keyframeNode.priority !== -Number.MAX_VALUE
|
|
748
|
+
) {
|
|
749
|
+
priorityQueue.insert(keyframeNode);
|
|
750
|
+
}
|
|
751
|
+
if (keyframeNode.state === KeyframeNode.LoadState.LOADED) {
|
|
752
|
+
hasLoadedKeyframe = true;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
if (screenSpaceError < targetScreenSpaceError || !hasLoadedKeyframe) {
|
|
757
|
+
// Free up memory
|
|
758
|
+
spatialNode.children = undefined;
|
|
759
|
+
return;
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
if (!defined(spatialNode.children)) {
|
|
763
|
+
spatialNode.constructChildNodes(shape);
|
|
764
|
+
}
|
|
765
|
+
for (let childIndex = 0; childIndex < 8; childIndex++) {
|
|
766
|
+
const child = spatialNode.children[childIndex];
|
|
767
|
+
addToQueueRecursive(child, visibilityPlaneMask, that, frameState);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
|
|
690
771
|
/**
|
|
691
772
|
* Compute a priority for a keyframe node.
|
|
692
773
|
*
|
|
@@ -748,16 +829,12 @@ function postPassesUpdate(
|
|
|
748
829
|
loadStateIndex < loadStateCount;
|
|
749
830
|
loadStateIndex++
|
|
750
831
|
) {
|
|
751
|
-
const keyframeArray = new Array(keyframeCount);
|
|
832
|
+
const keyframeArray = new Array(keyframeCount).fill(0);
|
|
752
833
|
loadStatesByKeyframe[loadStateIndex] = keyframeArray;
|
|
753
|
-
for (let i = 0; i < keyframeCount; i++) {
|
|
754
|
-
keyframeArray[i] = 0;
|
|
755
|
-
}
|
|
756
834
|
loadStateByCount[loadStateIndex] = 0;
|
|
757
835
|
}
|
|
758
836
|
|
|
759
837
|
/**
|
|
760
|
-
* @ignore
|
|
761
838
|
* @param {SpatialNode} node
|
|
762
839
|
*/
|
|
763
840
|
function traverseRecursive(node) {
|
|
@@ -784,16 +861,20 @@ function postPassesUpdate(
|
|
|
784
861
|
}
|
|
785
862
|
traverseRecursive(rootNode);
|
|
786
863
|
|
|
864
|
+
that._primitive.statistics.numberOfTilesWithContentReady =
|
|
865
|
+
loadStateByCount[KeyframeNode.LoadState.LOADED];
|
|
866
|
+
that._primitive.statistics.visited = nodeCountTotal;
|
|
867
|
+
|
|
787
868
|
const numberOfPendingRequests =
|
|
788
869
|
loadStateByCount[KeyframeNode.LoadState.RECEIVING];
|
|
789
870
|
const numberOfTilesProcessing =
|
|
790
|
-
loadStateByCount[KeyframeNode.LoadState.
|
|
871
|
+
loadStateByCount[KeyframeNode.LoadState.PROCESSING];
|
|
791
872
|
|
|
792
873
|
const progressChanged =
|
|
793
874
|
numberOfPendingRequests !==
|
|
794
|
-
that._primitive.
|
|
875
|
+
that._primitive.statistics.numberOfPendingRequests ||
|
|
795
876
|
numberOfTilesProcessing !==
|
|
796
|
-
that._primitive.
|
|
877
|
+
that._primitive.statistics.numberOfTilesProcessing;
|
|
797
878
|
|
|
798
879
|
if (progressChanged) {
|
|
799
880
|
frameState.afterRender.push(function () {
|
|
@@ -806,8 +887,8 @@ function postPassesUpdate(
|
|
|
806
887
|
});
|
|
807
888
|
}
|
|
808
889
|
|
|
809
|
-
that._primitive.
|
|
810
|
-
that._primitive.
|
|
890
|
+
that._primitive.statistics.numberOfPendingRequests = numberOfPendingRequests;
|
|
891
|
+
that._primitive.statistics.numberOfTilesProcessing = numberOfTilesProcessing;
|
|
811
892
|
|
|
812
893
|
const tilesLoaded =
|
|
813
894
|
numberOfPendingRequests === 0 && numberOfTilesProcessing === 0;
|
|
@@ -839,7 +920,7 @@ function postPassesUpdate(
|
|
|
839
920
|
const loadStateStatistics =
|
|
840
921
|
`UNLOADED: ${loadStateByCount[KeyframeNode.LoadState.UNLOADED]} | ` +
|
|
841
922
|
`RECEIVING: ${loadStateByCount[KeyframeNode.LoadState.RECEIVING]} | ` +
|
|
842
|
-
`
|
|
923
|
+
`PROCESSING: ${loadStateByCount[KeyframeNode.LoadState.PROCESSING]} | ` +
|
|
843
924
|
`LOADED: ${loadStateByCount[KeyframeNode.LoadState.LOADED]} | ` +
|
|
844
925
|
`FAILED: ${loadStateByCount[KeyframeNode.LoadState.FAILED]} | ` +
|
|
845
926
|
`UNAVAILABLE: ${loadStateByCount[KeyframeNode.LoadState.UNAVAILABLE]} | ` +
|
|
@@ -900,7 +981,6 @@ const GpuOctreeFlag = {
|
|
|
900
981
|
* @function
|
|
901
982
|
*
|
|
902
983
|
* @param {VoxelTraversal} that
|
|
903
|
-
* @param {FrameState} frameState
|
|
904
984
|
* @param {number} sampleCount
|
|
905
985
|
* @param {number} levelBlendFactor
|
|
906
986
|
* @private
|
|
@@ -917,7 +997,6 @@ function generateOctree(that, sampleCount, levelBlendFactor) {
|
|
|
917
997
|
const leafNodeOctreeData = [];
|
|
918
998
|
|
|
919
999
|
/**
|
|
920
|
-
* @ignore
|
|
921
1000
|
* @param {SpatialNode} node
|
|
922
1001
|
* @param {number} childOctreeIndex
|
|
923
1002
|
* @param {number} childEntryIndex
|
|
@@ -1154,8 +1233,9 @@ function copyToLeafNodeTexture(data, texelsPerTile, tilesPerRow, texture) {
|
|
|
1154
1233
|
* @param {Cartesian3} dimensions
|
|
1155
1234
|
* @param {MetadataType[]} types
|
|
1156
1235
|
* @param {MetadataComponentType[]} componentTypes
|
|
1236
|
+
* @private
|
|
1157
1237
|
*/
|
|
1158
|
-
|
|
1238
|
+
function getApproximateTextureMemoryByteLength(
|
|
1159
1239
|
tileCount,
|
|
1160
1240
|
dimensions,
|
|
1161
1241
|
types,
|
|
@@ -1179,6 +1259,6 @@ VoxelTraversal.getApproximateTextureMemoryByteLength = function (
|
|
|
1179
1259
|
}
|
|
1180
1260
|
|
|
1181
1261
|
return textureMemoryByteLength;
|
|
1182
|
-
}
|
|
1262
|
+
}
|
|
1183
1263
|
|
|
1184
1264
|
export default VoxelTraversal;
|