@cesium/engine 2.1.0 → 2.3.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/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
- package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
- package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
- package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
- package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
- package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
- package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
- package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
- package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
- package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
- package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
- package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
- package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
- package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
- package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
- package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
- package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
- package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
- package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
- package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
- package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
- package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
- package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
- package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
- package/Build/Workers/Transforms-bc45e707.js +14699 -0
- package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
- package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.js} +1 -1
- package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +1 -1
- package/Build/Workers/createCircleGeometry.js +1 -1
- package/Build/Workers/createCircleOutlineGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createCorridorGeometry.js +1 -1
- package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
- 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 +1 -1
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +1 -1
- package/Build/Workers/createPlaneGeometry.js +1 -1
- package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
- package/Build/Workers/createPolygonGeometry.js +1 -1
- package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createPolylineGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
- package/Build/Workers/createRectangleGeometry.js +1 -1
- package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Build/Workers/createSimplePolylineGeometry.js +1 -1
- package/Build/Workers/createSphereGeometry.js +1 -1
- package/Build/Workers/createSphereOutlineGeometry.js +1 -1
- package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- 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 +5 -8
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/decodeDraco.js +1 -1
- package/Build/Workers/decodeI3S.js +1 -1
- package/Build/Workers/package.js +1 -1
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
- package/Source/Core/BingMapsGeocoderService.js +19 -1
- package/Source/Core/CartographicGeocoderService.js +15 -0
- package/Source/Core/CesiumTerrainProvider.js +571 -434
- package/Source/Core/Credit.js +1 -1
- package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
- package/Source/Core/EllipsoidTerrainProvider.js +17 -10
- package/Source/Core/FrustumGeometry.js +4 -3
- package/Source/Core/GeocoderService.js +32 -1
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +17 -2
- package/Source/Core/IonResource.js +14 -3
- package/Source/Core/OpenCageGeocoderService.js +18 -1
- package/Source/Core/OrientedBoundingBox.js +4 -2
- package/Source/Core/OrthographicFrustum.js +13 -0
- package/Source/Core/PeliasGeocoderService.js +14 -1
- package/Source/Core/PerspectiveFrustum.js +14 -0
- package/Source/Core/Request.js +3 -2
- package/Source/Core/RequestScheduler.js +10 -5
- package/Source/Core/Resource.js +230 -236
- package/Source/Core/TerrainProvider.js +9 -14
- package/Source/Core/TileProviderError.js +8 -8
- package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
- package/Source/Core/buildModuleUrl.js +4 -3
- package/Source/Core/createWorldTerrain.js +20 -2
- package/Source/Core/createWorldTerrainAsync.js +48 -0
- package/Source/Core/sampleTerrain.js +9 -10
- package/Source/Core/sampleTerrainMostDetailed.js +66 -72
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
- package/Source/DataSources/DataSourceDisplay.js +2 -2
- package/Source/DataSources/Entity.js +6 -1
- package/Source/DataSources/EntityCluster.js +126 -128
- package/Source/DataSources/ModelVisualizer.js +104 -34
- package/Source/DataSources/PolygonGraphics.js +1 -1
- package/Source/Renderer/UniformState.js +3 -2
- package/Source/Renderer/demodernizeShader.js +5 -5
- package/Source/Scene/ArcGisBaseMapType.js +12 -0
- package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
- package/Source/Scene/ArcGisMapService.js +83 -0
- package/Source/Scene/BingMapsImageryProvider.js +511 -305
- package/Source/Scene/BufferLoader.js +29 -34
- package/Source/Scene/Camera.js +8 -7
- package/Source/Scene/Cesium3DTile.js +392 -254
- package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
- package/Source/Scene/Cesium3DTileContent.js +16 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
- package/Source/Scene/Cesium3DTilePass.js +8 -11
- package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
- package/Source/Scene/Cesium3DTileset.js +756 -482
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
- package/Source/Scene/ClassificationPrimitive.js +7 -0
- package/Source/Scene/Composite3DTileContent.js +69 -26
- package/Source/Scene/CreditDisplay.js +132 -20
- package/Source/Scene/DepthPlane.js +1 -1
- package/Source/Scene/Empty3DTileContent.js +31 -1
- package/Source/Scene/Geometry3DTileContent.js +47 -7
- package/Source/Scene/Globe.js +5 -1
- package/Source/Scene/GlobeSurfaceTile.js +2 -1
- package/Source/Scene/GlobeSurfaceTileProvider.js +53 -30
- package/Source/Scene/GltfBufferViewLoader.js +47 -91
- package/Source/Scene/GltfDracoLoader.js +110 -112
- package/Source/Scene/GltfImageLoader.js +71 -78
- package/Source/Scene/GltfIndexBufferLoader.js +108 -121
- package/Source/Scene/GltfJsonLoader.js +87 -74
- package/Source/Scene/GltfLoader.js +381 -300
- package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
- package/Source/Scene/GltfTextureLoader.js +97 -96
- package/Source/Scene/GltfVertexBufferLoader.js +128 -133
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
- package/Source/Scene/GridImageryProvider.js +267 -104
- package/Source/Scene/GroundPolylinePrimitive.js +12 -1
- package/Source/Scene/GroundPrimitive.js +8 -1
- package/Source/Scene/I3SDataProvider.js +214 -113
- package/Source/Scene/I3SFeature.js +7 -6
- package/Source/Scene/I3SLayer.js +26 -37
- package/Source/Scene/I3SNode.js +59 -66
- package/Source/Scene/Imagery.js +6 -1
- package/Source/Scene/ImageryLayer.js +299 -48
- package/Source/Scene/ImageryLayerCollection.js +26 -0
- package/Source/Scene/ImageryProvider.js +129 -111
- package/Source/Scene/Implicit3DTileContent.js +72 -23
- package/Source/Scene/ImplicitSubtree.js +66 -45
- package/Source/Scene/IonImageryProvider.js +482 -275
- package/Source/Scene/MapboxImageryProvider.js +272 -112
- package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
- package/Source/Scene/MetadataSchemaLoader.js +26 -36
- package/Source/Scene/Model/B3dmLoader.js +42 -46
- package/Source/Scene/Model/GeoJsonLoader.js +8 -32
- package/Source/Scene/Model/I3dmLoader.js +48 -74
- package/Source/Scene/Model/MaterialPipelineStage.js +12 -12
- package/Source/Scene/Model/Model.js +514 -135
- package/Source/Scene/Model/Model3DTileContent.js +83 -31
- package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +15 -26
- package/Source/Scene/Model/ModelUtility.js +16 -16
- package/Source/Scene/Model/PntsLoader.js +27 -32
- package/Source/Scene/Model/UniformType.js +1 -1
- package/Source/Scene/Multiple3DTileContent.js +134 -115
- package/Source/Scene/Picking.js +3 -2
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/Primitive.js +20 -0
- package/Source/Scene/QuadtreePrimitive.js +5 -2
- package/Source/Scene/QuadtreeTileProvider.js +4 -8
- package/Source/Scene/ResourceCache.js +47 -105
- package/Source/Scene/ResourceCacheStatistics.js +24 -58
- package/Source/Scene/ResourceLoader.js +5 -17
- package/Source/Scene/ResourceLoaderState.js +12 -4
- package/Source/Scene/Scene.js +65 -0
- package/Source/Scene/SceneTransforms.js +3 -2
- package/Source/Scene/ScreenSpaceCameraController.js +2 -2
- package/Source/Scene/SingleTileImageryProvider.js +382 -209
- package/Source/Scene/Terrain.js +196 -0
- package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
- package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
- package/Source/Scene/Tileset3DTileContent.js +47 -5
- package/Source/Scene/TimeDynamicPointCloud.js +15 -2
- package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
- package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
- package/Source/Scene/Vector3DTileContent.js +47 -22
- package/Source/Scene/Vector3DTileGeometry.js +57 -52
- package/Source/Scene/Vector3DTilePoints.js +97 -81
- package/Source/Scene/Vector3DTilePolygons.js +118 -117
- package/Source/Scene/Vector3DTilePolylines.js +86 -82
- package/Source/Scene/Vector3DTilePrimitive.js +0 -1
- package/Source/Scene/VoxelContent.js +61 -63
- package/Source/Scene/VoxelPrimitive.js +39 -91
- package/Source/Scene/VoxelProvider.js +2 -2
- package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
- package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
- package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
- package/Source/Scene/createOsmBuildings.js +6 -0
- package/Source/Scene/createOsmBuildingsAsync.js +82 -0
- package/Source/Scene/createWorldImagery.js +14 -5
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Shaders/AtmosphereCommon.glsl +51 -8
- package/Source/Shaders/AtmosphereCommon.js +51 -8
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
- package/Source/Widget/CesiumWidget.js +67 -27
- package/index.d.ts +2429 -1475
- package/index.js +324 -315
- package/package.json +4 -4
- package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
- package/Build/Workers/Transforms-9e9df299.js +0 -14714
|
@@ -5,6 +5,7 @@ import getJsonFromTypedArray from "../Core/getJsonFromTypedArray.js";
|
|
|
5
5
|
import getMagic from "../Core/getMagic.js";
|
|
6
6
|
import isDataUri from "../Core/isDataUri.js";
|
|
7
7
|
import Resource from "../Core/Resource.js";
|
|
8
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
8
9
|
import addDefaults from "./GltfPipeline/addDefaults.js";
|
|
9
10
|
import addPipelineExtras from "./GltfPipeline/addPipelineExtras.js";
|
|
10
11
|
import ForEach from "./GltfPipeline/ForEach.js";
|
|
@@ -14,6 +15,7 @@ import updateVersion from "./GltfPipeline/updateVersion.js";
|
|
|
14
15
|
import usesExtension from "./GltfPipeline/usesExtension.js";
|
|
15
16
|
import ResourceLoader from "./ResourceLoader.js";
|
|
16
17
|
import ResourceLoaderState from "./ResourceLoaderState.js";
|
|
18
|
+
import ModelUtility from "./Model/ModelUtility.js";
|
|
17
19
|
|
|
18
20
|
/**
|
|
19
21
|
* Loads a glTF JSON from a glTF or glb.
|
|
@@ -68,20 +70,6 @@ if (defined(Object.create)) {
|
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
Object.defineProperties(GltfJsonLoader.prototype, {
|
|
71
|
-
/**
|
|
72
|
-
* A promise that resolves to the resource when the resource is ready, or undefined if the resource hasn't started loading.
|
|
73
|
-
*
|
|
74
|
-
* @memberof GltfJsonLoader.prototype
|
|
75
|
-
*
|
|
76
|
-
* @type {Promise<GltfJsonLoader>|undefined}
|
|
77
|
-
* @readonly
|
|
78
|
-
* @private
|
|
79
|
-
*/
|
|
80
|
-
promise: {
|
|
81
|
-
get: function () {
|
|
82
|
-
return this._promise;
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
73
|
/**
|
|
86
74
|
* The cache key of the resource.
|
|
87
75
|
*
|
|
@@ -117,56 +105,55 @@ Object.defineProperties(GltfJsonLoader.prototype, {
|
|
|
117
105
|
* @returns {Promise<GltfJsonLoader>} A promise which resolves to the loader when the resource loading is completed.
|
|
118
106
|
* @private
|
|
119
107
|
*/
|
|
120
|
-
GltfJsonLoader.prototype.load = function () {
|
|
108
|
+
GltfJsonLoader.prototype.load = async function () {
|
|
109
|
+
if (defined(this._promise)) {
|
|
110
|
+
return this._promise;
|
|
111
|
+
}
|
|
112
|
+
|
|
121
113
|
this._state = ResourceLoaderState.LOADING;
|
|
122
114
|
|
|
123
|
-
let processPromise;
|
|
124
115
|
if (defined(this._gltfJson)) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
processPromise = processGltfTypedArray(this, this._typedArray);
|
|
128
|
-
} else {
|
|
129
|
-
processPromise = loadFromUri(this);
|
|
116
|
+
this._promise = processGltfJson(this, this._gltfJson);
|
|
117
|
+
return this._promise;
|
|
130
118
|
}
|
|
131
119
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
.
|
|
135
|
-
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
that._gltf = gltf;
|
|
139
|
-
that._state = ResourceLoaderState.READY;
|
|
140
|
-
return that;
|
|
141
|
-
})
|
|
142
|
-
.catch(function (error) {
|
|
143
|
-
if (that.isDestroyed()) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
return handleError(that, error);
|
|
147
|
-
});
|
|
120
|
+
if (defined(this._typedArray)) {
|
|
121
|
+
this._promise = processGltfTypedArray(this, this._typedArray);
|
|
122
|
+
return this._promise;
|
|
123
|
+
}
|
|
148
124
|
|
|
125
|
+
this._promise = loadFromUri(this);
|
|
149
126
|
return this._promise;
|
|
150
127
|
};
|
|
151
128
|
|
|
152
|
-
function loadFromUri(gltfJsonLoader) {
|
|
153
|
-
|
|
129
|
+
async function loadFromUri(gltfJsonLoader) {
|
|
130
|
+
let typedArray;
|
|
131
|
+
try {
|
|
132
|
+
const arrayBuffer = await gltfJsonLoader._fetchGltf();
|
|
154
133
|
if (gltfJsonLoader.isDestroyed()) {
|
|
155
134
|
return;
|
|
156
135
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
})
|
|
136
|
+
|
|
137
|
+
typedArray = new Uint8Array(arrayBuffer);
|
|
138
|
+
} catch (error) {
|
|
139
|
+
if (gltfJsonLoader.isDestroyed()) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
handleError(gltfJsonLoader, error);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return processGltfTypedArray(gltfJsonLoader, typedArray);
|
|
160
147
|
}
|
|
161
148
|
|
|
162
149
|
function handleError(gltfJsonLoader, error) {
|
|
163
150
|
gltfJsonLoader.unload();
|
|
164
151
|
gltfJsonLoader._state = ResourceLoaderState.FAILED;
|
|
165
152
|
const errorMessage = `Failed to load glTF: ${gltfJsonLoader._gltfResource.url}`;
|
|
166
|
-
|
|
153
|
+
throw gltfJsonLoader.getError(errorMessage, error);
|
|
167
154
|
}
|
|
168
155
|
|
|
169
|
-
function upgradeVersion(gltfJsonLoader, gltf) {
|
|
156
|
+
async function upgradeVersion(gltfJsonLoader, gltf) {
|
|
170
157
|
if (
|
|
171
158
|
defined(gltf.asset) &&
|
|
172
159
|
gltf.asset.version === "2.0" &&
|
|
@@ -188,23 +175,25 @@ function upgradeVersion(gltfJsonLoader, gltf) {
|
|
|
188
175
|
url: buffer.uri,
|
|
189
176
|
});
|
|
190
177
|
const resourceCache = gltfJsonLoader._resourceCache;
|
|
191
|
-
const bufferLoader = resourceCache.
|
|
178
|
+
const bufferLoader = resourceCache.getExternalBufferLoader({
|
|
192
179
|
resource: resource,
|
|
193
180
|
});
|
|
194
|
-
|
|
195
181
|
gltfJsonLoader._bufferLoaders.push(bufferLoader);
|
|
196
182
|
|
|
197
183
|
promises.push(
|
|
198
|
-
bufferLoader.
|
|
184
|
+
bufferLoader.load().then(function () {
|
|
185
|
+
if (bufferLoader.isDestroyed()) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
|
|
199
189
|
buffer.extras._pipeline.source = bufferLoader.typedArray;
|
|
200
190
|
})
|
|
201
191
|
);
|
|
202
192
|
}
|
|
203
193
|
});
|
|
204
194
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
});
|
|
195
|
+
await Promise.all(promises);
|
|
196
|
+
updateVersion(gltf);
|
|
208
197
|
}
|
|
209
198
|
|
|
210
199
|
function decodeDataUris(gltf) {
|
|
@@ -233,42 +222,64 @@ function loadEmbeddedBuffers(gltfJsonLoader, gltf) {
|
|
|
233
222
|
const source = buffer.extras._pipeline.source;
|
|
234
223
|
if (defined(source) && !defined(buffer.uri)) {
|
|
235
224
|
const resourceCache = gltfJsonLoader._resourceCache;
|
|
236
|
-
const bufferLoader = resourceCache.
|
|
225
|
+
const bufferLoader = resourceCache.getEmbeddedBufferLoader({
|
|
237
226
|
parentResource: gltfJsonLoader._gltfResource,
|
|
238
227
|
bufferId: bufferId,
|
|
239
228
|
typedArray: source,
|
|
240
229
|
});
|
|
241
|
-
|
|
242
230
|
gltfJsonLoader._bufferLoaders.push(bufferLoader);
|
|
243
|
-
promises.push(bufferLoader.
|
|
231
|
+
promises.push(bufferLoader.load());
|
|
244
232
|
}
|
|
245
233
|
});
|
|
246
234
|
return Promise.all(promises);
|
|
247
235
|
}
|
|
248
236
|
|
|
249
|
-
function processGltfJson(gltfJsonLoader, gltf) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
237
|
+
async function processGltfJson(gltfJsonLoader, gltf) {
|
|
238
|
+
try {
|
|
239
|
+
addPipelineExtras(gltf);
|
|
240
|
+
|
|
241
|
+
await decodeDataUris(gltf);
|
|
242
|
+
await upgradeVersion(gltfJsonLoader, gltf);
|
|
243
|
+
addDefaults(gltf);
|
|
244
|
+
await loadEmbeddedBuffers(gltfJsonLoader, gltf);
|
|
245
|
+
removePipelineExtras(gltf);
|
|
246
|
+
|
|
247
|
+
const version = gltf.asset.version;
|
|
248
|
+
if (version !== "1.0" && version !== "2.0") {
|
|
249
|
+
throw new RuntimeError(`Unsupported glTF version: ${version}`);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const extensionsRequired = gltf.extensionsRequired;
|
|
253
|
+
if (defined(extensionsRequired)) {
|
|
254
|
+
ModelUtility.checkSupportedExtensions(extensionsRequired);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
gltfJsonLoader._gltf = gltf;
|
|
258
|
+
gltfJsonLoader._state = ResourceLoaderState.READY;
|
|
259
|
+
return gltfJsonLoader;
|
|
260
|
+
} catch (error) {
|
|
261
|
+
if (gltfJsonLoader.isDestroyed()) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
handleError(gltfJsonLoader, error);
|
|
266
|
+
}
|
|
264
267
|
}
|
|
265
268
|
|
|
266
|
-
function processGltfTypedArray(gltfJsonLoader, typedArray) {
|
|
269
|
+
async function processGltfTypedArray(gltfJsonLoader, typedArray) {
|
|
267
270
|
let gltf;
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
271
|
+
try {
|
|
272
|
+
if (getMagic(typedArray) === "glTF") {
|
|
273
|
+
gltf = parseGlb(typedArray);
|
|
274
|
+
} else {
|
|
275
|
+
gltf = getJsonFromTypedArray(typedArray);
|
|
276
|
+
}
|
|
277
|
+
} catch (error) {
|
|
278
|
+
if (gltfJsonLoader.isDestroyed()) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
handleError(gltfJsonLoader, error);
|
|
272
283
|
}
|
|
273
284
|
|
|
274
285
|
return processGltfJson(gltfJsonLoader, gltf);
|
|
@@ -282,7 +293,9 @@ GltfJsonLoader.prototype.unload = function () {
|
|
|
282
293
|
const bufferLoaders = this._bufferLoaders;
|
|
283
294
|
const bufferLoadersLength = bufferLoaders.length;
|
|
284
295
|
for (let i = 0; i < bufferLoadersLength; ++i) {
|
|
285
|
-
|
|
296
|
+
bufferLoaders[i] =
|
|
297
|
+
!bufferLoaders[i].isDestroyed() &&
|
|
298
|
+
this._resourceCache.unload(bufferLoaders[i]);
|
|
286
299
|
}
|
|
287
300
|
this._bufferLoaders.length = 0;
|
|
288
301
|
|