@loaders.gl/gltf 3.3.0-alpha.5 → 3.3.0-alpha.7

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 (145) hide show
  1. package/dist/dist.min.js +104 -124
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/glb-loader.js +2 -13
  5. package/dist/es5/glb-loader.js.map +1 -1
  6. package/dist/es5/glb-writer.js +3 -6
  7. package/dist/es5/glb-writer.js.map +1 -1
  8. package/dist/es5/gltf-loader.js +11 -23
  9. package/dist/es5/gltf-loader.js.map +1 -1
  10. package/dist/es5/gltf-writer.js +2 -5
  11. package/dist/es5/gltf-writer.js.map +1 -1
  12. package/dist/es5/index.js +10 -17
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/lib/api/gltf-extensions.js +14 -48
  15. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  16. package/dist/es5/lib/api/gltf-scenegraph.js +113 -96
  17. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  18. package/dist/es5/lib/api/normalize-gltf-v1.js +32 -70
  19. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  20. package/dist/es5/lib/api/post-process-gltf.js +26 -89
  21. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  22. package/dist/es5/lib/encoders/encode-glb.js +10 -8
  23. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  24. package/dist/es5/lib/encoders/encode-gltf.js +3 -6
  25. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  26. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +2 -28
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  28. package/dist/es5/lib/extensions/EXT_texture_webp.js +5 -18
  29. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
  30. package/dist/es5/lib/extensions/KHR_binary_gltf.js +5 -12
  31. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  32. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +11 -79
  33. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  34. package/dist/es5/lib/extensions/KHR_texture_basisu.js +5 -14
  35. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
  36. package/dist/es5/lib/extensions/KHR_texture_transform.js +17 -72
  37. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
  38. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +0 -21
  39. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  40. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -24
  41. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  42. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +2 -19
  43. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  44. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +11 -29
  45. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  46. package/dist/es5/lib/gltf-utils/get-typed-array.js +1 -1
  47. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  48. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +5 -17
  49. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  50. package/dist/es5/lib/gltf-utils/gltf-constants.js +3 -4
  51. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  52. package/dist/es5/lib/gltf-utils/gltf-utils.js +1 -8
  53. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  54. package/dist/es5/lib/gltf-utils/resolve-url.js +0 -5
  55. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  56. package/dist/es5/lib/parsers/parse-glb.js +11 -17
  57. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  58. package/dist/es5/lib/parsers/parse-gltf.js +12 -73
  59. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  60. package/dist/es5/lib/types/glb-types.js.map +1 -1
  61. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
  62. package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -1
  63. package/dist/es5/lib/types/gltf-types.js.map +1 -1
  64. package/dist/es5/lib/utils/assert.js +0 -1
  65. package/dist/es5/lib/utils/assert.js.map +1 -1
  66. package/dist/es5/lib/utils/version.js +1 -1
  67. package/dist/es5/lib/utils/version.js.map +1 -1
  68. package/dist/es5/meshopt/meshopt-decoder.js +10 -47
  69. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  70. package/dist/es5/webp/webp.js +3 -19
  71. package/dist/es5/webp/webp.js.map +1 -1
  72. package/dist/esm/bundle.js +1 -1
  73. package/dist/esm/bundle.js.map +1 -1
  74. package/dist/esm/glb-loader.js +0 -1
  75. package/dist/esm/glb-loader.js.map +1 -1
  76. package/dist/esm/glb-writer.js +3 -1
  77. package/dist/esm/glb-writer.js.map +1 -1
  78. package/dist/esm/gltf-loader.js +9 -3
  79. package/dist/esm/gltf-loader.js.map +1 -1
  80. package/dist/esm/gltf-writer.js +3 -2
  81. package/dist/esm/gltf-writer.js.map +1 -1
  82. package/dist/esm/index.js +4 -0
  83. package/dist/esm/index.js.map +1 -1
  84. package/dist/esm/lib/api/gltf-extensions.js +16 -9
  85. package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
  86. package/dist/esm/lib/api/gltf-scenegraph.js +27 -68
  87. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  88. package/dist/esm/lib/api/normalize-gltf-v1.js +3 -34
  89. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  90. package/dist/esm/lib/api/post-process-gltf.js +26 -93
  91. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  92. package/dist/esm/lib/encoders/encode-glb.js +9 -2
  93. package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
  94. package/dist/esm/lib/encoders/encode-gltf.js +6 -4
  95. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
  96. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +5 -6
  97. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  98. package/dist/esm/lib/extensions/EXT_texture_webp.js +4 -6
  99. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
  100. package/dist/esm/lib/extensions/KHR_binary_gltf.js +3 -2
  101. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
  102. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +18 -17
  103. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  104. package/dist/esm/lib/extensions/KHR_texture_basisu.js +4 -3
  105. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
  106. package/dist/esm/lib/extensions/KHR_texture_transform.js +8 -34
  107. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
  108. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +2 -13
  109. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  110. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +4 -4
  111. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  112. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +3 -2
  113. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  114. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +10 -10
  115. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  116. package/dist/esm/lib/gltf-utils/get-typed-array.js +4 -0
  117. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
  118. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +7 -11
  119. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  120. package/dist/esm/lib/gltf-utils/gltf-constants.js +1 -0
  121. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
  122. package/dist/esm/lib/gltf-utils/gltf-utils.js +0 -2
  123. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
  124. package/dist/esm/lib/gltf-utils/resolve-url.js +1 -4
  125. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  126. package/dist/esm/lib/parsers/parse-glb.js +19 -16
  127. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  128. package/dist/esm/lib/parsers/parse-gltf.js +11 -16
  129. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  130. package/dist/esm/lib/types/glb-types.js.map +1 -1
  131. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
  132. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -1
  133. package/dist/esm/lib/types/gltf-types.js.map +1 -1
  134. package/dist/esm/lib/utils/assert.js +1 -0
  135. package/dist/esm/lib/utils/assert.js.map +1 -1
  136. package/dist/esm/lib/utils/version.js +2 -1
  137. package/dist/esm/lib/utils/version.js.map +1 -1
  138. package/dist/esm/meshopt/meshopt-decoder.js +11 -15
  139. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  140. package/dist/esm/webp/webp.js +3 -5
  141. package/dist/esm/webp/webp.js.map +1 -1
  142. package/dist/lib/api/gltf-extensions.js +5 -1
  143. package/dist/lib/api/normalize-gltf-v1.js +5 -1
  144. package/dist/lib/parsers/parse-gltf.js +5 -1
  145. package/package.json +6 -6
