@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
|
@@ -59,7 +59,7 @@ const Material = ModelComponents.Material;
|
|
|
59
59
|
* States of the glTF loading process. These states also apply to
|
|
60
60
|
* asynchronous texture loading unless otherwise noted
|
|
61
61
|
*
|
|
62
|
-
* @enum {
|
|
62
|
+
* @enum {number}
|
|
63
63
|
*
|
|
64
64
|
* @private
|
|
65
65
|
*/
|
|
@@ -67,7 +67,7 @@ const GltfLoaderState = {
|
|
|
67
67
|
/**
|
|
68
68
|
* The initial state of the glTF loader before load() is called.
|
|
69
69
|
*
|
|
70
|
-
* @type {
|
|
70
|
+
* @type {number}
|
|
71
71
|
* @constant
|
|
72
72
|
*
|
|
73
73
|
* @private
|
|
@@ -77,7 +77,7 @@ const GltfLoaderState = {
|
|
|
77
77
|
* The state of the loader while waiting for the glTF JSON loader promise
|
|
78
78
|
* to resolve.
|
|
79
79
|
*
|
|
80
|
-
* @type {
|
|
80
|
+
* @type {number}
|
|
81
81
|
* @constant
|
|
82
82
|
*
|
|
83
83
|
* @private
|
|
@@ -87,16 +87,20 @@ const GltfLoaderState = {
|
|
|
87
87
|
* The state of the loader once the glTF JSON is loaded but before
|
|
88
88
|
* process() is called.
|
|
89
89
|
*
|
|
90
|
-
* @type {
|
|
90
|
+
* @type {number}
|
|
91
91
|
* @constant
|
|
92
|
+
*
|
|
93
|
+
* @private
|
|
92
94
|
*/
|
|
93
95
|
LOADED: 2,
|
|
94
96
|
/**
|
|
95
97
|
* The state of the loader while parsing the glTF and creating GPU resources
|
|
96
98
|
* as needed.
|
|
97
99
|
*
|
|
98
|
-
* @type {
|
|
100
|
+
* @type {number}
|
|
99
101
|
* @constant
|
|
102
|
+
*
|
|
103
|
+
* @private
|
|
100
104
|
*/
|
|
101
105
|
PROCESSING: 3,
|
|
102
106
|
/**
|
|
@@ -107,8 +111,10 @@ const GltfLoaderState = {
|
|
|
107
111
|
* This state is not used for asynchronous texture loading.
|
|
108
112
|
* </p>
|
|
109
113
|
*
|
|
110
|
-
* @type {
|
|
114
|
+
* @type {number}
|
|
111
115
|
* @constant
|
|
116
|
+
*
|
|
117
|
+
* @private
|
|
112
118
|
*/
|
|
113
119
|
POST_PROCESSING: 4,
|
|
114
120
|
/**
|
|
@@ -116,30 +122,38 @@ const GltfLoaderState = {
|
|
|
116
122
|
* enters the processed state (sometimes from a promise chain). The next
|
|
117
123
|
* call to process() will advance to the ready state.
|
|
118
124
|
*
|
|
119
|
-
* @type {
|
|
125
|
+
* @type {number}
|
|
120
126
|
* @constant
|
|
127
|
+
*
|
|
128
|
+
* @private
|
|
121
129
|
*/
|
|
122
130
|
PROCESSED: 5,
|
|
123
131
|
/**
|
|
124
132
|
* When the loader reaches the ready state, the loaders' promise will be
|
|
125
133
|
* resolved.
|
|
126
134
|
*
|
|
127
|
-
* @type {
|
|
135
|
+
* @type {number}
|
|
128
136
|
* @constant
|
|
137
|
+
*
|
|
138
|
+
* @private
|
|
129
139
|
*/
|
|
130
140
|
READY: 6,
|
|
131
141
|
/**
|
|
132
142
|
* If an error occurs at any point, the loader switches to the failed state.
|
|
133
143
|
*
|
|
134
|
-
* @type {
|
|
144
|
+
* @type {number}
|
|
135
145
|
* @constant
|
|
146
|
+
*
|
|
147
|
+
* @private
|
|
136
148
|
*/
|
|
137
149
|
FAILED: 7,
|
|
138
150
|
/**
|
|
139
151
|
* If unload() is called, the loader switches to the unloaded state.
|
|
140
152
|
*
|
|
141
|
-
* @type {
|
|
153
|
+
* @type {number}
|
|
142
154
|
* @constant
|
|
155
|
+
*
|
|
156
|
+
* @private
|
|
143
157
|
*/
|
|
144
158
|
UNLOADED: 8,
|
|
145
159
|
};
|
|
@@ -154,22 +168,22 @@ const GltfLoaderState = {
|
|
|
154
168
|
* @constructor
|
|
155
169
|
* @augments ResourceLoader
|
|
156
170
|
*
|
|
157
|
-
* @param {
|
|
171
|
+
* @param {object} options Object with the following properties:
|
|
158
172
|
* @param {Resource} options.gltfResource The {@link Resource} containing the glTF. This is often the path of the .gltf or .glb file, but may also be the path of the .b3dm, .i3dm, or .cmpt file containing the embedded glb. .cmpt resources should have a URI fragment indicating the index of the inner content to which the glb belongs in order to individually identify the glb in the cache, e.g. http://example.com/tile.cmpt#index=2.
|
|
159
173
|
* @param {Resource} [options.baseResource] The {@link Resource} that paths in the glTF JSON are relative to.
|
|
160
174
|
* @param {Uint8Array} [options.typedArray] The typed array containing the glTF contents, e.g. from a .b3dm, .i3dm, or .cmpt file.
|
|
161
|
-
* @param {
|
|
162
|
-
* @param {
|
|
163
|
-
* @param {
|
|
164
|
-
* @param {
|
|
175
|
+
* @param {object} [options.gltfJson] A parsed glTF JSON file instead of passing it in as a typed array.
|
|
176
|
+
* @param {boolean} [options.releaseGltfJson=false] When true, the glTF JSON is released once the glTF is loaded. This is especially useful for cases like 3D Tiles, where each .gltf model is unique and caching the glTF JSON is not effective.
|
|
177
|
+
* @param {boolean} [options.asynchronous=true] Determines if WebGL resource creation will be spread out over several frames or block until all WebGL resources are created.
|
|
178
|
+
* @param {boolean} [options.incrementallyLoadTextures=true] Determine if textures may continue to stream in after the glTF is loaded.
|
|
165
179
|
* @param {Axis} [options.upAxis=Axis.Y] The up-axis of the glTF model.
|
|
166
180
|
* @param {Axis} [options.forwardAxis=Axis.Z] The forward-axis of the glTF model.
|
|
167
|
-
* @param {
|
|
168
|
-
* @param {
|
|
169
|
-
* @param {
|
|
170
|
-
* @param {
|
|
171
|
-
* @param {
|
|
172
|
-
* @param {
|
|
181
|
+
* @param {boolean} [options.loadAttributesAsTypedArray=false] Load all attributes and indices as typed arrays instead of GPU buffers. If the attributes are interleaved in the glTF they will be de-interleaved in the typed array.
|
|
182
|
+
* @param {boolean} [options.loadAttributesFor2D=false] If <code>true</code>, load the positions buffer and any instanced attribute buffers as typed arrays for accurately projecting models to 2D.
|
|
183
|
+
* @param {boolean} [options.loadIndicesForWireframe=false] If <code>true</code>, load the index buffer as both a buffer and typed array. The latter is useful for creating wireframe indices in WebGL1.
|
|
184
|
+
* @param {boolean} [options.loadPrimitiveOutline=true] If <code>true</code>, load outlines from the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set false to avoid post-processing geometry at load time.
|
|
185
|
+
* @param {boolean} [options.loadForClassification=false] If <code>true</code> and if the model has feature IDs, load the feature IDs and indices as typed arrays. This is useful for batching features for classification.
|
|
186
|
+
* @param {boolean} [options.renameBatchIdSemantic=false] If <code>true</code>, rename _BATCHID or BATCHID to _FEATURE_ID_0. This is used for .b3dm models
|
|
173
187
|
* @private
|
|
174
188
|
*/
|
|
175
189
|
function GltfLoader(options) {
|
|
@@ -242,9 +256,8 @@ function GltfLoader(options) {
|
|
|
242
256
|
this._state = GltfLoaderState.NOT_LOADED;
|
|
243
257
|
this._textureState = GltfLoaderState.NOT_LOADED;
|
|
244
258
|
this._promise = undefined;
|
|
245
|
-
this.
|
|
246
|
-
this.
|
|
247
|
-
this._processTextures = function (loader, frameState) {};
|
|
259
|
+
this._processError = undefined;
|
|
260
|
+
this._textureErrors = [];
|
|
248
261
|
|
|
249
262
|
// Information about whether to load primitives as typed arrays or buffers,
|
|
250
263
|
// and whether post-processing is needed after loading (e.g. for
|
|
@@ -255,9 +268,14 @@ function GltfLoader(options) {
|
|
|
255
268
|
this._loaderPromises = [];
|
|
256
269
|
this._textureLoaders = [];
|
|
257
270
|
this._texturesPromises = [];
|
|
271
|
+
this._textureCallbacks = [];
|
|
258
272
|
this._bufferViewLoaders = [];
|
|
259
273
|
this._geometryLoaders = [];
|
|
274
|
+
this._geometryCallbacks = [];
|
|
260
275
|
this._structuralMetadataLoader = undefined;
|
|
276
|
+
this._loadResourcesPromise = undefined;
|
|
277
|
+
this._resourcesLoaded = false;
|
|
278
|
+
this._texturesLoaded = false;
|
|
261
279
|
|
|
262
280
|
// In some cases where geometry post-processing is needed (like generating
|
|
263
281
|
// outlines) new attributes are added that may have GPU resources attached.
|
|
@@ -275,231 +293,223 @@ if (defined(Object.create)) {
|
|
|
275
293
|
|
|
276
294
|
Object.defineProperties(GltfLoader.prototype, {
|
|
277
295
|
/**
|
|
278
|
-
*
|
|
296
|
+
* The cache key of the resource.
|
|
279
297
|
*
|
|
280
298
|
* @memberof GltfLoader.prototype
|
|
281
299
|
*
|
|
282
|
-
* @type {
|
|
300
|
+
* @type {string}
|
|
283
301
|
* @readonly
|
|
284
302
|
* @private
|
|
285
303
|
*/
|
|
286
|
-
|
|
304
|
+
cacheKey: {
|
|
287
305
|
get: function () {
|
|
288
|
-
return
|
|
306
|
+
return undefined;
|
|
289
307
|
},
|
|
290
308
|
},
|
|
291
309
|
/**
|
|
292
|
-
* The
|
|
310
|
+
* The loaded components.
|
|
293
311
|
*
|
|
294
312
|
* @memberof GltfLoader.prototype
|
|
295
313
|
*
|
|
296
|
-
* @type {
|
|
314
|
+
* @type {ModelComponents.Components}
|
|
297
315
|
* @readonly
|
|
298
316
|
* @private
|
|
299
317
|
*/
|
|
300
|
-
|
|
318
|
+
components: {
|
|
301
319
|
get: function () {
|
|
302
|
-
return
|
|
320
|
+
return this._components;
|
|
303
321
|
},
|
|
304
322
|
},
|
|
305
323
|
/**
|
|
306
|
-
* The loaded
|
|
324
|
+
* The loaded glTF json.
|
|
307
325
|
*
|
|
308
326
|
* @memberof GltfLoader.prototype
|
|
309
327
|
*
|
|
310
|
-
* @type {
|
|
328
|
+
* @type {object}
|
|
311
329
|
* @readonly
|
|
312
330
|
* @private
|
|
313
331
|
*/
|
|
314
|
-
|
|
332
|
+
gltfJson: {
|
|
315
333
|
get: function () {
|
|
316
|
-
|
|
334
|
+
if (defined(this._gltfJsonLoader)) {
|
|
335
|
+
return this._gltfJsonLoader.gltf;
|
|
336
|
+
}
|
|
337
|
+
return this._gltfJson;
|
|
317
338
|
},
|
|
318
339
|
},
|
|
319
|
-
|
|
320
340
|
/**
|
|
321
|
-
*
|
|
322
|
-
* When <code>incrementallyLoadTextures</code> is true this may resolve after
|
|
323
|
-
* <code>promise</code> resolves.
|
|
341
|
+
* Returns true if textures are loaded separately from the other glTF resources.
|
|
324
342
|
*
|
|
325
343
|
* @memberof GltfLoader.prototype
|
|
326
344
|
*
|
|
327
|
-
* @type {
|
|
345
|
+
* @type {boolean}
|
|
328
346
|
* @readonly
|
|
329
347
|
* @private
|
|
330
348
|
*/
|
|
331
|
-
|
|
349
|
+
incrementallyLoadTextures: {
|
|
332
350
|
get: function () {
|
|
333
|
-
return this.
|
|
351
|
+
return this._incrementallyLoadTextures;
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
/**
|
|
355
|
+
* true if textures are loaded, useful when incrementallyLoadTextures is true
|
|
356
|
+
*
|
|
357
|
+
* @memberof GltfLoader.prototype
|
|
358
|
+
*
|
|
359
|
+
* @type {boolean}
|
|
360
|
+
* @readonly
|
|
361
|
+
* @private
|
|
362
|
+
*/
|
|
363
|
+
texturesLoaded: {
|
|
364
|
+
get: function () {
|
|
365
|
+
return this._texturesLoaded;
|
|
334
366
|
},
|
|
335
367
|
},
|
|
336
368
|
});
|
|
337
369
|
|
|
338
370
|
/**
|
|
339
|
-
* Loads the
|
|
340
|
-
* @returns {Promise.<GltfLoader>} A promise which resolves to the loader when the resource loading is completed.
|
|
341
|
-
* @private
|
|
371
|
+
* Loads the gltf object
|
|
342
372
|
*/
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
373
|
+
async function loadGltfJson(loader) {
|
|
374
|
+
loader._state = GltfLoaderState.LOADING;
|
|
375
|
+
loader._textureState = GltfLoaderState.LOADING;
|
|
376
|
+
|
|
377
|
+
try {
|
|
378
|
+
const gltfJsonLoader = ResourceCache.getGltfJsonLoader({
|
|
379
|
+
gltfResource: loader._gltfResource,
|
|
380
|
+
baseResource: loader._baseResource,
|
|
381
|
+
typedArray: loader._typedArray,
|
|
382
|
+
gltfJson: loader._gltfJson,
|
|
383
|
+
});
|
|
384
|
+
loader._gltfJsonLoader = gltfJsonLoader;
|
|
385
|
+
await gltfJsonLoader.load();
|
|
354
386
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
resolveTextures,
|
|
360
|
-
rejectTextures
|
|
387
|
+
if (
|
|
388
|
+
loader.isDestroyed() ||
|
|
389
|
+
loader.isUnloaded() ||
|
|
390
|
+
gltfJsonLoader.isDestroyed()
|
|
361
391
|
) {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
FeatureDetection.supportsWebP.initialize();
|
|
365
|
-
return;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (loader._state === GltfLoaderState.LOADED) {
|
|
369
|
-
loader._state = GltfLoaderState.PROCESSING;
|
|
370
|
-
|
|
371
|
-
const supportedImageFormats = new SupportedImageFormats({
|
|
372
|
-
webp: FeatureDetection.supportsWebP(),
|
|
373
|
-
basis: frameState.context.supportsBasis,
|
|
374
|
-
});
|
|
375
|
-
|
|
376
|
-
let gltf;
|
|
377
|
-
if (defined(loader._gltfJsonLoader)) {
|
|
378
|
-
gltf = loader._gltfJsonLoader.gltf;
|
|
379
|
-
} else {
|
|
380
|
-
gltf = loader._gltfJson;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
// Parse the glTF which populates the loaders arrays. The promise will
|
|
384
|
-
// resolve once all the loaders are ready (i.e. all external resources
|
|
385
|
-
// have been fetched and all GPU resources have been created). Loaders that
|
|
386
|
-
// create GPU resources need to be processed every frame until they become
|
|
387
|
-
// ready since the JobScheduler is not able to execute all jobs in a single
|
|
388
|
-
// frame. Also note that it's fine to call process before a loader is ready
|
|
389
|
-
// to process; nothing will happen.
|
|
390
|
-
parse(
|
|
391
|
-
loader,
|
|
392
|
-
gltf,
|
|
393
|
-
supportedImageFormats,
|
|
394
|
-
frameState,
|
|
395
|
-
reject,
|
|
396
|
-
rejectTextures
|
|
397
|
-
);
|
|
398
|
-
|
|
399
|
-
if (defined(loader._gltfJsonLoader) && loader._releaseGltfJson) {
|
|
400
|
-
// Check that the glTF JSON loader is still defined before trying to unload it.
|
|
401
|
-
// It may be undefined if the ready promise rejects immediately (which can happen in unit tests)
|
|
402
|
-
ResourceCache.unload(loader._gltfJsonLoader);
|
|
403
|
-
loader._gltfJsonLoader = undefined;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
406
394
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
395
|
+
const gltf = gltfJsonLoader.gltf;
|
|
396
|
+
const version = gltf.asset.version;
|
|
397
|
+
if (version !== "1.0" && version !== "2.0") {
|
|
398
|
+
const url = loader._gltfResource.url;
|
|
399
|
+
throw new RuntimeError(
|
|
400
|
+
`Failed to load ${url}: \nUnsupported glTF version: ${version}`
|
|
401
|
+
);
|
|
402
|
+
}
|
|
410
403
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
}
|
|
404
|
+
const extensionsRequired = gltf.extensionsRequired;
|
|
405
|
+
if (defined(extensionsRequired)) {
|
|
406
|
+
ModelUtility.checkSupportedExtensions(extensionsRequired);
|
|
415
407
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
408
|
+
// Check for the KHR_mesh_quantization extension here, it will be used later
|
|
409
|
+
// in loadAttribute().
|
|
410
|
+
loader._hasKhrMeshQuantization = extensionsRequired.includes(
|
|
411
|
+
"KHR_mesh_quantization"
|
|
412
|
+
);
|
|
413
|
+
}
|
|
419
414
|
|
|
420
|
-
|
|
421
|
-
|
|
415
|
+
loader._state = GltfLoaderState.LOADED;
|
|
416
|
+
loader._textureState = GltfLoaderState.LOADED;
|
|
422
417
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
418
|
+
return loader;
|
|
419
|
+
} catch (error) {
|
|
420
|
+
if (loader.isDestroyed()) {
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
427
423
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
424
|
+
loader._state = GltfLoaderState.FAILED;
|
|
425
|
+
loader._textureState = GltfLoaderState.FAILED;
|
|
426
|
+
handleError(loader, error);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
432
429
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
for (i = 0; i < textureLoadersLength; ++i) {
|
|
438
|
-
textureLoaders[i].process(frameState);
|
|
439
|
-
}
|
|
440
|
-
}
|
|
430
|
+
async function loadResources(loader, frameState) {
|
|
431
|
+
if (!FeatureDetection.supportsWebP.initialized) {
|
|
432
|
+
await FeatureDetection.supportsWebP.initialize();
|
|
433
|
+
}
|
|
441
434
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}
|
|
446
|
-
};
|
|
447
|
-
});
|
|
435
|
+
const supportedImageFormats = new SupportedImageFormats({
|
|
436
|
+
webp: FeatureDetection.supportsWebP(),
|
|
437
|
+
basis: frameState.context.supportsBasis,
|
|
448
438
|
});
|
|
449
439
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
440
|
+
// Parse the glTF which populates the loaders arrays. Loading promises will be created, and will
|
|
441
|
+
// resolve once the loaders are ready (i.e. all external resources
|
|
442
|
+
// have been fetched and all GPU resources have been created). Loaders that
|
|
443
|
+
// create GPU resources need to be processed every frame until they become
|
|
444
|
+
// ready since the JobScheduler is not able to execute all jobs in a single
|
|
445
|
+
// frame. Any promise failures are collected, and will be handled synchronously in process(). Also note that it's fine to call process before a loader is ready
|
|
446
|
+
// to process or after it has failed; nothing will happen.
|
|
447
|
+
const gltf = loader.gltfJson;
|
|
448
|
+
const promise = parse(loader, gltf, supportedImageFormats, frameState);
|
|
457
449
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
if (that.isDestroyed()) {
|
|
462
|
-
return;
|
|
463
|
-
}
|
|
464
|
-
that._state = GltfLoaderState.FAILED;
|
|
465
|
-
that._textureState = GltfLoaderState.FAILED;
|
|
466
|
-
return handleError(that, error);
|
|
467
|
-
});
|
|
450
|
+
// All resource loaders have been created, so we can begin processing
|
|
451
|
+
loader._state = GltfLoaderState.PROCESSING;
|
|
452
|
+
loader._textureState = GltfLoaderState.PROCESSING;
|
|
468
453
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
454
|
+
if (defined(loader._gltfJsonLoader) && loader._releaseGltfJson) {
|
|
455
|
+
// Check that the glTF JSON loader is still defined before trying to unload it.
|
|
456
|
+
// It can be unloaded if the glTF loader is destroyed.
|
|
457
|
+
ResourceCache.unload(loader._gltfJsonLoader);
|
|
458
|
+
loader._gltfJsonLoader = undefined;
|
|
459
|
+
}
|
|
473
460
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
461
|
+
return promise;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Loads the resource.
|
|
466
|
+
* @returns {Promise.<GltfLoader>} A promise which resolves to the loader when the resource loading is completed.
|
|
467
|
+
* @exception {RuntimeError} Unsupported glTF version
|
|
468
|
+
* @exception {RuntimeError} Unsupported glTF Extension
|
|
469
|
+
* @private
|
|
470
|
+
*/
|
|
471
|
+
GltfLoader.prototype.load = async function () {
|
|
472
|
+
if (defined(this._promise)) {
|
|
473
|
+
return this._promise;
|
|
474
|
+
}
|
|
477
475
|
|
|
476
|
+
this._promise = loadGltfJson(this);
|
|
478
477
|
return this._promise;
|
|
479
478
|
};
|
|
480
479
|
|
|
481
480
|
function handleError(gltfLoader, error) {
|
|
482
481
|
gltfLoader.unload();
|
|
483
482
|
const errorMessage = "Failed to load glTF";
|
|
484
|
-
|
|
485
|
-
return Promise.reject(error);
|
|
483
|
+
throw gltfLoader.getError(errorMessage, error);
|
|
486
484
|
}
|
|
487
485
|
|
|
488
486
|
function processLoaders(loader, frameState) {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
for (let i = 0; i < bufferViewLoadersLength; ++i) {
|
|
492
|
-
bufferViewLoaders[i].process(frameState);
|
|
493
|
-
}
|
|
494
|
-
|
|
487
|
+
let i;
|
|
488
|
+
let ready = true;
|
|
495
489
|
const geometryLoaders = loader._geometryLoaders;
|
|
496
490
|
const geometryLoadersLength = geometryLoaders.length;
|
|
497
|
-
for (
|
|
498
|
-
geometryLoaders[i].process(frameState);
|
|
491
|
+
for (i = 0; i < geometryLoadersLength; ++i) {
|
|
492
|
+
const geometryReady = geometryLoaders[i].process(frameState);
|
|
493
|
+
if (geometryReady && defined(loader._geometryCallbacks[i])) {
|
|
494
|
+
loader._geometryCallbacks[i]();
|
|
495
|
+
loader._geometryCallbacks[i] = undefined;
|
|
496
|
+
}
|
|
497
|
+
ready = ready && geometryReady;
|
|
499
498
|
}
|
|
500
499
|
|
|
501
|
-
|
|
502
|
-
|
|
500
|
+
const structuralMetadataLoader = loader._structuralMetadataLoader;
|
|
501
|
+
if (defined(structuralMetadataLoader)) {
|
|
502
|
+
const metadataReady = structuralMetadataLoader.process(frameState);
|
|
503
|
+
if (metadataReady) {
|
|
504
|
+
loader._components.structuralMetadata =
|
|
505
|
+
structuralMetadataLoader.structuralMetadata;
|
|
506
|
+
}
|
|
507
|
+
ready = ready && metadataReady;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
if (ready) {
|
|
511
|
+
// Geometry requires further processing
|
|
512
|
+
loader._state = GltfLoaderState.POST_PROCESSING;
|
|
503
513
|
}
|
|
504
514
|
}
|
|
505
515
|
|
|
@@ -549,6 +559,77 @@ function gatherPostProcessBuffers(loader, primitiveLoadPlan) {
|
|
|
549
559
|
}
|
|
550
560
|
}
|
|
551
561
|
|
|
562
|
+
/**
|
|
563
|
+
* Process loaders other than textures
|
|
564
|
+
* @private
|
|
565
|
+
*/
|
|
566
|
+
GltfLoader.prototype._process = function (frameState) {
|
|
567
|
+
if (this._state === GltfLoaderState.READY) {
|
|
568
|
+
return true;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
if (this._state === GltfLoaderState.PROCESSING) {
|
|
572
|
+
processLoaders(this, frameState);
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
if (
|
|
576
|
+
this._resourcesLoaded &&
|
|
577
|
+
this._state === GltfLoaderState.POST_PROCESSING
|
|
578
|
+
) {
|
|
579
|
+
postProcessGeometry(this, frameState.context);
|
|
580
|
+
this._state = GltfLoaderState.PROCESSED;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
if (this._resourcesLoaded && this._state === GltfLoaderState.PROCESSED) {
|
|
584
|
+
// The buffer views can be unloaded once the data is copied.
|
|
585
|
+
unloadBufferViewLoaders(this);
|
|
586
|
+
|
|
587
|
+
// Similarly, if the glTF was loaded from a typed array, release the memory
|
|
588
|
+
this._typedArray = undefined;
|
|
589
|
+
|
|
590
|
+
this._state = GltfLoaderState.READY;
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
return false;
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* Process textures other than textures
|
|
599
|
+
* @private
|
|
600
|
+
*/
|
|
601
|
+
GltfLoader.prototype._processTextures = function (frameState) {
|
|
602
|
+
if (this._textureState === GltfLoaderState.READY) {
|
|
603
|
+
return true;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
if (this._textureState !== GltfLoaderState.PROCESSING) {
|
|
607
|
+
return false;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
let i;
|
|
611
|
+
let ready = true;
|
|
612
|
+
const textureLoaders = this._textureLoaders;
|
|
613
|
+
const textureLoadersLength = textureLoaders.length;
|
|
614
|
+
for (i = 0; i < textureLoadersLength; ++i) {
|
|
615
|
+
const textureReady = textureLoaders[i].process(frameState);
|
|
616
|
+
if (textureReady && defined(this._textureCallbacks[i])) {
|
|
617
|
+
this._textureCallbacks[i]();
|
|
618
|
+
this._textureCallbacks[i] = undefined;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
ready = ready && textureReady;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
if (!ready) {
|
|
625
|
+
return false;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
this._textureState = GltfLoaderState.READY;
|
|
629
|
+
this._texturesLoaded = true;
|
|
630
|
+
return true;
|
|
631
|
+
};
|
|
632
|
+
|
|
552
633
|
/**
|
|
553
634
|
* Processes the resource until it becomes ready.
|
|
554
635
|
*
|
|
@@ -560,12 +641,64 @@ GltfLoader.prototype.process = function (frameState) {
|
|
|
560
641
|
Check.typeOf.object("frameState", frameState);
|
|
561
642
|
//>>includeEnd('debug');
|
|
562
643
|
|
|
563
|
-
|
|
644
|
+
if (
|
|
645
|
+
this._state === GltfLoaderState.LOADED &&
|
|
646
|
+
!defined(this._loadResourcesPromise)
|
|
647
|
+
) {
|
|
648
|
+
this._loadResourcesPromise = loadResources(this, frameState)
|
|
649
|
+
.then(() => {
|
|
650
|
+
this._resourcesLoaded = true;
|
|
651
|
+
})
|
|
652
|
+
.catch((error) => {
|
|
653
|
+
this._processError = error;
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
if (defined(this._processError)) {
|
|
658
|
+
this._state = GltfLoaderState.FAILED;
|
|
659
|
+
const error = this._processError;
|
|
660
|
+
this._processError = undefined;
|
|
661
|
+
handleError(this, error);
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
// Pop the next error of the list in case there are multiple
|
|
665
|
+
const textureError = this._textureErrors.pop();
|
|
666
|
+
if (defined(textureError)) {
|
|
667
|
+
// There shouldn't be the need to completely unload in this case. Just throw the error.
|
|
668
|
+
const error = this.getError("Failed to load glTF texture", textureError);
|
|
669
|
+
error.name = "TextureError";
|
|
670
|
+
throw error;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
if (this._state === GltfLoaderState.FAILED) {
|
|
674
|
+
return false;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
let ready = false;
|
|
678
|
+
try {
|
|
679
|
+
ready = this._process(frameState);
|
|
680
|
+
} catch (error) {
|
|
681
|
+
this._state = GltfLoaderState.FAILED;
|
|
682
|
+
handleError(this, error);
|
|
683
|
+
}
|
|
684
|
+
|
|
564
685
|
// Since textures can be loaded independently and are handled through a separate promise, they are processed in their own function
|
|
565
|
-
|
|
686
|
+
let texturesReady = false;
|
|
687
|
+
try {
|
|
688
|
+
texturesReady = this._processTextures(frameState);
|
|
689
|
+
} catch (error) {
|
|
690
|
+
this._textureState = GltfLoaderState.FAILED;
|
|
691
|
+
handleError(this, error);
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
if (this._incrementallyLoadTextures) {
|
|
695
|
+
return ready;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
return ready && texturesReady;
|
|
566
699
|
};
|
|
567
700
|
|
|
568
|
-
function
|
|
701
|
+
function getVertexBufferLoader(
|
|
569
702
|
loader,
|
|
570
703
|
gltf,
|
|
571
704
|
accessorId,
|
|
@@ -578,7 +711,7 @@ function loadVertexBuffer(
|
|
|
578
711
|
const accessor = gltf.accessors[accessorId];
|
|
579
712
|
const bufferViewId = accessor.bufferView;
|
|
580
713
|
|
|
581
|
-
const vertexBufferLoader = ResourceCache.
|
|
714
|
+
const vertexBufferLoader = ResourceCache.getVertexBufferLoader({
|
|
582
715
|
gltf: gltf,
|
|
583
716
|
gltfResource: loader._gltfResource,
|
|
584
717
|
baseResource: loader._baseResource,
|
|
@@ -592,12 +725,10 @@ function loadVertexBuffer(
|
|
|
592
725
|
loadTypedArray: loadTypedArray,
|
|
593
726
|
});
|
|
594
727
|
|
|
595
|
-
loader._geometryLoaders.push(vertexBufferLoader);
|
|
596
|
-
|
|
597
728
|
return vertexBufferLoader;
|
|
598
729
|
}
|
|
599
730
|
|
|
600
|
-
function
|
|
731
|
+
function getIndexBufferLoader(
|
|
601
732
|
loader,
|
|
602
733
|
gltf,
|
|
603
734
|
accessorId,
|
|
@@ -606,7 +737,7 @@ function loadIndexBuffer(
|
|
|
606
737
|
loadTypedArray,
|
|
607
738
|
frameState
|
|
608
739
|
) {
|
|
609
|
-
const indexBufferLoader = ResourceCache.
|
|
740
|
+
const indexBufferLoader = ResourceCache.getIndexBufferLoader({
|
|
610
741
|
gltf: gltf,
|
|
611
742
|
accessorId: accessorId,
|
|
612
743
|
gltfResource: loader._gltfResource,
|
|
@@ -618,13 +749,11 @@ function loadIndexBuffer(
|
|
|
618
749
|
loadTypedArray: loadTypedArray,
|
|
619
750
|
});
|
|
620
751
|
|
|
621
|
-
loader._geometryLoaders.push(indexBufferLoader);
|
|
622
|
-
|
|
623
752
|
return indexBufferLoader;
|
|
624
753
|
}
|
|
625
754
|
|
|
626
|
-
function
|
|
627
|
-
const bufferViewLoader = ResourceCache.
|
|
755
|
+
function getBufferViewLoader(loader, gltf, bufferViewId) {
|
|
756
|
+
const bufferViewLoader = ResourceCache.getBufferViewLoader({
|
|
628
757
|
gltf: gltf,
|
|
629
758
|
bufferViewId: bufferViewId,
|
|
630
759
|
gltfResource: loader._gltfResource,
|
|
@@ -720,6 +849,26 @@ function loadAccessorValues(accessor, typedArray, values, useQuaternion) {
|
|
|
720
849
|
return values;
|
|
721
850
|
}
|
|
722
851
|
|
|
852
|
+
async function loadAccessorBufferView(
|
|
853
|
+
loader,
|
|
854
|
+
bufferViewLoader,
|
|
855
|
+
gltf,
|
|
856
|
+
accessor,
|
|
857
|
+
useQuaternion,
|
|
858
|
+
values
|
|
859
|
+
) {
|
|
860
|
+
await bufferViewLoader.load();
|
|
861
|
+
if (loader.isDestroyed()) {
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
const bufferViewTypedArray = bufferViewLoader.typedArray;
|
|
866
|
+
const typedArray = getPackedTypedArray(gltf, accessor, bufferViewTypedArray);
|
|
867
|
+
|
|
868
|
+
useQuaternion = defaultValue(useQuaternion, false);
|
|
869
|
+
loadAccessorValues(accessor, typedArray, values, useQuaternion);
|
|
870
|
+
}
|
|
871
|
+
|
|
723
872
|
function loadAccessor(loader, gltf, accessorId, useQuaternion) {
|
|
724
873
|
const accessor = gltf.accessors[accessorId];
|
|
725
874
|
const accessorCount = accessor.count;
|
|
@@ -727,21 +876,15 @@ function loadAccessor(loader, gltf, accessorId, useQuaternion) {
|
|
|
727
876
|
|
|
728
877
|
const bufferViewId = accessor.bufferView;
|
|
729
878
|
if (defined(bufferViewId)) {
|
|
730
|
-
const bufferViewLoader =
|
|
731
|
-
const promise =
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
bufferViewTypedArray
|
|
740
|
-
);
|
|
741
|
-
|
|
742
|
-
useQuaternion = defaultValue(useQuaternion, false);
|
|
743
|
-
loadAccessorValues(accessor, typedArray, values, useQuaternion);
|
|
744
|
-
});
|
|
879
|
+
const bufferViewLoader = getBufferViewLoader(loader, gltf, bufferViewId);
|
|
880
|
+
const promise = loadAccessorBufferView(
|
|
881
|
+
loader,
|
|
882
|
+
bufferViewLoader,
|
|
883
|
+
gltf,
|
|
884
|
+
accessor,
|
|
885
|
+
useQuaternion,
|
|
886
|
+
values
|
|
887
|
+
);
|
|
745
888
|
loader._loaderPromises.push(promise);
|
|
746
889
|
|
|
747
890
|
return values;
|
|
@@ -1062,7 +1205,7 @@ function loadAttribute(
|
|
|
1062
1205
|
return attribute;
|
|
1063
1206
|
}
|
|
1064
1207
|
|
|
1065
|
-
const vertexBufferLoader =
|
|
1208
|
+
const vertexBufferLoader = getVertexBufferLoader(
|
|
1066
1209
|
loader,
|
|
1067
1210
|
gltf,
|
|
1068
1211
|
accessorId,
|
|
@@ -1072,13 +1215,15 @@ function loadAttribute(
|
|
|
1072
1215
|
loadTypedArray,
|
|
1073
1216
|
frameState
|
|
1074
1217
|
);
|
|
1075
|
-
const promise = vertexBufferLoader.promise.then(function (
|
|
1076
|
-
vertexBufferLoader
|
|
1077
|
-
) {
|
|
1078
|
-
if (loader.isDestroyed()) {
|
|
1079
|
-
return;
|
|
1080
|
-
}
|
|
1081
1218
|
|
|
1219
|
+
const index = loader._geometryLoaders.length;
|
|
1220
|
+
loader._geometryLoaders.push(vertexBufferLoader);
|
|
1221
|
+
const promise = vertexBufferLoader.load();
|
|
1222
|
+
loader._loaderPromises.push(promise);
|
|
1223
|
+
// This can only execute once vertexBufferLoader.process() has run and returns true
|
|
1224
|
+
// Save this finish callback by the loader index so it can be called
|
|
1225
|
+
// in process().
|
|
1226
|
+
loader._geometryCallbacks[index] = () => {
|
|
1082
1227
|
if (
|
|
1083
1228
|
defined(draco) &&
|
|
1084
1229
|
defined(draco.attributes) &&
|
|
@@ -1100,9 +1245,7 @@ function loadAttribute(
|
|
|
1100
1245
|
loadTypedArray
|
|
1101
1246
|
);
|
|
1102
1247
|
}
|
|
1103
|
-
}
|
|
1104
|
-
|
|
1105
|
-
loader._loaderPromises.push(promise);
|
|
1248
|
+
};
|
|
1106
1249
|
|
|
1107
1250
|
return attribute;
|
|
1108
1251
|
}
|
|
@@ -1276,7 +1419,7 @@ function loadIndices(
|
|
|
1276
1419
|
const loadBuffer = needsPostProcessing ? false : outputBuffer;
|
|
1277
1420
|
const loadTypedArray = needsPostProcessing ? true : outputTypedArray;
|
|
1278
1421
|
|
|
1279
|
-
const indexBufferLoader =
|
|
1422
|
+
const indexBufferLoader = getIndexBufferLoader(
|
|
1280
1423
|
loader,
|
|
1281
1424
|
gltf,
|
|
1282
1425
|
accessorId,
|
|
@@ -1286,18 +1429,18 @@ function loadIndices(
|
|
|
1286
1429
|
frameState
|
|
1287
1430
|
);
|
|
1288
1431
|
|
|
1289
|
-
const
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1432
|
+
const index = loader._geometryLoaders.length;
|
|
1433
|
+
loader._geometryLoaders.push(indexBufferLoader);
|
|
1434
|
+
const promise = indexBufferLoader.load();
|
|
1435
|
+
loader._loaderPromises.push(promise);
|
|
1436
|
+
// This can only execute once indexBufferLoader.process() has run and returns true
|
|
1437
|
+
// Save this finish callback by the loader index so it can be called
|
|
1438
|
+
// in process().
|
|
1439
|
+
loader._geometryCallbacks[index] = () => {
|
|
1294
1440
|
indices.indexDatatype = indexBufferLoader.indexDatatype;
|
|
1295
|
-
|
|
1296
1441
|
indices.buffer = indexBufferLoader.buffer;
|
|
1297
1442
|
indices.typedArray = indexBufferLoader.typedArray;
|
|
1298
|
-
}
|
|
1299
|
-
|
|
1300
|
-
loader._loaderPromises.push(promise);
|
|
1443
|
+
};
|
|
1301
1444
|
|
|
1302
1445
|
const indicesPlan = new PrimitiveLoadPlan.IndicesLoadPlan(indices);
|
|
1303
1446
|
indicesPlan.loadBuffer = outputBuffer;
|
|
@@ -1324,7 +1467,7 @@ function loadTexture(
|
|
|
1324
1467
|
return undefined;
|
|
1325
1468
|
}
|
|
1326
1469
|
|
|
1327
|
-
const textureLoader = ResourceCache.
|
|
1470
|
+
const textureLoader = ResourceCache.getTextureLoader({
|
|
1328
1471
|
gltf: gltf,
|
|
1329
1472
|
textureInfo: textureInfo,
|
|
1330
1473
|
gltfResource: loader._gltfResource,
|
|
@@ -1334,23 +1477,37 @@ function loadTexture(
|
|
|
1334
1477
|
asynchronous: loader._asynchronous,
|
|
1335
1478
|
});
|
|
1336
1479
|
|
|
1337
|
-
loader._textureLoaders.push(textureLoader);
|
|
1338
|
-
|
|
1339
1480
|
const textureReader = GltfLoaderUtil.createModelTextureReader({
|
|
1340
1481
|
textureInfo: textureInfo,
|
|
1341
1482
|
});
|
|
1342
1483
|
|
|
1343
|
-
const
|
|
1344
|
-
|
|
1484
|
+
const index = loader._textureLoaders.length;
|
|
1485
|
+
loader._textureLoaders.push(textureLoader);
|
|
1486
|
+
const promise = textureLoader.load().catch((error) => {
|
|
1487
|
+
if (loader.isDestroyed()) {
|
|
1345
1488
|
return;
|
|
1346
1489
|
}
|
|
1490
|
+
|
|
1491
|
+
if (!loader._incrementallyLoadTextures) {
|
|
1492
|
+
// If incrementallyLoadTextures is false, throw the error to ensure the loader state
|
|
1493
|
+
// immediately is set to have failed
|
|
1494
|
+
throw error;
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
// Otherwise, save the error so it can be thrown next
|
|
1498
|
+
loader._textureState = GltfLoaderState.FAILED;
|
|
1499
|
+
loader._textureErrors.push(error);
|
|
1500
|
+
});
|
|
1501
|
+
loader._texturesPromises.push(promise);
|
|
1502
|
+
// This can only execute once textureLoader.process() has run and returns true
|
|
1503
|
+
// Save this finish callback by the loader index so it can be called
|
|
1504
|
+
// in process().
|
|
1505
|
+
loader._textureCallbacks[index] = () => {
|
|
1347
1506
|
textureReader.texture = textureLoader.texture;
|
|
1348
1507
|
if (defined(samplerOverride)) {
|
|
1349
1508
|
textureReader.texture.sampler = samplerOverride;
|
|
1350
1509
|
}
|
|
1351
|
-
}
|
|
1352
|
-
|
|
1353
|
-
loader._texturesPromises.push(promise);
|
|
1510
|
+
};
|
|
1354
1511
|
|
|
1355
1512
|
return textureReader;
|
|
1356
1513
|
}
|
|
@@ -2246,7 +2403,7 @@ function loadSkins(loader, gltf, nodes) {
|
|
|
2246
2403
|
return skins;
|
|
2247
2404
|
}
|
|
2248
2405
|
|
|
2249
|
-
function loadStructuralMetadata(
|
|
2406
|
+
async function loadStructuralMetadata(
|
|
2250
2407
|
loader,
|
|
2251
2408
|
gltf,
|
|
2252
2409
|
extension,
|
|
@@ -2264,11 +2421,8 @@ function loadStructuralMetadata(
|
|
|
2264
2421
|
frameState: frameState,
|
|
2265
2422
|
asynchronous: loader._asynchronous,
|
|
2266
2423
|
});
|
|
2267
|
-
structuralMetadataLoader.load();
|
|
2268
|
-
|
|
2269
2424
|
loader._structuralMetadataLoader = structuralMetadataLoader;
|
|
2270
|
-
|
|
2271
|
-
return structuralMetadataLoader;
|
|
2425
|
+
return structuralMetadataLoader.load();
|
|
2272
2426
|
}
|
|
2273
2427
|
|
|
2274
2428
|
function loadAnimationSampler(loader, gltf, gltfSampler) {
|
|
@@ -2442,32 +2596,7 @@ function loadScene(gltf, nodes) {
|
|
|
2442
2596
|
|
|
2443
2597
|
const scratchCenter = new Cartesian3();
|
|
2444
2598
|
|
|
2445
|
-
function parse(
|
|
2446
|
-
loader,
|
|
2447
|
-
gltf,
|
|
2448
|
-
supportedImageFormats,
|
|
2449
|
-
frameState,
|
|
2450
|
-
rejectPromise,
|
|
2451
|
-
rejectTexturesPromise
|
|
2452
|
-
) {
|
|
2453
|
-
const version = gltf.asset.version;
|
|
2454
|
-
if (version !== "1.0" && version !== "2.0") {
|
|
2455
|
-
const url = loader._gltfResource.url;
|
|
2456
|
-
throw new RuntimeError(
|
|
2457
|
-
`Failed to load ${url}: \nUnsupported glTF version: ${version}`
|
|
2458
|
-
);
|
|
2459
|
-
}
|
|
2460
|
-
const extensionsRequired = gltf.extensionsRequired;
|
|
2461
|
-
if (defined(extensionsRequired)) {
|
|
2462
|
-
ModelUtility.checkSupportedExtensions(extensionsRequired);
|
|
2463
|
-
|
|
2464
|
-
// Check for the KHR_mesh_quantization extension here, it will be used later
|
|
2465
|
-
// in loadAttribute().
|
|
2466
|
-
loader._hasKhrMeshQuantization = extensionsRequired.includes(
|
|
2467
|
-
"KHR_mesh_quantization"
|
|
2468
|
-
);
|
|
2469
|
-
}
|
|
2470
|
-
|
|
2599
|
+
function parse(loader, gltf, supportedImageFormats, frameState) {
|
|
2471
2600
|
const extensions = defaultValue(gltf.extensions, defaultValue.EMPTY_OBJECT);
|
|
2472
2601
|
const structuralMetadataExtension = extensions.EXT_structural_metadata;
|
|
2473
2602
|
const featureMetadataExtensionLegacy = extensions.EXT_feature_metadata;
|
|
@@ -2535,7 +2664,7 @@ function parse(
|
|
|
2535
2664
|
defined(structuralMetadataExtension) ||
|
|
2536
2665
|
defined(featureMetadataExtensionLegacy)
|
|
2537
2666
|
) {
|
|
2538
|
-
const
|
|
2667
|
+
const promise = loadStructuralMetadata(
|
|
2539
2668
|
loader,
|
|
2540
2669
|
gltf,
|
|
2541
2670
|
structuralMetadataExtension,
|
|
@@ -2543,62 +2672,40 @@ function parse(
|
|
|
2543
2672
|
supportedImageFormats,
|
|
2544
2673
|
frameState
|
|
2545
2674
|
);
|
|
2546
|
-
const promise = structuralMetadataLoader.promise.then(function (
|
|
2547
|
-
structuralMetadataLoader
|
|
2548
|
-
) {
|
|
2549
|
-
if (loader.isDestroyed()) {
|
|
2550
|
-
return;
|
|
2551
|
-
}
|
|
2552
|
-
components.structuralMetadata =
|
|
2553
|
-
structuralMetadataLoader.structuralMetadata;
|
|
2554
|
-
});
|
|
2555
2675
|
loader._loaderPromises.push(promise);
|
|
2556
2676
|
}
|
|
2557
2677
|
|
|
2558
|
-
// Gather promises and
|
|
2678
|
+
// Gather promises and handle any errors
|
|
2559
2679
|
const readyPromises = [];
|
|
2560
2680
|
readyPromises.push.apply(readyPromises, loader._loaderPromises);
|
|
2561
2681
|
|
|
2682
|
+
// When incrementallyLoadTextures is true, the errors are caught and thrown individually
|
|
2683
|
+
// since it doesn't affect the overall loader state
|
|
2562
2684
|
if (!loader._incrementallyLoadTextures) {
|
|
2563
2685
|
readyPromises.push.apply(readyPromises, loader._texturesPromises);
|
|
2564
2686
|
}
|
|
2565
2687
|
|
|
2566
|
-
Promise.all(readyPromises)
|
|
2567
|
-
.then(function () {
|
|
2568
|
-
if (loader.isDestroyed()) {
|
|
2569
|
-
return;
|
|
2570
|
-
}
|
|
2571
|
-
loader._state = GltfLoaderState.POST_PROCESSING;
|
|
2572
|
-
})
|
|
2573
|
-
.catch(rejectPromise);
|
|
2574
|
-
|
|
2575
|
-
// Separate promise will resolve once textures are loaded.
|
|
2576
|
-
Promise.all(loader._texturesPromises)
|
|
2577
|
-
.then(function () {
|
|
2578
|
-
if (loader.isDestroyed()) {
|
|
2579
|
-
return;
|
|
2580
|
-
}
|
|
2581
|
-
|
|
2582
|
-
// post processing only applies for geometry
|
|
2583
|
-
loader._textureState = GltfLoaderState.PROCESSED;
|
|
2584
|
-
})
|
|
2585
|
-
.catch(rejectTexturesPromise);
|
|
2688
|
+
return Promise.all(readyPromises);
|
|
2586
2689
|
}
|
|
2587
2690
|
|
|
2588
2691
|
function unloadTextures(loader) {
|
|
2589
2692
|
const textureLoaders = loader._textureLoaders;
|
|
2590
2693
|
const textureLoadersLength = textureLoaders.length;
|
|
2591
2694
|
for (let i = 0; i < textureLoadersLength; ++i) {
|
|
2592
|
-
|
|
2695
|
+
textureLoaders[i] =
|
|
2696
|
+
!textureLoaders[i].isDestroyed() &&
|
|
2697
|
+
ResourceCache.unload(textureLoaders[i]);
|
|
2593
2698
|
}
|
|
2594
2699
|
loader._textureLoaders.length = 0;
|
|
2595
2700
|
}
|
|
2596
2701
|
|
|
2597
|
-
function
|
|
2702
|
+
function unloadBufferViewLoaders(loader) {
|
|
2598
2703
|
const bufferViewLoaders = loader._bufferViewLoaders;
|
|
2599
2704
|
const bufferViewLoadersLength = bufferViewLoaders.length;
|
|
2600
2705
|
for (let i = 0; i < bufferViewLoadersLength; ++i) {
|
|
2601
|
-
|
|
2706
|
+
bufferViewLoaders[i] =
|
|
2707
|
+
!bufferViewLoaders[i].isDestroyed() &&
|
|
2708
|
+
ResourceCache.unload(bufferViewLoaders[i]);
|
|
2602
2709
|
}
|
|
2603
2710
|
loader._bufferViewLoaders.length = 0;
|
|
2604
2711
|
}
|
|
@@ -2607,7 +2714,9 @@ function unloadGeometry(loader) {
|
|
|
2607
2714
|
const geometryLoaders = loader._geometryLoaders;
|
|
2608
2715
|
const geometryLoadersLength = geometryLoaders.length;
|
|
2609
2716
|
for (let i = 0; i < geometryLoadersLength; ++i) {
|
|
2610
|
-
|
|
2717
|
+
geometryLoaders[i] =
|
|
2718
|
+
!geometryLoaders[i].isDestroyed() &&
|
|
2719
|
+
ResourceCache.unload(geometryLoaders[i]);
|
|
2611
2720
|
}
|
|
2612
2721
|
loader._geometryLoaders.length = 0;
|
|
2613
2722
|
}
|
|
@@ -2625,7 +2734,10 @@ function unloadGeneratedAttributes(loader) {
|
|
|
2625
2734
|
}
|
|
2626
2735
|
|
|
2627
2736
|
function unloadStructuralMetadata(loader) {
|
|
2628
|
-
if (
|
|
2737
|
+
if (
|
|
2738
|
+
defined(loader._structuralMetadataLoader) &&
|
|
2739
|
+
!loader._structuralMetadataLoader.isDestroyed()
|
|
2740
|
+
) {
|
|
2629
2741
|
loader._structuralMetadataLoader.destroy();
|
|
2630
2742
|
loader._structuralMetadataLoader = undefined;
|
|
2631
2743
|
}
|
|
@@ -2644,13 +2756,13 @@ GltfLoader.prototype.isUnloaded = function () {
|
|
|
2644
2756
|
* @private
|
|
2645
2757
|
*/
|
|
2646
2758
|
GltfLoader.prototype.unload = function () {
|
|
2647
|
-
if (defined(this._gltfJsonLoader)) {
|
|
2759
|
+
if (defined(this._gltfJsonLoader) && !this._gltfJsonLoader.isDestroyed()) {
|
|
2648
2760
|
ResourceCache.unload(this._gltfJsonLoader);
|
|
2649
2761
|
}
|
|
2650
2762
|
this._gltfJsonLoader = undefined;
|
|
2651
2763
|
|
|
2652
2764
|
unloadTextures(this);
|
|
2653
|
-
|
|
2765
|
+
unloadBufferViewLoaders(this);
|
|
2654
2766
|
unloadGeometry(this);
|
|
2655
2767
|
unloadGeneratedAttributes(this);
|
|
2656
2768
|
unloadStructuralMetadata(this);
|