@loaders.gl/gltf 3.3.0-alpha.1 → 3.3.0-alpha.10

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 (201) hide show
  1. package/dist/dist.min.js +236 -148
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/glb-loader.js +2 -13
  5. package/dist/es5/glb-loader.js.map +1 -1
  6. package/dist/es5/glb-writer.js +3 -6
  7. package/dist/es5/glb-writer.js.map +1 -1
  8. package/dist/es5/gltf-loader.js +11 -23
  9. package/dist/es5/gltf-loader.js.map +1 -1
  10. package/dist/es5/gltf-writer.js +2 -5
  11. package/dist/es5/gltf-writer.js.map +1 -1
  12. package/dist/es5/index.js +10 -17
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/lib/api/gltf-extensions.js +15 -47
  15. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  16. package/dist/es5/lib/api/gltf-scenegraph.js +128 -96
  17. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  18. package/dist/es5/lib/api/normalize-gltf-v1.js +34 -72
  19. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  20. package/dist/es5/lib/api/post-process-gltf.js +26 -89
  21. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  22. package/dist/es5/lib/encoders/encode-glb.js +10 -8
  23. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  24. package/dist/es5/lib/encoders/encode-gltf.js +3 -6
  25. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  26. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +2 -28
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  28. package/dist/es5/lib/extensions/EXT_texture_webp.js +5 -18
  29. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
  30. package/dist/es5/lib/extensions/KHR_binary_gltf.js +5 -12
  31. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  32. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +11 -79
  33. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  34. package/dist/es5/lib/extensions/KHR_texture_basisu.js +5 -14
  35. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
  36. package/dist/es5/lib/extensions/KHR_texture_transform.js +17 -72
  37. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
  38. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +110 -0
  39. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  40. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -24
  41. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  42. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +3 -20
  43. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  44. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +12 -29
  45. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  46. package/dist/es5/lib/gltf-utils/get-typed-array.js +1 -1
  47. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  48. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +5 -17
  49. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  50. package/dist/es5/lib/gltf-utils/gltf-constants.js +3 -4
  51. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  52. package/dist/es5/lib/gltf-utils/gltf-utils.js +1 -8
  53. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  54. package/dist/es5/lib/gltf-utils/resolve-url.js +0 -5
  55. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  56. package/dist/es5/lib/parsers/parse-glb.js +11 -17
  57. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  58. package/dist/es5/lib/parsers/parse-gltf.js +21 -79
  59. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  60. package/dist/es5/lib/types/glb-types.js.map +1 -1
  61. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
  62. package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -1
  63. package/dist/es5/lib/types/gltf-types.js.map +1 -1
  64. package/dist/es5/lib/utils/assert.js +0 -1
  65. package/dist/es5/lib/utils/assert.js.map +1 -1
  66. package/dist/es5/lib/utils/version.js +1 -1
  67. package/dist/es5/lib/utils/version.js.map +1 -1
  68. package/dist/es5/meshopt/meshopt-decoder.js +10 -47
  69. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  70. package/dist/es5/webp/webp.js +3 -19
  71. package/dist/es5/webp/webp.js.map +1 -1
  72. package/dist/esm/bundle.js +1 -1
  73. package/dist/esm/bundle.js.map +1 -1
  74. package/dist/esm/glb-loader.js +0 -1
  75. package/dist/esm/glb-loader.js.map +1 -1
  76. package/dist/esm/glb-writer.js +3 -1
  77. package/dist/esm/glb-writer.js.map +1 -1
  78. package/dist/esm/gltf-loader.js +9 -3
  79. package/dist/esm/gltf-loader.js.map +1 -1
  80. package/dist/esm/gltf-writer.js +3 -2
  81. package/dist/esm/gltf-writer.js.map +1 -1
  82. package/dist/esm/index.js +4 -0
  83. package/dist/esm/index.js.map +1 -1
  84. package/dist/esm/lib/api/gltf-extensions.js +17 -9
  85. package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
  86. package/dist/esm/lib/api/gltf-scenegraph.js +40 -68
  87. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  88. package/dist/esm/lib/api/normalize-gltf-v1.js +5 -36
  89. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  90. package/dist/esm/lib/api/post-process-gltf.js +26 -93
  91. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  92. package/dist/esm/lib/encoders/encode-glb.js +9 -2
  93. package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
  94. package/dist/esm/lib/encoders/encode-gltf.js +6 -4
  95. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
  96. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +5 -6
  97. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  98. package/dist/esm/lib/extensions/EXT_texture_webp.js +4 -6
  99. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
  100. package/dist/esm/lib/extensions/KHR_binary_gltf.js +3 -2
  101. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
  102. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +18 -17
  103. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  104. package/dist/esm/lib/extensions/KHR_texture_basisu.js +4 -3
  105. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
  106. package/dist/esm/lib/extensions/KHR_texture_transform.js +8 -34
  107. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
  108. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +84 -0
  109. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  110. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +4 -4
  111. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  112. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +4 -3
  113. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  114. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +10 -9
  115. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  116. package/dist/esm/lib/gltf-utils/get-typed-array.js +4 -0
  117. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
  118. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +7 -11
  119. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  120. package/dist/esm/lib/gltf-utils/gltf-constants.js +1 -0
  121. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
  122. package/dist/esm/lib/gltf-utils/gltf-utils.js +0 -2
  123. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
  124. package/dist/esm/lib/gltf-utils/resolve-url.js +1 -4
  125. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  126. package/dist/esm/lib/parsers/parse-glb.js +19 -16
  127. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  128. package/dist/esm/lib/parsers/parse-gltf.js +15 -17
  129. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  130. package/dist/esm/lib/types/glb-types.js.map +1 -1
  131. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
  132. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -1
  133. package/dist/esm/lib/types/gltf-types.js.map +1 -1
  134. package/dist/esm/lib/utils/assert.js +1 -0
  135. package/dist/esm/lib/utils/assert.js.map +1 -1
  136. package/dist/esm/lib/utils/version.js +2 -1
  137. package/dist/esm/lib/utils/version.js.map +1 -1
  138. package/dist/esm/meshopt/meshopt-decoder.js +11 -15
  139. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  140. package/dist/esm/webp/webp.js +3 -5
  141. package/dist/esm/webp/webp.js.map +1 -1
  142. package/dist/glb-loader.d.ts +1 -1
  143. package/dist/glb-loader.d.ts.map +1 -1
  144. package/dist/gltf-loader.d.ts +1 -1
  145. package/dist/gltf-loader.d.ts.map +1 -1
  146. package/dist/gltf-writer.d.ts +1 -1
  147. package/dist/gltf-writer.d.ts.map +1 -1
  148. package/dist/index.d.ts +2 -1
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/lib/api/gltf-extensions.d.ts +1 -1
  151. package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
  152. package/dist/lib/api/gltf-extensions.js +8 -2
  153. package/dist/lib/api/gltf-scenegraph.d.ts +5 -11
  154. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
  155. package/dist/lib/api/gltf-scenegraph.js +13 -0
  156. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -1
  157. package/dist/lib/api/normalize-gltf-v1.js +6 -2
  158. package/dist/lib/extensions/EXT_meshopt_compression.js +1 -1
  159. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
  160. package/dist/lib/extensions/EXT_texture_webp.js +1 -0
  161. package/dist/lib/extensions/KHR_binary_gltf.js +1 -1
  162. package/dist/lib/extensions/KHR_draco_mesh_compression.js +1 -1
  163. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
  164. package/dist/lib/extensions/KHR_texture_basisu.js +1 -0
  165. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +6 -0
  166. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
  167. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +118 -0
  168. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +2 -2
  169. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
  170. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +1 -0
  171. package/dist/lib/parsers/parse-glb.d.ts +1 -1
  172. package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
  173. package/dist/lib/parsers/parse-gltf.d.ts +1 -1
  174. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  175. package/dist/lib/parsers/parse-gltf.js +9 -2
  176. package/dist/lib/types/glb-types.d.ts +2 -2
  177. package/dist/lib/types/glb-types.d.ts.map +1 -1
  178. package/dist/lib/types/gltf-json-schema.d.ts +394 -9
  179. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
  180. package/dist/lib/types/gltf-postprocessed-schema.d.ts +1 -1
  181. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -1
  182. package/dist/lib/types/gltf-types.d.ts +8 -5
  183. package/dist/lib/types/gltf-types.d.ts.map +1 -1
  184. package/dist/webp/webp.d.ts +1 -1
  185. package/dist/webp/webp.d.ts.map +1 -1
  186. package/package.json +6 -6
  187. package/src/index.ts +7 -1
  188. package/src/lib/api/gltf-extensions.ts +3 -1
  189. package/src/lib/api/gltf-scenegraph.ts +21 -12
  190. package/src/lib/api/normalize-gltf-v1.ts +2 -1
  191. package/src/lib/extensions/EXT_meshopt_compression.ts +1 -1
  192. package/src/lib/extensions/EXT_texture_webp.ts +1 -0
  193. package/src/lib/extensions/KHR_binary_gltf.ts +1 -1
  194. package/src/lib/extensions/KHR_draco_mesh_compression.ts +1 -1
  195. package/src/lib/extensions/KHR_texture_basisu.ts +1 -0
  196. package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +163 -0
  197. package/src/lib/extensions/deprecated/KHR_materials_unlit.ts +3 -3
  198. package/src/lib/extensions/deprecated/KHR_techniques_webgl.ts +1 -0
  199. package/src/lib/parsers/parse-gltf.ts +4 -1
  200. package/src/lib/types/gltf-json-schema.ts +432 -3
  201. package/src/lib/types/gltf-types.ts +9 -2
