@loaders.gl/gltf 3.4.0-alpha.2 → 3.4.0-alpha.4

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 (131) hide show
  1. package/dist/es5/glb-loader.js +6 -9
  2. package/dist/es5/glb-loader.js.map +1 -1
  3. package/dist/es5/glb-writer.js +0 -3
  4. package/dist/es5/glb-writer.js.map +1 -1
  5. package/dist/es5/gltf-loader.js +15 -19
  6. package/dist/es5/gltf-loader.js.map +1 -1
  7. package/dist/es5/gltf-writer.js +0 -2
  8. package/dist/es5/gltf-writer.js.map +1 -1
  9. package/dist/es5/index.js.map +1 -1
  10. package/dist/es5/lib/api/gltf-extensions.js +36 -43
  11. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  12. package/dist/es5/lib/api/gltf-scenegraph.js +31 -108
  13. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  14. package/dist/es5/lib/api/normalize-gltf-v1.js +8 -33
  15. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  16. package/dist/es5/lib/api/post-process-gltf.js +5 -22
  17. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  18. package/dist/es5/lib/encoders/encode-glb.js +0 -16
  19. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  20. package/dist/es5/lib/encoders/encode-gltf.js +0 -2
  21. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  22. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +48 -54
  23. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  24. package/dist/es5/lib/extensions/EXT_texture_webp.js +1 -4
  25. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
  26. package/dist/es5/lib/extensions/KHR_binary_gltf.js +1 -7
  27. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  28. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +117 -134
  29. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  30. package/dist/es5/lib/extensions/KHR_texture_basisu.js +1 -4
  31. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
  32. package/dist/es5/lib/extensions/KHR_texture_transform.js +18 -27
  33. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
  34. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +7 -14
  35. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  36. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +52 -58
  37. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  38. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +22 -26
  39. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  40. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +31 -40
  41. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  42. package/dist/es5/lib/gltf-utils/get-typed-array.js +0 -3
  43. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  44. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +0 -5
  45. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  46. package/dist/es5/lib/gltf-utils/gltf-constants.js +0 -2
  47. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  48. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  49. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  50. package/dist/es5/lib/parsers/parse-glb.js +0 -16
  51. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  52. package/dist/es5/lib/parsers/parse-gltf.js +145 -164
  53. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  54. package/dist/es5/lib/utils/assert.js.map +1 -1
  55. package/dist/es5/lib/utils/version.js +1 -1
  56. package/dist/es5/lib/utils/version.js.map +1 -1
  57. package/dist/es5/meshopt/meshopt-decoder.js +69 -87
  58. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  59. package/dist/es5/webp/webp.js +40 -45
  60. package/dist/es5/webp/webp.js.map +1 -1
  61. package/dist/esm/bundle.js +0 -1
  62. package/dist/esm/bundle.js.map +1 -1
  63. package/dist/esm/glb-loader.js +0 -2
  64. package/dist/esm/glb-loader.js.map +1 -1
  65. package/dist/esm/glb-writer.js +0 -4
  66. package/dist/esm/glb-writer.js.map +1 -1
  67. package/dist/esm/gltf-loader.js +0 -2
  68. package/dist/esm/gltf-loader.js.map +1 -1
  69. package/dist/esm/gltf-writer.js +0 -2
  70. package/dist/esm/gltf-writer.js.map +1 -1
  71. package/dist/esm/index.js +0 -4
  72. package/dist/esm/index.js.map +1 -1
  73. package/dist/esm/lib/api/gltf-extensions.js +1 -10
  74. package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
  75. package/dist/esm/lib/api/gltf-scenegraph.js +2 -48
  76. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  77. package/dist/esm/lib/api/normalize-gltf-v1.js +0 -17
  78. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  79. package/dist/esm/lib/api/post-process-gltf.js +2 -16
  80. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  81. package/dist/esm/lib/encoders/encode-glb.js +0 -16
  82. package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
  83. package/dist/esm/lib/encoders/encode-gltf.js +0 -2
  84. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
  85. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +0 -7
  86. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  87. package/dist/esm/lib/extensions/EXT_texture_webp.js +0 -5
  88. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
  89. package/dist/esm/lib/extensions/KHR_binary_gltf.js +0 -6
  90. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
  91. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +1 -18
  92. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  93. package/dist/esm/lib/extensions/KHR_texture_basisu.js +0 -5
  94. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
  95. package/dist/esm/lib/extensions/KHR_texture_transform.js +0 -11
  96. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
  97. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +0 -7
  98. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  99. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +0 -7
  100. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  101. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +0 -5
  102. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  103. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +3 -11
  104. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  105. package/dist/esm/lib/gltf-utils/get-typed-array.js +0 -4
  106. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
  107. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +0 -7
  108. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  109. package/dist/esm/lib/gltf-utils/gltf-constants.js +0 -1
  110. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
  111. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
  112. package/dist/esm/lib/gltf-utils/resolve-url.js +0 -1
  113. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  114. package/dist/esm/lib/parsers/parse-glb.js +0 -17
  115. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  116. package/dist/esm/lib/parsers/parse-gltf.js +0 -18
  117. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  118. package/dist/esm/lib/utils/assert.js +0 -1
  119. package/dist/esm/lib/utils/assert.js.map +1 -1
  120. package/dist/esm/lib/utils/version.js +1 -2
  121. package/dist/esm/lib/utils/version.js.map +1 -1
  122. package/dist/esm/meshopt/meshopt-decoder.js +0 -8
  123. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  124. package/dist/esm/webp/webp.js +0 -2
  125. package/dist/esm/webp/webp.js.map +1 -1
  126. package/dist/gltf-loader.d.ts +2 -1
  127. package/dist/gltf-loader.d.ts.map +1 -1
  128. package/dist/lib/api/gltf-extensions.js +1 -1
  129. package/dist/lib/parsers/parse-gltf.d.ts +1 -1
  130. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  131. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"encode-gltf.js","names":["encodeGLTFSync","gltf","arrayBuffer","byteOffset","options","convertBuffersToBase64","encodeGLBSync","firstBuffer","buffers","length","Error"],"sources":["../../../../src/lib/encoders/encode-gltf.ts"],"sourcesContent":["import encodeGLBSync from './encode-glb';\n\n// Encode the full glTF file as a binary GLB file\n// Returns an ArrayBuffer that represents the complete GLB image that can be saved to file\n//\n// TODO - Does not support encoding to non-GLB versions of glTF format\n// - Encode as a textual JSON file with binary data in base64 data URLs.\n// - Encode as a JSON with all images (and buffers?) in separate binary files\n//\n// glb-file-format-specification\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#\n\nexport function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {\n convertBuffersToBase64(gltf);\n\n // TODO: Copy buffers to binary\n\n return encodeGLBSync(gltf, arrayBuffer, byteOffset, options);\n}\n\nfunction convertBuffersToBase64(gltf, {firstBuffer = 0} = {}) {\n if (gltf.buffers && gltf.buffers.length > firstBuffer) {\n throw new Error('encodeGLTF: multiple buffers not yet implemented');\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAYO,SAASA,cAAc,CAACC,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAE;EACrEC,sBAAsB,CAACJ,IAAI,CAAC;;EAI5B,OAAO,IAAAK,kBAAa,EAACL,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,CAAC;AAC9D;AAEA,SAASC,sBAAsB,CAACJ,IAAI,EAA0B;EAAA,+EAAJ,CAAC,CAAC;IAAA,wBAArBM,WAAW;IAAXA,WAAW,iCAAG,CAAC;EACpD,IAAIN,IAAI,CAACO,OAAO,IAAIP,IAAI,CAACO,OAAO,CAACC,MAAM,GAAGF,WAAW,EAAE;IACrD,MAAM,IAAIG,KAAK,CAAC,kDAAkD,CAAC;EACrE;AACF"}