@@ -1,24 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.encodeGLTFSync = encodeGLTFSync;
9
-
10
8
  var _encodeGlb = _interopRequireDefault(require("./encode-glb"));
11
9
 
12
10
  function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {
13
11
  convertBuffersToBase64(gltf);
12
+
14
13
  return (0, _encodeGlb.default)(gltf, arrayBuffer, byteOffset, options);
15
14
  }
16
-
17
15
  function convertBuffersToBase64(gltf) {
18
16
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
19
- _ref$firstBuffer = _ref.firstBuffer,
20
- firstBuffer = _ref$firstBuffer === void 0 ? 0 : _ref$firstBuffer;
21
-
17
+ _ref$firstBuffer = _ref.firstBuffer,
18
+ firstBuffer = _ref$firstBuffer === void 0 ? 0 : _ref$firstBuffer;
22
19
  if (gltf.buffers && gltf.buffers.length > firstBuffer) {
23
20
  throw new Error('encodeGLTF: multiple buffers not yet implemented');
24
21
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/encoders/encode-gltf.ts"],"names":["encodeGLTFSync","gltf","arrayBuffer","byteOffset","options","convertBuffersToBase64","firstBuffer","buffers","length","Error"],"mappings":";;;;;;;;;AAAA;;AAYO,SAASA,cAAT,CAAwBC,IAAxB,EAA8BC,WAA9B,EAA2CC,UAA3C,EAAuDC,OAAvD,EAAgE;AACrEC,EAAAA,sBAAsB,CAACJ,IAAD,CAAtB;AAIA,SAAO,wBAAcA,IAAd,EAAoBC,WAApB,EAAiCC,UAAjC,EAA6CC,OAA7C,CAAP;AACD;;AAED,SAASC,sBAAT,CAAgCJ,IAAhC,EAA8D;AAAA,iFAAJ,EAAI;AAAA,8BAAvBK,WAAuB;AAAA,MAAvBA,WAAuB,iCAAT,CAAS;;AAC5D,MAAIL,IAAI,CAACM,OAAL,IAAgBN,IAAI,CAACM,OAAL,CAAaC,MAAb,GAAsBF,WAA1C,EAAuD;AACrD,UAAM,IAAIG,KAAJ,CAAU,kDAAV,CAAN;AACD;AACF","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"],"file":"encode-gltf.js"}
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,79 +1,61 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.decode = decode;
9
8
  exports.name = void 0;
10
-
11
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
-
15
11
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
16
-
17
12
  var _meshoptDecoder = require("../../meshopt/meshopt-decoder");
18
-
19
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; } } }; }
20
-
21
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); }
22
-
23
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; }
24
-
25
16
  var DEFAULT_MESHOPT_OPTIONS = {
26
17
  byteOffset: 0,
27
18
  filter: 'NONE'
28
19
  };