package/dist/dist.min.js CHANGED
@@ -14,8 +14,8 @@
14
14
  };
15
15
  var __export = (target, all) => {
16
16
  __markAsModule(target);
17
- for (var name9 in all)
18
- __defProp(target, name9, { get: all[name9], enumerable: true });
17
+ for (var name10 in all)
18
+ __defProp(target, name10, { get: all[name10], enumerable: true });
19
19
  };
20
20
  var __reExport = (target, module, desc) => {
21
21
  if (module && typeof module === "object" || typeof module === "function") {
@@ -200,6 +200,7 @@
200
200
  // ../worker-utils/src/index.ts
201
201
  var init_src = __esm({
202
202
  "../worker-utils/src/index.ts"() {
203
+ init_globals2();
203
204
  init_library_utils();
204
205
  }
205
206
  });
@@ -753,11 +754,12 @@
753
754
  var BasisWorkerLoader, BasisLoader;
754
755
  var init_basis_loader = __esm({
755
756
  "../textures/src/basis-loader.ts"() {
757
+ init_src();
756
758
  init_version3();
757
759
  init_parse_basis();
758
760
  BasisWorkerLoader = {
759
761
  name: "Basis",
760
- id: "basis",
762
+ id: isBrowser2 ? "basis" : "basis-nodejs",
761
763
  module: "textures",
762
764
  version: VERSION4,
763
765
  worker: true,
@@ -1396,12 +1398,12 @@
1396
1398
  return extras[key];
1397
1399
  }
1398
1400
  getExtension(extensionName) {
1399
- const isExtension = this.getUsedExtensions().find((name9) => name9 === extensionName);
1401
+ const isExtension = this.getUsedExtensions().find((name10) => name10 === extensionName);
1400
1402
  const extensions = this.json.extensions || {};
1401
1403
  return isExtension ? extensions[extensionName] || true : null;
1402
1404
  }
1403
1405
  getRequiredExtension(extensionName) {
1404
- const isRequired = this.getRequiredExtensions().find((name9) => name9 === extensionName);
1406
+ const isRequired = this.getRequiredExtensions().find((name10) => name10 === extensionName);
1405
1407
  return isRequired ? this.getExtension(extensionName) : null;
1406
1408
  }
1407
1409
  getRequiredExtensions() {
@@ -1410,6 +1412,9 @@
1410
1412
  getUsedExtensions() {
1411
1413
  return this.json.extensionsUsed || [];
1412
1414
  }
1415
+ getRemovedExtensions() {
1416
+ return this.json.extensionsRemoved || [];
1417
+ }
1413
1418
  getObjectExtension(object, extensionName) {
1414
1419
  const extensions = object.extensions || {};
1415
1420
  return extensions[extensionName];
@@ -1534,6 +1539,9 @@
1534
1539
  }
1535
1540
  }
1536
1541
  removeExtension(extensionName) {
1542
+ if (!this.getExtension(extensionName)) {
1543
+ return;
1544
+ }
1537
1545
  if (this.json.extensionsRequired) {
1538
1546
  this._removeStringFromArray(this.json.extensionsRequired, extensionName);
1539
1547
  }
@@ -1543,6 +1551,13 @@
1543
1551
  if (this.json.extensions) {
1544
1552
  delete this.json.extensions[extensionName];
1545
1553
  }
1554
+ if (!Array.isArray(this.json.extensionsRemoved)) {
1555
+ this.json.extensionsRemoved = [];
1556
+ }
1557
+ const extensionsRemoved = this.json.extensionsRemoved;
1558
+ if (!extensionsRemoved.includes(extensionName)) {
1559
+ extensionsRemoved.push(extensionName);
1560
+ }
1546
1561
  }
1547
1562
  setDefaultScene(sceneIndex) {
1548
1563
  this.json.scene = sceneIndex;
@@ -2064,6 +2079,7 @@
2064
2079
  var DEFAULT_DRACO_OPTIONS, DracoLoader;
2065
2080
  var init_draco_loader = __esm({
2066
2081
  "../draco/src/draco-loader.ts"() {
2082
+ init_src();
2067
2083
  init_version5();
2068
2084
  DEFAULT_DRACO_OPTIONS = {
2069
2085
  draco: {
@@ -2075,7 +2091,7 @@
2075
2091
  };
2076
2092
  DracoLoader = {
2077
2093
  name: "Draco",
2078
- id: "draco",
2094
+ id: isBrowser2 ? "draco" : "draco-nodejs",
2079
2095
  module: "draco",
2080
2096
  shapes: ["mesh"],
2081
2097
  version: VERSION7,
@@ -2171,8 +2187,8 @@
2171
2187
  }
2172
2188
  select(...columnNames) {
2173
2189
  const nameMap = Object.create(null);
2174
- for (const name9 of columnNames) {
2175
- nameMap[name9] = true;
2190
+ for (const name10 of columnNames) {
2191
+ nameMap[name10] = true;
2176
2192
  }
2177
2193
  const selectedFields = this.fields.filter((field) => nameMap[field.name]);
2178
2194
  return new Schema(selectedFields, this.metadata);
@@ -2210,8 +2226,8 @@
2210
2226
  var init_field = __esm({
2211
2227
  "../schema/src/lib/schema/impl/field.ts"() {
2212
2228
  Field = class {
2213
- constructor(name9, type, nullable = false, metadata = new Map()) {
2214
- this.name = name9;
2229
+ constructor(name10, type, nullable = false, metadata = new Map()) {
2230
+ this.name = name10;
2215
2231
  this.type = type;
2216
2232
  this.nullable = nullable;
2217
2233
  this.metadata = metadata;
@@ -3096,15 +3112,17 @@
3096
3112
  });
3097
3113
  });
3098
3114
  }
3099
- var DRACO_VERSION, DRACO_JS_DECODER_URL, DRACO_WASM_WRAPPER_URL, DRACO_WASM_DECODER_URL, DRACO_ENCODER_URL, loadDecoderPromise;
3115
+ var DRACO_DECODER_VERSION, DRACO_ENCODER_VERSION, STATIC_DECODER_URL, DRACO_JS_DECODER_URL, DRACO_WASM_WRAPPER_URL, DRACO_WASM_DECODER_URL, DRACO_ENCODER_URL, loadDecoderPromise;
3100
3116
  var init_draco_module_loader = __esm({
3101
3117
  "../draco/src/lib/draco-module-loader.ts"() {
3102
3118
  init_src();
3103
- DRACO_VERSION = "1.4.1";
3104
- DRACO_JS_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_decoder.js`;
3105
- DRACO_WASM_WRAPPER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_wasm_wrapper.js`;
3106
- DRACO_WASM_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_VERSION}/draco_decoder.wasm`;
3107
- DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_VERSION}/javascript/draco_encoder.js`;
3119
+ DRACO_DECODER_VERSION = "1.5.5";
3120
+ DRACO_ENCODER_VERSION = "1.4.1";
3121
+ STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
3122
+ DRACO_JS_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.js`;
3123
+ DRACO_WASM_WRAPPER_URL = `${STATIC_DECODER_URL}/draco_wasm_wrapper.js`;
3124
+ DRACO_WASM_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.wasm`;
3125
+ DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/draco_encoder.js`;
3108
3126
  }
3109
3127
  });
3110
3128
 
@@ -3134,11 +3152,11 @@
3134
3152
  // src/lib/gltf-utils/gltf-attribute-utils.ts
3135
3153
  function getGLTFAccessors(attributes) {
3136
3154
  const accessors = {};
3137
- for (const name9 in attributes) {
3138
- const attribute = attributes[name9];
3139
- if (name9 !== "indices") {
3155
+ for (const name10 in attributes) {
3156
+ const attribute = attributes[name10];
3157
+ if (name10 !== "indices") {
3140
3158
  const glTFAccessor = getGLTFAccessor(attribute);
3141
- accessors[name9] = glTFAccessor;
3159
+ accessors[name10] = glTFAccessor;
3142
3160
  }
3143
3161
  }
3144
3162
  return accessors;
@@ -3313,11 +3331,8 @@
3313
3331
  });
3314
3332
 
3315
3333
  // ../../node_modules/@math.gl/core/dist/esm/lib/common.js
3316
- function round(value) {
3317
- return Math.round(value / config.EPSILON) * config.EPSILON;
3318
- }
3319
3334
  function formatValue(value, {
3320
- precision = config.precision || 4
3335
+ precision = config.precision
3321
3336
  } = {}) {
3322
3337
  value = round(value);
3323
3338
  return "".concat(parseFloat(value.toPrecision(precision)));
@@ -3351,7 +3366,7 @@
3351
3366
  if (b && b.equals) {
3352
3367
  return b.equals(a2);
3353
3368
  }
3354
- if (Number.isFinite(a2) && Number.isFinite(b)) {
3369
+ if (typeof a2 === "number" && typeof b === "number") {
3355
3370
  return Math.abs(a2 - b) <= config.EPSILON * Math.max(1, Math.abs(a2), Math.abs(b));
3356
3371
  }
3357
3372
  return false;
@@ -3359,18 +3374,22 @@
3359
3374
  config.EPSILON = oldEpsilon;
3360
3375
  }
3361
3376
  }
3377
+ function round(value) {
3378
+ return Math.round(value / config.EPSILON) * config.EPSILON;
3379
+ }
3362
3380
  var RADIANS_TO_DEGREES, DEGREES_TO_RADIANS, config;
3363
3381
  var init_common = __esm({
3364
3382
  "../../node_modules/@math.gl/core/dist/esm/lib/common.js"() {
3365
3383
  RADIANS_TO_DEGREES = 1 / Math.PI * 180;
3366
3384
  DEGREES_TO_RADIANS = 1 / 180 * Math.PI;
3367
- config = {};
3368
- config.EPSILON = 1e-12;
3369
- config.debug = false;
3370
- config.precision = 4;
3371
- config.printTypes = false;
3372
- config.printDegrees = false;
3373
- config.printRowMajor = true;
3385
+ config = {
3386
+ EPSILON: 1e-12,
3387
+ debug: false,
3388
+ precision: 4,
3389
+ printTypes: false,
3390
+ printDegrees: false,
3391
+ printRowMajor: true
3392
+ };
3374
3393
  }
3375
3394
  });
3376
3395
 
@@ -3400,24 +3419,25 @@
3400
3419
  var init_math_array = __esm({
3401
3420
  "../../node_modules/@math.gl/core/dist/esm/classes/base/math-array.js"() {
3402
3421
  init_common();
3403
- init_assert5();
3404
3422
  MathArray = class extends _extendableBuiltin(Array) {
3405
- get ELEMENTS() {
3406
- assert5(false);
3407
- return 0;
3408
- }
3409
3423
  clone() {
3410
3424
  return new this.constructor().copy(this);
3411
3425
  }
3412
- from(arrayOrObject) {
3413
- return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
3414
- }
3415
3426
  fromArray(array, offset = 0) {
3416
3427
  for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3417
3428
  this[i2] = array[i2 + offset];
3418
3429
  }
3419
3430
  return this.check();
3420
3431
  }
3432
+ toArray(targetArray = [], offset = 0) {
3433
+ for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3434
+ targetArray[offset + i2] = this[i2];
3435
+ }
3436
+ return targetArray;
3437
+ }
3438
+ from(arrayOrObject) {
3439
+ return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
3440
+ }
3421
3441
  to(arrayOrObject) {
3422
3442
  if (arrayOrObject === this) {
3423
3443
  return this;
@@ -3427,12 +3447,6 @@
3427
3447
  toTarget(target) {
3428
3448
  return target ? this.to(target) : this;
3429
3449
  }
3430
- toArray(array = [], offset = 0) {
3431
- for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3432
- array[offset + i2] = this[i2];
3433
- }
3434
- return array;
3435
- }
3436
3450
  toFloat32Array() {
3437
3451
  return new Float32Array(this);
3438
3452
  }
@@ -3476,9 +3490,7 @@
3476
3490
  }
3477
3491
  lerp(a2, b, t2) {
3478
3492
  if (t2 === void 0) {
3479
- t2 = b;
3480
- b = a2;
3481
- a2 = this;
3493
+ return this.lerp(this, a2, b);
3482
3494
  }
3483
3495
  for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3484
3496
  const ai = a2[i2];
@@ -3521,14 +3533,36 @@
3521
3533
  return this.check();
3522
3534
  }
3523
3535
  scale(scale2) {
3524
- if (Array.isArray(scale2)) {
3525
- return this.multiply(scale2);
3536
+ if (typeof scale2 === "number") {
3537
+ for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3538
+ this[i2] *= scale2;
3539
+ }
3540
+ } else {
3541
+ for (let i2 = 0; i2 < this.ELEMENTS && i2 < scale2.length; ++i2) {
3542
+ this[i2] *= scale2[i2];
3543
+ }
3526
3544
  }
3545
+ return this.check();
3546
+ }
3547
+ multiplyByScalar(scalar) {
3527
3548
  for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3528
- this[i2] *= scale2;
3549
+ this[i2] *= scalar;
3529
3550
  }
3530
3551
  return this.check();
3531
3552
  }
3553
+ check() {
3554
+ if (config.debug && !this.validate()) {
3555
+ throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
3556
+ }
3557
+ return this;
3558
+ }
3559
+ validate() {
3560
+ let valid = this.length === this.ELEMENTS;
3561
+ for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3562
+ valid = valid && Number.isFinite(this[i2]);
3563
+ }
3564
+ return valid;
3565
+ }
3532
3566
  sub(a2) {
3533
3567
  return this.subtract(a2);
3534
3568
  }
@@ -3554,7 +3588,7 @@
3554
3588
  return this.check();
3555
3589
  }
3556
3590
  divideScalar(a2) {
3557
- return this.scale(1 / a2);
3591
+ return this.multiplyByScalar(1 / a2);
3558
3592
  }
3559
3593
  clampScalar(min, max) {
3560
3594
  for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
@@ -3562,25 +3596,9 @@
3562
3596
  }
3563
3597
  return this.check();
3564
3598
  }
3565
- multiplyByScalar(scalar) {
3566
- return this.scale(scalar);
3567
- }
3568
3599
  get elements() {
3569
3600
  return this;
3570
3601
  }
3571
- check() {
3572
- if (config.debug && !this.validate()) {
3573
- throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
3574
- }
3575
- return this;
3576
- }
3577
- validate() {
3578
- let valid = this.length === this.ELEMENTS;
3579
- for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
3580
- valid = valid && Number.isFinite(this[i2]);
3581
- }
3582
- return valid;
3583
- }
3584
3602
  };
3585
3603
  }
3586
3604
  });
@@ -3609,17 +3627,9 @@
3609
3627
  }
3610
3628
  return v;
3611
3629
  }
3612
- function deprecated(method, version) {
3613
- if (!map[method]) {
3614
- map[method] = true;
3615
- console.warn("".concat(method, " has been removed in version ").concat(version, ", see upgrade guide for more information"));
3616
- }
3617
- }
3618
- var map;
3619
3630
  var init_validators = __esm({
3620
3631
  "../../node_modules/@math.gl/core/dist/esm/lib/validators.js"() {
3621
3632
  init_common();
3622
- map = {};
3623
3633
  }
3624
3634
  });
3625
3635
 
@@ -3631,14 +3641,6 @@
3631
3641
  init_validators();
3632
3642
  init_assert5();
3633
3643
  Vector = class extends MathArray {
3634
- get ELEMENTS() {
3635
- assert5(false);
3636
- return 0;
3637
- }
3638
- copy(vector) {
3639
- assert5(false);
3640
- return this;
3641
- }
3642
3644
  get x() {
3643
3645
  return this[0];
3644
3646
  }
@@ -3974,7 +3976,7 @@
3974
3976
  });
3975
3977
 
3976
3978
  // ../../node_modules/@math.gl/core/dist/esm/classes/vector3.js
3977
- var ORIGIN, constants, Vector3;
3979
+ var ORIGIN, ZERO, Vector3;
3978
3980
  var init_vector3 = __esm({
3979
3981
  "../../node_modules/@math.gl/core/dist/esm/classes/vector3.js"() {
3980
3982
  init_vector();
@@ -3983,10 +3985,13 @@
3983
3985
  init_vec3();
3984
3986
  init_gl_matrix_extras();
3985
3987
  ORIGIN = [0, 0, 0];
3986
- constants = {};
3987
3988
  Vector3 = class extends Vector {
3988
3989
  static get ZERO() {
3989
- return constants.ZERO = constants.ZERO || Object.freeze(new Vector3(0, 0, 0, 0));
3990
+ if (!ZERO) {
3991
+ ZERO = new Vector3(0, 0, 0);
3992
+ Object.freeze(ZERO);
3993
+ }
3994
+ return ZERO;
3990
3995
  }
3991
3996
  constructor(x = 0, y = 0, z = 0) {
3992
3997
  super(-0, -0, -0);
@@ -4103,16 +4108,7 @@
4103
4108
  init_math_array();
4104
4109
  init_validators();
4105
4110
  init_common();
4106
- init_assert5();
4107
4111
  Matrix = class extends MathArray {
4108
- get ELEMENTS() {
4109
- assert5(false);
4110
- return 0;
4111
- }
4112
- get RANK() {
4113
- assert5(false);
4114
- return 0;
4115
- }
4116
4112
  toString() {
4117
4113
  let string = "[";
4118
4114
  if (config.printRowMajor) {
@@ -4299,7 +4295,21 @@
4299
4295
  });
4300
4296
 
4301
4297
  // ../../node_modules/@math.gl/core/dist/esm/classes/matrix3.js
4302
- var IDENTITY, ZERO, INDICES, constants2, Matrix3;
4298
+ function getZeroMatrix() {
4299
+ if (!ZERO_MATRIX3) {
4300
+ ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
4301
+ Object.freeze(ZERO_MATRIX3);
4302
+ }
4303
+ return ZERO_MATRIX3;
4304
+ }
4305
+ function getIdentityMatrix() {
4306
+ if (!IDENTITY_MATRIX3) {
4307
+ IDENTITY_MATRIX3 = new Matrix3();
4308
+ Object.freeze(IDENTITY_MATRIX3);
4309
+ }
4310
+ return IDENTITY_MATRIX3;
4311
+ }
4312
+ var INDICES, IDENTITY_MATRIX, Matrix3, ZERO_MATRIX3, IDENTITY_MATRIX3;
4303
4313
  var init_matrix3 = __esm({
4304
4314
  "../../node_modules/@math.gl/core/dist/esm/classes/matrix3.js"() {
4305
4315
  init_matrix();
@@ -4308,28 +4318,24 @@
4308
4318
  init_mat3();
4309
4319
  init_vec2();
4310
4320
  init_vec3();
4311
- IDENTITY = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
4312
- ZERO = Object.freeze([0, 0, 0, 0, 0, 0, 0, 0, 0]);
4313
- INDICES = Object.freeze({
4314
- COL0ROW0: 0,
4315
- COL0ROW1: 1,
4316
- COL0ROW2: 2,
4317
- COL1ROW0: 3,
4318
- COL1ROW1: 4,
4319
- COL1ROW2: 5,
4320
- COL2ROW0: 6,
4321
- COL2ROW1: 7,
4322
- COL2ROW2: 8
4323
- });
4324
- constants2 = {};
4321
+ (function(INDICES2) {
4322
+ INDICES2[INDICES2["COL0ROW0"] = 0] = "COL0ROW0";
4323
+ INDICES2[INDICES2["COL0ROW1"] = 1] = "COL0ROW1";
4324
+ INDICES2[INDICES2["COL0ROW2"] = 2] = "COL0ROW2";
4325
+ INDICES2[INDICES2["COL1ROW0"] = 3] = "COL1ROW0";
4326
+ INDICES2[INDICES2["COL1ROW1"] = 4] = "COL1ROW1";
4327
+ INDICES2[INDICES2["COL1ROW2"] = 5] = "COL1ROW2";
4328
+ INDICES2[INDICES2["COL2ROW0"] = 6] = "COL2ROW0";
4329
+ INDICES2[INDICES2["COL2ROW1"] = 7] = "COL2ROW1";
4330
+ INDICES2[INDICES2["COL2ROW2"] = 8] = "COL2ROW2";
4331
+ })(INDICES || (INDICES = {}));
4332
+ IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
4325
4333
  Matrix3 = class extends Matrix {
4326
4334
  static get IDENTITY() {
4327
- constants2.IDENTITY = constants2.IDENTITY || Object.freeze(new Matrix3(IDENTITY));
4328
- return constants2.IDENTITY;
4335
+ return getIdentityMatrix();
4329
4336
  }
4330
4337
  static get ZERO() {
4331
- constants2.ZERO = constants2.ZERO || Object.freeze(new Matrix3(ZERO));
4332
- return constants2.ZERO;
4338
+ return getZeroMatrix();
4333
4339
  }
4334
4340
  get ELEMENTS() {
4335
4341
  return 9;
@@ -4340,10 +4346,12 @@
4340
4346
  get INDICES() {
4341
4347
  return INDICES;
4342
4348
  }
4343
- constructor(array) {
4349
+ constructor(array, ...args) {
4344
4350
  super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
4345
4351
  if (arguments.length === 1 && Array.isArray(array)) {
4346
4352
  this.copy(array);
4353
+ } else if (args.length > 0) {
4354
+ this.copy([array, ...args]);
4347
4355
  } else {
4348
4356
  this.identity();
4349
4357
  }
@@ -4360,6 +4368,16 @@
4360
4368
  this[8] = array[8];
4361
4369
  return this.check();
4362
4370
  }
4371
+ identity() {
4372
+ return this.copy(IDENTITY_MATRIX);
4373
+ }
4374
+ fromObject(object) {
4375
+ return this.check();
4376
+ }
4377
+ fromQuaternion(q) {
4378
+ fromQuat(this, q);
4379
+ return this.check();
4380
+ }
4363
4381
  set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
4364
4382
  this[0] = m00;
4365
4383
  this[1] = m10;
@@ -4387,13 +4405,6 @@
4387
4405
  determinant() {
4388
4406
  return determinant(this);
4389
4407
  }
4390
- identity() {
4391
- return this.copy(IDENTITY);
4392
- }
4393
- fromQuaternion(q) {
4394
- fromQuat(this, q);
4395
- return this.check();
4396
- }
4397
4408
  transpose() {
4398
4409
  transpose(this, this);
4399
4410
  return this.check();
@@ -4418,7 +4429,7 @@
4418
4429
  if (Array.isArray(factor)) {
4419
4430
  scale(this, this, factor);
4420
4431
  } else {
4421
- scale(this, this, [factor, factor, factor]);
4432
+ scale(this, this, [factor, factor]);
4422
4433
  }
4423
4434
  return this.check();
4424
4435
  }
@@ -4427,32 +4438,30 @@
4427
4438
  return this.check();
4428
4439
  }
4429
4440
  transform(vector, result) {
4441
+ let out;
4430
4442
  switch (vector.length) {
4431
4443
  case 2:
4432
- result = transformMat3(result || [-0, -0], vector, this);
4444
+ out = transformMat3(result || [-0, -0], vector, this);
4433
4445
  break;
4434
4446
  case 3:
4435
- result = transformMat32(result || [-0, -0, -0], vector, this);
4447
+ out = transformMat32(result || [-0, -0, -0], vector, this);
4436
4448
  break;
4437
4449
  case 4:
4438
- result = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
4450
+ out = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
4439
4451
  break;
4440
4452
  default:
4441
4453
  throw new Error("Illegal vector");
4442
4454
  }
4443
- checkVector(result, vector.length);
4444
- return result;
4455
+ checkVector(out, vector.length);
4456
+ return out;
4445
4457
  }
4446
4458
  transformVector(vector, result) {
4447
- deprecated("Matrix3.transformVector");
4448
4459
  return this.transform(vector, result);
4449
4460
  }
4450
4461
  transformVector2(vector, result) {
4451
- deprecated("Matrix3.transformVector");
4452
4462
  return this.transform(vector, result);
4453
4463
  }
4454
4464
  transformVector3(vector, result) {
4455
- deprecated("Matrix3.transformVector");
4456
4465
  return this.transform(vector, result);
4457
4466
  }
4458
4467
  };
@@ -4460,21 +4469,10 @@
4460
4469
  });
4461
4470
 
4462
4471
  // ../../node_modules/@math.gl/core/dist/esm/index.js
4463
- var globals3, global_3;
4464
4472
  var init_esm = __esm({
4465
4473
  "../../node_modules/@math.gl/core/dist/esm/index.js"() {
4466
- init_common();
4467
4474
  init_vector3();
4468
4475
  init_matrix3();
4469
- globals3 = {
4470
- self: typeof self !== "undefined" && self,
4471
- window: typeof window !== "undefined" && window,
4472
- global: typeof global !== "undefined" && global
4473
- };
4474
- global_3 = globals3.global || globals3.self || globals3.window;
4475
- global_3.mathgl = {
4476
- config
4477
- };
4478
4476
  }
4479
4477
  });
4480
4478
 
@@ -4725,7 +4723,6 @@
4725
4723
  async function decode6(gltfData) {
4726
4724
  const gltfScenegraph = new GLTFScenegraph(gltfData);
4727
4725
  const { json } = gltfScenegraph;
4728
- gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);
4729
4726
  for (const material of json.materials || []) {
4730
4727
  const extension = material.extensions && material.extensions.KHR_materials_unlit;
4731
4728
  if (extension) {
@@ -4733,6 +4730,7 @@
4733
4730
  }
4734
4731
  gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);
4735
4732
  }
4733
+ gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);
4736
4734
  }
4737
4735
  function encode3(gltfData) {
4738
4736
  const gltfScenegraph = new GLTFScenegraph(gltfData);
@@ -4824,6 +4822,91 @@
4824
4822
  }
4825
4823
  });
4826
4824
 
4825
+ // src/lib/extensions/deprecated/EXT_feature_metadata.ts
4826
+ var EXT_feature_metadata_exports = {};
4827
+ __export(EXT_feature_metadata_exports, {
4828
+ decode: () => decode8,
4829
+ name: () => name9
4830
+ });
4831
+ async function decode8(gltfData) {
4832
+ const scenegraph = new GLTFScenegraph(gltfData);
4833
+ decodeExtFeatureMetadata(scenegraph);
4834
+ }
4835
+ function decodeExtFeatureMetadata(scenegraph) {
4836
+ const extension = scenegraph.getExtension(EXT_FEATURE_METADATA);
4837
+ const schemaClasses = extension?.schema?.classes;
4838
+ const featureTables = extension?.featureTables;
4839
+ const featureTextures = extension?.featureTextures;
4840
+ if (featureTextures) {
4841
+ console.warn('featureTextures is not yet supported in the "EXT_feature_metadata" extension.');
4842
+ }
4843
+ if (schemaClasses && featureTables) {
4844
+ for (const schemaName in schemaClasses) {
4845
+ const schemaClass = schemaClasses[schemaName];
4846
+ const featureTable = findFeatureTableByName(featureTables, schemaName);
4847
+ if (featureTable) {
4848
+ handleFeatureTableProperties(scenegraph, featureTable, schemaClass);
4849
+ }
4850
+ }
4851
+ }
4852
+ }
4853
+ function handleFeatureTableProperties(scenegraph, featureTable, schemaClass) {
4854
+ for (const propertyName in schemaClass.properties) {
4855
+ const schemaProperty = schemaClass.properties[propertyName];
4856
+ const featureTableProperty = featureTable?.properties?.[propertyName];
4857
+ const numberOfFeatures = featureTable.count;
4858
+ if (featureTableProperty) {
4859
+ const data = getPropertyDataFromBinarySource(scenegraph, schemaProperty, numberOfFeatures, featureTableProperty);
4860
+ featureTableProperty.data = data;
4861
+ }
4862
+ }
4863
+ }
4864
+ function getPropertyDataFromBinarySource(scenegraph, schemaProperty, numberOfFeatures, featureTableProperty) {
4865
+ const bufferView = featureTableProperty.bufferView;
4866
+ let data = scenegraph.getTypedArrayForBufferView(bufferView);
4867
+ switch (schemaProperty.type) {
4868
+ case "STRING": {
4869
+ const stringOffsetBufferView = featureTableProperty.stringOffsetBufferView;
4870
+ const offsetsData = scenegraph.getTypedArrayForBufferView(stringOffsetBufferView);
4871
+ data = getStringAttributes(data, offsetsData, numberOfFeatures);
4872
+ break;
4873
+ }
4874
+ default:
4875
+ }
4876
+ return data;
4877
+ }
4878
+ function findFeatureTableByName(featureTables, schemaClassName) {
4879
+ for (const featureTableName in featureTables) {
4880
+ const featureTable = featureTables[featureTableName];
4881
+ if (featureTable.class === schemaClassName) {
4882
+ return featureTable;
4883
+ }
4884
+ }
4885
+ return null;
4886
+ }
4887
+ function getStringAttributes(data, offsetsData, stringsCount) {
4888
+ const stringsArray = [];
4889
+ const textDecoder = new TextDecoder("utf8");
4890
+ let stringOffset = 0;
4891
+ const bytesPerStringSize = 4;
4892
+ for (let index = 0; index < stringsCount; index++) {
4893
+ const stringByteSize = offsetsData[(index + 1) * bytesPerStringSize] - offsetsData[index * bytesPerStringSize];
4894
+ const stringData = data.subarray(stringOffset, stringByteSize + stringOffset);
4895
+ const stringAttribute = textDecoder.decode(stringData);
4896
+ stringsArray.push(stringAttribute);
4897
+ stringOffset += stringByteSize;
4898
+ }
4899
+ return stringsArray;
4900
+ }
4901
+ var EXT_FEATURE_METADATA, name9;
4902
+ var init_EXT_feature_metadata = __esm({
4903
+ "src/lib/extensions/deprecated/EXT_feature_metadata.ts"() {
4904
+ init_gltf_scenegraph();
4905
+ EXT_FEATURE_METADATA = "EXT_feature_metadata";
4906
+ name9 = EXT_FEATURE_METADATA;
4907
+ }
4908
+ });
4909
+
4827
4910
  // src/lib/api/gltf-extensions.ts
4828
4911
  function preprocessExtensions(gltf, options = {}, context) {
4829
4912
  const extensions = EXTENSIONS2.filter((extension) => useExtension(extension.name, options));
@@ -4853,6 +4936,7 @@
4853
4936
  init_KHR_lights_punctual();
4854
4937
  init_KHR_materials_unlit();
4855
4938
  init_KHR_techniques_webgl();
4939
+ init_EXT_feature_metadata();
4856
4940
  EXTENSIONS2 = [
4857
4941
  EXT_meshopt_compression_exports,
4858
4942
  EXT_texture_webp_exports,
@@ -4861,7 +4945,8 @@
4861
4945
  KHR_lights_punctual_exports,
4862
4946
  KHR_materials_unlit_exports,
4863
4947
  KHR_techniques_webgl_exports,
4864
- KHR_texture_transform_exports
4948
+ KHR_texture_transform_exports,
4949
+ EXT_feature_metadata_exports
4865
4950
  ];
4866
4951
  }
4867
4952
  });
@@ -5079,7 +5164,7 @@
5079
5164
  metallicFactor: 1,
5080
5165
  roughnessFactor: 1
5081
5166
  };
5082
- const textureId = material.values?.tex || material.values?.texture2d_0;
5167
+ const textureId = material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;
5083
5168
  const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
5084
5169
  if (textureIndex !== -1) {
5085
5170
  material.pbrMetallicRoughness.baseColorTexture = { index: textureIndex };
@@ -5622,10 +5707,13 @@
5622
5707
  async function loadImage(gltf, image, index, options, context) {
5623
5708
  const { fetch: fetch2, parse: parse4 } = context;
5624
5709
  let arrayBuffer;
5625
- if (image.uri) {
5710
+ if (image.uri && !image.hasOwnProperty("bufferView")) {
5626
5711
  const uri = resolveUrl(image.uri, options);
5627
5712
  const response = await fetch2(uri);
5628
5713
  arrayBuffer = await response.arrayBuffer();
5714
+ image.bufferView = {
5715
+ data: arrayBuffer
5716
+ };
5629
5717
  }
5630
5718
  if (Number.isFinite(image.bufferView)) {
5631
5719
  const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);