1
+ {"version":3,"file":"encode-gltf.js","names":["_encodeGlb","_interopRequireDefault","require","encodeGLTFSync","gltf","arrayBuffer","byteOffset","options","convertBuffersToBase64","encodeGLBSync","_ref","arguments","length","undefined","_ref$firstBuffer","firstBuffer","buffers","Error"],"sources":["../../../../src/lib/encoders/encode-gltf.ts"],"sourcesContent":["import encodeGLBSync from './encode-glb';\n\n// Encode the full glTF file as a binary GLB file\n// Returns an ArrayBuffer that represents the complete GLB image that can be saved to file\n//\n// TODO - Does not support encoding to non-GLB versions of glTF format\n// - Encode as a textual JSON file with binary data in base64 data URLs.\n// - Encode as a JSON with all images (and buffers?) in separate binary files\n//\n// glb-file-format-specification\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#\n\nexport function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {\n convertBuffersToBase64(gltf);\n\n // TODO: Copy buffers to binary\n\n return encodeGLBSync(gltf, arrayBuffer, byteOffset, options);\n}\n\nfunction convertBuffersToBase64(gltf, {firstBuffer = 0} = {}) {\n if (gltf.buffers && gltf.buffers.length > firstBuffer) {\n throw new Error('encodeGLTF: multiple buffers not yet implemented');\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAYO,SAASC,cAAcA,CAACC,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAE;EACrEC,sBAAsB,CAACJ,IAAI,CAAC;EAI5B,OAAO,IAAAK,kBAAa,EAACL,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,CAAC;AAC9D;AAEA,SAASC,sBAAsBA,CAACJ,IAAI,EAA0B;EAAA,IAAAM,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;IAAAG,gBAAA,GAAAJ,IAAA,CAArBK,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,CAAC,GAAAA,gBAAA;EACpD,IAAIV,IAAI,CAACY,OAAO,IAAIZ,IAAI,CAACY,OAAO,CAACJ,MAAM,GAAGG,WAAW,EAAE;IACrD,MAAM,IAAIE,KAAK,CAAC,kDAAkD,CAAC;EACrE;AACF"}
@@ -12,12 +12,11 @@ var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
12
12
  var _meshoptDecoder = require("../../meshopt/meshopt-decoder");
13
13
  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; } } }; }