20
+
29
21
  var EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';
30
22
  var name = EXT_MESHOPT_COMPRESSION;
31
23
  exports.name = name;
32
-
33
24
  function decode(_x, _x2) {
34
25
  return _decode.apply(this, arguments);
35
26
  }
36
-
37
27
  function _decode() {
38
28
  _decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options) {
39
29
  var _options$gltf;
40
-
41
30
  var scenegraph, promises, _iterator, _step, bufferViewIndex;
42
-
43
31
  return _regenerator.default.wrap(function _callee$(_context) {
44
32
  while (1) {
45
33
  switch (_context.prev = _context.next) {
46
34
  case 0:
47
35
  scenegraph = new _gltfScenegraph.default(gltfData);
48
-
49
36
  if (options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.decompressMeshes) {
50
37
  _context.next = 3;
51
38
  break;
52
39
  }
53
-
54
40
  return _context.abrupt("return");
55
-
56
41
  case 3:
57
42
  promises = [];
58
43
  _iterator = _createForOfIteratorHelper(gltfData.json.bufferViews || []);
59
-
60
44
  try {
61
45
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
62
46
  bufferViewIndex = _step.value;
63
47
  promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));
64
48
  }
49
+
65
50
  } catch (err) {
66
51
  _iterator.e(err);
67
52
  } finally {
68
53
  _iterator.f();
69
54
  }
70
-
71
55
  _context.next = 8;
72
56
  return Promise.all(promises);
73
-
74
57
  case 8:
75
58
  scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);
76
-
77
59
  case 9:
78
60
  case "end":
79
61
  return _context.stop();
@@ -83,39 +65,31 @@ function _decode() {
83
65
  }));
84
66
  return _decode.apply(this, arguments);
85
67
  }
86
-
87
68
  function decodeMeshoptBufferView(_x3, _x4) {
88
69
  return _decodeMeshoptBufferView.apply(this, arguments);
89
70
  }
