@cesium/engine 2.0.0 → 2.2.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/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
- package/Build/Workers/{AttributeCompression-b646d393.js → AttributeCompression-8a5a065e.js} +24 -24
- package/Build/Workers/{AxisAlignedBoundingBox-47525601.js → AxisAlignedBoundingBox-379015ef.js} +3 -3
- package/Build/Workers/{BoundingRectangle-93b263ac.js → BoundingRectangle-57f2b24f.js} +18 -18
- package/Build/Workers/{BoxGeometry-8c4b4125.js → BoxGeometry-ecabfc78.js} +9 -9
- package/Build/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
- package/Build/Workers/{Color-52c60ed7.js → Color-14d1a36d.js} +59 -59
- package/Build/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-33c4c1f8.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5039cd8e.js → CorridorGeometryLibrary-520c8619.js} +1 -1
- package/Build/Workers/{CylinderGeometry-3ac44974.js → CylinderGeometry-119068b8.js} +12 -12
- package/Build/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-135b0858.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a9c9b3be.js → EllipseGeometry-2dfc3523.js} +20 -20
- package/Build/Workers/{EllipseGeometryLibrary-855d4681.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-017a5929.js → EllipseOutlineGeometry-c5251669.js} +15 -15
- package/Build/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-dcff5cbd.js} +6 -6
- package/Build/Workers/{EllipsoidGeometry-826e7bce.js → EllipsoidGeometry-d10a5221.js} +14 -14
- package/Build/Workers/{EllipsoidOutlineGeometry-784dcdb5.js → EllipsoidOutlineGeometry-7039a0ae.js} +15 -15
- package/Build/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-b672d507.js} +9 -9
- package/Build/Workers/{EllipsoidTangentPlane-ed9443a1.js → EllipsoidTangentPlane-857186be.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-e8bbca36.js} +6 -6
- package/Build/Workers/{FrustumGeometry-9f1ee4d8.js → FrustumGeometry-400fa1b7.js} +109 -109
- package/Build/Workers/{GeometryAttribute-334718f8.js → GeometryAttribute-7a2de5c6.js} +20 -20
- package/Build/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
- package/Build/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-3fb607b7.js} +6 -6
- package/Build/Workers/{GeometryPipeline-8fb0db69.js → GeometryPipeline-916636fa.js} +22 -22
- package/Build/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-b8f3e09d.js} +13 -13
- package/Build/Workers/{IntersectionTests-27d49265.js → IntersectionTests-b4d02d4d.js} +37 -37
- package/Build/Workers/{Math-2dbd6b93.js → Math-dad82b4d.js} +137 -137
- package/Build/Workers/{Matrix2-13178034.js → Matrix2-1e403d0e.js} +256 -256
- package/Build/Workers/{Matrix3-315394f6.js → Matrix3-fa806b97.js} +150 -150
- package/Build/Workers/{OrientedBoundingBox-79ee7cbb.js → OrientedBoundingBox-96fe1752.js} +19 -17
- package/Build/Workers/{Plane-900aa728.js → Plane-c27e1ac6.js} +5 -5
- package/Build/Workers/{PolygonGeometryLibrary-6b5a29e9.js → PolygonGeometryLibrary-931f1ec6.js} +6 -6
- package/Build/Workers/{PolygonPipeline-21668b3f.js → PolygonPipeline-32fc92cc.js} +14 -14
- package/Build/Workers/{PolylinePipeline-5e2e1b21.js → PolylinePipeline-6d5c63e5.js} +16 -16
- package/Build/Workers/{PolylineVolumeGeometryLibrary-97f0b94e.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +7 -7
- package/Build/Workers/{PrimitivePipeline-5640850a.js → PrimitivePipeline-879f996a.js} +6 -6
- package/Build/Workers/{RectangleGeometryLibrary-d5457f7b.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
- package/Build/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
- package/Build/Workers/{TerrainEncoding-bfdf2021.js → TerrainEncoding-82882059.js} +30 -30
- package/Build/Workers/{Transforms-a05e5e6e.js → Transforms-9052372a.js} +531 -530
- package/Build/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
- package/Build/Workers/{WallGeometryLibrary-6db0ebb6.js → WallGeometryLibrary-db7a64fb.js} +1 -1
- package/Build/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-76a3fcc0.js} +6 -6
- package/Build/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-fac118a8.js} +5 -5
- package/Build/Workers/cesiumWorkerBootstrapper.js +5 -5
- package/Build/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +9 -9
- package/Build/Workers/createCircleGeometry.js +13 -13
- package/Build/Workers/createCircleOutlineGeometry.js +13 -13
- package/Build/Workers/createCoplanarPolygonGeometry.js +11 -11
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
- package/Build/Workers/createCorridorGeometry.js +14 -14
- package/Build/Workers/createCorridorOutlineGeometry.js +12 -12
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +13 -13
- package/Build/Workers/createEllipseGeometry.js +1 -1
- package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipsoidGeometry.js +1 -1
- package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Build/Workers/createFrustumGeometry.js +1 -1
- package/Build/Workers/createFrustumOutlineGeometry.js +8 -8
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +33 -33
- package/Build/Workers/createPlaneGeometry.js +8 -8
- package/Build/Workers/createPlaneOutlineGeometry.js +6 -6
- package/Build/Workers/createPolygonGeometry.js +25 -25
- package/Build/Workers/createPolygonOutlineGeometry.js +17 -17
- package/Build/Workers/createPolylineGeometry.js +11 -11
- package/Build/Workers/createPolylineVolumeGeometry.js +9 -9
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
- package/Build/Workers/createRectangleGeometry.js +16 -16
- package/Build/Workers/createRectangleOutlineGeometry.js +12 -12
- package/Build/Workers/createSimplePolylineGeometry.js +10 -10
- package/Build/Workers/createSphereGeometry.js +11 -11
- package/Build/Workers/createSphereOutlineGeometry.js +12 -12
- package/Build/Workers/createTaskProcessorWorker.js +2 -2
- package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +8 -8
- package/Build/Workers/createVectorTilePoints.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVectorTilePolylines.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +23 -21
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
- package/Build/Workers/createWallGeometry.js +14 -14
- package/Build/Workers/createWallOutlineGeometry.js +14 -14
- package/Build/Workers/decodeDraco.js +1 -1
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
- package/Build/Workers/decodeI3S.js +1 -1
- package/Build/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
- package/Build/Workers/package.js +1 -1
- package/Build/Workers/transcodeKTX2.js +26 -26
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
- package/Source/Core/ApproximateTerrainHeights.js +3 -3
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +308 -208
- package/Source/Core/ArcType.js +4 -4
- package/Source/Core/ArticulationStageType.js +1 -1
- package/Source/Core/AssociativeArray.js +7 -7
- package/Source/Core/AttributeCompression.js +12 -12
- package/Source/Core/AxisAlignedBoundingBox.js +2 -2
- package/Source/Core/BingMapsGeocoderService.js +6 -6
- package/Source/Core/BoundingRectangle.js +17 -17
- package/Source/Core/BoundingSphere.js +25 -25
- package/Source/Core/BoxGeometry.js +8 -8
- package/Source/Core/BoxOutlineGeometry.js +8 -8
- package/Source/Core/Cartesian2.js +38 -38
- package/Source/Core/Cartesian3.js +50 -50
- package/Source/Core/Cartesian4.js +44 -44
- package/Source/Core/Cartographic.js +19 -19
- package/Source/Core/CartographicGeocoderService.js +1 -1
- package/Source/Core/CatmullRomSpline.js +10 -10
- package/Source/Core/CesiumTerrainProvider.js +598 -461
- package/Source/Core/Check.js +17 -17
- package/Source/Core/CircleGeometry.js +12 -12
- package/Source/Core/CircleOutlineGeometry.js +12 -12
- package/Source/Core/Clock.js +7 -7
- package/Source/Core/ClockRange.js +4 -4
- package/Source/Core/ClockStep.js +4 -4
- package/Source/Core/Color.js +58 -58
- package/Source/Core/ColorGeometryInstanceAttribute.js +7 -7
- package/Source/Core/ComponentDatatype.js +15 -15
- package/Source/Core/CompressedTextureBuffer.js +7 -7
- package/Source/Core/ConstantSpline.js +9 -9
- package/Source/Core/CoplanarPolygonGeometry.js +10 -10
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +8 -8
- package/Source/Core/CornerType.js +4 -4
- package/Source/Core/CorridorGeometry.js +13 -13
- package/Source/Core/CorridorOutlineGeometry.js +11 -11
- package/Source/Core/Credit.js +7 -7
- package/Source/Core/CubicRealPolynomial.js +10 -10
- package/Source/Core/CullingVolume.js +7 -7
- package/Source/Core/CustomHeightmapTerrainProvider.js +40 -28
- package/Source/Core/CylinderGeometry.js +11 -11
- package/Source/Core/CylinderOutlineGeometry.js +12 -12
- package/Source/Core/DefaultProxy.js +3 -3
- package/Source/Core/DeveloperError.js +4 -4
- package/Source/Core/DistanceDisplayCondition.js +12 -12
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +5 -5
- package/Source/Core/DoubleEndedPriorityQueue.js +5 -5
- package/Source/Core/EarthOrientationParameters.js +6 -6
- package/Source/Core/EarthOrientationParametersSample.js +10 -10
- package/Source/Core/EasingFunction.js +2 -2
- package/Source/Core/EllipseGeometry.js +19 -19
- package/Source/Core/EllipseOutlineGeometry.js +14 -14
- package/Source/Core/Ellipsoid.js +20 -20
- package/Source/Core/EllipsoidGeodesic.js +5 -5
- package/Source/Core/EllipsoidGeometry.js +13 -13
- package/Source/Core/EllipsoidOutlineGeometry.js +14 -14
- package/Source/Core/EllipsoidRhumbLine.js +8 -8
- package/Source/Core/EllipsoidTerrainProvider.js +35 -28
- package/Source/Core/EllipsoidalOccluder.js +9 -9
- package/Source/Core/EncodedCartesian3.js +5 -5
- package/Source/Core/Event.js +4 -4
- package/Source/Core/EventHelper.js +1 -1
- package/Source/Core/ExtrapolationType.js +4 -4
- package/Source/Core/FeatureDetection.js +9 -9
- package/Source/Core/FrustumGeometry.js +8 -8
- package/Source/Core/FrustumOutlineGeometry.js +7 -7
- package/Source/Core/Fullscreen.js +8 -8
- package/Source/Core/GeocodeType.js +3 -3
- package/Source/Core/GeocoderService.js +3 -3
- package/Source/Core/GeographicTilingScheme.js +16 -16
- package/Source/Core/Geometry.js +5 -5
- package/Source/Core/GeometryAttribute.js +6 -6
- package/Source/Core/GeometryInstance.js +5 -5
- package/Source/Core/GeometryInstanceAttribute.js +7 -7
- package/Source/Core/GeometryPipeline.js +11 -11
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +107 -55
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +29 -29
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +137 -100
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +14 -14
- package/Source/Core/GregorianDate.js +16 -16
- package/Source/Core/GroundPolylineGeometry.js +13 -13
- package/Source/Core/HeadingPitchRange.js +6 -6
- package/Source/Core/HeadingPitchRoll.js +18 -18
- package/Source/Core/Heap.js +7 -7
- package/Source/Core/HeightmapEncoding.js +3 -3
- package/Source/Core/HeightmapTerrainData.js +44 -44
- package/Source/Core/HeightmapTessellator.js +16 -16
- package/Source/Core/HermitePolynomialApproximation.js +17 -17
- package/Source/Core/HermiteSpline.js +17 -17
- package/Source/Core/HilbertOrder.js +7 -7
- package/Source/Core/Iau2006XysData.js +13 -13
- package/Source/Core/Iau2006XysSample.js +6 -6
- package/Source/Core/IauOrientationParameters.js +4 -4
- package/Source/Core/IndexDatatype.js +12 -12
- package/Source/Core/InterpolationAlgorithm.js +17 -17
- package/Source/Core/InterpolationType.js +1 -1
- package/Source/Core/Intersect.js +4 -4
- package/Source/Core/IntersectionTests.js +5 -5
- package/Source/Core/Intersections2D.js +23 -23
- package/Source/Core/Interval.js +4 -4
- package/Source/Core/Ion.js +3 -3
- package/Source/Core/IonGeocoderService.js +4 -4
- package/Source/Core/IonResource.js +20 -9
- package/Source/Core/JulianDate.js +27 -27
- package/Source/Core/KeyboardEventModifier.js +4 -4
- package/Source/Core/LagrangePolynomialApproximation.js +8 -8
- package/Source/Core/LeapSecond.js +2 -2
- package/Source/Core/LinearApproximation.js +8 -8
- package/Source/Core/LinearSpline.js +13 -13
- package/Source/Core/ManagedArray.js +8 -8
- package/Source/Core/Math.js +136 -136
- package/Source/Core/Matrix2.js +44 -44
- package/Source/Core/Matrix3.js +59 -59
- package/Source/Core/Matrix4.js +91 -91
- package/Source/Core/MorphWeightSpline.js +14 -14
- package/Source/Core/MortonOrder.js +21 -21
- package/Source/Core/NearFarScalar.js +16 -16
- package/Source/Core/Occluder.js +5 -5
- package/Source/Core/OffsetGeometryInstanceAttribute.js +5 -5
- package/Source/Core/OpenCageGeocoderService.js +18 -18
- package/Source/Core/OrientedBoundingBox.js +18 -16
- package/Source/Core/OrthographicFrustum.js +23 -23
- package/Source/Core/OrthographicOffCenterFrustum.js +21 -21
- package/Source/Core/Packable.js +7 -7
- package/Source/Core/PackableForInterpolation.js +11 -11
- package/Source/Core/PeliasGeocoderService.js +2 -2
- package/Source/Core/PerspectiveFrustum.js +28 -28
- package/Source/Core/PerspectiveOffCenterFrustum.js +21 -21
- package/Source/Core/PinBuilder.js +9 -9
- package/Source/Core/PixelFormat.js +23 -23
- package/Source/Core/Plane.js +4 -4
- package/Source/Core/PlaneGeometry.js +7 -7
- package/Source/Core/PlaneOutlineGeometry.js +5 -5
- package/Source/Core/PolygonGeometry.js +24 -24
- package/Source/Core/PolygonGeometryLibrary.js +4 -4
- package/Source/Core/PolygonOutlineGeometry.js +16 -16
- package/Source/Core/PolygonPipeline.js +10 -10
- package/Source/Core/PolylineGeometry.js +10 -10
- package/Source/Core/PolylinePipeline.js +15 -15
- package/Source/Core/PolylineVolumeGeometry.js +8 -8
- package/Source/Core/PolylineVolumeOutlineGeometry.js +8 -8
- package/Source/Core/PrimitiveType.js +8 -8
- package/Source/Core/Proxy.js +2 -2
- package/Source/Core/QuadraticRealPolynomial.js +8 -8
- package/Source/Core/QuantizedMeshTerrainData.js +37 -37
- package/Source/Core/QuarticRealPolynomial.js +12 -12
- package/Source/Core/Quaternion.js +42 -42
- package/Source/Core/QuaternionSpline.js +10 -10
- package/Source/Core/Queue.js +2 -2
- package/Source/Core/Ray.js +1 -1
- package/Source/Core/Rectangle.js +38 -38
- package/Source/Core/RectangleCollisionChecker.js +3 -3
- package/Source/Core/RectangleGeometry.js +15 -15
- package/Source/Core/RectangleOutlineGeometry.js +11 -11
- package/Source/Core/ReferenceFrame.js +3 -3
- package/Source/Core/Request.js +13 -13
- package/Source/Core/RequestErrorEvent.js +7 -7
- package/Source/Core/RequestScheduler.js +15 -15
- package/Source/Core/RequestState.js +7 -7
- package/Source/Core/RequestType.js +5 -5
- package/Source/Core/Resource.js +225 -225
- package/Source/Core/RuntimeError.js +4 -4
- package/Source/Core/S2Cell.js +15 -15
- package/Source/Core/ScreenSpaceEventHandler.js +7 -7
- package/Source/Core/ScreenSpaceEventType.js +16 -16
- package/Source/Core/ShowGeometryInstanceAttribute.js +4 -4
- package/Source/Core/SimplePolylineGeometry.js +9 -9
- package/Source/Core/SphereGeometry.js +10 -10
- package/Source/Core/SphereOutlineGeometry.js +11 -11
- package/Source/Core/Spherical.js +13 -13
- package/Source/Core/Spline.js +14 -14
- package/Source/Core/SteppedSpline.js +14 -14
- package/Source/Core/TaskProcessor.js +10 -10
- package/Source/Core/TerrainData.js +25 -25
- package/Source/Core/TerrainEncoding.js +14 -14
- package/Source/Core/TerrainExaggeration.js +3 -3
- package/Source/Core/TerrainMesh.js +18 -18
- package/Source/Core/TerrainProvider.js +32 -37
- package/Source/Core/TerrainQuantization.js +3 -3
- package/Source/Core/TileAvailability.js +16 -16
- package/Source/Core/TileProviderError.js +19 -19
- package/Source/Core/TilingScheme.js +13 -13
- package/Source/Core/TimeConstants.js +10 -10
- package/Source/Core/TimeInterval.js +23 -23
- package/Source/Core/TimeIntervalCollection.js +39 -39
- package/Source/Core/TimeStandard.js +3 -3
- package/Source/Core/Tipsify.js +10 -10
- package/Source/Core/Transforms.js +2 -2
- package/Source/Core/TranslationRotationScale.js +1 -1
- package/Source/Core/TridiagonalSystemSolver.js +3 -3
- package/Source/Core/TrustedServers.js +5 -5
- package/Source/Core/VRTheWorldTerrainProvider.js +210 -141
- package/Source/Core/VertexFormat.js +13 -13
- package/Source/Core/VideoSynchronizer.js +4 -4
- package/Source/Core/Visibility.js +4 -4
- package/Source/Core/VulkanConstants.js +1 -1
- package/Source/Core/WallGeometry.js +13 -13
- package/Source/Core/WallOutlineGeometry.js +13 -13
- package/Source/Core/WebGLConstants.js +1 -1
- package/Source/Core/WebMercatorProjection.js +5 -5
- package/Source/Core/WebMercatorTilingScheme.js +16 -16
- package/Source/Core/WindingOrder.js +3 -3
- package/Source/Core/WireframeIndexGenerator.js +3 -3
- package/Source/Core/arrayRemoveDuplicates.js +4 -4
- package/Source/Core/binarySearch.js +2 -2
- package/Source/Core/buildModuleUrl.js +8 -7
- package/Source/Core/clone.js +3 -3
- package/Source/Core/combine.js +4 -4
- package/Source/Core/createGuid.js +1 -1
- package/Source/Core/createWorldTerrain.js +23 -5
- package/Source/Core/createWorldTerrainAsync.js +48 -0
- package/Source/Core/defaultValue.js +1 -1
- package/Source/Core/defer.js +1 -1
- package/Source/Core/defined.js +1 -1
- package/Source/Core/deprecationWarning.js +2 -2
- package/Source/Core/destroyObject.js +2 -2
- package/Source/Core/formatError.js +1 -1
- package/Source/Core/getAbsoluteUri.js +3 -3
- package/Source/Core/getBaseUri.js +3 -3
- package/Source/Core/getExtensionFromUri.js +2 -2
- package/Source/Core/getFilenameFromUri.js +2 -2
- package/Source/Core/getImageFromTypedArray.js +2 -2
- package/Source/Core/getImagePixels.js +4 -3
- package/Source/Core/getJsonFromTypedArray.js +3 -3
- package/Source/Core/getStringFromTypedArray.js +3 -3
- package/Source/Core/getTimestamp.js +1 -1
- package/Source/Core/isBlobUri.js +2 -2
- package/Source/Core/isDataUri.js +2 -2
- package/Source/Core/isLeapYear.js +2 -2
- package/Source/Core/loadKTX2.js +8 -8
- package/Source/Core/mergeSort.js +1 -1
- package/Source/Core/objectToQuery.js +2 -2
- package/Source/Core/oneTimeWarning.js +2 -2
- package/Source/Core/parseResponseHeaders.js +2 -2
- package/Source/Core/pointInsideTriangle.js +1 -1
- package/Source/Core/queryToObject.js +2 -2
- package/Source/Core/sampleTerrain.js +16 -17
- package/Source/Core/sampleTerrainMostDetailed.js +67 -73
- package/Source/Core/scaleToGeodeticSurface.js +1 -1
- package/Source/Core/subdivideArray.js +1 -1
- package/Source/Core/writeTextToCanvas.js +10 -9
- package/Source/DataSources/BillboardGraphics.js +1 -1
- package/Source/DataSources/BillboardVisualizer.js +2 -2
- package/Source/DataSources/BoundingSphereState.js +1 -1
- package/Source/DataSources/BoxGraphics.js +1 -1
- package/Source/DataSources/CallbackProperty.js +8 -8
- package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +39 -28
- package/Source/DataSources/CheckerboardMaterialProperty.js +6 -6
- package/Source/DataSources/ColorMaterialProperty.js +5 -5
- package/Source/DataSources/CompositeEntityCollection.js +8 -8
- package/Source/DataSources/CompositeMaterialProperty.js +5 -5
- package/Source/DataSources/CompositePositionProperty.js +2 -2
- package/Source/DataSources/CompositeProperty.js +4 -4
- package/Source/DataSources/ConstantPositionProperty.js +4 -4
- package/Source/DataSources/ConstantProperty.js +5 -5
- package/Source/DataSources/CorridorGraphics.js +1 -1
- package/Source/DataSources/CustomDataSource.js +5 -5
- package/Source/DataSources/CylinderGraphics.js +1 -1
- package/Source/DataSources/CzmlDataSource.js +26 -26
- package/Source/DataSources/DataSource.js +4 -4
- package/Source/DataSources/DataSourceClock.js +2 -2
- package/Source/DataSources/DataSourceCollection.js +11 -11
- package/Source/DataSources/DataSourceDisplay.js +5 -5
- package/Source/DataSources/DynamicGeometryUpdater.js +1 -1
- package/Source/DataSources/EllipseGraphics.js +1 -1
- package/Source/DataSources/EllipsoidGeometryUpdater.js +2 -2
- package/Source/DataSources/EllipsoidGraphics.js +1 -1
- package/Source/DataSources/Entity.js +20 -15
- package/Source/DataSources/EntityCluster.js +16 -16
- package/Source/DataSources/EntityCollection.js +8 -8
- package/Source/DataSources/GeoJsonDataSource.js +27 -27
- package/Source/DataSources/GeometryUpdater.js +22 -22
- package/Source/DataSources/GeometryVisualizer.js +2 -2
- package/Source/DataSources/GpxDataSource.js +23 -23
- package/Source/DataSources/GridMaterialProperty.js +7 -7
- package/Source/DataSources/GroundGeometryUpdater.js +5 -5
- package/Source/DataSources/ImageMaterialProperty.js +8 -8
- package/Source/DataSources/KmlDataSource.js +32 -32
- package/Source/DataSources/KmlTour.js +7 -7
- package/Source/DataSources/KmlTourFlyTo.js +6 -6
- package/Source/DataSources/KmlTourWait.js +2 -2
- package/Source/DataSources/LabelGraphics.js +1 -1
- package/Source/DataSources/LabelVisualizer.js +2 -2
- package/Source/DataSources/MaterialProperty.js +5 -5
- package/Source/DataSources/ModelGraphics.js +3 -3
- package/Source/DataSources/ModelVisualizer.js +101 -33
- package/Source/DataSources/NodeTransformationProperty.js +3 -3
- package/Source/DataSources/PathGraphics.js +1 -1
- package/Source/DataSources/PathVisualizer.js +2 -2
- package/Source/DataSources/PlaneGraphics.js +1 -1
- package/Source/DataSources/PointGraphics.js +1 -1
- package/Source/DataSources/PointVisualizer.js +2 -2
- package/Source/DataSources/PolygonGraphics.js +4 -4
- package/Source/DataSources/PolylineArrowMaterialProperty.js +5 -5
- package/Source/DataSources/PolylineDashMaterialProperty.js +8 -8
- package/Source/DataSources/PolylineGeometryUpdater.js +13 -13
- package/Source/DataSources/PolylineGlowMaterialProperty.js +8 -8
- package/Source/DataSources/PolylineGraphics.js +2 -2
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +7 -7
- package/Source/DataSources/PolylineVisualizer.js +2 -2
- package/Source/DataSources/PolylineVolumeGraphics.js +3 -3
- package/Source/DataSources/PositionProperty.js +2 -2
- package/Source/DataSources/PositionPropertyArray.js +2 -2
- package/Source/DataSources/Property.js +4 -4
- package/Source/DataSources/PropertyArray.js +2 -2
- package/Source/DataSources/PropertyBag.js +10 -10
- package/Source/DataSources/RectangleGraphics.js +1 -1
- package/Source/DataSources/ReferenceProperty.js +10 -10
- package/Source/DataSources/Rotation.js +14 -14
- package/Source/DataSources/SampledPositionProperty.js +11 -11
- package/Source/DataSources/SampledProperty.js +12 -12
- package/Source/DataSources/StripeMaterialProperty.js +8 -8
- package/Source/DataSources/StripeOrientation.js +3 -3
- package/Source/DataSources/TerrainOffsetProperty.js +1 -1
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +3 -3
- package/Source/DataSources/TimeIntervalCollectionProperty.js +4 -4
- package/Source/DataSources/VelocityOrientationProperty.js +2 -2
- package/Source/DataSources/VelocityVectorProperty.js +4 -4
- package/Source/DataSources/Visualizer.js +2 -2
- package/Source/DataSources/WallGraphics.js +4 -4
- package/Source/DataSources/exportKml.js +9 -9
- package/Source/Renderer/Buffer.js +4 -4
- package/Source/Renderer/ClearCommand.js +3 -3
- package/Source/Renderer/ComputeCommand.js +3 -3
- package/Source/Renderer/Context.js +46 -46
- package/Source/Renderer/ContextLimits.js +22 -22
- package/Source/Renderer/CubeMapFace.js +11 -11
- package/Source/Renderer/DrawCommand.js +15 -15
- package/Source/Renderer/Framebuffer.js +4 -4
- package/Source/Renderer/FramebufferManager.js +9 -9
- package/Source/Renderer/MultisampleFramebuffer.js +1 -1
- package/Source/Renderer/PassState.js +2 -2
- package/Source/Renderer/PixelDatatype.js +1 -1
- package/Source/Renderer/RenderState.js +1 -1
- package/Source/Renderer/ShaderBuilder.js +24 -24
- package/Source/Renderer/ShaderCache.js +8 -8
- package/Source/Renderer/ShaderDestination.js +2 -2
- package/Source/Renderer/ShaderFunction.js +3 -3
- package/Source/Renderer/ShaderSource.js +8 -8
- package/Source/Renderer/ShaderStruct.js +4 -4
- package/Source/Renderer/Texture.js +18 -18
- package/Source/Renderer/TextureMagnificationFilter.js +4 -4
- package/Source/Renderer/TextureMinificationFilter.js +8 -8
- package/Source/Renderer/UniformState.js +14 -14
- package/Source/Renderer/VertexArray.js +2 -2
- package/Source/Renderer/createUniform.js +12 -12
- package/Source/Renderer/createUniformArray.js +12 -12
- package/Source/Renderer/freezeRenderState.js +2 -2
- package/Source/Renderer/loadCubeMap.js +3 -3
- package/Source/Scene/AlphaMode.js +4 -4
- package/Source/Scene/Appearance.js +14 -14
- package/Source/Scene/ArcGisMapServerImageryProvider.js +585 -409
- package/Source/Scene/AttributeType.js +11 -11
- package/Source/Scene/AutoExposure.js +6 -6
- package/Source/Scene/Axis.js +6 -6
- package/Source/Scene/B3dmParser.js +2 -2
- package/Source/Scene/BatchTable.js +13 -13
- package/Source/Scene/BatchTableHierarchy.js +22 -22
- package/Source/Scene/BatchTexture.js +14 -14
- package/Source/Scene/Billboard.js +17 -17
- package/Source/Scene/BillboardCollection.js +13 -13
- package/Source/Scene/BingMapsImageryProvider.js +541 -335
- package/Source/Scene/BingMapsStyle.js +11 -11
- package/Source/Scene/BlendEquation.js +6 -6
- package/Source/Scene/BlendFunction.js +16 -16
- package/Source/Scene/BlendOption.js +4 -4
- package/Source/Scene/BlendingState.js +4 -4
- package/Source/Scene/BufferLoader.js +33 -38
- package/Source/Scene/Camera.js +57 -57
- package/Source/Scene/CameraEventAggregator.js +26 -16
- package/Source/Scene/CameraEventType.js +6 -6
- package/Source/Scene/Cesium3DContentGroup.js +1 -1
- package/Source/Scene/Cesium3DTile.js +409 -272
- package/Source/Scene/Cesium3DTileBatchTable.js +3 -3
- package/Source/Scene/Cesium3DTileColorBlendMode.js +4 -4
- package/Source/Scene/Cesium3DTileContent.js +31 -15
- package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
- package/Source/Scene/Cesium3DTileContentType.js +17 -17
- package/Source/Scene/Cesium3DTileFeature.js +16 -16
- package/Source/Scene/Cesium3DTileOptimizationHint.js +1 -1
- package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
- package/Source/Scene/Cesium3DTilePass.js +8 -11
- package/Source/Scene/Cesium3DTilePassState.js +1 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +23 -23
- package/Source/Scene/Cesium3DTileRefine.js +3 -3
- package/Source/Scene/Cesium3DTileStyle.js +17 -17
- package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +226 -118
- package/Source/Scene/Cesium3DTileset.js +817 -543
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
- package/Source/Scene/Cesium3DTilesetHeatmap.js +4 -4
- package/Source/Scene/Cesium3DTilesetMetadata.js +5 -5
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
- package/Source/Scene/CircleEmitter.js +2 -2
- package/Source/Scene/ClassificationPrimitive.js +32 -25
- package/Source/Scene/ClassificationType.js +4 -4
- package/Source/Scene/ClippingPlane.js +2 -2
- package/Source/Scene/ClippingPlaneCollection.js +17 -17
- package/Source/Scene/CloudCollection.js +16 -16
- package/Source/Scene/CloudType.js +3 -3
- package/Source/Scene/ColorBlendMode.js +1 -1
- package/Source/Scene/Composite3DTileContent.js +69 -26
- package/Source/Scene/ConditionsExpression.js +11 -11
- package/Source/Scene/ConeEmitter.js +2 -2
- package/Source/Scene/ContentMetadata.js +16 -16
- package/Source/Scene/CreditDisplay.js +22 -6
- package/Source/Scene/CullFace.js +4 -4
- package/Source/Scene/CumulusCloud.js +3 -3
- package/Source/Scene/DebugAppearance.js +17 -17
- package/Source/Scene/DebugCameraPrimitive.js +7 -7
- package/Source/Scene/DebugModelMatrixPrimitive.js +9 -9
- package/Source/Scene/DepthFunction.js +9 -9
- package/Source/Scene/DepthPlane.js +1 -1
- package/Source/Scene/DeviceOrientationCameraController.js +1 -1
- package/Source/Scene/DirectionalLight.js +3 -3
- package/Source/Scene/DiscardEmptyTileImagePolicy.js +2 -2
- package/Source/Scene/DiscardMissingTileImagePolicy.js +5 -5
- package/Source/Scene/DracoLoader.js +4 -4
- package/Source/Scene/EllipsoidPrimitive.js +8 -8
- package/Source/Scene/EllipsoidSurfaceAppearance.js +19 -19
- package/Source/Scene/Empty3DTileContent.js +31 -1
- package/Source/Scene/Expression.js +14 -14
- package/Source/Scene/Fog.js +5 -5
- package/Source/Scene/FrameRateMonitor.js +14 -14
- package/Source/Scene/FrameState.js +36 -36
- package/Source/Scene/FrustumCommands.js +2 -2
- package/Source/Scene/Geometry3DTileContent.js +47 -7
- package/Source/Scene/GetFeatureInfoFormat.js +2 -2
- package/Source/Scene/Globe.js +39 -35
- package/Source/Scene/GlobeSurfaceTile.js +3 -2
- package/Source/Scene/GlobeSurfaceTileProvider.js +56 -33
- package/Source/Scene/GlobeTranslucency.js +3 -3
- package/Source/Scene/GltfBufferViewLoader.js +52 -96
- package/Source/Scene/GltfDracoLoader.js +117 -119
- package/Source/Scene/GltfImageLoader.js +77 -84
- package/Source/Scene/GltfIndexBufferLoader.js +118 -131
- package/Source/Scene/GltfJsonLoader.js +81 -80
- package/Source/Scene/GltfLoader.js +413 -301
- package/Source/Scene/GltfLoaderUtil.js +11 -11
- package/Source/Scene/GltfPipeline/addBuffer.js +2 -2
- package/Source/Scene/GltfPipeline/addDefaults.js +2 -2
- package/Source/Scene/GltfPipeline/addExtensionsRequired.js +2 -2
- package/Source/Scene/GltfPipeline/addExtensionsUsed.js +2 -2
- package/Source/Scene/GltfPipeline/addPipelineExtras.js +2 -2
- package/Source/Scene/GltfPipeline/addToArray.js +2 -2
- package/Source/Scene/GltfPipeline/findAccessorMinMax.js +2 -2
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +3 -3
- package/Source/Scene/GltfPipeline/getAccessorByteStride.js +3 -3
- package/Source/Scene/GltfPipeline/getComponentReader.js +5 -5
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -2
- package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +2 -2
- package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +2 -2
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -1
- package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
- package/Source/Scene/GltfPipeline/removeExtension.js +2 -2
- package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +2 -2
- package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +2 -2
- package/Source/Scene/GltfPipeline/removePipelineExtras.js +2 -2
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +2 -2
- package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +2 -2
- package/Source/Scene/GltfPipeline/updateVersion.js +4 -4
- package/Source/Scene/GltfPipeline/usesExtension.js +3 -3
- package/Source/Scene/GltfStructuralMetadataLoader.js +117 -118
- package/Source/Scene/GltfTextureLoader.js +104 -103
- package/Source/Scene/GltfVertexBufferLoader.js +140 -145
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +377 -249
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +520 -360
- package/Source/Scene/GridImageryProvider.js +292 -129
- package/Source/Scene/GroundPolylinePrimitive.js +32 -21
- package/Source/Scene/GroundPrimitive.js +34 -27
- package/Source/Scene/GroupMetadata.js +17 -17
- package/Source/Scene/HeightReference.js +4 -4
- package/Source/Scene/HorizontalOrigin.js +4 -4
- package/Source/Scene/I3SDataProvider.js +221 -120
- package/Source/Scene/I3SFeature.js +8 -7
- package/Source/Scene/I3SField.js +5 -5
- package/Source/Scene/I3SGeometry.js +8 -8
- package/Source/Scene/I3SLayer.js +33 -44
- package/Source/Scene/I3SNode.js +65 -72
- package/Source/Scene/I3dmParser.js +2 -2
- package/Source/Scene/ImageBasedLighting.js +21 -17
- package/Source/Scene/Imagery.js +6 -1
- package/Source/Scene/ImageryLayer.js +324 -73
- package/Source/Scene/ImageryLayerCollection.js +37 -11
- package/Source/Scene/ImageryLayerFeatureInfo.js +6 -6
- package/Source/Scene/ImageryProvider.js +151 -133
- package/Source/Scene/Implicit3DTileContent.js +128 -79
- package/Source/Scene/ImplicitAvailabilityBitstream.js +10 -10
- package/Source/Scene/ImplicitMetadataView.js +16 -16
- package/Source/Scene/ImplicitSubdivisionScheme.js +4 -4
- package/Source/Scene/ImplicitSubtree.js +113 -92
- package/Source/Scene/ImplicitSubtreeCache.js +6 -6
- package/Source/Scene/ImplicitSubtreeMetadata.js +16 -16
- package/Source/Scene/ImplicitTileCoordinates.js +27 -27
- package/Source/Scene/ImplicitTileset.js +10 -10
- package/Source/Scene/InstanceAttributeSemantic.js +5 -5
- package/Source/Scene/IonImageryProvider.js +493 -286
- package/Source/Scene/IonWorldImageryStyle.js +4 -4
- package/Source/Scene/JsonMetadataTable.js +11 -11
- package/Source/Scene/KeyframeNode.js +1 -1
- package/Source/Scene/Label.js +14 -14
- package/Source/Scene/LabelCollection.js +12 -11
- package/Source/Scene/LabelStyle.js +4 -4
- package/Source/Scene/Light.js +1 -1
- package/Source/Scene/MapMode2D.js +3 -3
- package/Source/Scene/MapboxImageryProvider.js +301 -141
- package/Source/Scene/MapboxStyleImageryProvider.js +301 -142
- package/Source/Scene/Material.js +47 -47
- package/Source/Scene/MaterialAppearance.js +21 -21
- package/Source/Scene/Megatexture.js +15 -15
- package/Source/Scene/MetadataClass.js +16 -16
- package/Source/Scene/MetadataClassProperty.js +41 -41
- package/Source/Scene/MetadataComponentType.js +21 -21
- package/Source/Scene/MetadataEntity.js +31 -31
- package/Source/Scene/MetadataEnum.js +14 -14
- package/Source/Scene/MetadataEnumValue.js +10 -10
- package/Source/Scene/MetadataSchema.js +16 -16
- package/Source/Scene/MetadataSchemaLoader.js +31 -41
- package/Source/Scene/MetadataSemantic.js +17 -17
- package/Source/Scene/MetadataTable.js +24 -24
- package/Source/Scene/MetadataTableProperty.js +9 -9
- package/Source/Scene/MetadataType.js +15 -15
- package/Source/Scene/Model/B3dmLoader.js +54 -58
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +3 -3
- package/Source/Scene/Model/CustomShader.js +18 -18
- package/Source/Scene/Model/CustomShaderMode.js +4 -4
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +4 -4
- package/Source/Scene/Model/GeoJsonLoader.js +12 -36
- package/Source/Scene/Model/I3dmLoader.js +58 -84
- package/Source/Scene/Model/LightingModel.js +3 -3
- package/Source/Scene/Model/MaterialPipelineStage.js +6 -6
- package/Source/Scene/Model/MetadataPipelineStage.js +25 -26
- package/Source/Scene/Model/Model.js +531 -193
- package/Source/Scene/Model/Model3DTileContent.js +83 -31
- package/Source/Scene/Model/ModelAlphaOptions.js +1 -1
- package/Source/Scene/Model/ModelAnimation.js +11 -11
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +21 -21
- package/Source/Scene/Model/ModelArticulation.js +4 -4
- package/Source/Scene/Model/ModelArticulationStage.js +5 -5
- package/Source/Scene/Model/ModelDrawCommand.js +18 -29
- package/Source/Scene/Model/ModelFeature.js +12 -12
- package/Source/Scene/Model/ModelFeatureTable.js +5 -5
- package/Source/Scene/Model/ModelLightingOptions.js +1 -1
- package/Source/Scene/Model/ModelNode.js +3 -3
- package/Source/Scene/Model/ModelRenderResources.js +4 -4
- package/Source/Scene/Model/ModelRuntimeNode.js +7 -7
- package/Source/Scene/Model/ModelRuntimePrimitive.js +3 -3
- package/Source/Scene/Model/ModelSceneGraph.js +11 -11
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +1 -1
- package/Source/Scene/Model/ModelSkin.js +1 -1
- package/Source/Scene/Model/ModelStatistics.js +7 -7
- package/Source/Scene/Model/ModelType.js +8 -8
- package/Source/Scene/Model/ModelUtility.js +26 -26
- package/Source/Scene/Model/NodeRenderResources.js +7 -7
- package/Source/Scene/Model/PntsLoader.js +32 -37
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -1
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +28 -28
- package/Source/Scene/Model/PrimitiveRenderResources.js +10 -10
- package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
- package/Source/Scene/Model/TextureManager.js +3 -3
- package/Source/Scene/Model/TextureUniform.js +6 -6
- package/Source/Scene/Model/UniformType.js +17 -17
- package/Source/Scene/Model/VaryingType.js +8 -8
- package/Source/Scene/ModelAnimationLoop.js +4 -4
- package/Source/Scene/ModelComponents.js +61 -61
- package/Source/Scene/Moon.js +8 -8
- package/Source/Scene/Multiple3DTileContent.js +146 -127
- package/Source/Scene/NeverTileDiscardPolicy.js +2 -2
- package/Source/Scene/OIT.js +9 -9
- package/Source/Scene/OctahedralProjectedCubeMap.js +28 -39
- package/Source/Scene/OpenStreetMapImageryProvider.js +6 -6
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +9 -9
- package/Source/Scene/Particle.js +13 -13
- package/Source/Scene/ParticleBurst.js +8 -8
- package/Source/Scene/ParticleSystem.js +41 -36
- package/Source/Scene/PerInstanceColorAppearance.js +18 -18
- package/Source/Scene/PerformanceDisplay.js +2 -2
- package/Source/Scene/PntsParser.js +1 -1
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/PointCloudEyeDomeLighting.js +1 -1
- package/Source/Scene/PointCloudShading.js +20 -20
- package/Source/Scene/PointPrimitive.js +6 -6
- package/Source/Scene/PointPrimitiveCollection.js +11 -11
- package/Source/Scene/Polyline.js +9 -9
- package/Source/Scene/PolylineCollection.js +11 -11
- package/Source/Scene/PolylineColorAppearance.js +13 -13
- package/Source/Scene/PolylineMaterialAppearance.js +13 -13
- package/Source/Scene/PostProcessStage.js +15 -15
- package/Source/Scene/PostProcessStageCollection.js +10 -10
- package/Source/Scene/PostProcessStageComposite.js +13 -13
- package/Source/Scene/PostProcessStageLibrary.js +8 -8
- package/Source/Scene/PostProcessStageSampleMode.js +3 -3
- package/Source/Scene/PostProcessStageTextureCache.js +4 -4
- package/Source/Scene/Primitive.js +50 -30
- package/Source/Scene/PrimitiveCollection.js +20 -20
- package/Source/Scene/PrimitiveLoadPlan.js +6 -6
- package/Source/Scene/PropertyAttribute.js +9 -9
- package/Source/Scene/PropertyAttributeProperty.js +6 -6
- package/Source/Scene/PropertyTable.js +34 -34
- package/Source/Scene/PropertyTexture.js +9 -9
- package/Source/Scene/PropertyTextureProperty.js +8 -8
- package/Source/Scene/QuadtreePrimitive.js +11 -9
- package/Source/Scene/QuadtreeTile.js +11 -11
- package/Source/Scene/QuadtreeTileLoadState.js +1 -1
- package/Source/Scene/QuadtreeTileProvider.js +10 -14
- package/Source/Scene/ResourceCache.js +85 -143
- package/Source/Scene/ResourceCacheKey.js +42 -42
- package/Source/Scene/ResourceCacheStatistics.js +26 -60
- package/Source/Scene/ResourceLoader.js +9 -21
- package/Source/Scene/ResourceLoaderState.js +16 -8
- package/Source/Scene/SDFSettings.js +4 -4
- package/Source/Scene/Scene.js +153 -88
- package/Source/Scene/SceneMode.js +6 -6
- package/Source/Scene/SceneTransitioner.js +1 -1
- package/Source/Scene/ScreenSpaceCameraController.js +41 -23
- package/Source/Scene/ShadowMap.js +22 -22
- package/Source/Scene/ShadowMapShader.js +1 -1
- package/Source/Scene/ShadowMode.js +5 -5
- package/Source/Scene/ShadowVolumeAppearance.js +17 -17
- package/Source/Scene/SingleTileImageryProvider.js +403 -230
- package/Source/Scene/SkyAtmosphere.js +10 -10
- package/Source/Scene/SkyBox.js +6 -6
- package/Source/Scene/SpatialNode.js +103 -87
- package/Source/Scene/SphereEmitter.js +2 -2
- package/Source/Scene/SplitDirection.js +4 -4
- package/Source/Scene/Splitter.js +2 -2
- package/Source/Scene/StencilFunction.js +9 -9
- package/Source/Scene/StencilOperation.js +9 -9
- package/Source/Scene/StructuralMetadata.js +11 -11
- package/Source/Scene/StyleExpression.js +8 -8
- package/Source/Scene/Sun.js +3 -3
- package/Source/Scene/SunLight.js +3 -3
- package/Source/Scene/SupportedImageFormats.js +3 -3
- package/Source/Scene/Terrain.js +196 -0
- package/Source/Scene/TextureAtlas.js +16 -16
- package/Source/Scene/TileBoundingRegion.js +6 -6
- package/Source/Scene/TileBoundingS2Cell.js +6 -6
- package/Source/Scene/TileBoundingSphere.js +5 -5
- package/Source/Scene/TileBoundingVolume.js +2 -2
- package/Source/Scene/TileCoordinatesImageryProvider.js +289 -126
- package/Source/Scene/TileDiscardPolicy.js +2 -2
- package/Source/Scene/TileImagery.js +3 -3
- package/Source/Scene/TileMapServiceImageryProvider.js +185 -93
- package/Source/Scene/TileMetadata.js +16 -16
- package/Source/Scene/TileOrientedBoundingBox.js +2 -2
- package/Source/Scene/TileReplacementQueue.js +1 -1
- package/Source/Scene/TileSelectionResult.js +1 -1
- package/Source/Scene/Tileset3DTileContent.js +47 -5
- package/Source/Scene/TilesetMetadata.js +15 -15
- package/Source/Scene/TimeDynamicImagery.js +8 -8
- package/Source/Scene/TimeDynamicPointCloud.js +24 -11
- package/Source/Scene/Tonemapper.js +5 -5
- package/Source/Scene/TranslucentTileClassification.js +1 -1
- package/Source/Scene/TweenCollection.js +31 -31
- package/Source/Scene/UrlTemplateImageryProvider.js +380 -252
- package/Source/Scene/Vector3DTileBatch.js +7 -7
- package/Source/Scene/Vector3DTileClampedPolylines.js +105 -93
- package/Source/Scene/Vector3DTileContent.js +47 -22
- package/Source/Scene/Vector3DTileGeometry.js +65 -60
- package/Source/Scene/Vector3DTilePoints.js +79 -75
- package/Source/Scene/Vector3DTilePolygons.js +128 -127
- package/Source/Scene/Vector3DTilePolylines.js +95 -91
- package/Source/Scene/Vector3DTilePrimitive.js +8 -9
- package/Source/Scene/VertexAttributeSemantic.js +15 -15
- package/Source/Scene/VerticalOrigin.js +5 -5
- package/Source/Scene/ViewportQuad.js +2 -2
- package/Source/Scene/VoxelBoxShape.js +27 -118
- package/Source/Scene/VoxelContent.js +63 -65
- package/Source/Scene/VoxelCylinderShape.js +21 -21
- package/Source/Scene/VoxelEllipsoidShape.js +13 -13
- package/Source/Scene/VoxelPrimitive.js +83 -135
- package/Source/Scene/VoxelProvider.js +15 -15
- package/Source/Scene/VoxelRenderResources.js +6 -3
- package/Source/Scene/VoxelShape.js +9 -9
- package/Source/Scene/VoxelShapeType.js +4 -4
- package/Source/Scene/VoxelTraversal.js +86 -144
- package/Source/Scene/WebMapServiceImageryProvider.js +313 -152
- package/Source/Scene/WebMapTileServiceImageryProvider.js +305 -142
- package/Source/Scene/buildVoxelDrawCommands.js +1 -0
- package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
- package/Source/Scene/createBillboardPointCallback.js +5 -5
- package/Source/Scene/createElevationBandMaterial.js +5 -5
- package/Source/Scene/createOsmBuildings.js +9 -3
- package/Source/Scene/createOsmBuildingsAsync.js +82 -0
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +2 -2
- package/Source/Scene/createWorldImagery.js +15 -6
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Scene/findContentMetadata.js +1 -1
- package/Source/Scene/findGroupMetadata.js +1 -1
- package/Source/Scene/findTileMetadata.js +1 -1
- package/Source/Scene/getClipAndStyleCode.js +4 -4
- package/Source/Scene/getClippingFunction.js +1 -1
- package/Source/Scene/hasExtension.js +3 -3
- package/Source/Scene/parseBatchTable.js +14 -14
- package/Source/Scene/parseBoundingVolumeSemantics.js +7 -7
- package/Source/Scene/parseFeatureMetadataLegacy.js +4 -4
- package/Source/Scene/parseStructuralMetadata.js +4 -4
- package/Source/Scene/preprocess3DTileContent.js +2 -2
- package/Source/Scene/processVoxelProperties.js +8 -7
- package/Source/Shaders/Voxels/IntersectBox.glsl +52 -58
- package/Source/Shaders/Voxels/IntersectBox.js +52 -58
- package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +38 -30
- package/Source/Shaders/Voxels/IntersectClippingPlanes.js +38 -30
- package/Source/Shaders/Voxels/IntersectDepth.glsl +1 -1
- package/Source/Shaders/Voxels/IntersectDepth.js +1 -1
- package/Source/Shaders/Voxels/Intersection.glsl +10 -12
- package/Source/Shaders/Voxels/Intersection.js +10 -12
- package/Source/Shaders/Voxels/IntersectionUtils.glsl +52 -59
- package/Source/Shaders/Voxels/IntersectionUtils.js +52 -59
- package/Source/Shaders/Voxels/Octree.glsl +72 -73
- package/Source/Shaders/Voxels/Octree.js +72 -73
- package/Source/Shaders/Voxels/VoxelFS.glsl +42 -22
- package/Source/Shaders/Voxels/VoxelFS.js +42 -22
- package/Source/Shaders/Voxels/convertUvToBox.glsl +13 -5
- package/Source/Shaders/Voxels/convertUvToBox.js +13 -5
- package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +91 -91
- package/Source/ThirdParty/draco_decoder.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +78 -50
- package/Source/Workers/cesiumWorkerBootstrapper.js +18 -18
- package/Source/WorkersES6/createTaskProcessorWorker.js +3 -3
- package/index.d.ts +2172 -1432
- package/index.js +8 -3
- package/package.json +1 -1
- package/Source/Core/cancelAnimationFrame.js +0 -53
- package/Source/Core/requestAnimationFrame.js +0 -83
- /package/Build/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
|
@@ -52,6 +52,10 @@ import Pass from "../Renderer/Pass.js";
|
|
|
52
52
|
*
|
|
53
53
|
* @alias Cesium3DTile
|
|
54
54
|
* @constructor
|
|
55
|
+
* @param {Cesium3DTileset} tileset The tileset
|
|
56
|
+
* @param {Resource} baseResource The base resource for the tileset
|
|
57
|
+
* @param {object} header The JSON header for the tile
|
|
58
|
+
* @param {Cesium3DTile} parent The parent tile of the new tile
|
|
55
59
|
*/
|
|
56
60
|
function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
57
61
|
this._tileset = tileset;
|
|
@@ -138,7 +142,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
138
142
|
* The error, in meters, introduced if this tile is rendered and its children are not.
|
|
139
143
|
* This is used to compute screen space error, i.e., the error measured in pixels.
|
|
140
144
|
*
|
|
141
|
-
* @type {
|
|
145
|
+
* @type {number}
|
|
142
146
|
* @readonly
|
|
143
147
|
*/
|
|
144
148
|
this.geometricError = header.geometricError;
|
|
@@ -255,8 +259,6 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
255
259
|
this._content = content;
|
|
256
260
|
this._contentResource = contentResource;
|
|
257
261
|
this._contentState = contentState;
|
|
258
|
-
this._contentReadyToProcessPromise = undefined;
|
|
259
|
-
this._contentReadyPromise = undefined;
|
|
260
262
|
this._expiredContent = undefined;
|
|
261
263
|
|
|
262
264
|
this._serverKey = serverKey;
|
|
@@ -264,7 +266,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
264
266
|
/**
|
|
265
267
|
* When <code>true</code>, the tile has no content.
|
|
266
268
|
*
|
|
267
|
-
* @type {
|
|
269
|
+
* @type {boolean}
|
|
268
270
|
* @readonly
|
|
269
271
|
*
|
|
270
272
|
* @private
|
|
@@ -277,7 +279,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
277
279
|
* This is <code>false</code> until the tile's content is loaded.
|
|
278
280
|
* </p>
|
|
279
281
|
*
|
|
280
|
-
* @type {
|
|
282
|
+
* @type {boolean}
|
|
281
283
|
* @readonly
|
|
282
284
|
*
|
|
283
285
|
* @private
|
|
@@ -290,7 +292,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
290
292
|
* This is <code>false</code> until the tile's implicit content is loaded.
|
|
291
293
|
* </p>
|
|
292
294
|
*
|
|
293
|
-
* @type {
|
|
295
|
+
* @type {boolean}
|
|
294
296
|
* @readonly
|
|
295
297
|
*
|
|
296
298
|
* @private
|
|
@@ -305,7 +307,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
305
307
|
* This is <code>false</code> until the tile's content is loaded.
|
|
306
308
|
* </p>
|
|
307
309
|
*
|
|
308
|
-
* @type {
|
|
310
|
+
* @type {boolean}
|
|
309
311
|
* @readonly
|
|
310
312
|
*
|
|
311
313
|
* @private
|
|
@@ -319,7 +321,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
319
321
|
*
|
|
320
322
|
* @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_multiple_contents|3DTILES_multiple_contents extension}
|
|
321
323
|
*
|
|
322
|
-
* @type {
|
|
324
|
+
* @type {boolean}
|
|
323
325
|
* @readonly
|
|
324
326
|
*
|
|
325
327
|
* @private
|
|
@@ -362,7 +364,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
362
364
|
/**
|
|
363
365
|
* The time in seconds after the tile's content is ready when the content expires and new content is requested.
|
|
364
366
|
*
|
|
365
|
-
* @type {
|
|
367
|
+
* @type {number}
|
|
366
368
|
*/
|
|
367
369
|
this.expireDuration = expireDuration;
|
|
368
370
|
|
|
@@ -376,7 +378,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
376
378
|
/**
|
|
377
379
|
* The time when a style was last applied to this tile.
|
|
378
380
|
*
|
|
379
|
-
* @type {
|
|
381
|
+
* @type {number}
|
|
380
382
|
*
|
|
381
383
|
* @private
|
|
382
384
|
*/
|
|
@@ -395,7 +397,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
395
397
|
* Tracks if the tile's relationship with a ClippingPlaneCollection has changed with regards
|
|
396
398
|
* to the ClippingPlaneCollection's state.
|
|
397
399
|
*
|
|
398
|
-
* @type {
|
|
400
|
+
* @type {boolean}
|
|
399
401
|
*
|
|
400
402
|
* @private
|
|
401
403
|
*/
|
|
@@ -405,7 +407,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
|
|
|
405
407
|
* Tracks if the tile's request should be deferred until all non-deferred
|
|
406
408
|
* tiles load.
|
|
407
409
|
*
|
|
408
|
-
* @type {
|
|
410
|
+
* @type {boolean}
|
|
409
411
|
*
|
|
410
412
|
* @private
|
|
411
413
|
*/
|
|
@@ -574,13 +576,29 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
574
576
|
},
|
|
575
577
|
},
|
|
576
578
|
|
|
579
|
+
/**
|
|
580
|
+
* Determines if the tile is visible within the current field of view
|
|
581
|
+
*
|
|
582
|
+
* @memberof Cesium3DTile.prototype
|
|
583
|
+
*
|
|
584
|
+
* @type {boolean}
|
|
585
|
+
* @readonly
|
|
586
|
+
*
|
|
587
|
+
* @private
|
|
588
|
+
*/
|
|
589
|
+
isVisible: {
|
|
590
|
+
get: function () {
|
|
591
|
+
return this._visible && this._inRequestVolume;
|
|
592
|
+
},
|
|
593
|
+
},
|
|
594
|
+
|
|
577
595
|
/**
|
|
578
596
|
* Returns the <code>extras</code> property in the tileset JSON for this tile, which contains application specific metadata.
|
|
579
597
|
* Returns <code>undefined</code> if <code>extras</code> does not exist.
|
|
580
598
|
*
|
|
581
599
|
* @memberof Cesium3DTile.prototype
|
|
582
600
|
*
|
|
583
|
-
* @type {
|
|
601
|
+
* @type {object}
|
|
584
602
|
* @readonly
|
|
585
603
|
* @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification#specifying-extensions-and-application-specific-extras|Extras in the 3D Tiles specification.}
|
|
586
604
|
*/
|
|
@@ -614,6 +632,27 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
614
632
|
},
|
|
615
633
|
},
|
|
616
634
|
|
|
635
|
+
/**
|
|
636
|
+
* Determines if the tile's content is renderable. <code>false</code> if the
|
|
637
|
+
* tile has empty content or if it points to an external tileset or implicit content
|
|
638
|
+
*
|
|
639
|
+
* @memberof Cesium3DTile.prototype
|
|
640
|
+
*
|
|
641
|
+
* @type {boolean}
|
|
642
|
+
* @readonly
|
|
643
|
+
*
|
|
644
|
+
* @private
|
|
645
|
+
*/
|
|
646
|
+
hasRenderableContent: {
|
|
647
|
+
get: function () {
|
|
648
|
+
return (
|
|
649
|
+
!this.hasEmptyContent &&
|
|
650
|
+
!this.hasTilesetContent &&
|
|
651
|
+
!this.hasImplicitContent
|
|
652
|
+
);
|
|
653
|
+
},
|
|
654
|
+
},
|
|
655
|
+
|
|
617
656
|
/**
|
|
618
657
|
* Determines if the tile has available content to render. <code>true</code> if the tile's
|
|
619
658
|
* content is ready or if it has expired content that renders while new content loads; otherwise,
|
|
@@ -621,7 +660,7 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
621
660
|
*
|
|
622
661
|
* @memberof Cesium3DTile.prototype
|
|
623
662
|
*
|
|
624
|
-
* @type {
|
|
663
|
+
* @type {boolean}
|
|
625
664
|
* @readonly
|
|
626
665
|
*
|
|
627
666
|
* @private
|
|
@@ -629,10 +668,7 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
629
668
|
contentAvailable: {
|
|
630
669
|
get: function () {
|
|
631
670
|
return (
|
|
632
|
-
(this.contentReady &&
|
|
633
|
-
!this.hasEmptyContent &&
|
|
634
|
-
!this.hasTilesetContent &&
|
|
635
|
-
!this.hasImplicitContent) ||
|
|
671
|
+
(this.contentReady && this.hasRenderableContent) ||
|
|
636
672
|
(defined(this._expiredContent) && !this.contentFailed)
|
|
637
673
|
);
|
|
638
674
|
},
|
|
@@ -644,7 +680,7 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
644
680
|
*
|
|
645
681
|
* @memberof Cesium3DTile.prototype
|
|
646
682
|
*
|
|
647
|
-
* @type {
|
|
683
|
+
* @type {boolean}
|
|
648
684
|
* @readonly
|
|
649
685
|
*
|
|
650
686
|
* @private
|
|
@@ -661,7 +697,7 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
661
697
|
*
|
|
662
698
|
* @memberof Cesium3DTile.prototype
|
|
663
699
|
*
|
|
664
|
-
* @type {
|
|
700
|
+
* @type {boolean}
|
|
665
701
|
* @readonly
|
|
666
702
|
*
|
|
667
703
|
* @private
|
|
@@ -673,72 +709,52 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
673
709
|
},
|
|
674
710
|
|
|
675
711
|
/**
|
|
676
|
-
* Determines if the tile
|
|
677
|
-
* content is expired; otherwise, <code>false</code>.
|
|
712
|
+
* Determines if the tile has renderable content which is unloaded
|
|
678
713
|
*
|
|
679
714
|
* @memberof Cesium3DTile.prototype
|
|
680
715
|
*
|
|
681
|
-
* @type {
|
|
716
|
+
* @type {boolean}
|
|
682
717
|
* @readonly
|
|
683
718
|
*
|
|
684
719
|
* @private
|
|
685
720
|
*/
|
|
686
|
-
|
|
721
|
+
hasUnloadedRenderableContent: {
|
|
687
722
|
get: function () {
|
|
688
|
-
return this.
|
|
723
|
+
return this.hasRenderableContent && this.contentUnloaded;
|
|
689
724
|
},
|
|
690
725
|
},
|
|
691
726
|
|
|
692
727
|
/**
|
|
693
|
-
* Determines if the tile's content
|
|
694
|
-
* content
|
|
728
|
+
* Determines if the tile's content is expired. <code>true</code> if tile's
|
|
729
|
+
* content is expired; otherwise, <code>false</code>.
|
|
695
730
|
*
|
|
696
731
|
* @memberof Cesium3DTile.prototype
|
|
697
732
|
*
|
|
698
|
-
* @type {
|
|
733
|
+
* @type {boolean}
|
|
699
734
|
* @readonly
|
|
700
735
|
*
|
|
701
736
|
* @private
|
|
702
737
|
*/
|
|
703
|
-
|
|
738
|
+
contentExpired: {
|
|
704
739
|
get: function () {
|
|
705
|
-
return this._contentState === Cesium3DTileContentState.
|
|
740
|
+
return this._contentState === Cesium3DTileContentState.EXPIRED;
|
|
706
741
|
},
|
|
707
742
|
},
|
|
708
743
|
|
|
709
744
|
/**
|
|
710
|
-
*
|
|
711
|
-
*
|
|
712
|
-
* to render.
|
|
713
|
-
* <p>
|
|
714
|
-
* The promise remains <code>undefined</code> until the tile's content is requested.
|
|
715
|
-
* </p>
|
|
716
|
-
*
|
|
717
|
-
* @type {Promise.<Cesium3DTileContent>}
|
|
718
|
-
* @readonly
|
|
745
|
+
* Determines if the tile's content failed to load. <code>true</code> if the tile's
|
|
746
|
+
* content failed to load; otherwise, <code>false</code>.
|
|
719
747
|
*
|
|
720
|
-
* @
|
|
721
|
-
*/
|
|
722
|
-
contentReadyToProcessPromise: {
|
|
723
|
-
get: function () {
|
|
724
|
-
return this._contentReadyToProcessPromise;
|
|
725
|
-
},
|
|
726
|
-
},
|
|
727
|
-
|
|
728
|
-
/**
|
|
729
|
-
* Gets the promise that will be resolved when the tile's content is ready to render.
|
|
730
|
-
* <p>
|
|
731
|
-
* The promise remains <code>undefined</code> until the tile's content is requested.
|
|
732
|
-
* </p>
|
|
748
|
+
* @memberof Cesium3DTile.prototype
|
|
733
749
|
*
|
|
734
|
-
* @type {
|
|
750
|
+
* @type {boolean}
|
|
735
751
|
* @readonly
|
|
736
752
|
*
|
|
737
753
|
* @private
|
|
738
754
|
*/
|
|
739
|
-
|
|
755
|
+
contentFailed: {
|
|
740
756
|
get: function () {
|
|
741
|
-
return this.
|
|
757
|
+
return this._contentState === Cesium3DTileContentState.FAILED;
|
|
742
758
|
},
|
|
743
759
|
},
|
|
744
760
|
|
|
@@ -757,13 +773,20 @@ Object.defineProperties(Cesium3DTile.prototype, {
|
|
|
757
773
|
});
|
|
758
774
|
|
|
759
775
|
const scratchCartesian = new Cartesian3();
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* @private
|
|
779
|
+
* @param {Cesium3DTile} tile
|
|
780
|
+
* @param {FrameState} frameState
|
|
781
|
+
* @returns {Boolean}
|
|
782
|
+
*/
|
|
760
783
|
function isPriorityDeferred(tile, frameState) {
|
|
761
|
-
const tileset = tile
|
|
784
|
+
const { tileset, boundingSphere } = tile;
|
|
785
|
+
const { radius, center } = boundingSphere;
|
|
786
|
+
const { camera } = frameState;
|
|
762
787
|
|
|
763
|
-
// If closest point on line is inside the sphere then set foveatedFactor to 0.
|
|
764
|
-
|
|
765
|
-
const boundingSphere = tile.boundingSphere;
|
|
766
|
-
const radius = boundingSphere.radius;
|
|
788
|
+
// If closest point on line is inside the sphere then set foveatedFactor to 0.
|
|
789
|
+
// Otherwise, the dot product is with the line from camera to the point on the sphere that is closest to the line.
|
|
767
790
|
const scaledCameraDirection = Cartesian3.multiplyByScalar(
|
|
768
791
|
camera.directionWC,
|
|
769
792
|
tile._centerZDepth,
|
|
@@ -777,7 +800,7 @@ function isPriorityDeferred(tile, frameState) {
|
|
|
777
800
|
// The distance from the camera's view direction to the tile.
|
|
778
801
|
const toLine = Cartesian3.subtract(
|
|
779
802
|
closestPointOnLine,
|
|
780
|
-
|
|
803
|
+
center,
|
|
781
804
|
scratchCartesian
|
|
782
805
|
);
|
|
783
806
|
const distanceToCenterLine = Cartesian3.magnitude(toLine);
|
|
@@ -795,7 +818,7 @@ function isPriorityDeferred(tile, frameState) {
|
|
|
795
818
|
scratchCartesian
|
|
796
819
|
);
|
|
797
820
|
const closestOnSphere = Cartesian3.add(
|
|
798
|
-
|
|
821
|
+
center,
|
|
799
822
|
scaledToLine,
|
|
800
823
|
scratchCartesian
|
|
801
824
|
);
|
|
@@ -818,7 +841,7 @@ function isPriorityDeferred(tile, frameState) {
|
|
|
818
841
|
// Skip this feature if: non-skipLevelOfDetail and replace refine, if the foveated settings are turned off, if tile is progressive resolution and replace refine and skipLevelOfDetail (will help get rid of ancestor artifacts faster)
|
|
819
842
|
// Or if the tile is a preload of any kind
|
|
820
843
|
const replace = tile.refine === Cesium3DTileRefine.REPLACE;
|
|
821
|
-
const skipLevelOfDetail = tileset.
|
|
844
|
+
const skipLevelOfDetail = tileset.isSkippingLevelOfDetail;
|
|
822
845
|
if (
|
|
823
846
|
(replace && !skipLevelOfDetail) ||
|
|
824
847
|
!tileset.foveatedScreenSpaceError ||
|
|
@@ -864,6 +887,9 @@ const scratchJulianDate = new JulianDate();
|
|
|
864
887
|
* Get the tile's screen space error.
|
|
865
888
|
*
|
|
866
889
|
* @private
|
|
890
|
+
* @param {FrameState} frameState
|
|
891
|
+
* @param {Boolean} useParentGeometricError
|
|
892
|
+
* @param {number} progressiveResolutionHeightFraction
|
|
867
893
|
*/
|
|
868
894
|
Cesium3DTile.prototype.getScreenSpaceError = function (
|
|
869
895
|
frameState,
|
|
@@ -882,9 +908,8 @@ Cesium3DTile.prototype.getScreenSpaceError = function (
|
|
|
882
908
|
// Leaf tiles do not have any error so save the computation
|
|
883
909
|
return 0.0;
|
|
884
910
|
}
|
|
885
|
-
const camera = frameState
|
|
911
|
+
const { camera, context } = frameState;
|
|
886
912
|
let frustum = camera.frustum;
|
|
887
|
-
const context = frameState.context;
|
|
888
913
|
const width = context.drawingBufferWidth;
|
|
889
914
|
const height = context.drawingBufferHeight * heightFraction;
|
|
890
915
|
let error;
|
|
@@ -902,7 +927,7 @@ Cesium3DTile.prototype.getScreenSpaceError = function (
|
|
|
902
927
|
} else {
|
|
903
928
|
// Avoid divide by zero when viewer is inside the tile
|
|
904
929
|
const distance = Math.max(this._distanceToCamera, CesiumMath.EPSILON7);
|
|
905
|
-
const sseDenominator =
|
|
930
|
+
const sseDenominator = frustum.sseDenominator;
|
|
906
931
|
error = (geometricError * height) / (distance * sseDenominator);
|
|
907
932
|
if (tileset.dynamicScreenSpaceError) {
|
|
908
933
|
const density = tileset._dynamicScreenSpaceErrorComputedDensity;
|
|
@@ -917,6 +942,12 @@ Cesium3DTile.prototype.getScreenSpaceError = function (
|
|
|
917
942
|
return error;
|
|
918
943
|
};
|
|
919
944
|
|
|
945
|
+
/**
|
|
946
|
+
* @private
|
|
947
|
+
* @param {Cesium3DTileset} tileset
|
|
948
|
+
* @param {Cesium3DTile} tile
|
|
949
|
+
* @returns {Boolean}
|
|
950
|
+
*/
|
|
920
951
|
function isPriorityProgressiveResolution(tileset, tile) {
|
|
921
952
|
if (
|
|
922
953
|
tileset.progressiveResolutionHeightFraction <= 0.0 ||
|
|
@@ -944,11 +975,17 @@ function isPriorityProgressiveResolution(tileset, tile) {
|
|
|
944
975
|
return isProgressiveResolutionTile;
|
|
945
976
|
}
|
|
946
977
|
|
|
978
|
+
/**
|
|
979
|
+
* @private
|
|
980
|
+
* @param {Cesium3DTileset} tileset
|
|
981
|
+
* @param {Cesium3DTile} tile
|
|
982
|
+
* @returns {number}
|
|
983
|
+
*/
|
|
947
984
|
function getPriorityReverseScreenSpaceError(tileset, tile) {
|
|
948
985
|
const parent = tile.parent;
|
|
949
986
|
const useParentScreenSpaceError =
|
|
950
987
|
defined(parent) &&
|
|
951
|
-
(!tileset.
|
|
988
|
+
(!tileset.isSkippingLevelOfDetail ||
|
|
952
989
|
tile._screenSpaceError === 0.0 ||
|
|
953
990
|
parent.hasTilesetContent ||
|
|
954
991
|
parent.hasImplicitContent);
|
|
@@ -962,10 +999,15 @@ function getPriorityReverseScreenSpaceError(tileset, tile) {
|
|
|
962
999
|
* Update the tile's visibility.
|
|
963
1000
|
*
|
|
964
1001
|
* @private
|
|
1002
|
+
* @param {FrameState} frameState
|
|
965
1003
|
*/
|
|
966
1004
|
Cesium3DTile.prototype.updateVisibility = function (frameState) {
|
|
967
|
-
const parent = this
|
|
968
|
-
|
|
1005
|
+
const { parent, tileset } = this;
|
|
1006
|
+
if (this._updatedVisibilityFrame === tileset._updatedVisibilityFrame) {
|
|
1007
|
+
// The tile has already been updated for this frame
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
969
1011
|
const parentTransform = defined(parent)
|
|
970
1012
|
? parent.computedTransform
|
|
971
1013
|
: tileset.modelMatrix;
|
|
@@ -996,6 +1038,8 @@ Cesium3DTile.prototype.updateVisibility = function (frameState) {
|
|
|
996
1038
|
this
|
|
997
1039
|
);
|
|
998
1040
|
this.priorityDeferred = isPriorityDeferred(this, frameState);
|
|
1041
|
+
|
|
1042
|
+
this._updatedVisibilityFrame = tileset._updatedVisibilityFrame;
|
|
999
1043
|
};
|
|
1000
1044
|
|
|
1001
1045
|
/**
|
|
@@ -1018,25 +1062,35 @@ Cesium3DTile.prototype.updateExpiration = function () {
|
|
|
1018
1062
|
}
|
|
1019
1063
|
};
|
|
1020
1064
|
|
|
1065
|
+
/**
|
|
1066
|
+
* @private
|
|
1067
|
+
* @param {Cesium3DTile} tile
|
|
1068
|
+
*/
|
|
1021
1069
|
function updateExpireDate(tile) {
|
|
1022
|
-
if (defined(tile.expireDuration)) {
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1070
|
+
if (!defined(tile.expireDuration)) {
|
|
1071
|
+
return;
|
|
1072
|
+
}
|
|
1073
|
+
const expireDurationDate = JulianDate.now(scratchJulianDate);
|
|
1074
|
+
JulianDate.addSeconds(
|
|
1075
|
+
expireDurationDate,
|
|
1076
|
+
tile.expireDuration,
|
|
1077
|
+
expireDurationDate
|
|
1078
|
+
);
|
|
1029
1079
|
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
}
|
|
1034
|
-
} else {
|
|
1035
|
-
tile.expireDate = JulianDate.clone(expireDurationDate);
|
|
1080
|
+
if (defined(tile.expireDate)) {
|
|
1081
|
+
if (JulianDate.lessThan(tile.expireDate, expireDurationDate)) {
|
|
1082
|
+
JulianDate.clone(expireDurationDate, tile.expireDate);
|
|
1036
1083
|
}
|
|
1084
|
+
} else {
|
|
1085
|
+
tile.expireDate = JulianDate.clone(expireDurationDate);
|
|
1037
1086
|
}
|
|
1038
1087
|
}
|
|
1039
1088
|
|
|
1089
|
+
/**
|
|
1090
|
+
* @private
|
|
1091
|
+
* @param {Cesium3DTile} tile
|
|
1092
|
+
* @returns {Function}
|
|
1093
|
+
*/
|
|
1040
1094
|
function createPriorityFunction(tile) {
|
|
1041
1095
|
return function () {
|
|
1042
1096
|
return tile._priority;
|
|
@@ -1049,13 +1103,13 @@ function createPriorityFunction(tile) {
|
|
|
1049
1103
|
* The request may not be made if the Cesium Request Scheduler can't prioritize it.
|
|
1050
1104
|
* </p>
|
|
1051
1105
|
*
|
|
1052
|
-
* @return {
|
|
1106
|
+
* @return {Promise<Cesium3DTileContent>|undefined} A promise that resolves when the request completes, or undefined if there is no request needed, or the request cannot be scheduled.
|
|
1053
1107
|
* @private
|
|
1054
1108
|
*/
|
|
1055
1109
|
Cesium3DTile.prototype.requestContent = function () {
|
|
1056
1110
|
// empty contents don't require any HTTP requests
|
|
1057
1111
|
if (this.hasEmptyContent) {
|
|
1058
|
-
return
|
|
1112
|
+
return;
|
|
1059
1113
|
}
|
|
1060
1114
|
|
|
1061
1115
|
if (this.hasMultipleContents) {
|
|
@@ -1076,6 +1130,8 @@ Cesium3DTile.prototype.requestContent = function () {
|
|
|
1076
1130
|
* </p>
|
|
1077
1131
|
*
|
|
1078
1132
|
* @private
|
|
1133
|
+
* @param {Cesium3DTile} tile
|
|
1134
|
+
* @returns {Promise<Cesium3DTileContent>|Promise<undefined>|undefined} A promise that resolves to the tile content once loaded, or a promise that resolves to undefined if the request was cancelled mid-flight, or undefined if the request cannot be scheduled this frame
|
|
1079
1135
|
*/
|
|
1080
1136
|
function requestMultipleContents(tile) {
|
|
1081
1137
|
let multipleContents = tile._content;
|
|
@@ -1097,86 +1153,120 @@ function requestMultipleContents(tile) {
|
|
|
1097
1153
|
tile._content = multipleContents;
|
|
1098
1154
|
}
|
|
1099
1155
|
|
|
1100
|
-
const
|
|
1101
|
-
|
|
1102
|
-
|
|
1156
|
+
const promise = multipleContents.requestInnerContents();
|
|
1157
|
+
|
|
1158
|
+
if (!defined(promise)) {
|
|
1159
|
+
// Request could not all be scheduled this frame
|
|
1160
|
+
return;
|
|
1103
1161
|
}
|
|
1104
1162
|
|
|
1105
1163
|
tile._contentState = Cesium3DTileContentState.LOADING;
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
if (
|
|
1109
|
-
tile._contentState !== Cesium3DTileContentState.LOADING ||
|
|
1110
|
-
!defined(multipleContents.readyPromise)
|
|
1111
|
-
) {
|
|
1112
|
-
// The tile or one of the inner content requests was canceled,
|
|
1113
|
-
// short circuit.
|
|
1114
|
-
return;
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1164
|
+
return promise
|
|
1165
|
+
.then((content) => {
|
|
1117
1166
|
if (tile.isDestroyed()) {
|
|
1118
|
-
|
|
1119
|
-
tile,
|
|
1120
|
-
tileset,
|
|
1121
|
-
"Tile was unloaded while content was loading"
|
|
1122
|
-
);
|
|
1167
|
+
// Tile is unloaded before the content can process
|
|
1123
1168
|
return;
|
|
1124
1169
|
}
|
|
1125
1170
|
|
|
1126
|
-
|
|
1127
|
-
return multipleContents;
|
|
1128
|
-
}
|
|
1129
|
-
);
|
|
1130
|
-
tile._contentReadyToProcessPromise = contentReadyToProcessPromise;
|
|
1131
|
-
tile._contentReadyPromise = contentReadyToProcessPromise
|
|
1132
|
-
.then(function (content) {
|
|
1171
|
+
// Tile was canceled, try again later
|
|
1133
1172
|
if (!defined(content)) {
|
|
1134
|
-
// request was canceled, short circuit.
|
|
1135
1173
|
return;
|
|
1136
1174
|
}
|
|
1137
1175
|
|
|
1138
|
-
|
|
1176
|
+
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1177
|
+
return multipleContents;
|
|
1139
1178
|
})
|
|
1140
|
-
.
|
|
1141
|
-
if (!defined(content)) {
|
|
1142
|
-
// tile was canceled, short circuit.
|
|
1143
|
-
return;
|
|
1144
|
-
}
|
|
1145
|
-
|
|
1179
|
+
.catch((error) => {
|
|
1146
1180
|
if (tile.isDestroyed()) {
|
|
1147
|
-
|
|
1148
|
-
tile,
|
|
1149
|
-
tileset,
|
|
1150
|
-
"Tile was unloaded while content was processing"
|
|
1151
|
-
);
|
|
1181
|
+
// Tile is unloaded before the content can process
|
|
1152
1182
|
return;
|
|
1153
1183
|
}
|
|
1154
1184
|
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
tile.lastStyleTime = 0.0;
|
|
1158
|
-
|
|
1159
|
-
JulianDate.now(tile._loadTimestamp);
|
|
1160
|
-
tile._contentState = Cesium3DTileContentState.READY;
|
|
1161
|
-
return content;
|
|
1162
|
-
})
|
|
1163
|
-
.catch(function (error) {
|
|
1164
|
-
multipleContentFailed(tile, tileset, error);
|
|
1185
|
+
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1186
|
+
throw error;
|
|
1165
1187
|
});
|
|
1166
|
-
|
|
1167
|
-
return 0;
|
|
1168
1188
|
}
|
|
1169
1189
|
|
|
1170
|
-
function
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1190
|
+
async function processArrayBuffer(
|
|
1191
|
+
tile,
|
|
1192
|
+
tileset,
|
|
1193
|
+
request,
|
|
1194
|
+
expired,
|
|
1195
|
+
requestPromise
|
|
1196
|
+
) {
|
|
1197
|
+
const previousState = tile._contentState;
|
|
1198
|
+
tile._contentState = Cesium3DTileContentState.LOADING;
|
|
1199
|
+
++tileset.statistics.numberOfPendingRequests;
|
|
1200
|
+
|
|
1201
|
+
let arrayBuffer;
|
|
1202
|
+
try {
|
|
1203
|
+
arrayBuffer = await requestPromise;
|
|
1204
|
+
} catch (error) {
|
|
1205
|
+
--tileset.statistics.numberOfPendingRequests;
|
|
1206
|
+
if (tile.isDestroyed()) {
|
|
1207
|
+
// Tile is unloaded before the content can process
|
|
1208
|
+
return;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
if (request.cancelled || request.state === RequestState.CANCELLED) {
|
|
1212
|
+
// Cancelled due to low priority - try again later.
|
|
1213
|
+
tile._contentState = previousState;
|
|
1214
|
+
++tileset.statistics.numberOfAttemptedRequests;
|
|
1215
|
+
return;
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1219
|
+
throw error;
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
if (tile.isDestroyed()) {
|
|
1223
|
+
--tileset.statistics.numberOfPendingRequests;
|
|
1224
|
+
// Tile is unloaded before the content can process
|
|
1225
|
+
return;
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
if (request.cancelled || request.state === RequestState.CANCELLED) {
|
|
1229
|
+
// Cancelled due to low priority - try again later.
|
|
1230
|
+
tile._contentState = previousState;
|
|
1231
|
+
--tileset.statistics.numberOfPendingRequests;
|
|
1232
|
+
++tileset.statistics.numberOfAttemptedRequests;
|
|
1233
|
+
return;
|
|
1175
1234
|
}
|
|
1176
1235
|
|
|
1177
|
-
|
|
1236
|
+
try {
|
|
1237
|
+
const content = await makeContent(tile, arrayBuffer);
|
|
1238
|
+
--tileset.statistics.numberOfPendingRequests;
|
|
1239
|
+
|
|
1240
|
+
if (tile.isDestroyed()) {
|
|
1241
|
+
// Tile is unloaded before the content can process
|
|
1242
|
+
return;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
if (expired) {
|
|
1246
|
+
tile.expireDate = undefined;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
tile._content = content;
|
|
1250
|
+
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1251
|
+
|
|
1252
|
+
return content;
|
|
1253
|
+
} catch (error) {
|
|
1254
|
+
--tileset.statistics.numberOfPendingRequests;
|
|
1255
|
+
if (tile.isDestroyed()) {
|
|
1256
|
+
// Tile is unloaded before the content can process
|
|
1257
|
+
return;
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1261
|
+
throw error;
|
|
1262
|
+
}
|
|
1178
1263
|
}
|
|
1179
1264
|
|
|
1265
|
+
/**
|
|
1266
|
+
* @private
|
|
1267
|
+
* @param {Cesium3DTile} tile
|
|
1268
|
+
* @returns {Promise<Cesium3DTileContent>|Promise<undefined>|undefined} A promise that resolves to the tile content once loaded; a promise that resolves to undefined if the tile was destroyed before processing can happen or the request was cancelled mid-flight; or undefined if the request cannot be scheduled this frame.
|
|
1269
|
+
*/
|
|
1180
1270
|
function requestSingleContent(tile) {
|
|
1181
1271
|
// it is important to clone here. The fetchArrayBuffer() below uses
|
|
1182
1272
|
// throttling, but other uses of the resources do not.
|
|
@@ -1199,85 +1289,14 @@ function requestSingleContent(tile) {
|
|
|
1199
1289
|
|
|
1200
1290
|
tile._request = request;
|
|
1201
1291
|
resource.request = request;
|
|
1202
|
-
|
|
1292
|
+
const tileset = tile._tileset;
|
|
1203
1293
|
const promise = resource.fetchArrayBuffer();
|
|
1204
1294
|
if (!defined(promise)) {
|
|
1205
|
-
|
|
1295
|
+
++tileset.statistics.numberOfAttemptedRequests;
|
|
1296
|
+
return;
|
|
1206
1297
|
}
|
|
1207
1298
|
|
|
1208
|
-
|
|
1209
|
-
const tileset = tile._tileset;
|
|
1210
|
-
tile._contentState = Cesium3DTileContentState.LOADING;
|
|
1211
|
-
++tileset.statistics.numberOfPendingRequests;
|
|
1212
|
-
const contentReadyToProcessPromise = promise.then(function (arrayBuffer) {
|
|
1213
|
-
if (tile.isDestroyed()) {
|
|
1214
|
-
// Tile is unloaded before the content finishes loading
|
|
1215
|
-
singleContentFailed(tile, tileset);
|
|
1216
|
-
return;
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
const content = makeContent(tile, arrayBuffer);
|
|
1220
|
-
|
|
1221
|
-
if (expired) {
|
|
1222
|
-
tile.expireDate = undefined;
|
|
1223
|
-
}
|
|
1224
|
-
|
|
1225
|
-
tile._content = content;
|
|
1226
|
-
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1227
|
-
return content;
|
|
1228
|
-
});
|
|
1229
|
-
tile._contentReadyToProcessPromise = contentReadyToProcessPromise;
|
|
1230
|
-
tile._contentReadyPromise = contentReadyToProcessPromise
|
|
1231
|
-
.then(function (content) {
|
|
1232
|
-
if (!defined(content)) {
|
|
1233
|
-
return;
|
|
1234
|
-
}
|
|
1235
|
-
|
|
1236
|
-
--tileset.statistics.numberOfPendingRequests;
|
|
1237
|
-
return content.readyPromise;
|
|
1238
|
-
})
|
|
1239
|
-
.then(function (content) {
|
|
1240
|
-
if (!defined(content)) {
|
|
1241
|
-
return;
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
if (tile.isDestroyed()) {
|
|
1245
|
-
// Tile is unloaded before the content finishes processing
|
|
1246
|
-
singleContentFailed(tile, tileset);
|
|
1247
|
-
return;
|
|
1248
|
-
}
|
|
1249
|
-
updateExpireDate(tile);
|
|
1250
|
-
|
|
1251
|
-
// Refresh style for expired content
|
|
1252
|
-
tile._selectedFrame = 0;
|
|
1253
|
-
tile.lastStyleTime = 0.0;
|
|
1254
|
-
|
|
1255
|
-
JulianDate.now(tile._loadTimestamp);
|
|
1256
|
-
tile._contentState = Cesium3DTileContentState.READY;
|
|
1257
|
-
return content;
|
|
1258
|
-
})
|
|
1259
|
-
.catch(function (error) {
|
|
1260
|
-
if (request.state === RequestState.CANCELLED) {
|
|
1261
|
-
// Cancelled due to low priority - try again later.
|
|
1262
|
-
tile._contentState = previousState;
|
|
1263
|
-
--tileset.statistics.numberOfPendingRequests;
|
|
1264
|
-
++tileset.statistics.numberOfAttemptedRequests;
|
|
1265
|
-
return Promise.reject("Cancelled");
|
|
1266
|
-
}
|
|
1267
|
-
singleContentFailed(tile, tileset);
|
|
1268
|
-
return Promise.reject(error);
|
|
1269
|
-
});
|
|
1270
|
-
|
|
1271
|
-
return 0;
|
|
1272
|
-
}
|
|
1273
|
-
|
|
1274
|
-
function singleContentFailed(tile, tileset) {
|
|
1275
|
-
if (tile._contentState === Cesium3DTileContentState.PROCESSING) {
|
|
1276
|
-
--tileset.statistics.numberOfTilesProcessing;
|
|
1277
|
-
} else {
|
|
1278
|
-
--tileset.statistics.numberOfPendingRequests;
|
|
1279
|
-
}
|
|
1280
|
-
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1299
|
+
return processArrayBuffer(tile, tileset, request, expired, promise);
|
|
1281
1300
|
}
|
|
1282
1301
|
|
|
1283
1302
|
/**
|
|
@@ -1288,10 +1307,10 @@ function singleContentFailed(tile, tileset) {
|
|
|
1288
1307
|
*
|
|
1289
1308
|
* @param {Cesium3DTile} tile The tile
|
|
1290
1309
|
* @param {ArrayBuffer} arrayBuffer The downloaded payload containing data for the content
|
|
1291
|
-
* @return {Cesium3DTileContent} A content object
|
|
1310
|
+
* @return {Promise<Cesium3DTileContent>} A content object
|
|
1292
1311
|
* @private
|
|
1293
1312
|
*/
|
|
1294
|
-
function makeContent(tile, arrayBuffer) {
|
|
1313
|
+
async function makeContent(tile, arrayBuffer) {
|
|
1295
1314
|
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
1296
1315
|
|
|
1297
1316
|
// Vector and Geometry tile rendering do not support the skip LOD optimization.
|
|
@@ -1314,21 +1333,29 @@ function makeContent(tile, arrayBuffer) {
|
|
|
1314
1333
|
|
|
1315
1334
|
let content;
|
|
1316
1335
|
const contentFactory = Cesium3DTileContentFactory[preprocessed.contentType];
|
|
1336
|
+
if (tile.isDestroyed()) {
|
|
1337
|
+
return;
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1317
1340
|
if (defined(preprocessed.binaryPayload)) {
|
|
1318
|
-
content =
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1341
|
+
content = await Promise.resolve(
|
|
1342
|
+
contentFactory(
|
|
1343
|
+
tileset,
|
|
1344
|
+
tile,
|
|
1345
|
+
tile._contentResource,
|
|
1346
|
+
preprocessed.binaryPayload.buffer,
|
|
1347
|
+
0
|
|
1348
|
+
)
|
|
1324
1349
|
);
|
|
1325
1350
|
} else {
|
|
1326
1351
|
// JSON formats
|
|
1327
|
-
content =
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1352
|
+
content = await Promise.resolve(
|
|
1353
|
+
contentFactory(
|
|
1354
|
+
tileset,
|
|
1355
|
+
tile,
|
|
1356
|
+
tile._contentResource,
|
|
1357
|
+
preprocessed.jsonPayload
|
|
1358
|
+
)
|
|
1332
1359
|
);
|
|
1333
1360
|
}
|
|
1334
1361
|
|
|
@@ -1372,18 +1399,12 @@ Cesium3DTile.prototype.cancelRequests = function () {
|
|
|
1372
1399
|
* @private
|
|
1373
1400
|
*/
|
|
1374
1401
|
Cesium3DTile.prototype.unloadContent = function () {
|
|
1375
|
-
if (
|
|
1376
|
-
this.hasEmptyContent ||
|
|
1377
|
-
this.hasTilesetContent ||
|
|
1378
|
-
this.hasImplicitContent
|
|
1379
|
-
) {
|
|
1402
|
+
if (!this.hasRenderableContent) {
|
|
1380
1403
|
return;
|
|
1381
1404
|
}
|
|
1382
1405
|
|
|
1383
1406
|
this._content = this._content && this._content.destroy();
|
|
1384
1407
|
this._contentState = Cesium3DTileContentState.UNLOADED;
|
|
1385
|
-
this._contentReadyToProcessPromise = undefined;
|
|
1386
|
-
this._contentReadyPromise = undefined;
|
|
1387
1408
|
|
|
1388
1409
|
this.lastStyleTime = 0.0;
|
|
1389
1410
|
this.clippingPlanesDirty = this._clippingPlanesState === 0;
|
|
@@ -1402,6 +1423,12 @@ Cesium3DTile.prototype.unloadContent = function () {
|
|
|
1402
1423
|
|
|
1403
1424
|
const scratchProjectedBoundingSphere = new BoundingSphere();
|
|
1404
1425
|
|
|
1426
|
+
/**
|
|
1427
|
+
* @private
|
|
1428
|
+
* @param {Cesium3DTile} tile
|
|
1429
|
+
* @param {FrameState} frameState
|
|
1430
|
+
* @returns {TileBoundingVolume}
|
|
1431
|
+
*/
|
|
1405
1432
|
function getBoundingVolume(tile, frameState) {
|
|
1406
1433
|
if (
|
|
1407
1434
|
frameState.mode !== SceneMode.SCENE3D &&
|
|
@@ -1424,6 +1451,12 @@ function getBoundingVolume(tile, frameState) {
|
|
|
1424
1451
|
: tile._boundingVolume;
|
|
1425
1452
|
}
|
|
1426
1453
|
|
|
1454
|
+
/**
|
|
1455
|
+
* @private
|
|
1456
|
+
* @param {Cesium3DTile} tile
|
|
1457
|
+
* @param {FrameState} frameState
|
|
1458
|
+
* @returns {TileBoundingVolume}
|
|
1459
|
+
*/
|
|
1427
1460
|
function getContentBoundingVolume(tile, frameState) {
|
|
1428
1461
|
if (
|
|
1429
1462
|
frameState.mode !== SceneMode.SCENE3D &&
|
|
@@ -1449,8 +1482,8 @@ function getContentBoundingVolume(tile, frameState) {
|
|
|
1449
1482
|
* Determines whether the tile's bounding volume intersects the culling volume.
|
|
1450
1483
|
*
|
|
1451
1484
|
* @param {FrameState} frameState The frame state.
|
|
1452
|
-
* @param {
|
|
1453
|
-
* @returns {
|
|
1485
|
+
* @param {number} parentVisibilityPlaneMask The parent's plane mask to speed up the visibility check.
|
|
1486
|
+
* @returns {number} A plane mask as described above in {@link CullingVolume#computeVisibilityWithPlaneMask}.
|
|
1454
1487
|
*
|
|
1455
1488
|
* @private
|
|
1456
1489
|
*/
|
|
@@ -1527,7 +1560,7 @@ Cesium3DTile.prototype.contentVisibility = function (frameState) {
|
|
|
1527
1560
|
* Computes the (potentially approximate) distance from the closest point of the tile's bounding volume to the camera.
|
|
1528
1561
|
*
|
|
1529
1562
|
* @param {FrameState} frameState The frame state.
|
|
1530
|
-
* @returns {
|
|
1563
|
+
* @returns {number} The distance, in meters, or zero if the camera is inside the bounding volume.
|
|
1531
1564
|
*
|
|
1532
1565
|
* @private
|
|
1533
1566
|
*/
|
|
@@ -1542,7 +1575,7 @@ const scratchToTileCenter = new Cartesian3();
|
|
|
1542
1575
|
* Computes the distance from the center of the tile's bounding volume to the camera's plane defined by its position and view direction.
|
|
1543
1576
|
*
|
|
1544
1577
|
* @param {FrameState} frameState The frame state.
|
|
1545
|
-
* @returns {
|
|
1578
|
+
* @returns {number} The distance, in meters.
|
|
1546
1579
|
*
|
|
1547
1580
|
* @private
|
|
1548
1581
|
*/
|
|
@@ -1561,7 +1594,7 @@ Cesium3DTile.prototype.distanceToTileCenter = function (frameState) {
|
|
|
1561
1594
|
* Checks if the camera is inside the viewer request volume.
|
|
1562
1595
|
*
|
|
1563
1596
|
* @param {FrameState} frameState The frame state.
|
|
1564
|
-
* @returns {
|
|
1597
|
+
* @returns {boolean} Whether the camera is inside the volume.
|
|
1565
1598
|
*
|
|
1566
1599
|
* @private
|
|
1567
1600
|
*/
|
|
@@ -1581,6 +1614,13 @@ const scratchRectangle = new Rectangle();
|
|
|
1581
1614
|
const scratchOrientedBoundingBox = new OrientedBoundingBox();
|
|
1582
1615
|
const scratchTransform = new Matrix4();
|
|
1583
1616
|
|
|
1617
|
+
/**
|
|
1618
|
+
* @private
|
|
1619
|
+
* @param {Array} box An array of 12 numbers that define an oriented bounding box
|
|
1620
|
+
* @param {Matrix4} transform
|
|
1621
|
+
* @param {TileBoundingVolume} [result]
|
|
1622
|
+
* @returns {TileOrientedBoundingBox}
|
|
1623
|
+
*/
|
|
1584
1624
|
function createBox(box, transform, result) {
|
|
1585
1625
|
let center = Cartesian3.fromElements(box[0], box[1], box[2], scratchCenter);
|
|
1586
1626
|
let halfAxes = Matrix3.fromArray(box, 3, scratchHalfAxes);
|
|
@@ -1597,6 +1637,14 @@ function createBox(box, transform, result) {
|
|
|
1597
1637
|
return new TileOrientedBoundingBox(center, halfAxes);
|
|
1598
1638
|
}
|
|
1599
1639
|
|
|
1640
|
+
/**
|
|
1641
|
+
* @private
|
|
1642
|
+
* @param {Array} region An array of six numbers that define a bounding geographic region in EPSG:4979 coordinates with the order [west, south, east, north, minimum height, maximum height]
|
|
1643
|
+
* @param {Matrix4} transform
|
|
1644
|
+
* @param {Matrix4} initialTransform
|
|
1645
|
+
* @param {TileOrientedBoundingBox} [result]
|
|
1646
|
+
* @returns {TileOrientedBoundingBox}
|
|
1647
|
+
*/
|
|
1600
1648
|
function createBoxFromTransformedRegion(
|
|
1601
1649
|
region,
|
|
1602
1650
|
transform,
|
|
@@ -1637,6 +1685,14 @@ function createBoxFromTransformedRegion(
|
|
|
1637
1685
|
return new TileOrientedBoundingBox(center, halfAxes);
|
|
1638
1686
|
}
|
|
1639
1687
|
|
|
1688
|
+
/**
|
|
1689
|
+
* @private
|
|
1690
|
+
* @param {Array} region An array of six numbers that define a bounding geographic region in EPSG:4979 coordinates with the order [west, south, east, north, minimum height, maximum height]
|
|
1691
|
+
* @param {Matrix4} transform
|
|
1692
|
+
* @param {Matrix4} initialTransform
|
|
1693
|
+
* @param {TileBoundingVolume} [result]
|
|
1694
|
+
* @returns {TileBoundingVolume}
|
|
1695
|
+
*/
|
|
1640
1696
|
function createRegion(region, transform, initialTransform, result) {
|
|
1641
1697
|
if (
|
|
1642
1698
|
!Matrix4.equalsEpsilon(transform, initialTransform, CesiumMath.EPSILON8)
|
|
@@ -1662,6 +1718,13 @@ function createRegion(region, transform, initialTransform, result) {
|
|
|
1662
1718
|
});
|
|
1663
1719
|
}
|
|
1664
1720
|
|
|
1721
|
+
/**
|
|
1722
|
+
* @private
|
|
1723
|
+
* @param {Array} sphere An array of four numbers that define a bounding sphere
|
|
1724
|
+
* @param {Matrix4} transform
|
|
1725
|
+
* @param {TileBoundingVolume} [result]
|
|
1726
|
+
* @returns {TileBoundingSphere}
|
|
1727
|
+
*/
|
|
1665
1728
|
function createSphere(sphere, transform, result) {
|
|
1666
1729
|
let center = Cartesian3.fromElements(
|
|
1667
1730
|
sphere[0],
|
|
@@ -1687,7 +1750,7 @@ function createSphere(sphere, transform, result) {
|
|
|
1687
1750
|
/**
|
|
1688
1751
|
* Create a bounding volume from the tile's bounding volume header.
|
|
1689
1752
|
*
|
|
1690
|
-
* @param {
|
|
1753
|
+
* @param {object} boundingVolumeHeader The tile's bounding volume header.
|
|
1691
1754
|
* @param {Matrix4} transform The transform to apply to the bounding volume.
|
|
1692
1755
|
* @param {TileBoundingVolume} [result] The object onto which to store the result.
|
|
1693
1756
|
*
|
|
@@ -1710,19 +1773,15 @@ Cesium3DTile.prototype.createBoundingVolume = function (
|
|
|
1710
1773
|
);
|
|
1711
1774
|
}
|
|
1712
1775
|
|
|
1713
|
-
|
|
1714
|
-
|
|
1776
|
+
const { box, region, sphere } = boundingVolumeHeader;
|
|
1777
|
+
if (defined(box)) {
|
|
1778
|
+
return createBox(box, transform, result);
|
|
1715
1779
|
}
|
|
1716
|
-
if (defined(
|
|
1717
|
-
return createRegion(
|
|
1718
|
-
boundingVolumeHeader.region,
|
|
1719
|
-
transform,
|
|
1720
|
-
this._initialTransform,
|
|
1721
|
-
result
|
|
1722
|
-
);
|
|
1780
|
+
if (defined(region)) {
|
|
1781
|
+
return createRegion(region, transform, this._initialTransform, result);
|
|
1723
1782
|
}
|
|
1724
|
-
if (defined(
|
|
1725
|
-
return createSphere(
|
|
1783
|
+
if (defined(sphere)) {
|
|
1784
|
+
return createSphere(sphere, transform, result);
|
|
1726
1785
|
}
|
|
1727
1786
|
throw new RuntimeError(
|
|
1728
1787
|
"boundingVolume must contain a sphere, region, or box"
|
|
@@ -1733,6 +1792,7 @@ Cesium3DTile.prototype.createBoundingVolume = function (
|
|
|
1733
1792
|
* Update the tile's transform. The transform is applied to the tile's bounding volumes.
|
|
1734
1793
|
*
|
|
1735
1794
|
* @private
|
|
1795
|
+
* @param {Matrix4} parentTransform
|
|
1736
1796
|
*/
|
|
1737
1797
|
Cesium3DTile.prototype.updateTransform = function (parentTransform) {
|
|
1738
1798
|
parentTransform = defaultValue(parentTransform, Matrix4.IDENTITY);
|
|
@@ -1799,6 +1859,13 @@ Cesium3DTile.prototype.updateGeometricErrorScale = function () {
|
|
|
1799
1859
|
}
|
|
1800
1860
|
};
|
|
1801
1861
|
|
|
1862
|
+
/**
|
|
1863
|
+
* @private
|
|
1864
|
+
* @param {Cesium3DTile} tile
|
|
1865
|
+
* @param {Cesium3DTileset} tileset
|
|
1866
|
+
* @param {FrameState} frameState
|
|
1867
|
+
* @param {object} passOptions
|
|
1868
|
+
*/
|
|
1802
1869
|
function applyDebugSettings(tile, tileset, frameState, passOptions) {
|
|
1803
1870
|
if (!passOptions.isRender) {
|
|
1804
1871
|
return;
|
|
@@ -1806,8 +1873,6 @@ function applyDebugSettings(tile, tileset, frameState, passOptions) {
|
|
|
1806
1873
|
|
|
1807
1874
|
const hasContentBoundingVolume =
|
|
1808
1875
|
defined(tile._contentHeader) && defined(tile._contentHeader.boundingVolume);
|
|
1809
|
-
const empty =
|
|
1810
|
-
tile.hasEmptyContent || tile.hasTilesetContent || tile.hasImplicitContent;
|
|
1811
1876
|
|
|
1812
1877
|
const showVolume =
|
|
1813
1878
|
tileset.debugShowBoundingVolume ||
|
|
@@ -1816,7 +1881,7 @@ function applyDebugSettings(tile, tileset, frameState, passOptions) {
|
|
|
1816
1881
|
let color;
|
|
1817
1882
|
if (!tile._finalResolution) {
|
|
1818
1883
|
color = Color.YELLOW;
|
|
1819
|
-
} else if (
|
|
1884
|
+
} else if (!tile.hasRenderableContent) {
|
|
1820
1885
|
color = Color.DARKGRAY;
|
|
1821
1886
|
} else {
|
|
1822
1887
|
color = Color.WHITE;
|
|
@@ -1892,15 +1957,24 @@ function applyDebugSettings(tile, tileset, frameState, passOptions) {
|
|
|
1892
1957
|
}
|
|
1893
1958
|
}
|
|
1894
1959
|
|
|
1960
|
+
/**
|
|
1961
|
+
* @private
|
|
1962
|
+
* @param {Cesium3DTile} tile
|
|
1963
|
+
* @param {Cesium3DTileset} tileset
|
|
1964
|
+
* @param {FrameState} frameState
|
|
1965
|
+
*/
|
|
1895
1966
|
function updateContent(tile, tileset, frameState) {
|
|
1896
|
-
const content = tile._content;
|
|
1897
1967
|
const expiredContent = tile._expiredContent;
|
|
1898
1968
|
|
|
1899
1969
|
// expired content is not supported for multiple contents
|
|
1900
1970
|
if (!tile.hasMultipleContents && defined(expiredContent)) {
|
|
1901
1971
|
if (!tile.contentReady) {
|
|
1902
1972
|
// Render the expired content while the content loads
|
|
1903
|
-
|
|
1973
|
+
try {
|
|
1974
|
+
expiredContent.update(tileset, frameState);
|
|
1975
|
+
} catch (error) {
|
|
1976
|
+
// Eat error for expired content
|
|
1977
|
+
}
|
|
1904
1978
|
return;
|
|
1905
1979
|
}
|
|
1906
1980
|
|
|
@@ -1909,14 +1983,30 @@ function updateContent(tile, tileset, frameState) {
|
|
|
1909
1983
|
tile._expiredContent = undefined;
|
|
1910
1984
|
}
|
|
1911
1985
|
|
|
1912
|
-
content
|
|
1986
|
+
if (!defined(tile.content)) {
|
|
1987
|
+
// Implicit placeholder tile
|
|
1988
|
+
return;
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1991
|
+
try {
|
|
1992
|
+
tile.content.update(tileset, frameState);
|
|
1993
|
+
} catch (error) {
|
|
1994
|
+
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1995
|
+
throw error;
|
|
1996
|
+
}
|
|
1913
1997
|
}
|
|
1914
1998
|
|
|
1999
|
+
/**
|
|
2000
|
+
* Compute and compare ClippingPlanes state:
|
|
2001
|
+
* - enabled-ness - are clipping planes enabled? is this tile clipped?
|
|
2002
|
+
* - clipping plane count
|
|
2003
|
+
* - clipping function (union v. intersection)
|
|
2004
|
+
|
|
2005
|
+
* @private
|
|
2006
|
+
* @param {Cesium3DTile} tile
|
|
2007
|
+
* @param {Cesium3DTileset} tileset
|
|
2008
|
+
*/
|
|
1915
2009
|
function updateClippingPlanes(tile, tileset) {
|
|
1916
|
-
// Compute and compare ClippingPlanes state:
|
|
1917
|
-
// - enabled-ness - are clipping planes enabled? is this tile clipped?
|
|
1918
|
-
// - clipping plane count
|
|
1919
|
-
// - clipping function (union v. intersection)
|
|
1920
2010
|
const clippingPlanes = tileset.clippingPlanes;
|
|
1921
2011
|
let currentClippingPlanesState = 0;
|
|
1922
2012
|
if (defined(clippingPlanes) && tile._isClipped && clippingPlanes.enabled) {
|
|
@@ -1933,20 +2023,23 @@ function updateClippingPlanes(tile, tileset) {
|
|
|
1933
2023
|
* Get the draw commands needed to render this tile.
|
|
1934
2024
|
*
|
|
1935
2025
|
* @private
|
|
2026
|
+
* @param {Cesium3DTileset} tileset
|
|
2027
|
+
* @param {FrameState} frameState
|
|
2028
|
+
* @param {object} passOptions
|
|
1936
2029
|
*/
|
|
1937
2030
|
Cesium3DTile.prototype.update = function (tileset, frameState, passOptions) {
|
|
1938
|
-
const
|
|
2031
|
+
const { commandList } = frameState;
|
|
2032
|
+
const commandStart = commandList.length;
|
|
1939
2033
|
|
|
1940
2034
|
updateClippingPlanes(this, tileset);
|
|
1941
2035
|
applyDebugSettings(this, tileset, frameState, passOptions);
|
|
1942
2036
|
updateContent(this, tileset, frameState);
|
|
1943
2037
|
|
|
1944
|
-
const commandEnd =
|
|
1945
|
-
|
|
1946
|
-
this._commandsLength = commandsLength;
|
|
2038
|
+
const commandEnd = commandList.length;
|
|
2039
|
+
this._commandsLength = commandEnd - commandStart;
|
|
1947
2040
|
|
|
1948
|
-
for (let i =
|
|
1949
|
-
const command =
|
|
2041
|
+
for (let i = commandStart; i < commandEnd; ++i) {
|
|
2042
|
+
const command = commandList[i];
|
|
1950
2043
|
const translucent = command.pass === Pass.TRANSLUCENT;
|
|
1951
2044
|
command.depthForTranslucentClassification = translucent;
|
|
1952
2045
|
}
|
|
@@ -1965,26 +2058,68 @@ const scratchCommandList = [];
|
|
|
1965
2058
|
* @private
|
|
1966
2059
|
*/
|
|
1967
2060
|
Cesium3DTile.prototype.process = function (tileset, frameState) {
|
|
2061
|
+
if (!this.contentExpired && !this.contentReady && this._content.ready) {
|
|
2062
|
+
updateExpireDate(this);
|
|
2063
|
+
|
|
2064
|
+
// Refresh style for expired content
|
|
2065
|
+
this._selectedFrame = 0;
|
|
2066
|
+
this.lastStyleTime = 0.0;
|
|
2067
|
+
|
|
2068
|
+
JulianDate.now(this._loadTimestamp);
|
|
2069
|
+
this._contentState = Cesium3DTileContentState.READY;
|
|
2070
|
+
|
|
2071
|
+
if (!this.hasTilesetContent && !this.hasImplicitContent) {
|
|
2072
|
+
// RESEARCH_IDEA: ability to unload tiles (without content) for an
|
|
2073
|
+
// external tileset when all the tiles are unloaded.
|
|
2074
|
+
tileset._statistics.incrementLoadCounts(this.content);
|
|
2075
|
+
++tileset._statistics.numberOfTilesWithContentReady;
|
|
2076
|
+
++tileset._statistics.numberOfLoadedTilesTotal;
|
|
2077
|
+
|
|
2078
|
+
// Add to the tile cache. Previously expired tiles are already in the cache and won't get re-added.
|
|
2079
|
+
tileset._cache.add(this);
|
|
2080
|
+
}
|
|
2081
|
+
}
|
|
2082
|
+
|
|
1968
2083
|
const savedCommandList = frameState.commandList;
|
|
1969
2084
|
frameState.commandList = scratchCommandList;
|
|
1970
2085
|
|
|
1971
|
-
|
|
2086
|
+
try {
|
|
2087
|
+
this._content.update(tileset, frameState);
|
|
2088
|
+
} catch (error) {
|
|
2089
|
+
this._contentState = Cesium3DTileContentState.FAILED;
|
|
2090
|
+
throw error;
|
|
2091
|
+
}
|
|
1972
2092
|
|
|
1973
2093
|
scratchCommandList.length = 0;
|
|
1974
2094
|
frameState.commandList = savedCommandList;
|
|
1975
2095
|
};
|
|
1976
2096
|
|
|
2097
|
+
/**
|
|
2098
|
+
* @private
|
|
2099
|
+
* @param {number} normalizedValue
|
|
2100
|
+
* @param {number} numberOfDigits
|
|
2101
|
+
* @param {number} leftShift
|
|
2102
|
+
* @returns {number}
|
|
2103
|
+
*/
|
|
1977
2104
|
function isolateDigits(normalizedValue, numberOfDigits, leftShift) {
|
|
1978
2105
|
const scaled = normalizedValue * Math.pow(10, numberOfDigits);
|
|
1979
2106
|
const integer = parseInt(scaled);
|
|
1980
2107
|
return integer * Math.pow(10, leftShift);
|
|
1981
2108
|
}
|
|
1982
2109
|
|
|
2110
|
+
/**
|
|
2111
|
+
* @private
|
|
2112
|
+
* @param {number} value
|
|
2113
|
+
* @param {number} minimum
|
|
2114
|
+
* @param {number} maximum
|
|
2115
|
+
* @returns {number}
|
|
2116
|
+
*/
|
|
1983
2117
|
function priorityNormalizeAndClamp(value, minimum, maximum) {
|
|
2118
|
+
// Subtract epsilon since we only want decimal digits present in the output.
|
|
1984
2119
|
return Math.max(
|
|
1985
2120
|
CesiumMath.normalize(value, minimum, maximum) - CesiumMath.EPSILON7,
|
|
1986
2121
|
0.0
|
|
1987
|
-
);
|
|
2122
|
+
);
|
|
1988
2123
|
}
|
|
1989
2124
|
|
|
1990
2125
|
/**
|
|
@@ -2044,7 +2179,8 @@ Cesium3DTile.prototype.updatePriority = function () {
|
|
|
2044
2179
|
|
|
2045
2180
|
// Map 0-1 then convert to digit. Include a distance sort when doing non-skipLOD and replacement refinement, helps things like non-skipLOD photogrammetry
|
|
2046
2181
|
const useDistance =
|
|
2047
|
-
!tileset.
|
|
2182
|
+
!tileset.isSkippingLevelOfDetail &&
|
|
2183
|
+
this.refine === Cesium3DTileRefine.REPLACE;
|
|
2048
2184
|
const normalizedPreferredSorting = useDistance
|
|
2049
2185
|
? priorityNormalizeAndClamp(
|
|
2050
2186
|
this._priorityHolder._distanceToCamera,
|
|
@@ -2118,4 +2254,5 @@ Cesium3DTile.prototype.destroy = function () {
|
|
|
2118
2254
|
this._debugViewerRequestVolume && this._debugViewerRequestVolume.destroy();
|
|
2119
2255
|
return destroyObject(this);
|
|
2120
2256
|
};
|
|
2257
|
+
|
|
2121
2258
|
export default Cesium3DTile;
|