14
14
  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); }
15
- 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; }
15
+ 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; }
16
16
  var DEFAULT_MESHOPT_OPTIONS = {
17
17
  byteOffset: 0,
18
18
  filter: 'NONE'
19
19
  };
20
-
21
20
  var EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';
22
21
  var name = EXT_MESHOPT_COMPRESSION;
23
22
  exports.name = name;
@@ -29,37 +28,34 @@ function _decode() {
29
28
  var _options$gltf;
30
29
  var scenegraph, promises, _iterator, _step, bufferViewIndex;
31
30
  return _regenerator.default.wrap(function _callee$(_context) {
32
- while (1) {
33
- switch (_context.prev = _context.next) {
34
- case 0:
35
- scenegraph = new _gltfScenegraph.default(gltfData);
36
- if (options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.decompressMeshes) {
37
- _context.next = 3;
38
- break;
39
- }
40
- return _context.abrupt("return");
41
- case 3:
42
- promises = [];
43
- _iterator = _createForOfIteratorHelper(gltfData.json.bufferViews || []);
44
- try {
45
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
46
- bufferViewIndex = _step.value;
47
- promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));
48
- }
49
-
50
- } catch (err) {
51
- _iterator.e(err);
52
- } finally {
53
- _iterator.f();
31
+ while (1) switch (_context.prev = _context.next) {
32
+ case 0:
33
+ scenegraph = new _gltfScenegraph.default(gltfData);
34
+ if (options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.decompressMeshes) {
35
+ _context.next = 3;
36
+ break;
37
+ }
38
+ return _context.abrupt("return");
39
+ case 3:
40
+ promises = [];
41
+ _iterator = _createForOfIteratorHelper(gltfData.json.bufferViews || []);
42
+ try {
43
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
44
+ bufferViewIndex = _step.value;
45
+ promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));
54
46
  }
55
- _context.next = 8;
56
- return Promise.all(promises);
57
- case 8:
58
- scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);
59
- case 9:
60
- case "end":
61
- return _context.stop();
62
- }
47
+ } catch (err) {
48
+ _iterator.e(err);
49
+ } finally {
50
+ _iterator.f();
51
+ }
52
+ _context.next = 8;
53
+ return Promise.all(promises);
54
+ case 8:
55
+ scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);
56
+ case 9:
57
+ case "end":
58
+ return _context.stop();
63
59
  }
64
60
  }, _callee);
65
61
  }));
