@loaders.gl/gltf 3.4.0-alpha.1 → 3.4.0-alpha.3

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 (134) hide show
  1. package/dist/dist.min.js +79 -27
  2. package/dist/es5/glb-loader.js +6 -9
  3. package/dist/es5/glb-loader.js.map +1 -1
  4. package/dist/es5/glb-writer.js +0 -3
  5. package/dist/es5/glb-writer.js.map +1 -1
  6. package/dist/es5/gltf-loader.js +15 -19
  7. package/dist/es5/gltf-loader.js.map +1 -1
  8. package/dist/es5/gltf-writer.js +0 -2
  9. package/dist/es5/gltf-writer.js.map +1 -1
  10. package/dist/es5/index.js.map +1 -1
  11. package/dist/es5/lib/api/gltf-extensions.js +36 -43
  12. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  13. package/dist/es5/lib/api/gltf-scenegraph.js +31 -108
  14. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  15. package/dist/es5/lib/api/normalize-gltf-v1.js +8 -33
  16. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  17. package/dist/es5/lib/api/post-process-gltf.js +5 -22
  18. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  19. package/dist/es5/lib/encoders/encode-glb.js +0 -16
  20. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  21. package/dist/es5/lib/encoders/encode-gltf.js +0 -2
  22. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  23. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +48 -54
  24. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  25. package/dist/es5/lib/extensions/EXT_texture_webp.js +2 -5
  26. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
  27. package/dist/es5/lib/extensions/KHR_binary_gltf.js +1 -7
  28. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  29. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +117 -134
  30. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  31. package/dist/es5/lib/extensions/KHR_texture_basisu.js +1 -4
  32. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
  33. package/dist/es5/lib/extensions/KHR_texture_transform.js +18 -27
  34. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
  35. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +7 -14
  36. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  37. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +52 -58
  38. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  39. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +22 -26
  40. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  41. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +31 -40
  42. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  43. package/dist/es5/lib/gltf-utils/get-typed-array.js +0 -3
  44. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  45. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +0 -5
  46. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  47. package/dist/es5/lib/gltf-utils/gltf-constants.js +0 -2
  48. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  49. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  50. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  51. package/dist/es5/lib/parsers/parse-glb.js +0 -16
  52. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  53. package/dist/es5/lib/parsers/parse-gltf.js +145 -164
  54. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  55. package/dist/es5/lib/utils/assert.js.map +1 -1
  56. package/dist/es5/lib/utils/version.js +1 -1
  57. package/dist/es5/lib/utils/version.js.map +1 -1
  58. package/dist/es5/meshopt/meshopt-decoder.js +69 -87
  59. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  60. package/dist/es5/webp/webp.js +40 -45
  61. package/dist/es5/webp/webp.js.map +1 -1
  62. package/dist/esm/bundle.js +0 -1
  63. package/dist/esm/bundle.js.map +1 -1
  64. package/dist/esm/glb-loader.js +0 -2
  65. package/dist/esm/glb-loader.js.map +1 -1
  66. package/dist/esm/glb-writer.js +0 -4
  67. package/dist/esm/glb-writer.js.map +1 -1
  68. package/dist/esm/gltf-loader.js +0 -2
  69. package/dist/esm/gltf-loader.js.map +1 -1
  70. package/dist/esm/gltf-writer.js +0 -2
  71. package/dist/esm/gltf-writer.js.map +1 -1
  72. package/dist/esm/index.js +0 -4
  73. package/dist/esm/index.js.map +1 -1
  74. package/dist/esm/lib/api/gltf-extensions.js +1 -10
  75. package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
  76. package/dist/esm/lib/api/gltf-scenegraph.js +2 -48
  77. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  78. package/dist/esm/lib/api/normalize-gltf-v1.js +0 -17
  79. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  80. package/dist/esm/lib/api/post-process-gltf.js +2 -16
  81. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  82. package/dist/esm/lib/encoders/encode-glb.js +0 -16
  83. package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
  84. package/dist/esm/lib/encoders/encode-gltf.js +0 -2
  85. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
  86. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +0 -7
  87. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  88. package/dist/esm/lib/extensions/EXT_texture_webp.js +2 -7
  89. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
  90. package/dist/esm/lib/extensions/KHR_binary_gltf.js +0 -6
  91. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
  92. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +1 -18
  93. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  94. package/dist/esm/lib/extensions/KHR_texture_basisu.js +0 -5
  95. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
  96. package/dist/esm/lib/extensions/KHR_texture_transform.js +0 -11
  97. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
  98. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +0 -7
  99. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  100. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +0 -7
  101. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  102. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +0 -5
  103. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  104. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +3 -11
  105. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  106. package/dist/esm/lib/gltf-utils/get-typed-array.js +0 -4
  107. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
  108. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +0 -7
  109. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  110. package/dist/esm/lib/gltf-utils/gltf-constants.js +0 -1
  111. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
  112. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
  113. package/dist/esm/lib/gltf-utils/resolve-url.js +0 -1
  114. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  115. package/dist/esm/lib/parsers/parse-glb.js +0 -17
  116. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  117. package/dist/esm/lib/parsers/parse-gltf.js +0 -18
  118. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  119. package/dist/esm/lib/utils/assert.js +0 -1
  120. package/dist/esm/lib/utils/assert.js.map +1 -1
  121. package/dist/esm/lib/utils/version.js +1 -2
  122. package/dist/esm/lib/utils/version.js.map +1 -1
  123. package/dist/esm/meshopt/meshopt-decoder.js +0 -8
  124. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  125. package/dist/esm/webp/webp.js +0 -2
  126. package/dist/esm/webp/webp.js.map +1 -1
  127. package/dist/gltf-loader.d.ts +2 -1
  128. package/dist/gltf-loader.d.ts.map +1 -1
  129. package/dist/lib/api/gltf-extensions.js +1 -1
  130. package/dist/lib/extensions/EXT_texture_webp.js +1 -1
  131. package/dist/lib/parsers/parse-gltf.d.ts +1 -1
  132. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  133. package/package.json +6 -6
  134. package/src/lib/extensions/EXT_texture_webp.ts +2 -2
package/dist/dist.min.js CHANGED
@@ -282,7 +282,7 @@
282
282
  }
283
283
  });
284
284
 
285
- // ../loader-utils/src/lib/binary-utils/binary-copy-utils.ts
285
+ // ../loader-utils/src/lib/binary-utils/dataview-copy-utils.ts
286
286
  function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