90
-
91
71
  function _decodeMeshoptBufferView() {
92
72
  _decodeMeshoptBufferView = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(scenegraph, bufferView) {
93
73
  var meshoptExtension, _meshoptExtension$byt, byteOffset, _meshoptExtension$byt2, byteLength, byteStride, count, mode, _meshoptExtension$fil, filter, bufferIndex, buffer, source, result;
94
-
95
74
  return _regenerator.default.wrap(function _callee2$(_context2) {
96
75
  while (1) {
97
76
  switch (_context2.prev = _context2.next) {
98
77
  case 0:
99
78
  meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
100
-
101
79
  if (!meshoptExtension) {
102
80
  _context2.next = 9;
103
81
  break;
104
82
  }
105
-
106
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;
107
84
  buffer = scenegraph.gltf.buffers[bufferIndex];
108
85
  source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
109
86
  result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
110
87
  _context2.next = 8;
111
88
  return (0, _meshoptDecoder.meshoptDecodeGltfBuffer)(result, count, byteStride, source, mode, filter);
112
-
113
89
  case 8:
114
90
  return _context2.abrupt("return", result);
115
-
116
91
  case 9:
117
92
  return _context2.abrupt("return", null);
118
-
119
93
  case 10:
120
94
  case "end":
121
95
  return _context2.stop();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/extensions/EXT_meshopt_compression.ts"],"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"],"mappings":";;;;;;;;;;;;;;AAGA;;AACA;;;;;;;;AAIA,IAAMA,uBAAuB,GAAG;AAC9BC,EAAAA,UAAU,EAAE,CADkB;AAE9BC,EAAAA,MAAM,EAAE;AAFsB,CAAhC;AAMA,IAAMC,uBAAuB,GAAG,yBAAhC;AAEO,IAAMC,IAAI,GAAGD,uBAAb;;;SAEeE,M;;;;;sEAAf,iBAAsBC,QAAtB,EAA8CC,OAA9C;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,UADD,GACc,IAAIC,uBAAJ,CAAmBH,QAAnB,CADd;;AAAA,gBAGAC,OAHA,aAGAA,OAHA,gCAGAA,OAAO,CAAEG,IAHT,0CAGA,cAAeC,gBAHf;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAOCC,YAAAA,QAPD,GAO4B,EAP5B;AAAA,mDAQyBN,QAAQ,CAACO,IAAT,CAAcC,WAAd,IAA6B,EARtD;;AAAA;AAQL,kEAA+D;AAApDC,gBAAAA,eAAoD;AAC7DH,gBAAAA,QAAQ,CAACI,IAAT,CAAcC,uBAAuB,CAACT,UAAD,EAAaO,eAAb,CAArC;AACD;AAVI;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAaCG,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAbD;;AAAA;AAgBLJ,YAAAA,UAAU,CAACY,eAAX,CAA2BjB,uBAA3B;;AAhBK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAoBQc,uB;;;;;uFAAf,kBACET,UADF,EAEEa,UAFF;AAAA;;AAAA;AAAA;AAAA;AAAA;AAIQC,YAAAA,gBAJR,GAI2Bd,UAAU,CAACe,kBAAX,CACvBF,UADuB,EAEvBlB,uBAFuB,CAJ3B;;AAAA,iBAQMmB,gBARN;AAAA;AAAA;AAAA;;AAAA,oCAiBQA,gBAjBR,CAUMrB,UAVN,EAUMA,UAVN,sCAUmB,CAVnB,mDAiBQqB,gBAjBR,CAWME,UAXN,EAWMA,UAXN,uCAWmB,CAXnB,2BAYMC,UAZN,GAiBQH,gBAjBR,CAYMG,UAZN,EAaMC,KAbN,GAiBQJ,gBAjBR,CAaMI,KAbN,EAcMC,IAdN,GAiBQL,gBAjBR,CAcMK,IAdN,0BAiBQL,gBAjBR,CAeMpB,MAfN,EAeMA,MAfN,sCAee,MAff,0BAgBc0B,WAhBd,GAiBQN,gBAjBR,CAgBMO,MAhBN;AAkBUA,YAAAA,MAlBV,GAkBmBrB,UAAU,CAACE,IAAX,CAAgBoB,OAAhB,CAAwBF,WAAxB,CAlBnB;AAoBUG,YAAAA,MApBV,GAoBmB,IAAIC,UAAJ,CAAeH,MAAM,CAACI,WAAtB,EAAmCJ,MAAM,CAAC5B,UAAP,GAAoBA,UAAvD,EAAmEuB,UAAnE,CApBnB;AAqBUU,YAAAA,MArBV,GAqBmB,IAAIF,UAAJ,CACbxB,UAAU,CAACE,IAAX,CAAgBoB,OAAhB,CAAwBT,UAAU,CAACQ,MAAnC,EAA2CI,WAD9B,EAEbZ,UAAU,CAACpB,UAFE,EAGboB,UAAU,CAACG,UAHE,CArBnB;AAAA;AAAA,mBA0BU,6CAAwBU,MAAxB,EAAgCR,KAAhC,EAAuCD,UAAvC,EAAmDM,MAAnD,EAA2DJ,IAA3D,EAAiEzB,MAAjE,CA1BV;;AAAA;AAAA,8CA2BWgC,MA3BX;;AAAA;AAAA,8CA8BS,IA9BT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","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 extensions\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"],"file":"EXT_meshopt_compression.js"}
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 extensions\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,60 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.preprocess = preprocess;
9
7
  exports.name = void 0;
10
-
8
+ exports.preprocess = preprocess;
11
9
  var _images = require("@loaders.gl/images");
12
-
13
10
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
14
-
15
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; } } }; }
16
-
17
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); }
18
-
19
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; }
20
-
21
14
  var EXT_TEXTURE_WEBP = 'EXT_texture_webp';
15
+
22
16
  var name = EXT_TEXTURE_WEBP;
23
- exports.name = name;
24
17
 
18
+ exports.name = name;
25
19
  function preprocess(gltfData, options) {
26
20
  var scenegraph = new _gltfScenegraph.default(gltfData);
27
-
28
21
  if (!(0, _images._isImageFormatSupported)('image/webp')) {
29
22
  if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
30
23
  throw new Error("gltf: Required extension ".concat(EXT_TEXTURE_WEBP, " not supported by browser"));
31
24
  }
32
-
33
25
  return;
34
26
  }