@@ -72,28 +68,26 @@ function _decodeMeshoptBufferView() {
72
68
  _decodeMeshoptBufferView = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(scenegraph, bufferView) {
73
69
  var meshoptExtension, _meshoptExtension$byt, byteOffset, _meshoptExtension$byt2, byteLength, byteStride, count, mode, _meshoptExtension$fil, filter, bufferIndex, buffer, source, result;
74
70
  return _regenerator.default.wrap(function _callee2$(_context2) {
75
- while (1) {
76
- switch (_context2.prev = _context2.next) {
77
- case 0:
78
- meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
79
- if (!meshoptExtension) {
80
- _context2.next = 9;
81
- break;
82
- }
83
- _meshoptExtension$byt = meshoptExtension.byteOffset, byteOffset = _meshoptExtension$byt === void 0 ? 0 : _meshoptExtension$byt, _meshoptExtension$byt2 = meshoptExtension.byteLength, byteLength = _meshoptExtension$byt2 === void 0 ? 0 : _meshoptExtension$byt2, byteStride = meshoptExtension.byteStride, count = meshoptExtension.count, mode = meshoptExtension.mode, _meshoptExtension$fil = meshoptExtension.filter, filter = _meshoptExtension$fil === void 0 ? 'NONE' : _meshoptExtension$fil, bufferIndex = meshoptExtension.buffer;
84
- buffer = scenegraph.gltf.buffers[bufferIndex];
85
- source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
86
- result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
87
- _context2.next = 8;
88
- return (0, _meshoptDecoder.meshoptDecodeGltfBuffer)(result, count, byteStride, source, mode, filter);
89
- case 8:
90
- return _context2.abrupt("return", result);
91
- case 9:
92
- return _context2.abrupt("return", null);
93
- case 10:
94
- case "end":
95
- return _context2.stop();
96
- }
71
+ while (1) switch (_context2.prev = _context2.next) {
72
+ case 0:
73
+ meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
74
+ if (!meshoptExtension) {
75
+ _context2.next = 9;
76
+ break;
77
+ }
78
+ _meshoptExtension$byt = meshoptExtension.byteOffset, byteOffset = _meshoptExtension$byt === void 0 ? 0 : _meshoptExtension$byt, _meshoptExtension$byt2 = meshoptExtension.byteLength, byteLength = _meshoptExtension$byt2 === void 0 ? 0 : _meshoptExtension$byt2, byteStride = meshoptExtension.byteStride, count = meshoptExtension.count, mode = meshoptExtension.mode, _meshoptExtension$fil = meshoptExtension.filter, filter = _meshoptExtension$fil === void 0 ? 'NONE' : _meshoptExtension$fil, bufferIndex = meshoptExtension.buffer;
79
+ buffer = scenegraph.gltf.buffers[bufferIndex];
80
+ source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
81
+ result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
82
+ _context2.next = 8;
83
+ return (0, _meshoptDecoder.meshoptDecodeGltfBuffer)(result, count, byteStride, source, mode, filter);
84
+ case 8:
85
+ return _context2.abrupt("return", result);
86
+ case 9:
87
+ return _context2.abrupt("return", null);
88
+ case 10:
89
+ case "end":
90
+ return _context2.stop();
97
91
  }
98
92
  }, _callee2);
99
93
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"EXT_meshopt_compression.js","names":["DEFAULT_MESHOPT_OPTIONS","byteOffset","filter","EXT_MESHOPT_COMPRESSION","name","decode","gltfData","options","scenegraph","GLTFScenegraph","gltf","decompressMeshes","promises","json","bufferViews","bufferViewIndex","push","decodeMeshoptBufferView","Promise","all","removeExtension","bufferView","meshoptExtension","getObjectExtension","byteLength","byteStride","count","mode","bufferIndex","buffer","buffers","source","Uint8Array","arrayBuffer","result","meshoptDecodeGltfBuffer"],"sources":["../../../../src/lib/extensions/EXT_meshopt_compression.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport type {GLTF, GLTFBufferView, GLTF_EXT_meshopt_compression} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {meshoptDecodeGltfBuffer} from '../../meshopt/meshopt-decoder';\n\n// @ts-ignore\n// eslint-disable-next-line\nconst DEFAULT_MESHOPT_OPTIONS = {\n byteOffset: 0,\n filter: 'NONE'\n};\n\n/** Extension name */\nconst EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';\n\nexport const name = EXT_MESHOPT_COMPRESSION;\n\nexport async function decode(gltfData: {json: GLTF}, options: GLTFLoaderOptions) {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!options?.gltf?.decompressMeshes) {\n return;\n }\n\n const promises: Promise<any>[] = [];\n for (const bufferViewIndex of gltfData.json.bufferViews || []) {\n promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));\n }\n\n // Decompress meshes in parallel\n await Promise.all(promises);\n\n // We have now decompressed all primitives, so remove the top-level extension\n scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);\n}\n\n/** Decode one meshopt buffer view */\nasync function decodeMeshoptBufferView(\n scenegraph: GLTFScenegraph,\n bufferView: GLTFBufferView\n): Promise<ArrayBuffer | null> {\n const meshoptExtension = scenegraph.getObjectExtension<GLTF_EXT_meshopt_compression>(\n bufferView,\n EXT_MESHOPT_COMPRESSION\n );\n if (meshoptExtension) {\n const {\n byteOffset = 0,\n byteLength = 0,\n byteStride,\n count,\n mode,\n filter = 'NONE',\n buffer: bufferIndex\n } = meshoptExtension;\n const buffer = scenegraph.gltf.buffers[bufferIndex];\n\n const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);\n const result = new Uint8Array(\n scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,\n bufferView.byteOffset,\n bufferView.byteLength\n );\n await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);\n return result;\n }\n\n return null;\n}\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAAsE;AAAA;AAAA;AAItE,IAAMA,uBAAuB,GAAG;EAC9BC,UAAU,EAAE,CAAC;EACbC,MAAM,EAAE;AACV,CAAC;;AAGD,IAAMC,uBAAuB,GAAG,yBAAyB;AAElD,IAAMC,IAAI,GAAGD,uBAAuB;AAAC;AAAA,SAEtBE,MAAM;EAAA;AAAA;AAAA;EAAA,oEAArB,iBAAsBC,QAAsB,EAAEC,OAA0B;IAAA;IAAA;IAAA;MAAA;QAAA;UAAA;YACvEC,UAAU,GAAG,IAAIC,uBAAc,CAACH,QAAQ,CAAC;YAAA,IAE1CC,OAAO,aAAPA,OAAO,gCAAPA,OAAO,CAAEG,IAAI,0CAAb,cAAeC,gBAAgB;cAAA;cAAA;YAAA;YAAA;UAAA;YAI9BC,QAAwB,GAAG,EAAE;YAAA,uCACLN,QAAQ,CAACO,IAAI,CAACC,WAAW,IAAI,EAAE;YAAA;cAA7D,oDAA+D;gBAApDC,eAAe;gBACxBH,QAAQ,CAACI,IAAI,CAACC,uBAAuB,CAACT,UAAU,EAAEO,eAAe,CAAC,CAAC;cACrE;;YAAC;cAAA;YAAA;cAAA;YAAA;YAAA;YAAA,OAGKG,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;UAAA;YAG3BJ,UAAU,CAACY,eAAe,CAACjB,uBAAuB,CAAC;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACrD;EAAA;AAAA;AAAA,SAGcc,uBAAuB;EAAA;AAAA;AAAA;EAAA,qFAAtC,kBACET,UAA0B,EAC1Ba,UAA0B;IAAA;IAAA;MAAA;QAAA;UAAA;YAEpBC,gBAAgB,GAAGd,UAAU,CAACe,kBAAkB,CACpDF,UAAU,EACVlB,uBAAuB,CACxB;YAAA,KACGmB,gBAAgB;cAAA;cAAA;YAAA;YAAA,wBASdA,gBAAgB,CAPlBrB,UAAU,EAAVA,UAAU,sCAAG,CAAC,mDAOZqB,gBAAgB,CANlBE,UAAU,EAAVA,UAAU,uCAAG,CAAC,2BACdC,UAAU,GAKRH,gBAAgB,CALlBG,UAAU,EACVC,KAAK,GAIHJ,gBAAgB,CAJlBI,KAAK,EACLC,IAAI,GAGFL,gBAAgB,CAHlBK,IAAI,0BAGFL,gBAAgB,CAFlBpB,MAAM,EAANA,MAAM,sCAAG,MAAM,0BACP0B,WAAW,GACjBN,gBAAgB,CADlBO,MAAM;YAEFA,MAAM,GAAGrB,UAAU,CAACE,IAAI,CAACoB,OAAO,CAACF,WAAW,CAAC;YAE7CG,MAAM,GAAG,IAAIC,UAAU,CAACH,MAAM,CAACI,WAAW,EAAEJ,MAAM,CAAC5B,UAAU,GAAGA,UAAU,EAAEuB,UAAU,CAAC;YACvFU,MAAM,GAAG,IAAIF,UAAU,CAC3BxB,UAAU,CAACE,IAAI,CAACoB,OAAO,CAACT,UAAU,CAACQ,MAAM,CAAC,CAACI,WAAW,EACtDZ,UAAU,CAACpB,UAAU,EACrBoB,UAAU,CAACG,UAAU,CACtB;YAAA;YAAA,OACK,IAAAW,uCAAuB,EAACD,MAAM,EAAER,KAAK,EAAED,UAAU,EAAEM,MAAM,EAAEJ,IAAI,EAAEzB,MAAM,CAAC;UAAA;YAAA,kCACvEgC,MAAM;UAAA;YAAA,kCAGR,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACZ;EAAA;AAAA"}
1
+ {"version":3,"file":"EXT_meshopt_compression.js","names":["_gltfScenegraph","_interopRequireDefault","require","_meshoptDecoder","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","DEFAULT_MESHOPT_OPTIONS","byteOffset","filter","EXT_MESHOPT_COMPRESSION","exports","decode","_x","_x2","_decode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","gltfData","options","_options$gltf","scenegraph","promises","_iterator","_step","bufferViewIndex","wrap","_callee$","_context","prev","GLTFScenegraph","gltf","decompressMeshes","abrupt","json","bufferViews","push","decodeMeshoptBufferView","Promise","all","removeExtension","stop","_x3","_x4","_decodeMeshoptBufferView","_callee2","bufferView","meshoptExtension","_meshoptExtension$byt","_meshoptExtension$byt2","byteLength","byteStride","count","mode","_meshoptExtension$fil","bufferIndex","buffer","source","result","_callee2$","_context2","getObjectExtension","buffers","Uint8Array","arrayBuffer","meshoptDecodeGltfBuffer"],"sources":["../../../../src/lib/extensions/EXT_meshopt_compression.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport type {GLTF, GLTFBufferView, GLTF_EXT_meshopt_compression} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {meshoptDecodeGltfBuffer} from '../../meshopt/meshopt-decoder';\n\n// @ts-ignore\n// eslint-disable-next-line\nconst DEFAULT_MESHOPT_OPTIONS = {\n byteOffset: 0,\n filter: 'NONE'\n};\n\n/** Extension name */\nconst EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';\n\nexport const name = EXT_MESHOPT_COMPRESSION;\n\nexport async function decode(gltfData: {json: GLTF}, options: GLTFLoaderOptions) {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!options?.gltf?.decompressMeshes) {\n return;\n }\n\n const promises: Promise<any>[] = [];\n for (const bufferViewIndex of gltfData.json.bufferViews || []) {\n promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));\n }\n\n // Decompress meshes in parallel\n await Promise.all(promises);\n\n // We have now decompressed all primitives, so remove the top-level extension\n scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);\n}\n\n/** Decode one meshopt buffer view */\nasync function decodeMeshoptBufferView(\n scenegraph: GLTFScenegraph,\n bufferView: GLTFBufferView\n): Promise<ArrayBuffer | null> {\n const meshoptExtension = scenegraph.getObjectExtension<GLTF_EXT_meshopt_compression>(\n bufferView,\n EXT_MESHOPT_COMPRESSION\n );\n if (meshoptExtension) {\n const {\n byteOffset = 0,\n byteLength = 0,\n byteStride,\n count,\n mode,\n filter = 'NONE',\n buffer: bufferIndex\n } = meshoptExtension;\n const buffer = scenegraph.gltf.buffers[bufferIndex];\n\n const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);\n const result = new Uint8Array(\n scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,\n bufferView.byteOffset,\n bufferView.byteLength\n );\n await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);\n return result;\n }\n\n return null;\n}\n"],"mappings":"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"}
@@ -10,11 +10,9 @@ var _images = require("@loaders.gl/images");
10
10
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
11
11
  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; } } }; }