287
287
  const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);
288
288
  const padLength = paddedLength - sourceBuffer.byteLength;
@@ -303,8 +303,8 @@
303
303
  byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
304
304
  return byteOffset;
305
305
  }
306
- var init_binary_copy_utils = __esm({
307
- "../loader-utils/src/lib/binary-utils/binary-copy-utils.ts"() {
306
+ var init_dataview_copy_utils = __esm({
307
+ "../loader-utils/src/lib/binary-utils/dataview-copy-utils.ts"() {
308
308
  init_memory_copy_utils();
309
309
  }
310
310
  });
@@ -317,7 +317,7 @@
317
317
  init_parse_json();
318
318
  init_array_buffer_utils();
319
319
  init_memory_copy_utils();
320
- init_binary_copy_utils();
320
+ init_dataview_copy_utils();
321
321
  }
322
322
  });
323
323
 
@@ -986,10 +986,62 @@
986
986
  }
987
987
  });
988
988
 
989
+ // ../images/src/lib/category-api/parse-isobmff-binary.ts
990
+ function getISOBMFFMediaType(buffer) {
991
+ if (!checkString(buffer, "ftyp", 4)) {
992
+ return null;
993
+ }
994
+ if ((buffer[8] & 96) === 0) {
995
+ return null;
996
+ }
997
+ return decodeMajorBrand(buffer);
998
+ }
999
+ function decodeMajorBrand(buffer) {
1000
+ const brandMajor = getUTF8String(buffer, 8, 12).replace("\0", " ").trim();
1001
+ switch (brandMajor) {
1002
+ case "avif":
1003
+ case "avis":
1004
+ return { extension: "avif", mimeType: "image/avif" };
1005
+ default:
1006
+ return null;
1007
+ }
1008
+ }
1009
+ function getUTF8String(array, start, end) {
1010
+ return String.fromCharCode(...array.slice(start, end));
1011
+ }
1012
+ function stringToBytes(string) {
1013
+ return [...string].map((character) => character.charCodeAt(0));
1014
+ }
1015
+ function checkString(buffer, header, offset = 0) {
1016
+ const headerBytes = stringToBytes(header);
1017
+ for (let i2 = 0; i2 < headerBytes.length; ++i2) {
1018
+ if (headerBytes[i2] !== buffer[i2 + offset]) {
1019
+ return false;
1020
+ }
1021
+ }
1022
+ return true;
1023
+ }
1024
+ var init_parse_isobmff_binary = __esm({
1025
+ "../images/src/lib/category-api/parse-isobmff-binary.ts"() {
1026
+ }
1027
+ });
1028
+
989
1029
  // ../images/src/lib/category-api/binary-image-api.ts
990
1030
  function getBinaryImageMetadata(binaryData) {
991
1031
  const dataView = toDataView(binaryData);
992
- return getPngMetadata(dataView) || getJpegMetadata(dataView) || getGifMetadata(dataView) || getBmpMetadata(dataView);
1032
+ return getPngMetadata(dataView) || getJpegMetadata(dataView) || getGifMetadata(dataView) || getBmpMetadata(dataView) || getISOBMFFMetadata(dataView);
1033
+ }
1034
+ function getISOBMFFMetadata(binaryData) {
1035
+ const buffer = new Uint8Array(binaryData instanceof DataView ? binaryData.buffer : binaryData);
1036
+ const mediaType = getISOBMFFMediaType(buffer);
1037
+ if (!mediaType) {
1038
+ return null;
1039
+ }
1040
+ return {
1041
+ mimeType: mediaType.mimeType,
1042
+ width: 0,
1043
+ height: 0
1044
+ };
993
1045
  }