35
-
36
27
  var json = scenegraph.json;
37
-
38
28
  var _iterator = _createForOfIteratorHelper(json.textures || []),
39
- _step;
40
-
29
+ _step;
41
30
  try {
42
31
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
43
32
  var texture = _step.value;
44
33
  var extension = scenegraph.getObjectExtension(texture, EXT_TEXTURE_WEBP);
45
-
46
34
  if (extension) {
47
35
  texture.source = extension.source;
48
36
  }
49
-
50
37
  scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);
51
38
  }
39
+
52
40
  } catch (err) {
53
41
  _iterator.e(err);
54
42
  } finally {
55
43
  _iterator.f();
56
44
  }
57
-
58
45
  scenegraph.removeExtension(EXT_TEXTURE_WEBP);
59
46
  }
60
47
  //# sourceMappingURL=EXT_texture_webp.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/extensions/EXT_texture_webp.ts"],"names":["EXT_TEXTURE_WEBP","name","preprocess","gltfData","options","scenegraph","GLTFScenegraph","getRequiredExtensions","includes","Error","json","textures","texture","extension","getObjectExtension","source","removeObjectExtension","removeExtension"],"mappings":";;;;;;;;;;AAOA;;AACA;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG,kBAAzB;AAGO,IAAMC,IAAI,GAAGD,gBAAb;;;AAMA,SAASE,UAAT,CAAoBC,QAApB,EAA4CC,OAA5C,EAA8E;AACnF,MAAMC,UAAU,GAAG,IAAIC,uBAAJ,CAAmBH,QAAnB,CAAnB;;AAEA,MAAI,CAAC,qCAAwB,YAAxB,CAAL,EAA4C;AAC1C,QAAIE,UAAU,CAACE,qBAAX,GAAmCC,QAAnC,CAA4CR,gBAA5C,CAAJ,EAAmE;AACjE,YAAM,IAAIS,KAAJ,oCAAsCT,gBAAtC,+BAAN;AACD;;AACD;AACD;;AAED,MAAOU,IAAP,GAAeL,UAAf,CAAOK,IAAP;;AAVmF,6CAY7DA,IAAI,CAACC,QAAL,IAAiB,EAZ4C;AAAA;;AAAA;AAYnF,wDAA2C;AAAA,UAAhCC,OAAgC;AACzC,UAAMC,SAAS,GAAGR,UAAU,CAACS,kBAAX,CAChBF,OADgB,EAEhBZ,gBAFgB,CAAlB;;AAIA,UAAIa,SAAJ,EAAe;AACbD,QAAAA,OAAO,CAACG,MAAR,GAAiBF,SAAS,CAACE,MAA3B;AACD;;AACDV,MAAAA,UAAU,CAACW,qBAAX,CAAiCJ,OAAjC,EAA0CZ,gBAA1C;AACD;AArBkF;AAAA;AAAA;AAAA;AAAA;;AAwBnFK,EAAAA,UAAU,CAACY,eAAX,CAA2BjB,gBAA3B;AACD","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 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"],"file":"EXT_texture_webp.js"}
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 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,+BAAuB,EAAC,YAAY,CAAC,EAAE;IAC1C,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;QACbD,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,43 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.preprocess = preprocess;
9
7
  exports.name = void 0;
10
-
8
+ exports.preprocess = preprocess;
11
9
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
12
-
13
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; } } }; }
14
-
15
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); }
16
-
17
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; }
18
-
19
13
  var KHR_BINARY_GLTF = 'KHR_binary_glTF';
14
+
20
15
  var name = KHR_BINARY_GLTF;
21
16
  exports.name = name;
22
-
23
17
  function preprocess(gltfData) {
24
18
  var gltfScenegraph = new _gltfScenegraph.default(gltfData);
25
19
  var json = gltfScenegraph.json;
26
20
 
27
21
  var _iterator = _createForOfIteratorHelper(json.images || []),
28
- _step;
29
-
22
+ _step;
30
23
  try {
24
+
31
25
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
32
26
  var image = _step.value;
33
27
  var extension = gltfScenegraph.getObjectExtension(image, KHR_BINARY_GLTF);
34
-
35
28
  if (extension) {
36
29
  Object.assign(image, extension);
37
30
  }
38
-
39
31
  gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);
40
32
  }