12
12
  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); }
13
- 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; }
13
+ 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; }
14
14
  var EXT_TEXTURE_WEBP = 'EXT_texture_webp';
15
-
16
15
  var name = EXT_TEXTURE_WEBP;
17
-
18
16
  exports.name = name;
19
17
  function preprocess(gltfData, options) {
20
18
  var scenegraph = new _gltfScenegraph.default(gltfData);
@@ -36,7 +34,6 @@ function preprocess(gltfData, options) {
36
34
  }
37
35
  scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);
38
36
  }
39
-
40
37
  } catch (err) {
41
38
  _iterator.e(err);
42
39
  } finally {
@@ -1 +1 @@
1
- {"version":3,"file":"EXT_texture_webp.js","names":["EXT_TEXTURE_WEBP","name","preprocess","gltfData","options","scenegraph","GLTFScenegraph","isImageFormatSupported","getRequiredExtensions","includes","Error","json","textures","texture","extension","getObjectExtension","source","removeObjectExtension","removeExtension"],"sources":["../../../../src/lib/extensions/EXT_texture_webp.ts"],"sourcesContent":["// GLTF EXTENSION: EXT_TEXTURE_WEBP\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_TEXTURE_WEBP\n/* eslint-disable camelcase */\n\nimport type {GLTF, GLTF_EXT_texture_webp} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\nimport {isImageFormatSupported} from '@loaders.gl/images';\nimport GLTFScenegraph from '../api/gltf-scenegraph';\n\nconst EXT_TEXTURE_WEBP = 'EXT_texture_webp';\n\n/** Extension name */\nexport const name = EXT_TEXTURE_WEBP;\n\n/**\n * Replaces a texture source reference with the extension texture\n * Done in preprocess() to prevent load of default image\n */\nexport function preprocess(gltfData: {json: GLTF}, options: GLTFLoaderOptions): void {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!isImageFormatSupported('image/webp')) {\n if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {\n throw new Error(`gltf: Required extension ${EXT_TEXTURE_WEBP} not supported by browser`);\n }\n return;\n }\n\n const {json} = scenegraph;\n\n for (const texture of json.textures || []) {\n const extension = scenegraph.getObjectExtension<GLTF_EXT_texture_webp>(\n texture,\n EXT_TEXTURE_WEBP\n );\n if (extension) {\n // TODO - if multiple texture extensions are present which one wins?\n texture.source = extension.source;\n }\n scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);\n }\n\n // Remove the top-level extension\n scenegraph.removeExtension(EXT_TEXTURE_WEBP);\n}\n"],"mappings":";;;;;;;;AAOA;AACA;AAAoD;AAAA;AAAA;AAEpD,IAAMA,gBAAgB,GAAG,kBAAkB;;AAGpC,IAAMC,IAAI,GAAGD,gBAAgB;;AAAC;AAM9B,SAASE,UAAU,CAACC,QAAsB,EAAEC,OAA0B,EAAQ;EACnF,IAAMC,UAAU,GAAG,IAAIC,uBAAc,CAACH,QAAQ,CAAC;EAE/C,IAAI,CAAC,IAAAI,8BAAsB,EAAC,YAAY,CAAC,EAAE;IACzC,IAAIF,UAAU,CAACG,qBAAqB,EAAE,CAACC,QAAQ,CAACT,gBAAgB,CAAC,EAAE;MACjE,MAAM,IAAIU,KAAK,oCAA6BV,gBAAgB,+BAA4B;IAC1F;IACA;EACF;EAEA,IAAOW,IAAI,GAAIN,UAAU,CAAlBM,IAAI;EAAe,2CAEJA,IAAI,CAACC,QAAQ,IAAI,EAAE;IAAA;EAAA;IAAzC,oDAA2C;MAAA,IAAhCC,OAAO;MAChB,IAAMC,SAAS,GAAGT,UAAU,CAACU,kBAAkB,CAC7CF,OAAO,EACPb,gBAAgB,CACjB;MACD,IAAIc,SAAS,EAAE;QAEbD,OAAO,CAACG,MAAM,GAAGF,SAAS,CAACE,MAAM;MACnC;MACAX,UAAU,CAACY,qBAAqB,CAACJ,OAAO,EAAEb,gBAAgB,CAAC;IAC7D;;EAAC;IAAA;EAAA;IAAA;EAAA;EAGDK,UAAU,CAACa,eAAe,CAAClB,gBAAgB,CAAC;AAC9C"}
1
+ {"version":3,"file":"EXT_texture_webp.js","names":["_images","require","_gltfScenegraph","_interopRequireDefault","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","EXT_TEXTURE_WEBP","exports","preprocess","gltfData","options","scenegraph","GLTFScenegraph","isImageFormatSupported","getRequiredExtensions","includes","Error","concat","json","_iterator","textures","_step","texture","extension","getObjectExtension","source","removeObjectExtension","removeExtension"],"sources":["../../../../src/lib/extensions/EXT_texture_webp.ts"],"sourcesContent":["// GLTF EXTENSION: EXT_TEXTURE_WEBP\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_TEXTURE_WEBP\n/* eslint-disable camelcase */\n\nimport type {GLTF, GLTF_EXT_texture_webp} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\nimport {isImageFormatSupported} from '@loaders.gl/images';\nimport GLTFScenegraph from '../api/gltf-scenegraph';\n\nconst EXT_TEXTURE_WEBP = 'EXT_texture_webp';\n\n/** Extension name */\nexport const name = EXT_TEXTURE_WEBP;\n\n/**\n * Replaces a texture source reference with the extension texture\n * Done in preprocess() to prevent load of default image\n */\nexport function preprocess(gltfData: {json: GLTF}, options: GLTFLoaderOptions): void {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!isImageFormatSupported('image/webp')) {\n if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {\n throw new Error(`gltf: Required extension ${EXT_TEXTURE_WEBP} not supported by browser`);\n }\n return;\n }\n\n const {json} = scenegraph;\n\n for (const texture of json.textures || []) {\n const extension = scenegraph.getObjectExtension<GLTF_EXT_texture_webp>(\n texture,\n EXT_TEXTURE_WEBP\n );\n if (extension) {\n // TODO - if multiple texture extensions are present which one wins?\n texture.source = extension.source;\n }\n scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);\n }\n\n // Remove the top-level extension\n scenegraph.removeExtension(EXT_TEXTURE_WEBP);\n}\n"],"mappings":"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"}
@@ -9,19 +9,16 @@ exports.preprocess = preprocess;
9
9
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
10
10
  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; } } }; }
