@cesium/engine 22.3.0 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/Build/Workers/{chunk-EAAH543Q.js → chunk-2GL2EUEE.js} +11 -11
  2. package/Build/Workers/{chunk-EUDHHS7K.js → chunk-2WI4HGJU.js} +6 -6
  3. package/Build/Workers/{chunk-LWZHJWYK.js → chunk-36LBFITA.js} +665 -366
  4. package/Build/Workers/{chunk-7U5YNLF3.js → chunk-3B65YFXC.js} +1 -1
  5. package/Build/Workers/{chunk-D63Z7KKL.js → chunk-4LGFX2P5.js} +11 -11
  6. package/Build/Workers/{chunk-D6OKR3BQ.js → chunk-4UNQX2MP.js} +2 -2
  7. package/Build/Workers/{chunk-BO22JHBX.js → chunk-52K3GJKG.js} +3 -3
  8. package/Build/Workers/{chunk-XLIJV3YZ.js → chunk-56OHFSLH.js} +10 -10
  9. package/Build/Workers/{chunk-AWELU5C6.js → chunk-5A7YSAXT.js} +14 -14
  10. package/Build/Workers/{chunk-T5MJDW43.js → chunk-5JP5FG7U.js} +7 -7
  11. package/Build/Workers/{chunk-NVL7JXAQ.js → chunk-5R7SBUTW.js} +10 -10
  12. package/Build/Workers/chunk-5VKZVPO5.js +1829 -0
  13. package/Build/Workers/{chunk-YHPBT4I5.js → chunk-6FVFM2KB.js} +5 -5
  14. package/Build/Workers/{chunk-WHLGBMBC.js → chunk-6SLGTBB2.js} +5 -5
  15. package/Build/Workers/{chunk-VIQIKMTZ.js → chunk-7KRN6JPQ.js} +14 -14
  16. package/Build/Workers/{chunk-TCOUGKXF.js → chunk-AA33B6PU.js} +4 -4
  17. package/Build/Workers/{chunk-S2KVL7OJ.js → chunk-AP6XWET5.js} +8 -8
  18. package/Build/Workers/{chunk-5PJB7ASO.js → chunk-APDKMX7W.js} +6 -6
  19. package/Build/Workers/{chunk-IXL46IYV.js → chunk-ARCFIOKA.js} +12 -12
  20. package/Build/Workers/{chunk-KIJR26N3.js → chunk-BNBD2YZK.js} +16 -16
  21. package/Build/Workers/{chunk-4R6FGUFP.js → chunk-DT5SJBKA.js} +29 -15
  22. package/Build/Workers/{chunk-FUDC3KOT.js → chunk-ESD4IEOU.js} +5 -5
  23. package/Build/Workers/{chunk-K2PLKJJG.js → chunk-FSDVXW7M.js} +5 -5
  24. package/Build/Workers/{chunk-4BBANFU6.js → chunk-G3YT7M7A.js} +1 -1
  25. package/Build/Workers/{chunk-K4PGSAR5.js → chunk-GN5NEUDT.js} +8 -8
  26. package/Build/Workers/{chunk-OOYICVOK.js → chunk-HYLEKKO5.js} +1 -1
  27. package/Build/Workers/{chunk-FDOLXORR.js → chunk-HYTFXWMY.js} +7 -7
  28. package/Build/Workers/{chunk-7SLNBIZS.js → chunk-IFA7VHHP.js} +560 -277
  29. package/Build/Workers/{chunk-N66PIK46.js → chunk-IYVDOB5V.js} +4 -4
  30. package/Build/Workers/{chunk-ZWWN2CQH.js → chunk-JUGY5AZN.js} +4 -4
  31. package/Build/Workers/{chunk-4O2ARYS7.js → chunk-KPYU6YZG.js} +1 -1
  32. package/Build/Workers/{chunk-TY5JXMVO.js → chunk-L7RDJ4V7.js} +1 -1
  33. package/Build/Workers/{chunk-L4OFWHNI.js → chunk-LDQWNMEC.js} +1 -1
  34. package/Build/Workers/{chunk-N6XBJBI7.js → chunk-MQJG522T.js} +6 -6
  35. package/Build/Workers/{chunk-FS42VX2H.js → chunk-MT5M7RLZ.js} +2 -2
  36. package/Build/Workers/{chunk-7ATKQRBM.js → chunk-N4AWE7TZ.js} +10 -10
  37. package/Build/Workers/{chunk-EOSX23OS.js → chunk-NAYRNPEP.js} +4 -4
  38. package/Build/Workers/{chunk-NO3LMU7T.js → chunk-NNHU33JK.js} +7 -7
  39. package/Build/Workers/{chunk-HWGP4GVC.js → chunk-NQCAZU7S.js} +13 -13
  40. package/Build/Workers/{chunk-6GBGEUWR.js → chunk-NUYLNQKV.js} +2 -2
  41. package/Build/Workers/{chunk-E4YDCSQK.js → chunk-OC6X22PG.js} +9 -9
  42. package/Build/Workers/{chunk-ZGGVEGTA.js → chunk-OHBM4YG4.js} +12 -12
  43. package/Build/Workers/{chunk-6WDMPXQ7.js → chunk-OMXN7YF4.js} +12 -12
  44. package/Build/Workers/{chunk-LK7GEFGB.js → chunk-OQ3EAJNW.js} +2 -2
  45. package/Build/Workers/{chunk-M5DVYXJJ.js → chunk-OQBPOKPZ.js} +6 -6
  46. package/Build/Workers/{chunk-WUWPKBOZ.js → chunk-PQVNT5CJ.js} +6 -6
  47. package/Build/Workers/{chunk-W5NV72VR.js → chunk-QA24Q62E.js} +17 -17
  48. package/Build/Workers/{chunk-PJLRXIMS.js → chunk-QQX7S5QT.js} +17 -17
  49. package/Build/Workers/{chunk-D2PEV362.js → chunk-QTOHIXGF.js} +10 -10
  50. package/Build/Workers/{chunk-MASEF4OV.js → chunk-R7M4XNPP.js} +8 -8
  51. package/Build/Workers/{chunk-2MLJ46ZZ.js → chunk-SGKTBHFQ.js} +13 -13
  52. package/Build/Workers/{chunk-EY5HOJFQ.js → chunk-SQTRWKO2.js} +5 -5
  53. package/Build/Workers/{chunk-AFGP5BXS.js → chunk-T43FXHNC.js} +7 -7
  54. package/Build/Workers/{chunk-IHFAFGR2.js → chunk-UEEGWJJP.js} +2 -2
  55. package/Build/Workers/{chunk-TMGLPEZW.js → chunk-WKXDCVBO.js} +4 -4
  56. package/Build/Workers/{chunk-VRAAQ3FS.js → chunk-Y5AJSEEN.js} +2 -2
  57. package/Build/Workers/{chunk-Y5MRBKQN.js → chunk-ZIW5FCIW.js} +18 -18
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +6 -6
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/AttributeCompression.js +53 -6
  112. package/Source/Core/Cartesian2.js +689 -684
  113. package/Source/Core/Cartesian3.js +1044 -1043
  114. package/Source/Core/Cartesian4.js +816 -813
  115. package/Source/Core/GoogleMaps.js +23 -2
  116. package/Source/Core/Ion.js +1 -1
  117. package/Source/Core/OpenCageGeocoderService.js +2 -3
  118. package/Source/Core/globalTypes.js +16 -0
  119. package/Source/Renderer/ShaderDestination.js +54 -13
  120. package/Source/Scene/ArcGisMapService.js +1 -1
  121. package/Source/Scene/Billboard.js +7 -4
  122. package/Source/Scene/BillboardCollection.js +64 -25
  123. package/Source/Scene/BufferLoader.js +65 -74
  124. package/Source/Scene/CubeMapPanorama.js +351 -0
  125. package/Source/Scene/DerivedCommand.js +8 -31
  126. package/Source/Scene/DracoLoader.js +79 -78
  127. package/Source/Scene/EquirectangularPanorama.js +264 -0
  128. package/Source/Scene/FrameState.js +7 -0
  129. package/Source/Scene/GaussianSplatPrimitive.js +906 -167
  130. package/Source/Scene/GlobeSurfaceShaderSet.js +36 -32
  131. package/Source/Scene/GltfBufferViewLoader.js +109 -118
  132. package/Source/Scene/GltfDracoLoader.js +167 -176
  133. package/Source/Scene/GltfImageLoader.js +91 -101
  134. package/Source/Scene/GltfIndexBufferLoader.js +228 -241
  135. package/Source/Scene/GltfJsonLoader.js +90 -99
  136. package/Source/Scene/GltfLoader.js +313 -324
  137. package/Source/Scene/GltfSpzLoader.js +127 -134
  138. package/Source/Scene/GltfStructuralMetadataLoader.js +181 -186
  139. package/Source/Scene/GltfTextureLoader.js +217 -231
  140. package/Source/Scene/GltfVertexBufferLoader.js +267 -276
  141. package/Source/Scene/GoogleStreetViewCubeMapPanoramaProvider.js +341 -0
  142. package/Source/Scene/Label.js +6 -4
  143. package/Source/Scene/LabelCollection.js +59 -1
  144. package/Source/Scene/MetadataClassProperty.js +212 -7
  145. package/Source/Scene/MetadataComponentType.js +162 -127
  146. package/Source/Scene/MetadataSchemaLoader.js +60 -67
  147. package/Source/Scene/MetadataTable.js +14 -0
  148. package/Source/Scene/MetadataTableProperty.js +14 -0
  149. package/Source/Scene/Model/B3dmLoader.js +216 -224
  150. package/Source/Scene/Model/CustomShader.js +6 -1
  151. package/Source/Scene/Model/CustomShaderPipelineStage.js +122 -7
  152. package/Source/Scene/Model/GeoJsonLoader.js +53 -61
  153. package/Source/Scene/Model/GeometryPipelineStage.js +17 -3
  154. package/Source/Scene/Model/I3dmLoader.js +232 -240
  155. package/Source/Scene/Model/MaterialPipelineStage.js +1 -1
  156. package/Source/Scene/Model/MetadataPipelineStage.js +438 -22
  157. package/Source/Scene/Model/PntsLoader.js +78 -89
  158. package/Source/Scene/Panorama.js +53 -0
  159. package/Source/Scene/PanoramaProvider.js +43 -0
  160. package/Source/Scene/PointPrimitiveCollection.js +14 -22
  161. package/Source/Scene/PropertyTable.js +43 -0
  162. package/Source/Scene/PropertyTexture.js +1 -1
  163. package/Source/Scene/PropertyTextureProperty.js +0 -97
  164. package/Source/Scene/ResourceLoader.js +84 -92
  165. package/Source/Scene/Scene.js +12 -0
  166. package/Source/Scene/SkyBox.js +29 -164
  167. package/Source/Scene/StructuralMetadata.js +18 -3
  168. package/Source/Scene/parseStructuralMetadata.js +244 -0
  169. package/Source/Shaders/BillboardCollectionFS.glsl +66 -40
  170. package/Source/Shaders/BillboardCollectionFS.js +67 -40
  171. package/Source/Shaders/BillboardCollectionVS.glsl +22 -31
  172. package/Source/Shaders/BillboardCollectionVS.js +22 -31
  173. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  174. package/Source/Shaders/Builtin/Functions/decodeRGB8.glsl +22 -0
  175. package/Source/Shaders/Builtin/Functions/decodeRGB8.js +24 -0
  176. package/Source/Shaders/Builtin/Functions/unpackTexture.glsl +35 -0
  177. package/Source/Shaders/Builtin/Functions/unpackTexture.js +37 -0
  178. package/Source/Shaders/CubeMapPanoramaVS.glsl +11 -0
  179. package/Source/Shaders/CubeMapPanoramaVS.js +13 -0
  180. package/Source/Shaders/Model/MetadataStageFS.glsl +2 -1
  181. package/Source/Shaders/Model/MetadataStageFS.js +2 -1
  182. package/Source/Shaders/Model/MetadataStageVS.glsl +2 -1
  183. package/Source/Shaders/Model/MetadataStageVS.js +2 -1
  184. package/Source/Shaders/Model/ModelFS.glsl +2 -2
  185. package/Source/Shaders/Model/ModelFS.js +2 -2
  186. package/Source/Shaders/Model/ModelVS.glsl +2 -2
  187. package/Source/Shaders/Model/ModelVS.js +2 -2
  188. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +8 -39
  189. package/Source/Shaders/PointPrimitiveCollectionVS.js +8 -39
  190. package/index.d.ts +564 -189
  191. package/index.js +127 -119
  192. package/package.json +1 -1
  193. package/Build/Workers/chunk-LYBNPUEI.js +0 -1443