33
+
41
34
  } catch (err) {
42
35
  _iterator.e(err);
43
36
  } finally {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/extensions/KHR_binary_gltf.ts"],"names":["KHR_BINARY_GLTF","name","preprocess","gltfData","gltfScenegraph","GLTFScenegraph","json","images","image","extension","getObjectExtension","Object","assign","removeObjectExtension","buffers","uri","removeExtension"],"mappings":";;;;;;;;;;AAMA;;;;;;;;AAEA,IAAMA,eAAe,GAAG,iBAAxB;AAGO,IAAMC,IAAI,GAAGD,eAAb;;;AAEA,SAASE,UAAT,CAAoBC,QAApB,EAAkD;AACvD,MAAMC,cAAc,GAAG,IAAIC,uBAAJ,CAAmBF,QAAnB,CAAvB;AACA,MAAOG,IAAP,GAAeF,cAAf,CAAOE,IAAP;;AAFuD,6CASnCA,IAAI,CAACC,MAAL,IAAe,EAToB;AAAA;;AAAA;AASvD,wDAAuC;AAAA,UAA5BC,KAA4B;AACrC,UAAMC,SAAS,GAAGL,cAAc,CAACM,kBAAf,CAChBF,KADgB,EAEhBR,eAFgB,CAAlB;;AAKA,UAAIS,SAAJ,EAAe;AACbE,QAAAA,MAAM,CAACC,MAAP,CAAcJ,KAAd,EAAqBC,SAArB;AACD;;AACDL,MAAAA,cAAc,CAACS,qBAAf,CAAqCL,KAArC,EAA4CR,eAA5C;AACD;AAnBsD;AAAA;AAAA;AAAA;AAAA;;AAyBvD,MAAIM,IAAI,CAACQ,OAAL,IAAgBR,IAAI,CAACQ,OAAL,CAAa,CAAb,CAApB,EAAqC;AACnC,WAAOR,IAAI,CAACQ,OAAL,CAAa,CAAb,EAAgBC,GAAvB;AACD;;AAGDX,EAAAA,cAAc,CAACY,eAAf,CAA+BhB,eAA/B;AACD","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 removed from all nodes\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"],"file":"KHR_binary_gltf.js"}
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 removed from all nodes\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,60 +1,41 @@
1
1
  "use strict";
2
2
 
3
3
  var _regeneratorRuntime2 = require("@babel/runtime/regenerator");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.preprocess = preprocess;
11
8
  exports.decode = decode;
12
9
  exports.encode = encode;
13
10
  exports.name = void 0;
14
-
11
+ exports.preprocess = preprocess;
15
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
16
-
17
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
-
19
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
-
21
15
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
22
-
23
16
  var _draco = require("@loaders.gl/draco");
24
-
25
17
  var _loaderUtils = require("@loaders.gl/loader-utils");
26
-
27
18
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
28
-
29
19
  var _gltfAttributeUtils = require("../gltf-utils/gltf-attribute-utils");
30
-
31
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
32
-
33
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
34
-
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
22
  var _marked = _regeneratorRuntime2.mark(makeMeshPrimitiveIterator);
36
-
37
23
  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; } } }; }
38
-
39
24
  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); }
40
-
41
25
  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; }
42
-
43
26
  var KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';
27
+
44
28
  var name = KHR_DRACO_MESH_COMPRESSION;
45
29
  exports.name = name;
46
-
47
30
  function preprocess(gltfData, options, context) {
48
31
  var scenegraph = new _gltfScenegraph.default(gltfData);
49
-
50
32
  var _iterator = _createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph)),
51
- _step;
52
-
33
+ _step;
53
34
  try {
54
35
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
55
36
  var primitive = _step.value;
56
-
57
- if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {}
37
+ if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
38
+ }
58
39
  }
59
40
  } catch (err) {
60
41
  _iterator.e(err);
@@ -62,17 +43,13 @@ function preprocess(gltfData, options, context) {
62
43
  _iterator.f();
63
44
  }
64
45
  }
65
-
66
46
  function decode(_x, _x2, _x3) {
67
47
  return _decode.apply(this, arguments);
68
48
  }