11
11
  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); }
12
- 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; }
12
+ 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; }
13
13
  var KHR_BINARY_GLTF = 'KHR_binary_glTF';
14
-
15
14
  var name = KHR_BINARY_GLTF;
16
15
  exports.name = name;
17
16
  function preprocess(gltfData) {
18
17
  var gltfScenegraph = new _gltfScenegraph.default(gltfData);
19
18
  var json = gltfScenegraph.json;
20
-
21
19
  var _iterator = _createForOfIteratorHelper(json.images || []),
22
20
  _step;
23
21
  try {
24
-
25
22
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
26
23
  var image = _step.value;
27
24
  var extension = gltfScenegraph.getObjectExtension(image, KHR_BINARY_GLTF);
@@ -30,17 +27,14 @@ function preprocess(gltfData) {
30
27
  }
31
28
  gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);
32
29
  }
33
-
34
30
  } catch (err) {
35
31
  _iterator.e(err);
36
32
  } finally {
37
33
  _iterator.f();
38
34
  }
39
-
40
35
  if (json.buffers && json.buffers[0]) {
41
36
  delete json.buffers[0].uri;
42
37
  }
43
-
44
38
  gltfScenegraph.removeExtension(KHR_BINARY_GLTF);
45
39
  }
46
40
  //# sourceMappingURL=KHR_binary_gltf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KHR_binary_gltf.js","names":["KHR_BINARY_GLTF","name","preprocess","gltfData","gltfScenegraph","GLTFScenegraph","json","images","image","extension","getObjectExtension","Object","assign","removeObjectExtension","buffers","uri","removeExtension"],"sources":["../../../../src/lib/extensions/KHR_binary_gltf.ts"],"sourcesContent":["// GLTF 1.0 EXTENSION: KHR_binary_glTF\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/1.0/Khronos/KHR_binary_glTF\n/* eslint-disable camelcase */\n\nimport type {GLTF, GLTF_KHR_binary_glTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\n\nconst KHR_BINARY_GLTF = 'KHR_binary_glTF';\n\n/** Extension name */\nexport const name = KHR_BINARY_GLTF;\n\nexport function preprocess(gltfData: {json: GLTF}): void {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Note: json.buffers.binary_glTF also needs to be replaced\n // This is currently done during gltf normalization\n\n // Image and shader nodes can have the extension\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/image.KHR_binary_glTF.schema.json\n for (const image of json.images || []) {\n const extension = gltfScenegraph.getObjectExtension<GLTF_KHR_binary_glTF>(\n image,\n KHR_BINARY_GLTF\n );\n // The data in the extension is valid as glTF 2.0 data inside the object, so just copy it in\n if (extension) {\n Object.assign(image, extension);\n }\n gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);\n }\n\n // TODO shaders - At least traverse and throw error if used?\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/shader.KHR_binary_glTF.schema.json\n\n // glTF v1 one files have a partially formed URI field that is not expected in (and causes problems in) 2.0\n if (json.buffers && json.buffers[0]) {\n delete json.buffers[0].uri;\n }\n\n // Remove the top-level extension as it has now been processed\n gltfScenegraph.removeExtension(KHR_BINARY_GLTF);\n}\n\n// KHR_binary_gltf is a 1.0 extension that is supported natively by 2.0\n// export function encode() {\n// throw new Error(KHR_BINARY_GLTF);\n// }\n"],"mappings":";;;;;;;;AAMA;AAAoD;AAAA;AAAA;AAEpD,IAAMA,eAAe,GAAG,iBAAiB;;AAGlC,IAAMC,IAAI,GAAGD,eAAe;AAAC;AAE7B,SAASE,UAAU,CAACC,QAAsB,EAAQ;EACvD,IAAMC,cAAc,GAAG,IAAIC,uBAAc,CAACF,QAAQ,CAAC;EACnD,IAAOG,IAAI,GAAIF,cAAc,CAAtBE,IAAI;;EAAmB,2CAOVA,IAAI,CAACC,MAAM,IAAI,EAAE;IAAA;EAAA;;IAArC,oDAAuC;MAAA,IAA5BC,KAAK;MACd,IAAMC,SAAS,GAAGL,cAAc,CAACM,kBAAkB,CACjDF,KAAK,EACLR,eAAe,CAChB;MAED,IAAIS,SAAS,EAAE;QACbE,MAAM,CAACC,MAAM,CAACJ,KAAK,EAAEC,SAAS,CAAC;MACjC;MACAL,cAAc,CAACS,qBAAqB,CAACL,KAAK,EAAER,eAAe,CAAC;IAC9D;;EAAC;IAAA;EAAA;IAAA;EAAA;;EAMD,IAAIM,IAAI,CAACQ,OAAO,IAAIR,IAAI,CAACQ,OAAO,CAAC,CAAC,CAAC,EAAE;IACnC,OAAOR,IAAI,CAACQ,OAAO,CAAC,CAAC,CAAC,CAACC,GAAG;EAC5B;;EAGAX,cAAc,CAACY,eAAe,CAAChB,eAAe,CAAC;AACjD"}