994
1046
  function getPngMetadata(binaryData) {
995
1047
  const dataView = toDataView(binaryData);
@@ -1090,6 +1142,7 @@
1090
1142
  var BIG_ENDIAN, LITTLE_ENDIAN;
1091
1143
  var init_binary_image_api = __esm({
1092
1144
  "../images/src/lib/category-api/binary-image-api.ts"() {
1145
+ init_parse_isobmff_binary();
1093
1146
  BIG_ENDIAN = false;
1094
1147
  LITTLE_ENDIAN = true;
1095
1148
  }
@@ -1163,12 +1216,13 @@
1163
1216
  init_version4();
1164
1217
  init_parse_image();
1165
1218
  init_binary_image_api();
1166
- EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg"];
1219
+ EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg", "avif"];
1167
1220
  MIME_TYPES = [
1168
1221
  "image/png",
1169
1222
  "image/jpeg",
1170
1223
  "image/gif",
1171
1224
  "image/webp",
1225
+ "image/avif",
1172
1226
  "image/bmp",
1173
1227
  "image/vnd.microsoft.icon",
1174
1228
  "image/svg+xml"
@@ -1194,43 +1248,41 @@
1194
1248
  });
1195
1249
 
1196
1250
  // ../images/src/lib/category-api/image-format.ts
1197
- function _isImageFormatSupported(mimeType) {
1198
- if (mimeTypeSupported[mimeType] === void 0) {
1199
- mimeTypeSupported[mimeType] = checkFormatSupport(mimeType);
1251
+ function isImageFormatSupported(mimeType) {
1252
+ if (mimeTypeSupportedSync[mimeType] === void 0) {
1253
+ const supported = isBrowser ? checkBrowserImageFormatSupport(mimeType) : checkNodeImageFormatSupport(mimeType);
1254
+ mimeTypeSupportedSync[mimeType] = supported;
1200
1255
  }
1201
- return mimeTypeSupported[mimeType];
1256
+ return mimeTypeSupportedSync[mimeType];
1257
+ }
1258
+ function checkNodeImageFormatSupport(mimeType) {
1259
+ const NODE_FORMAT_SUPPORT = ["image/png", "image/jpeg", "image/gif"];
1260
+ const { _parseImageNode: _parseImageNode2, _imageFormatsNode = NODE_FORMAT_SUPPORT } = globalThis;
1261
+ return Boolean(_parseImageNode2) && _imageFormatsNode.includes(mimeType);
1202
1262
  }
1203
- function checkFormatSupport(mimeType) {
1263
+ function checkBrowserImageFormatSupport(mimeType) {
1204
1264
  switch (mimeType) {
1265
+ case "image/avif":
1205
1266
  case "image/webp":
1206
- return checkWebPSupport();
1207
- case "image/svg":
1208
- return isBrowser;
1267
+ return testBrowserImageFormatSupport(mimeType);
1209
1268
  default:
1210
- if (!isBrowser) {
1211
- const { _parseImageNode: _parseImageNode2 } = globalThis;
1212
- return Boolean(_parseImageNode2) && NODE_FORMAT_SUPPORT.includes(mimeType);
1213
- }
1214
1269
  return true;
1215
1270
  }
1216
1271
  }
1217
- function checkWebPSupport() {
1218
- if (!isBrowser) {
1219
- return false;
1220
- }
1272
+ function testBrowserImageFormatSupport(mimeType) {
1221
1273
  try {
1222
1274
  const element = document.createElement("canvas");
1223
- return element.toDataURL("image/webp").indexOf("data:image/webp") === 0;
1275
+ const dataURL = element.toDataURL(mimeType);
1276
+ return dataURL.indexOf(`data:${mimeType}`) === 0;
1224
1277
  } catch {
1225
1278
  return false;
1226
1279
  }
1227
1280
  }
1228
- var NODE_FORMAT_SUPPORT, mimeTypeSupported;
1281
+ var mimeTypeSupportedSync;
1229
1282
  var init_image_format = __esm({
1230
1283
  "../images/src/lib/category-api/image-format.ts"() {
1231
1284
  init_src2();
1232
- NODE_FORMAT_SUPPORT = ["image/png", "image/jpeg", "image/gif"];
1233
- mimeTypeSupported = {};
1285
+ mimeTypeSupportedSync = {};
1234
1286
  }
1235
1287
  });
1236
1288
 
@@ -2015,7 +2067,7 @@
2015
2067
  });
2016
2068
  function preprocess(gltfData, options) {
2017
2069
  const scenegraph = new GLTFScenegraph(gltfData);
2018
- if (!_isImageFormatSupported("image/webp")) {
2070
+ if (!isImageFormatSupported("image/webp")) {
2019
2071
  if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
2020
2072
  throw new Error(`gltf: Required extension ${EXT_TEXTURE_WEBP} not supported by browser`);
2021
2073
  }
@@ -32,14 +32,12 @@ function parse(_x, _x2) {
32
32
  function _parse() {
33
33
  _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
34
34
  return _regenerator.default.wrap(function _callee$(_context) {
35
- while (1) {
36
- switch (_context.prev = _context.next) {
37
- case 0:
38
- return _context.abrupt("return", parseSync(arrayBuffer, options));
39
- case 1:
40
- case "end":
41
- return _context.stop();
42
- }
35
+ while (1) switch (_context.prev = _context.next) {
36
+ case 0:
37
+ return _context.abrupt("return", parseSync(arrayBuffer, options));
38
+ case 1:
39
+ case "end":
40
+ return _context.stop();
43
41
  }
44
42
  }, _callee);
45
43
  }));
@@ -53,7 +51,6 @@ function parseSync(arrayBuffer, options) {
53
51
  (0, _parseGlb.default)(glb, arrayBuffer, byteOffset, options === null || options === void 0 ? void 0 : options.glb);
54
52
  return glb;
55
53
  }
56
-
57
54
  var _TypecheckGLBLoader = GLBLoader;
58
55
  exports._TypecheckGLBLoader = _TypecheckGLBLoader;
59
56
  //# sourceMappingURL=glb-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-loader.js","names":["GLBLoader","name","id","module","version","VERSION","extensions","mimeTypes","binary","parse","parseSync","options","glb","strict","arrayBuffer","byteOffset","parseGLBSync","_TypecheckGLBLoader"],"sources":["../../src/glb-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {GLB} from './lib/types/glb-types';\nimport type {GLBParseOptions} from './lib/parsers/parse-glb';\nimport {VERSION} from './lib/utils/version';\nimport parseGLBSync from './lib/parsers/parse-glb';\n\nexport type GLBLoaderOptions = LoaderOptions & {\n glb?: GLBParseOptions;\n byteOffset?: number;\n};\n\n/**\n * GLB Loader -\n * GLB is the binary container format for GLTF\n */\nexport const GLBLoader: LoaderWithParser = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n parse,\n parseSync,\n options: {\n glb: {\n strict: false // Enables deprecated XVIZ support (illegal CHUNK formats)\n }\n }\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): Promise<GLB> {\n return parseSync(arrayBuffer, options);\n}\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): GLB {\n const {byteOffset = 0} = options || {};\n const glb: GLB = {} as GLB;\n parseGLBSync(glb, arrayBuffer, byteOffset, options?.glb);\n return glb;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: LoaderWithParser = GLBLoader;\n"],"mappings":";;;;;;;;;AAGA;AACA;AAWO,IAAMA,SAA2B,GAAG;EACzCC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAALA,KAAK;EACLC,SAAS,EAATA,SAAS;EACTC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,MAAM,EAAE;IACV;EACF;AACF,CAAC;AAAC;AAAA,SAEaJ,KAAK;EAAA;AAAA;AAAA;EAAA,mEAApB,iBAAqBK,WAAwB,EAAEH,OAA0B;IAAA;MAAA;QAAA;UAAA;YAAA,iCAChED,SAAS,CAACI,WAAW,EAAEH,OAAO,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACvC;EAAA;AAAA;AAED,SAASD,SAAS,CAACI,WAAwB,EAAEH,OAA0B,EAAO;EAC5E,WAAyBA,OAAO,IAAI,CAAC,CAAC;IAAA,uBAA/BI,UAAU;IAAVA,UAAU,gCAAG,CAAC;EACrB,IAAMH,GAAQ,GAAG,CAAC,CAAQ;EAC1B,IAAAI,iBAAY,EAACJ,GAAG,EAAEE,WAAW,EAAEC,UAAU,EAAEJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,GAAG,CAAC;EACxD,OAAOA,GAAG;AACZ;;AAGO,IAAMK,mBAAqC,GAAGjB,SAAS;AAAC"}
1
+ {"version":3,"file":"glb-loader.js","names":["_version","require","_parseGlb","_interopRequireDefault","GLBLoader","name","id","module","version","VERSION","extensions","mimeTypes","binary","parse","parseSync","options","glb","strict","exports","_x","_x2","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","stop","_ref","_ref$byteOffset","byteOffset","parseGLBSync","_TypecheckGLBLoader"],"sources":["../../src/glb-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {GLB} from './lib/types/glb-types';\nimport type {GLBParseOptions} from './lib/parsers/parse-glb';\nimport {VERSION} from './lib/utils/version';\nimport parseGLBSync from './lib/parsers/parse-glb';\n\nexport type GLBLoaderOptions = LoaderOptions & {\n glb?: GLBParseOptions;\n byteOffset?: number;\n};\n\n/**\n * GLB Loader -\n * GLB is the binary container format for GLTF\n */\nexport const GLBLoader: LoaderWithParser = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n parse,\n parseSync,\n options: {\n glb: {\n strict: false // Enables deprecated XVIZ support (illegal CHUNK formats)\n }\n }\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): Promise<GLB> {\n return parseSync(arrayBuffer, options);\n}\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): GLB {\n const {byteOffset = 0} = options || {};\n const glb: GLB = {} as GLB;\n parseGLBSync(glb, arrayBuffer, byteOffset, options?.glb);\n return glb;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: LoaderWithParser = GLBLoader;\n"],"mappings":";;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AAWO,IAAMG,SAA2B,GAAG;EACzCC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAALA,KAAK;EACLC,SAAS,EAATA,SAAS;EACTC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,MAAM,EAAE;IACV;EACF;AACF,CAAC;AAACC,OAAA,CAAAd,SAAA,GAAAA,SAAA;AAAA,SAEaS,KAAKA,CAAAM,EAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,OAAA;EAAAA,MAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApB,SAAAC,QAAqBC,WAAwB,EAAEd,OAA0B;IAAA,OAAAW,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAA,OAAAF,QAAA,CAAAG,MAAA,WAChErB,SAAS,CAACe,WAAW,EAAEd,OAAO,CAAC;QAAA;QAAA;UAAA,OAAAiB,QAAA,CAAAI,IAAA;MAAA;IAAA,GAAAR,OAAA;EAAA,CACvC;EAAA,OAAAP,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAAST,SAASA,CAACe,WAAwB,EAAEd,OAA0B,EAAO;EAC5E,IAAAsB,IAAA,GAAyBtB,OAAO,IAAI,CAAC,CAAC;IAAAuB,eAAA,GAAAD,IAAA,CAA/BE,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;EACrB,IAAMtB,GAAQ,GAAG,CAAC,CAAQ;EAC1B,IAAAwB,iBAAY,EAACxB,GAAG,EAAEa,WAAW,EAAEU,UAAU,EAAExB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,GAAG,CAAC;EACxD,OAAOA,GAAG;AACZ;AAGO,IAAMyB,mBAAqC,GAAGrC,SAAS;AAACc,OAAA,CAAAuB,mBAAA,GAAAA,mBAAA"}
@@ -24,15 +24,12 @@ exports.GLBWriter = GLBWriter;
24
24
  function encodeSync(glb, options) {
25
25
  var _options$byteOffset = options.byteOffset,
26
26
  byteOffset = _options$byteOffset === void 0 ? 0 : _options$byteOffset;
27
-
28
27
  var byteLength = (0, _encodeGlb.default)(glb, null, byteOffset, options);
29
28
  var arrayBuffer = new ArrayBuffer(byteLength);
30
-
31
29
  var dataView = new DataView(arrayBuffer);
32
30
  (0, _encodeGlb.default)(glb, dataView, byteOffset, options);
33
31
  return arrayBuffer;
34
32
  }
35
-
36
33
  var _TypecheckGLBLoader = GLBWriter;
37
34
  exports._TypecheckGLBLoader = _TypecheckGLBLoader;
38
35
  //# sourceMappingURL=glb-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-writer.js","names":["GLBWriter","name","id","module","version","VERSION","extensions","mimeTypes","binary","encodeSync","options","glb","byteOffset","byteLength","encodeGLBSync","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"sources":["../../src/glb-writer.ts"],"sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encodeGLBSync from './lib/encoders/encode-glb';\n\n/**\n * GLB exporter\n * GLB is the binary container format for GLTF\n */\nexport const GLBWriter = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n\n encodeSync,\n\n options: {\n glb: {}\n }\n};\n\nfunction encodeSync(glb, options) {\n const {byteOffset = 0} = options;\n\n // Calculate length and allocate buffer\n const byteLength = encodeGLBSync(glb, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n\n // Encode into buffer\n const dataView = new DataView(arrayBuffer);\n encodeGLBSync(glb, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLBWriter;\n"],"mappings":";;;;;;;AACA;AACA;AAMO,IAAMA,SAAS,GAAG;EACvBC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAEhBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EAEZC,UAAU,EAAVA,UAAU;EAEVC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR;AACF,CAAC;AAAC;AAEF,SAASF,UAAU,CAACE,GAAG,EAAED,OAAO,EAAE;EAChC,0BAAyBA,OAAO,CAAzBE,UAAU;IAAVA,UAAU,oCAAG,CAAC;;EAGrB,IAAMC,UAAU,GAAG,IAAAC,kBAAa,EAACH,GAAG,EAAE,IAAI,EAAEC,UAAU,EAAEF,OAAO,CAAC;EAChE,IAAMK,WAAW,GAAG,IAAIC,WAAW,CAACH,UAAU,CAAC;;EAG/C,IAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAAD,kBAAa,EAACH,GAAG,EAAEM,QAAQ,EAAEL,UAAU,EAAEF,OAAO,CAAC;EAEjD,OAAOK,WAAW;AACpB;;AAGO,IAAMI,mBAA2B,GAAGnB,SAAS;AAAC"}
1
+ {"version":3,"file":"glb-writer.js","names":["_version","require","_encodeGlb","_interopRequireDefault","GLBWriter","name","id","module","version","VERSION","extensions","mimeTypes","binary","encodeSync","options","glb","exports","_options$byteOffset","byteOffset","byteLength","encodeGLBSync","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"sources":["../../src/glb-writer.ts"],"sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encodeGLBSync from './lib/encoders/encode-glb';\n\n/**\n * GLB exporter\n * GLB is the binary container format for GLTF\n */\nexport const GLBWriter = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n\n encodeSync,\n\n options: {\n glb: {}\n }\n};\n\nfunction encodeSync(glb, options) {\n const {byteOffset = 0} = options;\n\n // Calculate length and allocate buffer\n const byteLength = encodeGLBSync(glb, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n\n // Encode into buffer\n const dataView = new DataView(arrayBuffer);\n encodeGLBSync(glb, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLBWriter;\n"],"mappings":";;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAMO,IAAMG,SAAS,GAAG;EACvBC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAEhBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EAEZC,UAAU,EAAVA,UAAU;EAEVC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR;AACF,CAAC;AAACC,OAAA,CAAAZ,SAAA,GAAAA,SAAA;AAEF,SAASS,UAAUA,CAACE,GAAG,EAAED,OAAO,EAAE;EAChC,IAAAG,mBAAA,GAAyBH,OAAO,CAAzBI,UAAU;IAAVA,UAAU,GAAAD,mBAAA,cAAG,CAAC,GAAAA,mBAAA;EAGrB,IAAME,UAAU,GAAG,IAAAC,kBAAa,EAACL,GAAG,EAAE,IAAI,EAAEG,UAAU,EAAEJ,OAAO,CAAC;EAChE,IAAMO,WAAW,GAAG,IAAIC,WAAW,CAACH,UAAU,CAAC;EAG/C,IAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAAD,kBAAa,EAACL,GAAG,EAAEQ,QAAQ,EAAEL,UAAU,EAAEJ,OAAO,CAAC;EAEjD,OAAOO,WAAW;AACpB;AAGO,IAAMI,mBAA2B,GAAGrB,SAAS;AAACY,OAAA,CAAAS,mBAAA,GAAAA,mBAAA"}
@@ -32,10 +32,8 @@ var GLTFLoader = {
32
32
  decompressMeshes: true,
33
33
  postProcess: true
34
34
  },
35
-
36
35
  log: console
37
36
  },
38
-
39
37
  deprecatedOptions: {
40
38
  fetchImages: 'gltf.loadImages',
41
39
  createImages: 'gltf.loadImages',
@@ -60,23 +58,21 @@ function _parse() {
60
58
  gltf,
61
59
  _args = arguments;
62
60
  return _regenerator.default.wrap(function _callee$(_context) {
63
- while (1) {
64
- switch (_context.prev = _context.next) {
65
- case 0:
66
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
67
- context = _args.length > 2 ? _args[2] : undefined;
68
- options = _objectSpread(_objectSpread({}, GLTFLoader.options), options);
69
- options.gltf = _objectSpread(_objectSpread({}, GLTFLoader.options.gltf), options.gltf);
70
- _options = options, _options$byteOffset = _options.byteOffset, byteOffset = _options$byteOffset === void 0 ? 0 : _options$byteOffset;
71
- gltf = {};
72
- _context.next = 8;
73
- return (0, _parseGltf.parseGLTF)(gltf, arrayBuffer, byteOffset, options, context);
74
- case 8:
75
- return _context.abrupt("return", _context.sent);
76
- case 9:
77
- case "end":
78
- return _context.stop();
79
- }
61
+ while (1) switch (_context.prev = _context.next) {
62
+ case 0:
63
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
64
+ context = _args.length > 2 ? _args[2] : undefined;
65
+ options = _objectSpread(_objectSpread({}, GLTFLoader.options), options);
66
+ options.gltf = _objectSpread(_objectSpread({}, GLTFLoader.options.gltf), options.gltf);
67
+ _options = options, _options$byteOffset = _options.byteOffset, byteOffset = _options$byteOffset === void 0 ? 0 : _options$byteOffset;
68
+ gltf = {};
69
+ _context.next = 8;
70
+ return (0, _parseGltf.parseGLTF)(gltf, arrayBuffer, byteOffset, options, context);
71
+ case 8:
72
+ return _context.abrupt("return", _context.sent);
73
+ case 9:
74
+ case "end":
75
+ return _context.stop();
80
76
  }
81
77
  }, _callee);
82
78
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-loader.js","names":["GLTFLoader","name","id","module","version","VERSION","extensions","mimeTypes","text","binary","tests","parse","options","gltf","normalize","loadBuffers","loadImages","decompressMeshes","postProcess","log","console","deprecatedOptions","fetchImages","createImages","decompress","arrayBuffer","context","byteOffset","parseGLTF"],"sources":["../../src/gltf-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {DracoLoaderOptions} from '@loaders.gl/draco';\nimport {VERSION} from './lib/utils/version';\nimport type {ImageLoaderOptions} from '@loaders.gl/images';\nimport type {TextureLoaderOptions} from '@loaders.gl/textures';\nimport type {GLTFParseOptions} from './lib/parsers/parse-gltf';\nimport type {GLTFWithBuffers} from './lib/types/gltf-types';\nimport {parseGLTF} from './lib/parsers/parse-gltf';\nimport {GLBLoaderOptions} from './glb-loader';\n\n/**\n * GLTF loader options\n */\nexport type GLTFLoaderOptions = LoaderOptions &\n ImageLoaderOptions &\n TextureLoaderOptions &\n GLBLoaderOptions &\n DracoLoaderOptions & {\n gltf?: GLTFParseOptions;\n };\n\n/**\n * GLTF loader\n */\nexport const GLTFLoader: LoaderWithParser = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n extensions: ['gltf', 'glb'],\n mimeTypes: ['model/gltf+json', 'model/gltf-binary'],\n\n text: true,\n binary: true,\n tests: ['glTF'],\n parse,\n\n options: {\n gltf: {\n normalize: true, // Normalize glTF v1 to glTF v2 format (not yet stable)\n loadBuffers: true, // Fetch any linked .BIN buffers, decode base64\n loadImages: true, // Create image objects\n decompressMeshes: true, // Decompress Draco encoded meshes\n postProcess: true // Postprocess glTF and return json structure directly\n },\n\n // common?\n log: console // eslint-disable-line\n },\n deprecatedOptions: {\n fetchImages: 'gltf.loadImages',\n createImages: 'gltf.loadImages',\n decompress: 'gltf.decompressMeshes',\n postProcess: 'gltf.postProcess',\n gltf: {\n decompress: 'gltf.decompressMeshes'\n }\n }\n};\n\nexport async function parse(arrayBuffer, options: GLTFLoaderOptions = {}, context) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GLTFLoader.options, ...options};\n // @ts-ignore\n options.gltf = {...GLTFLoader.options.gltf, ...options.gltf};\n\n const {byteOffset = 0} = options;\n const gltf = {};\n return await parseGLTF(gltf as GLTFWithBuffers, arrayBuffer, byteOffset, options, context);\n}\n"],"mappings":";;;;;;;;;;;AAEA;AAKA;AAAmD;AAAA;AAiB5C,IAAMA,UAA4B,GAAG;EAC1CC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;EAC3BC,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;EAEnDC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,MAAM,CAAC;EACfC,KAAK,EAALA,KAAK;EAELC,OAAO,EAAE;IACPC,IAAI,EAAE;MACJC,SAAS,EAAE,IAAI;MACfC,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE,IAAI;MAChBC,gBAAgB,EAAE,IAAI;MACtBC,WAAW,EAAE;IACf,CAAC;;IAGDC,GAAG,EAAEC;EACP,CAAC;;EACDC,iBAAiB,EAAE;IACjBC,WAAW,EAAE,iBAAiB;IAC9BC,YAAY,EAAE,iBAAiB;IAC/BC,UAAU,EAAE,uBAAuB;IACnCN,WAAW,EAAE,kBAAkB;IAC/BL,IAAI,EAAE;MACJW,UAAU,EAAE;IACd;EACF;AACF,CAAC;AAAC;AAAA,SAEoBb,KAAK;EAAA;AAAA;AAAA;EAAA,mEAApB,iBAAqBc,WAAW;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEb,OAA0B,2DAAG,CAAC,CAAC;YAAEc,OAAO;YAE/Ed,OAAO,mCAAOZ,UAAU,CAACY,OAAO,GAAKA,OAAO,CAAC;YAE7CA,OAAO,CAACC,IAAI,mCAAOb,UAAU,CAACY,OAAO,CAACC,IAAI,GAAKD,OAAO,CAACC,IAAI,CAAC;YAAC,WAEpCD,OAAO,iCAAzBe,UAAU,EAAVA,UAAU,oCAAG,CAAC;YACfd,IAAI,GAAG,CAAC,CAAC;YAAA;YAAA,OACF,IAAAe,oBAAS,EAACf,IAAI,EAAqBY,WAAW,EAAEE,UAAU,EAAEf,OAAO,EAAEc,OAAO,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAC3F;EAAA;AAAA"}
1
+ {"version":3,"file":"gltf-loader.js","names":["_version","require","_parseGltf","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","GLTFLoader","name","id","module","version","VERSION","extensions","mimeTypes","text","binary","tests","parse","options","gltf","normalize","loadBuffers","loadImages","decompressMeshes","postProcess","log","console","deprecatedOptions","fetchImages","createImages","decompress","exports","_x","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","context","_options","_options$byteOffset","byteOffset","_args","wrap","_callee$","_context","prev","next","undefined","parseGLTF","abrupt","sent","stop"],"sources":["../../src/gltf-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {DracoLoaderOptions} from '@loaders.gl/draco';\nimport {VERSION} from './lib/utils/version';\nimport type {ImageLoaderOptions} from '@loaders.gl/images';\nimport type {TextureLoaderOptions} from '@loaders.gl/textures';\nimport type {GLTFParseOptions} from './lib/parsers/parse-gltf';\nimport type {GLTFWithBuffers} from './lib/types/gltf-types';\nimport {parseGLTF} from './lib/parsers/parse-gltf';\nimport {GLBLoaderOptions} from './glb-loader';\n\n/**\n * GLTF loader options\n */\nexport type GLTFLoaderOptions = LoaderOptions &\n ImageLoaderOptions &\n TextureLoaderOptions &\n GLBLoaderOptions &\n DracoLoaderOptions & {\n gltf?: GLTFParseOptions;\n };\n\n/**\n * GLTF loader\n */\nexport const GLTFLoader: LoaderWithParser = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n extensions: ['gltf', 'glb'],\n mimeTypes: ['model/gltf+json', 'model/gltf-binary'],\n\n text: true,\n binary: true,\n tests: ['glTF'],\n parse,\n\n options: {\n gltf: {\n normalize: true, // Normalize glTF v1 to glTF v2 format (not yet stable)\n loadBuffers: true, // Fetch any linked .BIN buffers, decode base64\n loadImages: true, // Create image objects\n decompressMeshes: true, // Decompress Draco encoded meshes\n postProcess: true // Postprocess glTF and return json structure directly\n },\n\n // common?\n log: console // eslint-disable-line\n },\n deprecatedOptions: {\n fetchImages: 'gltf.loadImages',\n createImages: 'gltf.loadImages',\n decompress: 'gltf.decompressMeshes',\n postProcess: 'gltf.postProcess',\n gltf: {\n decompress: 'gltf.decompressMeshes'\n }\n }\n};\n\nexport async function parse(arrayBuffer, options: GLTFLoaderOptions = {}, context) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GLTFLoader.options, ...options};\n // @ts-ignore\n options.gltf = {...GLTFLoader.options.gltf, ...options.gltf};\n\n const {byteOffset = 0} = options;\n const gltf = {};\n return await parseGLTF(gltf as GLTFWithBuffers, arrayBuffer, byteOffset, options, context);\n}\n"],"mappings":"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"}
@@ -24,14 +24,12 @@ function encodeSync(gltf) {
24
24
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
25
  var _options$byteOffset = options.byteOffset,
26
26
  byteOffset = _options$byteOffset === void 0 ? 0 : _options$byteOffset;
27
-
28
27
  var byteLength = (0, _encodeGltf.encodeGLTFSync)(gltf, null, byteOffset, options);
29
28
  var arrayBuffer = new ArrayBuffer(byteLength);
30
29
  var dataView = new DataView(arrayBuffer);
31
30
  (0, _encodeGltf.encodeGLTFSync)(gltf, dataView, byteOffset, options);
32
31
  return arrayBuffer;
33
32
  }
34
-
35
33
  var _TypecheckGLBLoader = GLTFWriter;
36
34
  exports._TypecheckGLBLoader = _TypecheckGLBLoader;
37
35
  //# sourceMappingURL=gltf-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-writer.js","names":["GLTFWriter","name","id","module","version","VERSION","extensions","mimeTypes","binary","encodeSync","options","gltf","byteOffset","byteLength","encodeGLTFSync","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"sources":["../../src/gltf-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeGLTFSync} from './lib/encoders/encode-gltf';\n\nexport type GLTFWriterOptions = WriterOptions & {\n gltf?: {};\n byteOffset?: number;\n};\n\n/**\n * GLTF exporter\n */\nexport const GLTFWriter = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'], // We only support encoding to binary GLB, not to JSON GLTF\n mimeTypes: ['model/gltf-binary'], // 'model/gltf+json',\n binary: true,\n\n encodeSync,\n\n options: {\n gltf: {}\n }\n};\n\nfunction encodeSync(gltf, options: GLTFWriterOptions = {}) {\n const {byteOffset = 0} = options;\n\n // Calculate length, then create arraybuffer and encode\n const byteLength = encodeGLTFSync(gltf, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n const dataView = new DataView(arrayBuffer);\n encodeGLTFSync(gltf, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLTFWriter;\n"],"mappings":";;;;;;AACA;AACA;AAUO,IAAMA,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAEhBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EAEZC,UAAU,EAAVA,UAAU;EAEVC,OAAO,EAAE;IACPC,IAAI,EAAE,CAAC;EACT;AACF,CAAC;AAAC;AAEF,SAASF,UAAU,CAACE,IAAI,EAAmC;EAAA,IAAjCD,OAA0B,uEAAG,CAAC,CAAC;EACvD,0BAAyBA,OAAO,CAAzBE,UAAU;IAAVA,UAAU,oCAAG,CAAC;;EAGrB,IAAMC,UAAU,GAAG,IAAAC,0BAAc,EAACH,IAAI,EAAE,IAAI,EAAEC,UAAU,EAAEF,OAAO,CAAC;EAClE,IAAMK,WAAW,GAAG,IAAIC,WAAW,CAACH,UAAU,CAAC;EAC/C,IAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAAD,0BAAc,EAACH,IAAI,EAAEM,QAAQ,EAAEL,UAAU,EAAEF,OAAO,CAAC;EAEnD,OAAOK,WAAW;AACpB;;AAGO,IAAMI,mBAA2B,GAAGnB,UAAU;AAAC"}
1
+ {"version":3,"file":"gltf-writer.js","names":["_version","require","_encodeGltf","GLTFWriter","name","id","module","version","VERSION","extensions","mimeTypes","binary","encodeSync","options","gltf","exports","arguments","length","undefined","_options$byteOffset","byteOffset","byteLength","encodeGLTFSync","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"sources":["../../src/gltf-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeGLTFSync} from './lib/encoders/encode-gltf';\n\nexport type GLTFWriterOptions = WriterOptions & {\n gltf?: {};\n byteOffset?: number;\n};\n\n/**\n * GLTF exporter\n */\nexport const GLTFWriter = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'], // We only support encoding to binary GLB, not to JSON GLTF\n mimeTypes: ['model/gltf-binary'], // 'model/gltf+json',\n binary: true,\n\n encodeSync,\n\n options: {\n gltf: {}\n }\n};\n\nfunction encodeSync(gltf, options: GLTFWriterOptions = {}) {\n const {byteOffset = 0} = options;\n\n // Calculate length, then create arraybuffer and encode\n const byteLength = encodeGLTFSync(gltf, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n const dataView = new DataView(arrayBuffer);\n encodeGLTFSync(gltf, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLTFWriter;\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAUO,IAAME,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAEhBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EAEZC,UAAU,EAAVA,UAAU;EAEVC,OAAO,EAAE;IACPC,IAAI,EAAE,CAAC;EACT;AACF,CAAC;AAACC,OAAA,CAAAZ,UAAA,GAAAA,UAAA;AAEF,SAASS,UAAUA,CAACE,IAAI,EAAmC;EAAA,IAAjCD,OAA0B,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvD,IAAAG,mBAAA,GAAyBN,OAAO,CAAzBO,UAAU;IAAVA,UAAU,GAAAD,mBAAA,cAAG,CAAC,GAAAA,mBAAA;EAGrB,IAAME,UAAU,GAAG,IAAAC,0BAAc,EAACR,IAAI,EAAE,IAAI,EAAEM,UAAU,EAAEP,OAAO,CAAC;EAClE,IAAMU,WAAW,GAAG,IAAIC,WAAW,CAACH,UAAU,CAAC;EAC/C,IAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAAD,0BAAc,EAACR,IAAI,EAAEW,QAAQ,EAAEL,UAAU,EAAEP,OAAO,CAAC;EAEnD,OAAOU,WAAW;AACpB;AAGO,IAAMI,mBAA2B,GAAGxB,UAAU;AAACY,OAAA,CAAAY,mBAAA,GAAAA,mBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFNodePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFImagePostprocessed,\n GLTFTexturePostprocessed,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata\n} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport type {Mesh} from './lib/types/gltf-json-schema';\nexport type {GLTFObject} from './lib/types/gltf-types';\nexport type {Node, Accessor, Image} from './lib/types/gltf-postprocessed-schema';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA;AACA;AAGA;AACA;AAGA;AACA"}
1
+ {"version":3,"file":"index.js","names":["_gltfLoader","require","_gltfWriter","_glbLoader","_glbWriter","_gltfScenegraph","_interopRequireDefault","_postProcessGltf"],"sources":["../../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFNodePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFImagePostprocessed,\n GLTFTexturePostprocessed,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata\n} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport type {Mesh} from './lib/types/gltf-json-schema';\nexport type {GLTFObject} from './lib/types/gltf-types';\nexport type {Node, Accessor, Image} from './lib/types/gltf-postprocessed-schema';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAGA,IAAAI,eAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA"}
@@ -23,12 +23,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
23
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
24
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
25
25
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
- var EXTENSIONS = [
28
-
29
- EXT_meshopt_compression, EXT_texture_webp,
30
- KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl, KHR_texture_transform, EXT_feature_metadata];
31
-
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
27
+ var EXTENSIONS = [EXT_meshopt_compression, EXT_texture_webp, KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl, KHR_texture_transform, EXT_feature_metadata];
32
28
  exports.EXTENSIONS = EXTENSIONS;
33
29
  function preprocessExtensions(gltf) {
34
30
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -50,7 +46,6 @@ function preprocessExtensions(gltf) {
50
46
  _iterator.f();
51
47
  }
52
48
  }
53
-
54
49
  function decodeExtensions(_x) {
55
50
  return _decodeExtensions.apply(this, arguments);
56
51
  }
@@ -65,43 +60,41 @@ function _decodeExtensions() {
65
60
  extension,
66
61
  _args = arguments;
67
62
  return _regenerator.default.wrap(function _callee$(_context) {
68
- while (1) {
69
- switch (_context.prev = _context.next) {
70
- case 0:
71
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
72
- context = _args.length > 2 ? _args[2] : undefined;
73
- extensions = EXTENSIONS.filter(function (extension) {
74
- return useExtension(extension.name, options);
75
- });
76
- _iterator2 = _createForOfIteratorHelper(extensions);
77
- _context.prev = 4;
78
- _iterator2.s();
79
- case 6:
80
- if ((_step2 = _iterator2.n()).done) {
81
- _context.next = 12;
82
- break;
83
- }
84
- extension = _step2.value;
85
- _context.next = 10;
86
- return (_extension$decode = extension.decode) === null || _extension$decode === void 0 ? void 0 : _extension$decode.call(extension, gltf, options, context);
87
- case 10:
88
- _context.next = 6;
89
- break;
90
- case 12:
91
- _context.next = 17;
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
66
+ context = _args.length > 2 ? _args[2] : undefined;
67
+ extensions = EXTENSIONS.filter(function (extension) {
68
+ return useExtension(extension.name, options);
69
+ });
70
+ _iterator2 = _createForOfIteratorHelper(extensions);
71
+ _context.prev = 4;
72
+ _iterator2.s();
73
+ case 6:
74
+ if ((_step2 = _iterator2.n()).done) {
75
+ _context.next = 12;
92
76
  break;
93
- case 14:
94
- _context.prev = 14;
95
- _context.t0 = _context["catch"](4);
96
- _iterator2.e(_context.t0);
97
- case 17:
98
- _context.prev = 17;
99
- _iterator2.f();
100
- return _context.finish(17);
101
- case 20:
102
- case "end":
103
- return _context.stop();
104
- }
77
+ }
78
+ extension = _step2.value;
79
+ _context.next = 10;
80
+ return (_extension$decode = extension.decode) === null || _extension$decode === void 0 ? void 0 : _extension$decode.call(extension, gltf, options, context);
81
+ case 10:
82
+ _context.next = 6;
83
+ break;
84
+ case 12:
85
+ _context.next = 17;
86
+ break;
87
+ case 14:
88
+ _context.prev = 14;
89
+ _context.t0 = _context["catch"](4);
90
+ _iterator2.e(_context.t0);
91
+ case 17:
92
+ _context.prev = 17;
93
+ _iterator2.f();
94
+ return _context.finish(17);
95
+ case 20:
96
+ case "end":
97
+ return _context.stop();
105
98
  }
106
99
  }, _callee, null, [[4, 14, 17, 20]]);
107
100
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-extensions.js","names":["EXTENSIONS","EXT_meshopt_compression","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","KHR_texture_transform","EXT_feature_metadata","preprocessExtensions","gltf","options","context","extensions","filter","extension","useExtension","name","preprocess","decodeExtensions","decode","extensionName","excludes","excludeExtensions","exclude"],"sources":["../../../../src/lib/api/gltf-extensions.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\nimport * as KHR_texture_transform from '../extensions/KHR_texture_transform';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\nimport * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';\n\n// Vendor extensions\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (\n gltfData: {\n json: GLTF;\n buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];\n },\n options: GLTFLoaderOptions,\n context\n ) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"mappings":";;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAsF;AAAA;AAAA;AAAA;AAAA;AAuB/E,IAAMA,UAAiC,GAAG;;AAM/CC,uBAAuB,EACvBC,gBAAgB;AAEhBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,CACrB;;AAAC;AAGK,SAASC,oBAAoB,CAACC,IAAI,EAA6C;EAAA,IAA3CC,OAA0B,uEAAG,CAAC,CAAC;EAAA,IAAEC,OAAQ;EAClF,IAAMC,UAAU,GAAGd,UAAU,CAACe,MAAM,CAAC,UAACC,SAAS;IAAA,OAAKC,YAAY,CAACD,SAAS,CAACE,IAAI,EAAEN,OAAO,CAAC;EAAA,EAAC;EAAC,2CACnEE,UAAU;IAAA;EAAA;IAAlC,oDAAoC;MAAA;MAAA,IAAzBE,SAAS;MAClB,yBAAAA,SAAS,CAACG,UAAU,0DAApB,2BAAAH,SAAS,EAAcL,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;IAChD;EAAC;IAAA;EAAA;IAAA;EAAA;AACH;;AAAC,SAGqBO,gBAAgB;EAAA;AAAA;AAAA;EAAA,8EAA/B,iBAAgCT,IAAI;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEC,OAA0B,2DAAG,CAAC,CAAC;YAAEC,OAAQ;YAC9EC,UAAU,GAAGd,UAAU,CAACe,MAAM,CAAC,UAACC,SAAS;cAAA,OAAKC,YAAY,CAACD,SAAS,CAACE,IAAI,EAAEN,OAAO,CAAC;YAAA,EAAC;YAAA,wCAClEE,UAAU;YAAA;YAAA;UAAA;YAAA;cAAA;cAAA;YAAA;YAAvBE,SAAS;YAAA;YAAA,4BAGZA,SAAS,CAACK,MAAM,sDAAhB,uBAAAL,SAAS,EAAUL,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEnD;EAAA;AAAA;AAED,SAASI,YAAY,CAACK,aAAqB,EAAEV,OAA0B,EAAE;EAAA;EACvE,IAAMW,QAAQ,GAAG,CAAAX,OAAO,aAAPA,OAAO,wCAAPA,OAAO,CAAED,IAAI,kDAAb,cAAea,iBAAiB,KAAI,CAAC,CAAC;EACvD,IAAMC,OAAO,GAAGH,aAAa,IAAIC,QAAQ,IAAI,CAACA,QAAQ,CAACD,aAAa,CAAC;EACrE,OAAO,CAACG,OAAO;AACjB"}
1
+ {"version":3,"file":"gltf-extensions.js","names":["EXT_meshopt_compression","_interopRequireWildcard","require","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_texture_transform","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","EXT_feature_metadata","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","EXTENSIONS","exports","preprocessExtensions","gltf","options","arguments","undefined","context","extensions","filter","extension","useExtension","_iterator","_step","_extension$preprocess","preprocess","decodeExtensions","_x","_decodeExtensions","apply","_asyncToGenerator2","_regenerator","mark","_callee","_iterator2","_step2","_extension$decode","_args","wrap","_callee$","_context","prev","decode","t0","finish","stop","extensionName","_options$gltf","excludes","excludeExtensions","exclude"],"sources":["../../../../src/lib/api/gltf-extensions.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\nimport * as KHR_texture_transform from '../extensions/KHR_texture_transform';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\nimport * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';\n\n// Vendor extensions\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (\n gltfData: {\n json: GLTF;\n buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];\n },\n options: GLTFLoaderOptions,\n context\n ) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"mappings":"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"}