69
-
70
49
  function _decode() {
71
50
  _decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options, context) {
72
51
  var _options$gltf;
73
-
74
52
  var scenegraph, promises, _iterator5, _step5, primitive;
75
-
76
53
  return _regenerator.default.wrap(function _callee$(_context2) {
77
54
  while (1) {
78
55
  switch (_context2.prev = _context2.next) {
@@ -81,34 +58,28 @@ function _decode() {
81
58
  _context2.next = 2;
82
59
  break;
83
60
  }
84
-
85
61
  return _context2.abrupt("return");
86
-
87
62
  case 2:
88
63
  scenegraph = new _gltfScenegraph.default(gltfData);
89
64
  promises = [];
90
65
  _iterator5 = _createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph));
91
-
92
66
  try {
93
67
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
94
68
  primitive = _step5.value;
95
-
96
69
  if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
97
70
  promises.push(decompressPrimitive(scenegraph, primitive, options, context));
98
71
  }
99
72
  }
73
+
100
74
  } catch (err) {
101
75
  _iterator5.e(err);
102
76
  } finally {
103
77
  _iterator5.f();
104
78
  }
105
-
106
79
  _context2.next = 8;
107
80
  return Promise.all(promises);
108
-
109
81
  case 8:
110
82
  scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);
111
-
112
83
  case 9:
113
84
  case "end":
114
85
  return _context2.stop();
@@ -118,14 +89,11 @@ function _decode() {
118
89
  }));
119
90
  return _decode.apply(this, arguments);
120
91
  }