@@ -14,80 +14,71 @@ import ResourceLoaderState from "./ResourceLoaderState.js";
14
14
  * Implements the {@link ResourceLoader} interface.
15
15
  * </p>
16
16
  *
17
- * @alias GltfStructuralMetadataLoader
18
- * @constructor
19
- * @augments ResourceLoader
20
- *
21
- * @param {object} options Object with the following properties:
22
- * @param {object} options.gltf The glTF JSON.
23
- * @param {string} [options.extension] The <code>EXT_structural_metadata</code> extension object. If this is undefined, then extensionLegacy must be defined.
24
- * @param {string} [options.extensionLegacy] The legacy <code>EXT_feature_metadata</code> extension for backwards compatibility.
25
- * @param {Resource} options.gltfResource The {@link Resource} containing the glTF.
26
- * @param {Resource} options.baseResource The {@link Resource} that paths in the glTF JSON are relative to.
27
- * @param {SupportedImageFormats} options.supportedImageFormats The supported image formats.
28
- * @param {FrameState} options.frameState The frame state.
29
- * @param {string} [options.cacheKey] The cache key of the resource.
30
- * @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.
31
- *
32
17
  * @private
33
18
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
34
19
  */
35
- function GltfStructuralMetadataLoader(options) {
36
- options = options ?? Frozen.EMPTY_OBJECT;
37
- const {
38
- gltf,
39
- extension,
40
- extensionLegacy,
41
- gltfResource,
42
- baseResource,
43
- supportedImageFormats,
44
- frameState,
45
- cacheKey,
46
- asynchronous = true,
47
- } = options;
48
-
49
- //>>includeStart('debug', pragmas.debug);
50
- Check.typeOf.object("options.gltf", gltf);
51
- Check.typeOf.object("options.gltfResource", gltfResource);
52
- Check.typeOf.object("options.baseResource", baseResource);
53
- Check.typeOf.object("options.supportedImageFormats", supportedImageFormats);
54
- Check.typeOf.object("options.frameState", frameState);
55
-
56
- if (!defined(options.extension) && !defined(options.extensionLegacy)) {
57
- throw new DeveloperError(
58
- "One of options.extension or options.extensionLegacy must be specified",
59
- );
20
+ class GltfStructuralMetadataLoader extends ResourceLoader {
21
+ /**
22
+ * @param {object} options Object with the following properties:
23
+ * @param {object} options.gltf The glTF JSON.
24
+ * @param {string} [options.extension] The <code>EXT_structural_metadata</code> extension object. If this is undefined, then extensionLegacy must be defined.
25
+ * @param {string} [options.extensionLegacy] The legacy <code>EXT_feature_metadata</code> extension for backwards compatibility.
26
+ * @param {Resource} options.gltfResource The {@link Resource} containing the glTF.
27
+ * @param {Resource} options.baseResource The {@link Resource} that paths in the glTF JSON are relative to.
28
+ * @param {SupportedImageFormats} options.supportedImageFormats The supported image formats.
29
+ * @param {FrameState} options.frameState The frame state.
30
+ * @param {string} [options.cacheKey] The cache key of the resource.
31
+ * @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.
32
+ */
33
+ constructor(options) {
34
+ super();
35
+
36
+ options = options ?? Frozen.EMPTY_OBJECT;
37
+ const {
38
+ gltf,
39
+ extension,
40
+ extensionLegacy,
41
+ gltfResource,
42
+ baseResource,
43
+ supportedImageFormats,
44
+ frameState,
45
+ cacheKey,
46
+ asynchronous = true,
47
+ } = options;
48
+
49
+ //>>includeStart('debug', pragmas.debug);
50
+ Check.typeOf.object("options.gltf", gltf);
51
+ Check.typeOf.object("options.gltfResource", gltfResource);
52
+ Check.typeOf.object("options.baseResource", baseResource);
53
+ Check.typeOf.object("options.supportedImageFormats", supportedImageFormats);
54
+ Check.typeOf.object("options.frameState", frameState);
55
+
56
+ if (!defined(options.extension) && !defined(options.extensionLegacy)) {
57
+ throw new DeveloperError(
58
+ "One of options.extension or options.extensionLegacy must be specified",
59
+ );
60
+ }
61
+ //>>includeEnd('debug');
62
+
63
+ this._gltfResource = gltfResource;
64
+ this._baseResource = baseResource;
65
+ this._gltf = gltf;
66
+ this._extension = extension;
67
+ this._extensionLegacy = extensionLegacy;
68
+ this._supportedImageFormats = supportedImageFormats;
69
+ this._frameState = frameState;
70
+ this._cacheKey = cacheKey;
71
+ this._asynchronous = asynchronous;
72
+ this._bufferViewLoaders = [];
73
+ this._bufferViewIds = [];
74
+ this._textureLoaders = [];
75
+ this._textureIds = [];
76
+ this._schemaLoader = undefined;
77
+ this._structuralMetadata = undefined;
78
+ this._state = ResourceLoaderState.UNLOADED;
79
+ this._promise = undefined;
60
80
  }
61
- //>>includeEnd('debug');
62
-
63
- this._gltfResource = gltfResource;
64
- this._baseResource = baseResource;
65
- this._gltf = gltf;
66
- this._extension = extension;
67
- this._extensionLegacy = extensionLegacy;
68
- this._supportedImageFormats = supportedImageFormats;
69
- this._frameState = frameState;
70
- this._cacheKey = cacheKey;
71
- this._asynchronous = asynchronous;
72
- this._bufferViewLoaders = [];
73
- this._bufferViewIds = [];
74
- this._textureLoaders = [];
75
- this._textureIds = [];
76
- this._schemaLoader = undefined;
77
- this._structuralMetadata = undefined;
78
- this._state = ResourceLoaderState.UNLOADED;
79
- this._promise = undefined;
80
- }
81
-
82
- if (defined(Object.create)) {
83
- GltfStructuralMetadataLoader.prototype = Object.create(
84
- ResourceLoader.prototype,
85
- );
86
- GltfStructuralMetadataLoader.prototype.constructor =
87
- GltfStructuralMetadataLoader;
88
- }
89
81
 
90
- Object.defineProperties(GltfStructuralMetadataLoader.prototype, {
91
82
  /**
92
83
  * The cache key of the resource.
93
84
  *
@@ -97,11 +88,10 @@ Object.defineProperties(GltfStructuralMetadataLoader.prototype, {
97
88
  * @readonly
98
89
  * @private
99
90
  */
100
- cacheKey: {
101
- get: function () {
102
- return this._cacheKey;
103
- },
104
- },
91
+ get cacheKey() {
92
+ return this._cacheKey;
93
+ }
94
+
105
95
  /**
106
96
  * The parsed structural metadata
107
97
  *
@@ -111,12 +101,123 @@ Object.defineProperties(GltfStructuralMetadataLoader.prototype, {
111
101
  * @readonly
112
102
  * @private
113
103
  */
114
- structuralMetadata: {
115
- get: function () {
116
- return this._structuralMetadata;
117
- },
118
- },
119
- });
104
+ get structuralMetadata() {
105
+ return this._structuralMetadata;
106
+ }
107
+
108
+ /**
109
+ * Loads the resource.
110
+ * @returns {Promise<GltfStructuralMetadataLoader>} A promise which resolves to the loader when the resource loading is completed.
111
+ * @private
112
+ */
113
+ load() {
114
+ if (defined(this._promise)) {
115
+ return this._promise;
116
+ }
117
+
118
+ this._state = ResourceLoaderState.LOADING;
119
+ this._promise = loadResources(this);
120
+ return this._promise;
121
+ }
122
+
123
+ /**
124
+ * Processes the resource until it becomes ready.
125
+ *
126
+ * @param {FrameState} frameState The frame state.
127
+ * @private
128
+ */
129
+ process(frameState) {
130
+ //>>includeStart('debug', pragmas.debug);
131
+ Check.typeOf.object("frameState", frameState);
132
+ //>>includeEnd('debug');
133
+
134
+ if (this._state === ResourceLoaderState.READY) {
135
+ return true;
136
+ }
137
+
138
+ if (this._state !== ResourceLoaderState.LOADED) {
139
+ return false;
140
+ }
141
+
142
+ const textureLoaders = this._textureLoaders;
143
+ const textureLoadersLength = textureLoaders.length;
144
+ let ready = true;
145
+ for (let i = 0; i < textureLoadersLength; ++i) {
146
+ const textureLoader = textureLoaders[i];
147
+ const textureReady = textureLoader.process(frameState);
148
+ ready = ready && textureReady;
149
+ }
150
+
151
+ if (!ready) {
152
+ return false;
153
+ }
154
+
155
+ const schema = this._schemaLoader.schema;
156
+ const bufferViews = {};
157
+ for (let i = 0; i < this._bufferViewIds.length; ++i) {
158
+ const bufferViewId = this._bufferViewIds[i];
159
+ const bufferViewLoader = this._bufferViewLoaders[i];
160
+ if (!bufferViewLoader.isDestroyed()) {
161
+ // Copy the typed array and let the underlying ArrayBuffer be freed
162
+ const bufferViewTypedArray = new Uint8Array(
163
+ bufferViewLoader.typedArray,
164
+ );
165
+ bufferViews[bufferViewId] = bufferViewTypedArray;
166
+ }
167
+ }
168
+
169
+ const textures = {};
170
+ for (let i = 0; i < this._textureIds.length; ++i) {
171
+ const textureId = this._textureIds[i];
172
+ const textureLoader = textureLoaders[i];
173
+ if (!textureLoader.isDestroyed()) {
174
+ textures[textureId] = textureLoader.texture;
175
+ }
176
+ }
177
+ if (defined(this._extension)) {
178
+ this._structuralMetadata = parseStructuralMetadata({
179
+ extension: this._extension,
180
+ schema: schema,
181
+ bufferViews: bufferViews,
182
+ textures: textures,
183
+ context: frameState.context,
184
+ });
185
+ } else {
186
+ this._structuralMetadata = parseFeatureMetadataLegacy({
187
+ extension: this._extensionLegacy,
188
+ schema: schema,
189
+ bufferViews: bufferViews,
190
+ textures: textures,
191
+ });
192
+ }
193
+
194
+ // Buffer views can be unloaded after the data has been copied
195
+ unloadBufferViews(this);
196
+
197
+ this._state = ResourceLoaderState.READY;
198
+ return true;
199
+ }
200
+
201
+ /**
202
+ * Unloads the resource.
203
+ * @private
204
+ */
205
+ unload() {
206
+ unloadBufferViews(this);
207
+ unloadTextures(this);
208
+
209
+ if (defined(this._schemaLoader)) {
210
+ ResourceCache.unload(this._schemaLoader);
211
+ }
212
+ this._schemaLoader = undefined;
213
+
214
+ if (defined(this._structuralMetadata)) {
215
+ this._structuralMetadata.destroy();
216
+ }
217
+
218
+ this._structuralMetadata = undefined;
219
+ }
220
+ }
120
221
 
121
222
  async function loadResources(loader) {
122
223
  try {
@@ -146,21 +247,6 @@ async function loadResources(loader) {
146
247
  }
147
248
  }
148
249
 
149
- /**
150
- * Loads the resource.
151
- * @returns {Promise<GltfStructuralMetadataLoader>} A promise which resolves to the loader when the resource loading is completed.
152
- * @private
153
- */
154
- GltfStructuralMetadataLoader.prototype.load = function () {
155
- if (defined(this._promise)) {
156
- return this._promise;
157
- }
158
-
159
- this._state = ResourceLoaderState.LOADING;
160
- this._promise = loadResources(this);
161
- return this._promise;
162
- };
163
-
164
250
  function gatherBufferViewIdsFromProperties(properties, bufferViewIdSet) {
165
251
  for (const propertyId in properties) {
166
252
  if (properties.hasOwnProperty(propertyId)) {
@@ -391,81 +477,6 @@ async function loadSchema(structuralMetadataLoader) {
391
477
  }
392
478
  }
393
479
 
394
- /**
395
- * Processes the resource until it becomes ready.
396
- *
397
- * @param {FrameState} frameState The frame state.
398
- * @private
399
- */
400
- GltfStructuralMetadataLoader.prototype.process = function (frameState) {
401
- //>>includeStart('debug', pragmas.debug);
402
- Check.typeOf.object("frameState", frameState);
403
- //>>includeEnd('debug');
404
-
405
- if (this._state === ResourceLoaderState.READY) {
406
- return true;
407
- }
408
-
409
- if (this._state !== ResourceLoaderState.LOADED) {
410
- return false;
411
- }
412
-
413
- const textureLoaders = this._textureLoaders;
414
- const textureLoadersLength = textureLoaders.length;
415
- let ready = true;
416
- for (let i = 0; i < textureLoadersLength; ++i) {
417
- const textureLoader = textureLoaders[i];
418
- const textureReady = textureLoader.process(frameState);
419
- ready = ready && textureReady;
420
- }
421
-
422
- if (!ready) {
423
- return false;
424
- }
425
-
426
- const schema = this._schemaLoader.schema;
427
- const bufferViews = {};
428
- for (let i = 0; i < this._bufferViewIds.length; ++i) {
429
- const bufferViewId = this._bufferViewIds[i];
430
- const bufferViewLoader = this._bufferViewLoaders[i];
431
- if (!bufferViewLoader.isDestroyed()) {
432
- // Copy the typed array and let the underlying ArrayBuffer be freed
433
- const bufferViewTypedArray = new Uint8Array(bufferViewLoader.typedArray);
434
- bufferViews[bufferViewId] = bufferViewTypedArray;
435
- }
436
- }
437
-
438
- const textures = {};
439
- for (let i = 0; i < this._textureIds.length; ++i) {
440
- const textureId = this._textureIds[i];
441
- const textureLoader = textureLoaders[i];
442
- if (!textureLoader.isDestroyed()) {
443
- textures[textureId] = textureLoader.texture;
444
- }
445
- }
446
- if (defined(this._extension)) {
447
- this._structuralMetadata = parseStructuralMetadata({
448
- extension: this._extension,
449
- schema: schema,
450
- bufferViews: bufferViews,
451
- textures: textures,
452
- });
453
- } else {
454
- this._structuralMetadata = parseFeatureMetadataLegacy({
455
- extension: this._extensionLegacy,
456
- schema: schema,
457
- bufferViews: bufferViews,
458
- textures: textures,
459
- });
460
- }
461
-
462
- // Buffer views can be unloaded after the data has been copied
463
- unloadBufferViews(this);
464
-
465
- this._state = ResourceLoaderState.READY;
466
- return true;
467
- };
468
-
469
480
  function unloadBufferViews(structuralMetadataLoader) {
470
481
  const bufferViewLoaders = structuralMetadataLoader._bufferViewLoaders;
471
482
  const bufferViewLoadersLength = bufferViewLoaders.length;
@@ -486,20 +497,4 @@ function unloadTextures(structuralMetadataLoader) {
486
497
  structuralMetadataLoader._textureIds.length = 0;
487
498
  }
488
499
 
489
- /**
490
- * Unloads the resource.
491
- * @private
492
- */
493
- GltfStructuralMetadataLoader.prototype.unload = function () {
494
- unloadBufferViews(this);
495
- unloadTextures(this);
496
-
497
- if (defined(this._schemaLoader)) {
498
- ResourceCache.unload(this._schemaLoader);
499
- }
500
- this._schemaLoader = undefined;
501
-
502
- this._structuralMetadata = undefined;
503
- };
504
-
505
500
  export default GltfStructuralMetadataLoader;