1
+ {"version":3,"file":"KHR_binary_gltf.js","names":["_gltfScenegraph","_interopRequireDefault","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","KHR_BINARY_GLTF","exports","preprocess","gltfData","gltfScenegraph","GLTFScenegraph","json","_iterator","images","_step","image","extension","getObjectExtension","assign","removeObjectExtension","buffers","uri","removeExtension"],"sources":["../../../../src/lib/extensions/KHR_binary_gltf.ts"],"sourcesContent":["// GLTF 1.0 EXTENSION: KHR_binary_glTF\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/1.0/Khronos/KHR_binary_glTF\n/* eslint-disable camelcase */\n\nimport type {GLTF, GLTF_KHR_binary_glTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\n\nconst KHR_BINARY_GLTF = 'KHR_binary_glTF';\n\n/** Extension name */\nexport const name = KHR_BINARY_GLTF;\n\nexport function preprocess(gltfData: {json: GLTF}): void {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Note: json.buffers.binary_glTF also needs to be replaced\n // This is currently done during gltf normalization\n\n // Image and shader nodes can have the extension\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/image.KHR_binary_glTF.schema.json\n for (const image of json.images || []) {\n const extension = gltfScenegraph.getObjectExtension<GLTF_KHR_binary_glTF>(\n image,\n KHR_BINARY_GLTF\n );\n // The data in the extension is valid as glTF 2.0 data inside the object, so just copy it in\n if (extension) {\n Object.assign(image, extension);\n }\n gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);\n }\n\n // TODO shaders - At least traverse and throw error if used?\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/shader.KHR_binary_glTF.schema.json\n\n // glTF v1 one files have a partially formed URI field that is not expected in (and causes problems in) 2.0\n if (json.buffers && json.buffers[0]) {\n delete json.buffers[0].uri;\n }\n\n // Remove the top-level extension as it has now been processed\n gltfScenegraph.removeExtension(KHR_BINARY_GLTF);\n}\n\n// KHR_binary_gltf is a 1.0 extension that is supported natively by 2.0\n// export function encode() {\n// throw new Error(KHR_BINARY_GLTF);\n// }\n"],"mappings":"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"}