121
-
122
92
  function encode(gltfData) {
123
93
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
124
94
  var scenegraph = new _gltfScenegraph.default(gltfData);
125
-
126
95
  var _iterator2 = _createForOfIteratorHelper(scenegraph.json.meshes || []),
127
- _step2;
128
-
96
+ _step2;
129
97
  try {
130
98
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
131
99
  var mesh = _step2.value;
@@ -142,24 +110,19 @@ function encode(gltfData) {
142
110
  function decompressPrimitive(_x4, _x5, _x6, _x7) {
143
111
  return _decompressPrimitive.apply(this, arguments);
144
112
  }
145
-
146
113
  function _decompressPrimitive() {
147
114
  _decompressPrimitive = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(scenegraph, primitive, options, context) {
148
115
  var dracoExtension, buffer, bufferCopy, parse, dracoOptions, decodedData, decodedAttributes, _i, _Object$entries, _Object$entries$_i, attributeName, decodedAttribute, accessorIndex, accessor;
149
-
150
116
  return _regenerator.default.wrap(function _callee2$(_context3) {
151
117
  while (1) {
152
118
  switch (_context3.prev = _context3.next) {
153
119
  case 0:
154
120
  dracoExtension = scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION);
155
-
156
121
  if (dracoExtension) {
157
122
  _context3.next = 3;
158
123
  break;
159
124
  }
160
-
161
125
  return _context3.abrupt("return");
162
-
163
126
  case 3:
164
127
  buffer = scenegraph.getTypedArrayForBufferView(dracoExtension.bufferView);
165
128
  bufferCopy = (0, _loaderUtils.sliceArrayBuffer)(buffer.buffer, buffer.byteOffset);
@@ -168,18 +131,14 @@ function _decompressPrimitive() {
168
131
  delete dracoOptions['3d-tiles'];
169
132
  _context3.next = 10;
170
133
  return parse(bufferCopy, _draco.DracoLoader, dracoOptions, context);
171
-
172
134
  case 10:
173
135
  decodedData = _context3.sent;
174
136
  decodedAttributes = (0, _gltfAttributeUtils.getGLTFAccessors)(decodedData.attributes);
175
-
176
137
  for (_i = 0, _Object$entries = Object.entries(decodedAttributes); _i < _Object$entries.length; _i++) {
177
138
  _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2), attributeName = _Object$entries$_i[0], decodedAttribute = _Object$entries$_i[1];
178
-
179
139
  if (attributeName in primitive.attributes) {
180
140
  accessorIndex = primitive.attributes[attributeName];
181
141
  accessor = scenegraph.getAccessor(accessorIndex);
182
-
183
142
  if (accessor !== null && accessor !== void 0 && accessor.min && accessor !== null && accessor !== void 0 && accessor.max) {
184
143
  decodedAttribute.min = accessor.min;
185
144
  decodedAttribute.max = accessor.max;
@@ -188,13 +147,11 @@ function _decompressPrimitive() {
188
147
  }
189
148
 
190
149
  primitive.attributes = decodedAttributes;
191
-
192
150
  if (decodedData.indices) {
193
151
  primitive.indices = (0, _gltfAttributeUtils.getGLTFAccessor)(decodedData.indices);
194
152
  }
195
153
 
196
154
  checkPrimitive(primitive);
197
-
198
155
  case 16:
199
156
  case "end":
200
157
  return _context3.stop();
@@ -207,11 +164,9 @@ function _decompressPrimitive() {
207
164
 
208
165
  function compressMesh(attributes, indices) {
209
166
  var _context$parseSync;
210
-
211
167
  var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4;
212
168
  var options = arguments.length > 3 ? arguments[3] : undefined;
213
169
  var context = arguments.length > 4 ? arguments[4] : undefined;
214
-
215
170
  if (!options.DracoWriter) {
216
171
  throw new Error('options.gltf.DracoWriter not provided');
217
172
  }
@@ -219,12 +174,11 @@ function compressMesh(attributes, indices) {
219
174
  var compressedData = options.DracoWriter.encodeSync({
220
175
  attributes: attributes
221
176
  });
177
+
222
178
  var decodedData = context === null || context === void 0 ? void 0 : (_context$parseSync = context.parseSync) === null || _context$parseSync === void 0 ? void 0 : _context$parseSync.call(context, {
223
179
  attributes: attributes
224
180
  });
225
-
226
181
  var fauxAccessors = options._addFauxAttributes(decodedData.attributes);
227
-
228
182
  var bufferViewIndex = options.addBufferView(compressedData);
229
183
  var glTFMesh = {
230
184
  primitives: [{
@@ -236,6 +190,7 @@ function compressMesh(attributes, indices) {
236
190
  })
237
191
  }]
238
192
  };
193
+
239
194
  return glTFMesh;
240
195
  }
241
196
 
@@ -244,83 +199,60 @@ function checkPrimitive(primitive) {
244
199
  throw new Error('glTF: Empty primitive detected: Draco decompression failure?');
245
200
  }
246
201
  }
247
-
248
202
  function makeMeshPrimitiveIterator(scenegraph) {
249
203
  var _iterator3, _step3, mesh, _iterator4, _step4, primitive;
250
-
251
204
  return _regenerator.default.wrap(function makeMeshPrimitiveIterator$(_context) {
252
205
  while (1) {
253
206
  switch (_context.prev = _context.next) {
254
207
  case 0:
255
208
  _iterator3 = _createForOfIteratorHelper(scenegraph.json.meshes || []);
256
209
  _context.prev = 1;
257
-
258
210
  _iterator3.s();
259
-
260
211
  case 3:
261
212
  if ((_step3 = _iterator3.n()).done) {
262
213
  _context.next = 24;
263
214
  break;
264
215
  }
265
-
266
216
  mesh = _step3.value;
267
217
  _iterator4 = _createForOfIteratorHelper(mesh.primitives);
268
218
  _context.prev = 6;
269
-
270
219
  _iterator4.s();
271
-
272
220
  case 8:
273
221
  if ((_step4 = _iterator4.n()).done) {
274
222
  _context.next = 14;
275
223
  break;
276
224
  }
277
-
278
225
  primitive = _step4.value;
279
226
  _context.next = 12;
280
227
  return primitive;
281
-
282
228
  case 12:
283
229
  _context.next = 8;
284
230
  break;
285
-
286
231
  case 14:
287
232
  _context.next = 19;
288
233
  break;
289
-
290
234
  case 16:
291
235
  _context.prev = 16;
292
236
  _context.t0 = _context["catch"](6);
293
-
294
237
  _iterator4.e(_context.t0);
295
-
296
238
  case 19:
297
239
  _context.prev = 19;
298
-
299
240
  _iterator4.f();
300
-
301
241
  return _context.finish(19);
302
-
303
242
  case 22:
304
243
  _context.next = 3;
305
244
  break;
306
-
307
245
  case 24:
308
246
  _context.next = 29;
309
247
  break;
310
-
311
248
  case 26:
312
249
  _context.prev = 26;
313
250
  _context.t1 = _context["catch"](1);
314
-
315
251
  _iterator3.e(_context.t1);
316
-
317
252
  case 29:
318
253
  _context.prev = 29;
319
-
320
254
  _iterator3.f();
321
-
322
255
  return _context.finish(29);
323
-
324
256
  case 32:
325
257
  case "end":
326
258
  return _context.stop();