@loaders.gl/gltf 3.0.12 → 3.0.13

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 (73) hide show
  1. package/dist/dist.es5.min.js +1 -1
  2. package/dist/dist.es5.min.js.map +1 -1
  3. package/dist/dist.min.js +1 -1
  4. package/dist/dist.min.js.map +1 -1
  5. package/dist/es5/bundle.js +2 -2
  6. package/dist/es5/bundle.js.map +1 -1
  7. package/dist/es5/glb-loader.js +10 -33
  8. package/dist/es5/glb-loader.js.map +1 -1
  9. package/dist/es5/glb-writer.js +9 -8
  10. package/dist/es5/glb-writer.js.map +1 -1
  11. package/dist/es5/gltf-loader.js +14 -52
  12. package/dist/es5/gltf-loader.js.map +1 -1
  13. package/dist/es5/gltf-writer.js +10 -10
  14. package/dist/es5/gltf-writer.js.map +1 -1
  15. package/dist/es5/index.js +7 -7
  16. package/dist/es5/lib/api/gltf-scenegraph.js +447 -541
  17. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  18. package/dist/es5/lib/api/normalize-gltf-v1.js +150 -280
  19. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  20. package/dist/es5/lib/api/post-process-gltf.js +279 -354
  21. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  22. package/dist/es5/lib/encoders/encode-glb.js +19 -22
  23. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  24. package/dist/es5/lib/encoders/encode-gltf.js +3 -5
  25. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  26. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +34 -99
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  28. package/dist/es5/lib/extensions/KHR_binary_gltf.js +8 -22
  29. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  30. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +70 -244
  31. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  32. package/dist/es5/lib/extensions/KHR_lights_punctual.js +38 -102
  33. package/dist/es5/lib/extensions/KHR_lights_punctual.js.map +1 -1
  34. package/dist/es5/lib/extensions/KHR_materials_unlit.js +22 -67
  35. package/dist/es5/lib/extensions/KHR_materials_unlit.js.map +1 -1
  36. package/dist/es5/lib/extensions/KHR_techniques_webgl.js +32 -88
  37. package/dist/es5/lib/extensions/KHR_techniques_webgl.js.map +1 -1
  38. package/dist/es5/lib/extensions/gltf-extensions.js +17 -67
  39. package/dist/es5/lib/extensions/gltf-extensions.js.map +1 -1
  40. package/dist/es5/lib/gltf-utils/get-typed-array.js +6 -6
  41. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  42. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +19 -21
  43. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  44. package/dist/es5/lib/gltf-utils/gltf-constants.js +13 -13
  45. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  46. package/dist/es5/lib/gltf-utils/gltf-utils.js +16 -16
  47. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  48. package/dist/es5/lib/gltf-utils/resolve-url.js +2 -2
  49. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  50. package/dist/es5/lib/parsers/parse-glb.js +34 -38
  51. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  52. package/dist/es5/lib/parsers/parse-gltf.js +80 -215
  53. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  54. package/dist/es5/lib/utils/version.js +1 -1
  55. package/dist/es5/lib/utils/version.js.map +1 -1
  56. package/dist/es5/meshopt/meshopt-decoder.js +46 -197
  57. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  58. package/dist/esm/lib/api/gltf-scenegraph.js +1 -1
  59. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  60. package/dist/esm/lib/api/normalize-gltf-v1.js +3 -3
  61. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  62. package/dist/esm/lib/api/post-process-gltf.js +12 -12
  63. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  64. package/dist/esm/lib/gltf-utils/resolve-url.js +1 -1
  65. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  66. package/dist/esm/lib/parsers/parse-glb.js +2 -6
  67. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  68. package/dist/esm/lib/parsers/parse-gltf.js +1 -1
  69. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  70. package/dist/esm/lib/utils/version.js +1 -1
  71. package/dist/esm/meshopt/meshopt-decoder.js +1 -1
  72. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  73. package/package.json +6 -6
@@ -8,86 +8,41 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.decode = decode;
9
9
  exports.encode = encode;
10
10
 
11
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
-
15
11
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
16
12
 
17
13
  var _gltfConstants = require("../gltf-utils/gltf-constants");
18
14
 
19
- 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
- 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
- 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
- function decode(_x) {
26
- return _decode.apply(this, arguments);
27
- }
28
-
29
- function _decode() {
30
- _decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData) {
31
- var gltfScenegraph, json, _iterator2, _step2, material, extension;
15
+ async function decode(gltfData) {
16
+ const gltfScenegraph = new _gltfScenegraph.default(gltfData);
17
+ const {
18
+ json
19
+ } = gltfScenegraph;
20
+ gltfScenegraph.removeExtension(_gltfConstants.KHR_MATERIALS_UNLIT);
32
21
 
33
- return _regenerator.default.wrap(function _callee$(_context) {
34
- while (1) {
35
- switch (_context.prev = _context.next) {
36
- case 0:
37
- gltfScenegraph = new _gltfScenegraph.default(gltfData);
38
- json = gltfScenegraph.json;
39
- gltfScenegraph.removeExtension(_gltfConstants.KHR_MATERIALS_UNLIT);
40
- _iterator2 = _createForOfIteratorHelper(json.materials || []);
22
+ for (const material of json.materials || []) {
23
+ const extension = material.extensions && material.extensions.KHR_materials_unlit;
41
24
 
42
- try {
43
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
44
- material = _step2.value;
45
- extension = material.extensions && material.extensions.KHR_materials_unlit;
46
-
47
- if (extension) {
48
- material.unlit = true;
49
- }
50
-
51
- gltfScenegraph.removeObjectExtension(material, _gltfConstants.KHR_MATERIALS_UNLIT);
52
- }
53
- } catch (err) {
54
- _iterator2.e(err);
55
- } finally {
56
- _iterator2.f();
57
- }
25
+ if (extension) {
26
+ material.unlit = true;
27
+ }
58
28
 
59
- case 5:
60
- case "end":
61
- return _context.stop();
62
- }
63
- }
64
- }, _callee);
65
- }));
66
- return _decode.apply(this, arguments);
29
+ gltfScenegraph.removeObjectExtension(material, _gltfConstants.KHR_MATERIALS_UNLIT);
30
+ }
67
31
  }
68
32
 
69
33
  function encode(gltfData) {
70
- var gltfScenegraph = new _gltfScenegraph.default(gltfData);
71
- var json = gltfScenegraph.json;
34
+ const gltfScenegraph = new _gltfScenegraph.default(gltfData);
35
+ const {
36
+ json
37
+ } = gltfScenegraph;
72
38
 
73
39
  if (gltfScenegraph.materials) {
74
- var _iterator = _createForOfIteratorHelper(json.materials || []),
75
- _step;
76
-
77
- try {
78
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
79
- var material = _step.value;
80
-
81
- if (material.unlit) {
82
- delete material.unlit;
83
- gltfScenegraph.addObjectExtension(material, _gltfConstants.KHR_MATERIALS_UNLIT, {});
84
- gltfScenegraph.addExtension(_gltfConstants.KHR_MATERIALS_UNLIT);
85
- }
40
+ for (const material of json.materials || []) {
41
+ if (material.unlit) {
42
+ delete material.unlit;
43
+ gltfScenegraph.addObjectExtension(material, _gltfConstants.KHR_MATERIALS_UNLIT, {});
44
+ gltfScenegraph.addExtension(_gltfConstants.KHR_MATERIALS_UNLIT);
86
45
  }
87
- } catch (err) {
88
- _iterator.e(err);
89
- } finally {
90
- _iterator.f();
91
46
  }
92
47
  }
93
48
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/extensions/KHR_materials_unlit.ts"],"names":["decode","gltfData","gltfScenegraph","GLTFScenegraph","json","removeExtension","KHR_MATERIALS_UNLIT","materials","material","extension","extensions","KHR_materials_unlit","unlit","removeObjectExtension","encode","addObjectExtension","addExtension"],"mappings":";;;;;;;;;;;;;;AAKA;;AACA;;;;;;;;SAEsBA,M;;;;;sEAAf,iBAAsBC,QAAtB;AAAA;;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,cADD,GACkB,IAAIC,uBAAJ,CAAmBF,QAAnB,CADlB;AAEEG,YAAAA,IAFF,GAEUF,cAFV,CAEEE,IAFF;AAKLF,YAAAA,cAAc,CAACG,eAAf,CAA+BC,kCAA/B;AALK,oDASkBF,IAAI,CAACG,SAAL,IAAkB,EATpC;;AAAA;AASL,qEAA6C;AAAlCC,gBAAAA,QAAkC;AACrCC,gBAAAA,SADqC,GACzBD,QAAQ,CAACE,UAAT,IAAuBF,QAAQ,CAACE,UAAT,CAAoBC,mBADlB;;AAE3C,oBAAIF,SAAJ,EAAe;AAEbD,kBAAAA,QAAQ,CAACI,KAAT,GAAiB,IAAjB;AACD;;AACDV,gBAAAA,cAAc,CAACW,qBAAf,CAAqCL,QAArC,EAA+CF,kCAA/C;AACD;AAhBI;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAmBA,SAASQ,MAAT,CAAgBb,QAAhB,EAA0B;AAC/B,MAAMC,cAAc,GAAG,IAAIC,uBAAJ,CAAmBF,QAAnB,CAAvB;AACA,MAAOG,IAAP,GAAeF,cAAf,CAAOE,IAAP;;AAKA,MAAIF,cAAc,CAACK,SAAnB,EAA8B;AAAA,+CACLH,IAAI,CAACG,SAAL,IAAkB,EADb;AAAA;;AAAA;AAC5B,0DAA6C;AAAA,YAAlCC,QAAkC;;AAE3C,YAAIA,QAAQ,CAACI,KAAb,EAAoB;AAElB,iBAAOJ,QAAQ,CAACI,KAAhB;AACAV,UAAAA,cAAc,CAACa,kBAAf,CAAkCP,QAAlC,EAA4CF,kCAA5C,EAAiE,EAAjE;AACAJ,UAAAA,cAAc,CAACc,YAAf,CAA4BV,kCAA5B;AACD;AACF;AAT2B;AAAA;AAAA;AAAA;AAAA;AAU7B;AACF","sourcesContent":["// GLTF EXTENSION: KHR_materials_unlit\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_MATERIALS_UNLIT} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Remove the top-level extension\n gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);\n\n // Any nodes that have the extension, add lights field pointing to light object\n // and remove the extension\n for (const material of json.materials || []) {\n const extension = material.extensions && material.extensions.KHR_materials_unlit;\n if (extension) {\n // @ts-ignore TODO\n material.unlit = true;\n }\n gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);\n }\n}\n\nexport function encode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Any nodes that have lights field pointing to light object\n // add the extension\n // @ts-ignore\n if (gltfScenegraph.materials) {\n for (const material of json.materials || []) {\n // @ts-ignore\n if (material.unlit) {\n // @ts-ignore\n delete material.unlit;\n gltfScenegraph.addObjectExtension(material, KHR_MATERIALS_UNLIT, {});\n gltfScenegraph.addExtension(KHR_MATERIALS_UNLIT);\n }\n }\n }\n}\n"],"file":"KHR_materials_unlit.js"}
1
+ {"version":3,"sources":["../../../../src/lib/extensions/KHR_materials_unlit.ts"],"names":["decode","gltfData","gltfScenegraph","GLTFScenegraph","json","removeExtension","KHR_MATERIALS_UNLIT","material","materials","extension","extensions","KHR_materials_unlit","unlit","removeObjectExtension","encode","addObjectExtension","addExtension"],"mappings":";;;;;;;;;;AAKA;;AACA;;AAEO,eAAeA,MAAf,CAAsBC,QAAtB,EAA6D;AAClE,QAAMC,cAAc,GAAG,IAAIC,uBAAJ,CAAmBF,QAAnB,CAAvB;AACA,QAAM;AAACG,IAAAA;AAAD,MAASF,cAAf;AAGAA,EAAAA,cAAc,CAACG,eAAf,CAA+BC,kCAA/B;;AAIA,OAAK,MAAMC,QAAX,IAAuBH,IAAI,CAACI,SAAL,IAAkB,EAAzC,EAA6C;AAC3C,UAAMC,SAAS,GAAGF,QAAQ,CAACG,UAAT,IAAuBH,QAAQ,CAACG,UAAT,CAAoBC,mBAA7D;;AACA,QAAIF,SAAJ,EAAe;AAEbF,MAAAA,QAAQ,CAACK,KAAT,GAAiB,IAAjB;AACD;;AACDV,IAAAA,cAAc,CAACW,qBAAf,CAAqCN,QAArC,EAA+CD,kCAA/C;AACD;AACF;;AAEM,SAASQ,MAAT,CAAgBb,QAAhB,EAA0B;AAC/B,QAAMC,cAAc,GAAG,IAAIC,uBAAJ,CAAmBF,QAAnB,CAAvB;AACA,QAAM;AAACG,IAAAA;AAAD,MAASF,cAAf;;AAKA,MAAIA,cAAc,CAACM,SAAnB,EAA8B;AAC5B,SAAK,MAAMD,QAAX,IAAuBH,IAAI,CAACI,SAAL,IAAkB,EAAzC,EAA6C;AAE3C,UAAID,QAAQ,CAACK,KAAb,EAAoB;AAElB,eAAOL,QAAQ,CAACK,KAAhB;AACAV,QAAAA,cAAc,CAACa,kBAAf,CAAkCR,QAAlC,EAA4CD,kCAA5C,EAAiE,EAAjE;AACAJ,QAAAA,cAAc,CAACc,YAAf,CAA4BV,kCAA5B;AACD;AACF;AACF;AACF","sourcesContent":["// GLTF EXTENSION: KHR_materials_unlit\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_MATERIALS_UNLIT} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Remove the top-level extension\n gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);\n\n // Any nodes that have the extension, add lights field pointing to light object\n // and remove the extension\n for (const material of json.materials || []) {\n const extension = material.extensions && material.extensions.KHR_materials_unlit;\n if (extension) {\n // @ts-ignore TODO\n material.unlit = true;\n }\n gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);\n }\n}\n\nexport function encode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Any nodes that have lights field pointing to light object\n // add the extension\n // @ts-ignore\n if (gltfScenegraph.materials) {\n for (const material of json.materials || []) {\n // @ts-ignore\n if (material.unlit) {\n // @ts-ignore\n delete material.unlit;\n gltfScenegraph.addObjectExtension(material, KHR_MATERIALS_UNLIT, {});\n gltfScenegraph.addExtension(KHR_MATERIALS_UNLIT);\n }\n }\n }\n}\n"],"file":"KHR_materials_unlit.js"}
@@ -8,126 +8,70 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.decode = decode;
9
9
  exports.encode = encode;
10
10
 
11
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
11
  var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
18
12
 
19
13
  var _gltfConstants = require("../gltf-utils/gltf-constants");
20
14
 
21
- 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; } } }; }
22
-
23
- 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); }
24
-
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; }
26
-
27
- function decode(_x) {
28
- return _decode.apply(this, arguments);
29
- }
30
-
31
- function _decode() {
32
- _decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData) {
33
- var gltfScenegraph, json, extension, techniques, _iterator, _step, material, materialExtension;
34
-
35
- return _regenerator.default.wrap(function _callee$(_context) {
36
- while (1) {
37
- switch (_context.prev = _context.next) {
38
- case 0:
39
- gltfScenegraph = new _gltfScenegraph.default(gltfData);
40
- json = gltfScenegraph.json;
41
- extension = gltfScenegraph.getExtension(_gltfConstants.KHR_TECHNIQUES_WEBGL);
15
+ async function decode(gltfData) {
16
+ const gltfScenegraph = new _gltfScenegraph.default(gltfData);
17
+ const {
18
+ json
19
+ } = gltfScenegraph;
20
+ const extension = gltfScenegraph.getExtension(_gltfConstants.KHR_TECHNIQUES_WEBGL);
42
21
 
43
- if (extension) {
44
- techniques = resolveTechniques(extension, gltfScenegraph);
45
- _iterator = _createForOfIteratorHelper(json.materials || []);
22
+ if (extension) {
23
+ const techniques = resolveTechniques(extension, gltfScenegraph);
46
24
 
47
- try {
48
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
49
- material = _step.value;
50
- materialExtension = gltfScenegraph.getObjectExtension(material, _gltfConstants.KHR_TECHNIQUES_WEBGL);
25
+ for (const material of json.materials || []) {
26
+ const materialExtension = gltfScenegraph.getObjectExtension(material, _gltfConstants.KHR_TECHNIQUES_WEBGL);
51
27
 
52
- if (materialExtension) {
53
- material.technique = Object.assign({}, materialExtension, techniques[materialExtension.technique]);
54
- material.technique.values = resolveValues(material.technique, gltfScenegraph);
55
- }
56
-
57
- gltfScenegraph.removeObjectExtension(material, _gltfConstants.KHR_TECHNIQUES_WEBGL);
58
- }
59
- } catch (err) {
60
- _iterator.e(err);
61
- } finally {
62
- _iterator.f();
63
- }
64
-
65
- gltfScenegraph.removeExtension(_gltfConstants.KHR_TECHNIQUES_WEBGL);
66
- }
67
-
68
- case 4:
69
- case "end":
70
- return _context.stop();
71
- }
28
+ if (materialExtension) {
29
+ material.technique = Object.assign({}, materialExtension, techniques[materialExtension.technique]);
30
+ material.technique.values = resolveValues(material.technique, gltfScenegraph);
72
31
  }
73
- }, _callee);
74
- }));
75
- return _decode.apply(this, arguments);
76
- }
77
32
 
78
- function encode(_x2, _x3) {
79
- return _encode.apply(this, arguments);
80
- }
33
+ gltfScenegraph.removeObjectExtension(material, _gltfConstants.KHR_TECHNIQUES_WEBGL);
34
+ }
81
35
 
82
- function _encode() {
83
- _encode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(gltfData, options) {
84
- return _regenerator.default.wrap(function _callee2$(_context2) {
85
- while (1) {
86
- switch (_context2.prev = _context2.next) {
87
- case 0:
88
- case "end":
89
- return _context2.stop();
90
- }
91
- }
92
- }, _callee2);
93
- }));
94
- return _encode.apply(this, arguments);
36
+ gltfScenegraph.removeExtension(_gltfConstants.KHR_TECHNIQUES_WEBGL);
37
+ }
95
38
  }
96
39
 
40
+ async function encode(gltfData, options) {}
41
+
97
42
  function resolveTechniques(techniquesExtension, gltfScenegraph) {
98
- var _techniquesExtension$ = techniquesExtension.programs,
99
- programs = _techniquesExtension$ === void 0 ? [] : _techniquesExtension$,
100
- _techniquesExtension$2 = techniquesExtension.shaders,
101
- shaders = _techniquesExtension$2 === void 0 ? [] : _techniquesExtension$2,
102
- _techniquesExtension$3 = techniquesExtension.techniques,
103
- techniques = _techniquesExtension$3 === void 0 ? [] : _techniquesExtension$3;
104
- var textDecoder = new TextDecoder();
105
- shaders.forEach(function (shader) {
43
+ const {
44
+ programs = [],
45
+ shaders = [],
46
+ techniques = []
47
+ } = techniquesExtension;
48
+ const textDecoder = new TextDecoder();
49
+ shaders.forEach(shader => {
106
50
  if (Number.isFinite(shader.bufferView)) {
107
51
  shader.code = textDecoder.decode(gltfScenegraph.getTypedArrayForBufferView(shader.bufferView));
108
52
  } else {
109
53
  throw new Error('KHR_techniques_webgl: no shader code');
110
54
  }
111
55
  });
112
- programs.forEach(function (program) {
56
+ programs.forEach(program => {
113
57
  program.fragmentShader = shaders[program.fragmentShader];
114
58
  program.vertexShader = shaders[program.vertexShader];
115
59
  });
116
- techniques.forEach(function (technique) {
60
+ techniques.forEach(technique => {
117
61
  technique.program = programs[technique.program];
118
62
  });
119
63
  return techniques;
120
64
  }
121
65
 
122
66
  function resolveValues(technique, gltfScenegraph) {
123
- var values = Object.assign({}, technique.values);
124
- Object.keys(technique.uniforms || {}).forEach(function (uniform) {
67
+ const values = Object.assign({}, technique.values);
68
+ Object.keys(technique.uniforms || {}).forEach(uniform => {
125
69
  if (technique.uniforms[uniform].value && !(uniform in values)) {
126
70
  values[uniform] = technique.uniforms[uniform].value;
127
71
  }
128
72
  });
129
- Object.keys(values).forEach(function (uniform) {
130
- if ((0, _typeof2.default)(values[uniform]) === 'object' && values[uniform].index !== undefined) {
73
+ Object.keys(values).forEach(uniform => {
74
+ if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {
131
75
  values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);
132
76
  }
133
77
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/extensions/KHR_techniques_webgl.ts"],"names":["decode","gltfData","gltfScenegraph","GLTFScenegraph","json","extension","getExtension","KHR_TECHNIQUES_WEBGL","techniques","resolveTechniques","materials","material","materialExtension","getObjectExtension","technique","Object","assign","values","resolveValues","removeObjectExtension","removeExtension","encode","options","techniquesExtension","programs","shaders","textDecoder","TextDecoder","forEach","shader","Number","isFinite","bufferView","code","getTypedArrayForBufferView","Error","program","fragmentShader","vertexShader","keys","uniforms","uniform","value","index","undefined","texture","getTexture"],"mappings":"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","sourcesContent":["// GLTF EXTENSION: KHR_techniques_webgl\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_techniques_webgl\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_TECHNIQUES_WEBGL} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);\n if (extension) {\n const techniques = resolveTechniques(extension, gltfScenegraph);\n\n for (const material of json.materials || []) {\n const materialExtension = gltfScenegraph.getObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n if (materialExtension) {\n // @ts-ignore TODO\n material.technique = Object.assign(\n {},\n materialExtension,\n // @ts-ignore\n techniques[materialExtension.technique]\n );\n // @ts-ignore TODO\n material.technique.values = resolveValues(material.technique, gltfScenegraph);\n }\n gltfScenegraph.removeObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n }\n\n gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);\n }\n}\n// eslint-disable-next-line\nexport async function encode(gltfData, options): Promise<void> {\n // TODO\n}\n\nfunction resolveTechniques(\n techniquesExtension: {[key: string]: any},\n // programs: {[key: string]: any}[],\n // shaders: {[key: string]: any}[],\n // techniques: {[key: string]: any}[]\n gltfScenegraph\n) {\n const {programs = [], shaders = [], techniques = []} = techniquesExtension;\n const textDecoder = new TextDecoder();\n\n shaders.forEach((shader) => {\n if (Number.isFinite(shader.bufferView)) {\n shader.code = textDecoder.decode(\n gltfScenegraph.getTypedArrayForBufferView(shader.bufferView)\n );\n } else {\n // TODO: handle URI shader\n throw new Error('KHR_techniques_webgl: no shader code');\n }\n });\n\n programs.forEach((program) => {\n program.fragmentShader = shaders[program.fragmentShader];\n program.vertexShader = shaders[program.vertexShader];\n });\n\n techniques.forEach((technique) => {\n technique.program = programs[technique.program];\n });\n\n return techniques;\n}\n\nfunction resolveValues(technique, gltfScenegraph) {\n const values = Object.assign({}, technique.values);\n\n // merge values from uniforms\n Object.keys(technique.uniforms || {}).forEach((uniform) => {\n if (technique.uniforms[uniform].value && !(uniform in values)) {\n values[uniform] = technique.uniforms[uniform].value;\n }\n });\n\n // resolve textures\n Object.keys(values).forEach((uniform) => {\n if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {\n // Assume this is a texture\n // TODO: find if there are any other types that can be referenced\n values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);\n }\n });\n\n return values;\n}\n"],"file":"KHR_techniques_webgl.js"}
1
+ {"version":3,"sources":["../../../../src/lib/extensions/KHR_techniques_webgl.ts"],"names":["decode","gltfData","gltfScenegraph","GLTFScenegraph","json","extension","getExtension","KHR_TECHNIQUES_WEBGL","techniques","resolveTechniques","material","materials","materialExtension","getObjectExtension","technique","Object","assign","values","resolveValues","removeObjectExtension","removeExtension","encode","options","techniquesExtension","programs","shaders","textDecoder","TextDecoder","forEach","shader","Number","isFinite","bufferView","code","getTypedArrayForBufferView","Error","program","fragmentShader","vertexShader","keys","uniforms","uniform","value","index","undefined","texture","getTexture"],"mappings":"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","sourcesContent":["// GLTF EXTENSION: KHR_techniques_webgl\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_techniques_webgl\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_TECHNIQUES_WEBGL} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);\n if (extension) {\n const techniques = resolveTechniques(extension, gltfScenegraph);\n\n for (const material of json.materials || []) {\n const materialExtension = gltfScenegraph.getObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n if (materialExtension) {\n // @ts-ignore TODO\n material.technique = Object.assign(\n {},\n materialExtension,\n // @ts-ignore\n techniques[materialExtension.technique]\n );\n // @ts-ignore TODO\n material.technique.values = resolveValues(material.technique, gltfScenegraph);\n }\n gltfScenegraph.removeObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n }\n\n gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);\n }\n}\n// eslint-disable-next-line\nexport async function encode(gltfData, options): Promise<void> {\n // TODO\n}\n\nfunction resolveTechniques(\n techniquesExtension: {[key: string]: any},\n // programs: {[key: string]: any}[],\n // shaders: {[key: string]: any}[],\n // techniques: {[key: string]: any}[]\n gltfScenegraph\n) {\n const {programs = [], shaders = [], techniques = []} = techniquesExtension;\n const textDecoder = new TextDecoder();\n\n shaders.forEach((shader) => {\n if (Number.isFinite(shader.bufferView)) {\n shader.code = textDecoder.decode(\n gltfScenegraph.getTypedArrayForBufferView(shader.bufferView)\n );\n } else {\n // TODO: handle URI shader\n throw new Error('KHR_techniques_webgl: no shader code');\n }\n });\n\n programs.forEach((program) => {\n program.fragmentShader = shaders[program.fragmentShader];\n program.vertexShader = shaders[program.vertexShader];\n });\n\n techniques.forEach((technique) => {\n technique.program = programs[technique.program];\n });\n\n return techniques;\n}\n\nfunction resolveValues(technique, gltfScenegraph) {\n const values = Object.assign({}, technique.values);\n\n // merge values from uniforms\n Object.keys(technique.uniforms || {}).forEach((uniform) => {\n if (technique.uniforms[uniform].value && !(uniform in values)) {\n values[uniform] = technique.uniforms[uniform].value;\n }\n });\n\n // resolve textures\n Object.keys(values).forEach((uniform) => {\n if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {\n // Assume this is a texture\n // TODO: find if there are any other types that can be referenced\n values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);\n }\n });\n\n return values;\n}\n"],"file":"KHR_techniques_webgl.js"}
@@ -1,19 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
3
  Object.defineProperty(exports, "__esModule", {
8
4
  value: true
9
5
  });
10
6
  exports.decodeExtensions = decodeExtensions;
11
7
  exports.EXTENSIONS = void 0;
12
8
 
13
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
9
  var KHR_draco_mesh_compression = _interopRequireWildcard(require("./KHR_draco_mesh_compression"));
18
10
 
19
11
  var KHR_materials_unlit = _interopRequireWildcard(require("./KHR_materials_unlit"));
@@ -22,71 +14,29 @@ var KHR_lights_punctual = _interopRequireWildcard(require("./KHR_lights_punctual
22
14
 
23
15
  var KHR_techniques_webgl = _interopRequireWildcard(require("./KHR_techniques_webgl"));
24
16
 
25
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
18
 
27
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
20
 
29
- var EXTENSIONS = {
30
- KHR_draco_mesh_compression: KHR_draco_mesh_compression,
31
- KHR_materials_unlit: KHR_materials_unlit,
32
- KHR_lights_punctual: KHR_lights_punctual,
33
- KHR_techniques_webgl: KHR_techniques_webgl
21
+ const EXTENSIONS = {
22
+ KHR_draco_mesh_compression,
23
+ KHR_materials_unlit,
24
+ KHR_lights_punctual,
25
+ KHR_techniques_webgl
34
26
  };
35
27
  exports.EXTENSIONS = EXTENSIONS;
36
28
 
37
- function decodeExtensions(_x) {
38
- return _decodeExtensions.apply(this, arguments);
39
- }
40
-
41
- function _decodeExtensions() {
42
- _decodeExtensions = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltf) {
43
- var options,
44
- context,
45
- _extensionName,
46
- _options$gltf,
47
- excludes,
48
- exclude,
49
- extension,
50
- _args = arguments;
51
-
52
- return _regenerator.default.wrap(function _callee$(_context) {
53
- while (1) {
54
- switch (_context.prev = _context.next) {
55
- case 0:
56
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
57
- context = _args.length > 2 ? _args[2] : undefined;
58
- _context.t0 = _regenerator.default.keys(EXTENSIONS);
59
-
60
- case 3:
61
- if ((_context.t1 = _context.t0()).done) {
62
- _context.next = 13;
63
- break;
64
- }
65
-
66
- _extensionName = _context.t1.value;
67
- excludes = (options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.excludeExtensions) || {};
68
- exclude = _extensionName in excludes && !excludes[_extensionName];
69
-
70
- if (exclude) {
71
- _context.next = 11;
72
- break;
73
- }
74
-
75
- extension = EXTENSIONS[_extensionName];
76
- _context.next = 11;
77
- return extension.decode(gltf, options, context);
29
+ async function decodeExtensions(gltf, options = {}, context) {
30
+ for (const extensionName in EXTENSIONS) {
31
+ var _options$gltf;
78
32
 
79
- case 11:
80
- _context.next = 3;
81
- break;
33
+ const excludes = (options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.excludeExtensions) || {};
34
+ const exclude = extensionName in excludes && !excludes[extensionName];
82
35
 
83
- case 13:
84
- case "end":
85
- return _context.stop();
86
- }
87
- }
88
- }, _callee);
89
- }));
90
- return _decodeExtensions.apply(this, arguments);
36
+ if (!exclude) {
37
+ const extension = EXTENSIONS[extensionName];
38
+ await extension.decode(gltf, options, context);
39
+ }
40
+ }
91
41
  }
92
42
  //# sourceMappingURL=gltf-extensions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/extensions/gltf-extensions.ts"],"names":["EXTENSIONS","KHR_draco_mesh_compression","KHR_materials_unlit","KHR_lights_punctual","KHR_techniques_webgl","decodeExtensions","gltf","options","context","extensionName","excludes","excludeExtensions","exclude","extension","decode"],"mappings":";;;;;;;;;;;;;;;;AAQA;;AACA;;AACA;;AACA;;;;;;AAaO,IAAMA,UAA0D,GAAG;AAMxEC,EAAAA,0BAA0B,EAA1BA,0BANwE;AAOxEC,EAAAA,mBAAmB,EAAnBA,mBAPwE;AAQxEC,EAAAA,mBAAmB,EAAnBA,mBARwE;AASxEC,EAAAA,oBAAoB,EAApBA;AATwE,CAAnE;;;SAYeC,gB;;;;;gFAAf,iBAAgCC,IAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAsCC,YAAAA,OAAtC,2DAAmE,EAAnE;AAAuEC,YAAAA,OAAvE;AAAA,oDACuBR,UADvB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACMS,YAAAA,cADN;AAEGC,YAAAA,QAFH,GAEc,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,6BAAAA,OAAO,CAAED,IAAT,gEAAeK,iBAAf,KAAoC,EAFlD;AAGGC,YAAAA,OAHH,GAGaH,cAAa,IAAIC,QAAjB,IAA6B,CAACA,QAAQ,CAACD,cAAD,CAHnD;;AAAA,gBAIEG,OAJF;AAAA;AAAA;AAAA;;AAKKC,YAAAA,SALL,GAKiBb,UAAU,CAACS,cAAD,CAL3B;AAAA;AAAA,mBAQKI,SAAS,CAACC,MAAV,CAAiBR,IAAjB,EAAuBC,OAAvB,EAAgCC,OAAhC,CARL;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (read only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 extensions (read/write)\nimport * as KHR_draco_mesh_compression from './KHR_draco_mesh_compression';\nimport * as KHR_materials_unlit from './KHR_materials_unlit';\nimport * as KHR_lights_punctual from './KHR_lights_punctual';\nimport * as KHR_techniques_webgl from './KHR_techniques_webgl';\n\ntype GLTFExtensionPlugin = {\n decode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;\n\n encode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: {[extensionName: string]: GLTFExtensionPlugin} = {\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n KHR_draco_mesh_compression,\n KHR_materials_unlit,\n KHR_lights_punctual,\n KHR_techniques_webgl\n};\n\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n for (const extensionName in EXTENSIONS) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n if (!exclude) {\n const extension = EXTENSIONS[extensionName];\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode(gltf, options, context);\n }\n }\n}\n"],"file":"gltf-extensions.js"}
1
+ {"version":3,"sources":["../../../../src/lib/extensions/gltf-extensions.ts"],"names":["EXTENSIONS","KHR_draco_mesh_compression","KHR_materials_unlit","KHR_lights_punctual","KHR_techniques_webgl","decodeExtensions","gltf","options","context","extensionName","excludes","excludeExtensions","exclude","extension","decode"],"mappings":";;;;;;;;AAQA;;AACA;;AACA;;AACA;;;;;;AAaO,MAAMA,UAA0D,GAAG;AAMxEC,EAAAA,0BANwE;AAOxEC,EAAAA,mBAPwE;AAQxEC,EAAAA,mBARwE;AASxEC,EAAAA;AATwE,CAAnE;;;AAYA,eAAeC,gBAAf,CAAgCC,IAAhC,EAAsCC,OAA0B,GAAG,EAAnE,EAAuEC,OAAvE,EAAiF;AACtF,OAAK,MAAMC,aAAX,IAA4BT,UAA5B,EAAwC;AAAA;;AACtC,UAAMU,QAAQ,GAAG,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,6BAAAA,OAAO,CAAED,IAAT,gEAAeK,iBAAf,KAAoC,EAArD;AACA,UAAMC,OAAO,GAAGH,aAAa,IAAIC,QAAjB,IAA6B,CAACA,QAAQ,CAACD,aAAD,CAAtD;;AACA,QAAI,CAACG,OAAL,EAAc;AACZ,YAAMC,SAAS,GAAGb,UAAU,CAACS,aAAD,CAA5B;AAGA,YAAMI,SAAS,CAACC,MAAV,CAAiBR,IAAjB,EAAuBC,OAAvB,EAAgCC,OAAhC,CAAN;AACD;AACF;AACF","sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (read only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 extensions (read/write)\nimport * as KHR_draco_mesh_compression from './KHR_draco_mesh_compression';\nimport * as KHR_materials_unlit from './KHR_materials_unlit';\nimport * as KHR_lights_punctual from './KHR_lights_punctual';\nimport * as KHR_techniques_webgl from './KHR_techniques_webgl';\n\ntype GLTFExtensionPlugin = {\n decode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;\n\n encode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: {[extensionName: string]: GLTFExtensionPlugin} = {\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n KHR_draco_mesh_compression,\n KHR_materials_unlit,\n KHR_lights_punctual,\n KHR_techniques_webgl\n};\n\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n for (const extensionName in EXTENSIONS) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n if (!exclude) {\n const extension = EXTENSIONS[extensionName];\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode(gltf, options, context);\n }\n }\n}\n"],"file":"gltf-extensions.js"}
@@ -9,18 +9,18 @@ exports.getTypedArrayForImageData = getTypedArrayForImageData;
9
9
  var _assert = require("../utils/assert");
10
10
 
11
11
  function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {
12
- var bufferView = json.bufferViews[bufferViewIndex];
12
+ const bufferView = json.bufferViews[bufferViewIndex];
13
13
  (0, _assert.assert)(bufferView);
14
- var bufferIndex = bufferView.buffer;
15
- var binChunk = buffers[bufferIndex];
14
+ const bufferIndex = bufferView.buffer;
15
+ const binChunk = buffers[bufferIndex];
16
16
  (0, _assert.assert)(binChunk);
17
- var byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;
17
+ const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;
18
18
  return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);
19
19
  }
20
20
 
21
21
  function getTypedArrayForImageData(json, buffers, imageIndex) {
22
- var image = json.images[imageIndex];
23
- var bufferViewIndex = json.bufferViews[image.bufferView];
22
+ const image = json.images[imageIndex];
23
+ const bufferViewIndex = json.bufferViews[image.bufferView];
24
24
  return getTypedArrayForBufferView(json, buffers, bufferViewIndex);
25
25
  }
26
26
  //# sourceMappingURL=get-typed-array.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/gltf-utils/get-typed-array.ts"],"names":["getTypedArrayForBufferView","json","buffers","bufferViewIndex","bufferView","bufferViews","bufferIndex","buffer","binChunk","byteOffset","Uint8Array","arrayBuffer","byteLength","getTypedArrayForImageData","imageIndex","image","images"],"mappings":";;;;;;;;AACA;;AAIO,SAASA,0BAAT,CAAoCC,IAApC,EAA0CC,OAA1C,EAAmDC,eAAnD,EAAoE;AACzE,MAAMC,UAAU,GAAGH,IAAI,CAACI,WAAL,CAAiBF,eAAjB,CAAnB;AACA,sBAAOC,UAAP;AAGA,MAAME,WAAW,GAAGF,UAAU,CAACG,MAA/B;AACA,MAAMC,QAAQ,GAAGN,OAAO,CAACI,WAAD,CAAxB;AACA,sBAAOE,QAAP;AAEA,MAAMC,UAAU,GAAG,CAACL,UAAU,CAACK,UAAX,IAAyB,CAA1B,IAA+BD,QAAQ,CAACC,UAA3D;AACA,SAAO,IAAIC,UAAJ,CAAeF,QAAQ,CAACG,WAAxB,EAAqCF,UAArC,EAAiDL,UAAU,CAACQ,UAA5D,CAAP;AACD;;AAIM,SAASC,yBAAT,CAAmCZ,IAAnC,EAAyCC,OAAzC,EAAkDY,UAAlD,EAA8D;AACnE,MAAMC,KAAK,GAAGd,IAAI,CAACe,MAAL,CAAYF,UAAZ,CAAd;AACA,MAAMX,eAAe,GAAGF,IAAI,CAACI,WAAL,CAAiBU,KAAK,CAACX,UAAvB,CAAxB;AACA,SAAOJ,0BAA0B,CAACC,IAAD,EAAOC,OAAP,EAAgBC,eAAhB,CAAjC;AACD","sourcesContent":["// TODO - GLTFScenegraph should use these\nimport {assert} from '../utils/assert';\n\n// accepts buffer view index or buffer view object\n// returns a `Uint8Array`\nexport function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {\n const bufferView = json.bufferViews[bufferViewIndex];\n assert(bufferView);\n\n // Get hold of the arrayBuffer\n const bufferIndex = bufferView.buffer;\n const binChunk = buffers[bufferIndex];\n assert(binChunk);\n\n const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;\n return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);\n}\n\n// accepts accessor index or accessor object\n// returns a `Uint8Array`\nexport function getTypedArrayForImageData(json, buffers, imageIndex) {\n const image = json.images[imageIndex];\n const bufferViewIndex = json.bufferViews[image.bufferView];\n return getTypedArrayForBufferView(json, buffers, bufferViewIndex);\n}\n\n/*\n// accepts accessor index or accessor object\n// returns a typed array with type that matches the types\nexport function getTypedArrayForAccessor(accessor) {\n accessor = this.getAccessor(accessor);\n const bufferView = this.getBufferView(accessor.bufferView);\n const buffer = this.getBuffer(bufferView.buffer);\n const arrayBuffer = buffer.data;\n\n // Create a new typed array as a view into the combined buffer\n const {ArrayType, length} = getAccessorArrayTypeAndLength(accessor, bufferView);\n const byteOffset = bufferView.byteOffset + accessor.byteOffset;\n return new ArrayType(arrayBuffer, byteOffset, length);\n}\n*/\n"],"file":"get-typed-array.js"}
1
+ {"version":3,"sources":["../../../../src/lib/gltf-utils/get-typed-array.ts"],"names":["getTypedArrayForBufferView","json","buffers","bufferViewIndex","bufferView","bufferViews","bufferIndex","buffer","binChunk","byteOffset","Uint8Array","arrayBuffer","byteLength","getTypedArrayForImageData","imageIndex","image","images"],"mappings":";;;;;;;;AACA;;AAIO,SAASA,0BAAT,CAAoCC,IAApC,EAA0CC,OAA1C,EAAmDC,eAAnD,EAAoE;AACzE,QAAMC,UAAU,GAAGH,IAAI,CAACI,WAAL,CAAiBF,eAAjB,CAAnB;AACA,sBAAOC,UAAP;AAGA,QAAME,WAAW,GAAGF,UAAU,CAACG,MAA/B;AACA,QAAMC,QAAQ,GAAGN,OAAO,CAACI,WAAD,CAAxB;AACA,sBAAOE,QAAP;AAEA,QAAMC,UAAU,GAAG,CAACL,UAAU,CAACK,UAAX,IAAyB,CAA1B,IAA+BD,QAAQ,CAACC,UAA3D;AACA,SAAO,IAAIC,UAAJ,CAAeF,QAAQ,CAACG,WAAxB,EAAqCF,UAArC,EAAiDL,UAAU,CAACQ,UAA5D,CAAP;AACD;;AAIM,SAASC,yBAAT,CAAmCZ,IAAnC,EAAyCC,OAAzC,EAAkDY,UAAlD,EAA8D;AACnE,QAAMC,KAAK,GAAGd,IAAI,CAACe,MAAL,CAAYF,UAAZ,CAAd;AACA,QAAMX,eAAe,GAAGF,IAAI,CAACI,WAAL,CAAiBU,KAAK,CAACX,UAAvB,CAAxB;AACA,SAAOJ,0BAA0B,CAACC,IAAD,EAAOC,OAAP,EAAgBC,eAAhB,CAAjC;AACD","sourcesContent":["// TODO - GLTFScenegraph should use these\nimport {assert} from '../utils/assert';\n\n// accepts buffer view index or buffer view object\n// returns a `Uint8Array`\nexport function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {\n const bufferView = json.bufferViews[bufferViewIndex];\n assert(bufferView);\n\n // Get hold of the arrayBuffer\n const bufferIndex = bufferView.buffer;\n const binChunk = buffers[bufferIndex];\n assert(binChunk);\n\n const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;\n return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);\n}\n\n// accepts accessor index or accessor object\n// returns a `Uint8Array`\nexport function getTypedArrayForImageData(json, buffers, imageIndex) {\n const image = json.images[imageIndex];\n const bufferViewIndex = json.bufferViews[image.bufferView];\n return getTypedArrayForBufferView(json, buffers, bufferViewIndex);\n}\n\n/*\n// accepts accessor index or accessor object\n// returns a typed array with type that matches the types\nexport function getTypedArrayForAccessor(accessor) {\n accessor = this.getAccessor(accessor);\n const bufferView = this.getBufferView(accessor.bufferView);\n const buffer = this.getBuffer(bufferView.buffer);\n const arrayBuffer = buffer.data;\n\n // Create a new typed array as a view into the combined buffer\n const {ArrayType, length} = getAccessorArrayTypeAndLength(accessor, bufferView);\n const byteOffset = bufferView.byteOffset + accessor.byteOffset;\n return new ArrayType(arrayBuffer, byteOffset, length);\n}\n*/\n"],"file":"get-typed-array.js"}
@@ -9,13 +9,13 @@ exports.getGLTFAccessor = getGLTFAccessor;
9
9
  var _gltfUtils = require("./gltf-utils");
10
10
 
11
11
  function getGLTFAccessors(attributes) {
12
- var accessors = {};
12
+ const accessors = {};
13
13
 
14
- for (var name in attributes) {
15
- var attribute = attributes[name];
14
+ for (const name in attributes) {
15
+ const attribute = attributes[name];
16
16
 
17
17
  if (name !== 'indices') {
18
- var glTFAccessor = getGLTFAccessor(attribute);
18
+ const glTFAccessor = getGLTFAccessor(attribute);
19
19
  accessors[name] = glTFAccessor;
20
20
  }
21
21
  }
@@ -24,16 +24,16 @@ function getGLTFAccessors(attributes) {
24
24
  }
25
25
 
26
26
  function getGLTFAccessor(attribute) {
27
- var _getAccessorData = getAccessorData(attribute),
28
- buffer = _getAccessorData.buffer,
29
- size = _getAccessorData.size,
30
- count = _getAccessorData.count;
31
-
32
- var glTFAccessor = {
27
+ const {
28
+ buffer,
29
+ size,
30
+ count
31
+ } = getAccessorData(attribute);
32
+ const glTFAccessor = {
33
33
  value: buffer,
34
- size: size,
34
+ size,
35
35
  byteOffset: 0,
36
- count: count,
36
+ count,
37
37
  type: (0, _gltfUtils.getAccessorTypeFromSize)(size),
38
38
  componentType: (0, _gltfUtils.getComponentTypeFromArray)(buffer)
39
39
  };
@@ -41,9 +41,9 @@ function getGLTFAccessor(attribute) {
41
41
  }
42
42
 
43
43
  function getAccessorData(attribute) {
44
- var buffer = attribute;
45
- var size = 1;
46
- var count = 0;
44
+ let buffer = attribute;
45
+ let size = 1;
46
+ let count = 0;
47
47
 
48
48
  if (attribute && attribute.value) {
49
49
  buffer = attribute.value;
@@ -59,15 +59,13 @@ function getAccessorData(attribute) {
59
59
  }
60
60
 
61
61
  return {
62
- buffer: buffer,
63
- size: size,
64
- count: count
62
+ buffer,
63
+ size,
64
+ count
65
65
  };
66
66
  }
67
67
 
68
- function toTypedArray(array, ArrayType) {
69
- var convertTypedArrays = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
70
-
68
+ function toTypedArray(array, ArrayType, convertTypedArrays = false) {
71
69
  if (!array) {
72
70
  return null;
73
71
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/gltf-utils/gltf-attribute-utils.ts"],"names":["getGLTFAccessors","attributes","accessors","name","attribute","glTFAccessor","getGLTFAccessor","getAccessorData","buffer","size","count","value","byteOffset","type","componentType","ArrayBuffer","isView","toTypedArray","Float32Array","length","array","ArrayType","convertTypedArrays","Array","isArray"],"mappings":";;;;;;;;AAGA;;AAKO,SAASA,gBAAT,CAA0BC,UAA1B,EAAqE;AAC1E,MAAMC,SAAS,GAAG,EAAlB;;AACA,OAAK,IAAMC,IAAX,IAAmBF,UAAnB,EAA+B;AAC7B,QAAMG,SAAS,GAAGH,UAAU,CAACE,IAAD,CAA5B;;AACA,QAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,UAAME,YAAY,GAAGC,eAAe,CAACF,SAAD,CAApC;AACAF,MAAAA,SAAS,CAACC,IAAD,CAAT,GAAkBE,YAAlB;AACD;AACF;;AACD,SAAOH,SAAP;AACD;;AAKM,SAASI,eAAT,CAAyBF,SAAzB,EAAoC;AACzC,yBAA8BG,eAAe,CAACH,SAAD,CAA7C;AAAA,MAAOI,MAAP,oBAAOA,MAAP;AAAA,MAAeC,IAAf,oBAAeA,IAAf;AAAA,MAAqBC,KAArB,oBAAqBA,KAArB;;AAEA,MAAML,YAA0B,GAAG;AAMjCM,IAAAA,KAAK,EAAEH,MAN0B;AAOjCC,IAAAA,IAAI,EAAJA,IAPiC;AASjCG,IAAAA,UAAU,EAAE,CATqB;AAUjCF,IAAAA,KAAK,EAALA,KAViC;AAWjCG,IAAAA,IAAI,EAAE,wCAAwBJ,IAAxB,CAX2B;AAYjCK,IAAAA,aAAa,EAAE,0CAA0BN,MAA1B;AAZkB,GAAnC;AAeA,SAAOH,YAAP;AACD;;AAMD,SAASE,eAAT,CAAyBH,SAAzB,EAAoC;AAClC,MAAII,MAAM,GAAGJ,SAAb;AACA,MAAIK,IAAI,GAAG,CAAX;AACA,MAAIC,KAAK,GAAG,CAAZ;;AAEA,MAAIN,SAAS,IAAIA,SAAS,CAACO,KAA3B,EAAkC;AAChCH,IAAAA,MAAM,GAAGJ,SAAS,CAACO,KAAnB;AACAF,IAAAA,IAAI,GAAGL,SAAS,CAACK,IAAV,IAAkB,CAAzB;AACD;;AAED,MAAID,MAAJ,EAAY;AACV,QAAI,CAACO,WAAW,CAACC,MAAZ,CAAmBR,MAAnB,CAAL,EAAiC;AAC/BA,MAAAA,MAAM,GAAGS,YAAY,CAACT,MAAD,EAASU,YAAT,CAArB;AACD;;AACDR,IAAAA,KAAK,GAAGF,MAAM,CAACW,MAAP,GAAgBV,IAAxB;AACD;;AAED,SAAO;AAACD,IAAAA,MAAM,EAANA,MAAD;AAASC,IAAAA,IAAI,EAAJA,IAAT;AAAeC,IAAAA,KAAK,EAALA;AAAf,GAAP;AACD;;AAGD,SAASO,YAAT,CAAsBG,KAAtB,EAA6BC,SAA7B,EAAoE;AAAA,MAA5BC,kBAA4B,uEAAP,KAAO;;AAClE,MAAI,CAACF,KAAL,EAAY;AACV,WAAO,IAAP;AACD;;AACD,MAAIG,KAAK,CAACC,OAAN,CAAcJ,KAAd,CAAJ,EAA0B;AACxB,WAAO,IAAIC,SAAJ,CAAcD,KAAd,CAAP;AACD;;AACD,MAAIE,kBAAkB,IAAI,EAAEF,KAAK,YAAYC,SAAnB,CAA1B,EAAyD;AACvD,WAAO,IAAIA,SAAJ,CAAcD,KAAd,CAAP;AACD;;AACD,SAAOA,KAAP;AACD","sourcesContent":["// import type {TypedArray} from '../types/loader-utils';\nimport type {GLTFAccessor} from '../types/gltf-types';\n// TODO - remove\nimport {getAccessorTypeFromSize, getComponentTypeFromArray} from './gltf-utils';\n\n// Returns a fresh attributes object with glTF-standardized attributes names\n// Attributes that cannot be identified will not be included\n// Removes `indices` if present, as it should be stored separately from the attributes\nexport function getGLTFAccessors(attributes): {[key: string]: GLTFAccessor} {\n const accessors = {};\n for (const name in attributes) {\n const attribute = attributes[name];\n if (name !== 'indices') {\n const glTFAccessor = getGLTFAccessor(attribute);\n accessors[name] = glTFAccessor;\n }\n }\n return accessors;\n}\n\n// Fix up a single accessor.\n// Input: typed array or a partial accessor object\n// Return: accessor object\nexport function getGLTFAccessor(attribute) {\n const {buffer, size, count} = getAccessorData(attribute);\n\n const glTFAccessor: GLTFAccessor = {\n // glTF Accessor values\n // TODO: Instead of a bufferView index we could have an actual buffer (typed array)\n // bufferView: null,\n // TODO: Deprecate `value` in favor of bufferView?\n // @ts-ignore\n value: buffer,\n size, // Decoded `type` (e.g. SCALAR)\n\n byteOffset: 0,\n count,\n type: getAccessorTypeFromSize(size),\n componentType: getComponentTypeFromArray(buffer)\n };\n\n return glTFAccessor;\n}\n\n// export function getGLTFAttribute(data, gltfAttributeName): GLTFAccessor {\n// return data.attributes[data.glTFAttributeMap[gltfAttributeName]];\n// }\n\nfunction getAccessorData(attribute) {\n let buffer = attribute;\n let size = 1;\n let count = 0;\n\n if (attribute && attribute.value) {\n buffer = attribute.value;\n size = attribute.size || 1;\n }\n\n if (buffer) {\n if (!ArrayBuffer.isView(buffer)) {\n buffer = toTypedArray(buffer, Float32Array);\n }\n count = buffer.length / size;\n }\n\n return {buffer, size, count};\n}\n\n// Convert non-typed arrays to arrays of specified format\nfunction toTypedArray(array, ArrayType, convertTypedArrays = false) {\n if (!array) {\n return null;\n }\n if (Array.isArray(array)) {\n return new ArrayType(array);\n }\n if (convertTypedArrays && !(array instanceof ArrayType)) {\n return new ArrayType(array);\n }\n return array;\n}\n"],"file":"gltf-attribute-utils.js"}
1
+ {"version":3,"sources":["../../../../src/lib/gltf-utils/gltf-attribute-utils.ts"],"names":["getGLTFAccessors","attributes","accessors","name","attribute","glTFAccessor","getGLTFAccessor","buffer","size","count","getAccessorData","value","byteOffset","type","componentType","ArrayBuffer","isView","toTypedArray","Float32Array","length","array","ArrayType","convertTypedArrays","Array","isArray"],"mappings":";;;;;;;;AAGA;;AAKO,SAASA,gBAAT,CAA0BC,UAA1B,EAAqE;AAC1E,QAAMC,SAAS,GAAG,EAAlB;;AACA,OAAK,MAAMC,IAAX,IAAmBF,UAAnB,EAA+B;AAC7B,UAAMG,SAAS,GAAGH,UAAU,CAACE,IAAD,CAA5B;;AACA,QAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,YAAME,YAAY,GAAGC,eAAe,CAACF,SAAD,CAApC;AACAF,MAAAA,SAAS,CAACC,IAAD,CAAT,GAAkBE,YAAlB;AACD;AACF;;AACD,SAAOH,SAAP;AACD;;AAKM,SAASI,eAAT,CAAyBF,SAAzB,EAAoC;AACzC,QAAM;AAACG,IAAAA,MAAD;AAASC,IAAAA,IAAT;AAAeC,IAAAA;AAAf,MAAwBC,eAAe,CAACN,SAAD,CAA7C;AAEA,QAAMC,YAA0B,GAAG;AAMjCM,IAAAA,KAAK,EAAEJ,MAN0B;AAOjCC,IAAAA,IAPiC;AASjCI,IAAAA,UAAU,EAAE,CATqB;AAUjCH,IAAAA,KAViC;AAWjCI,IAAAA,IAAI,EAAE,wCAAwBL,IAAxB,CAX2B;AAYjCM,IAAAA,aAAa,EAAE,0CAA0BP,MAA1B;AAZkB,GAAnC;AAeA,SAAOF,YAAP;AACD;;AAMD,SAASK,eAAT,CAAyBN,SAAzB,EAAoC;AAClC,MAAIG,MAAM,GAAGH,SAAb;AACA,MAAII,IAAI,GAAG,CAAX;AACA,MAAIC,KAAK,GAAG,CAAZ;;AAEA,MAAIL,SAAS,IAAIA,SAAS,CAACO,KAA3B,EAAkC;AAChCJ,IAAAA,MAAM,GAAGH,SAAS,CAACO,KAAnB;AACAH,IAAAA,IAAI,GAAGJ,SAAS,CAACI,IAAV,IAAkB,CAAzB;AACD;;AAED,MAAID,MAAJ,EAAY;AACV,QAAI,CAACQ,WAAW,CAACC,MAAZ,CAAmBT,MAAnB,CAAL,EAAiC;AAC/BA,MAAAA,MAAM,GAAGU,YAAY,CAACV,MAAD,EAASW,YAAT,CAArB;AACD;;AACDT,IAAAA,KAAK,GAAGF,MAAM,CAACY,MAAP,GAAgBX,IAAxB;AACD;;AAED,SAAO;AAACD,IAAAA,MAAD;AAASC,IAAAA,IAAT;AAAeC,IAAAA;AAAf,GAAP;AACD;;AAGD,SAASQ,YAAT,CAAsBG,KAAtB,EAA6BC,SAA7B,EAAwCC,kBAAkB,GAAG,KAA7D,EAAoE;AAClE,MAAI,CAACF,KAAL,EAAY;AACV,WAAO,IAAP;AACD;;AACD,MAAIG,KAAK,CAACC,OAAN,CAAcJ,KAAd,CAAJ,EAA0B;AACxB,WAAO,IAAIC,SAAJ,CAAcD,KAAd,CAAP;AACD;;AACD,MAAIE,kBAAkB,IAAI,EAAEF,KAAK,YAAYC,SAAnB,CAA1B,EAAyD;AACvD,WAAO,IAAIA,SAAJ,CAAcD,KAAd,CAAP;AACD;;AACD,SAAOA,KAAP;AACD","sourcesContent":["// import type {TypedArray} from '../types/loader-utils';\nimport type {GLTFAccessor} from '../types/gltf-types';\n// TODO - remove\nimport {getAccessorTypeFromSize, getComponentTypeFromArray} from './gltf-utils';\n\n// Returns a fresh attributes object with glTF-standardized attributes names\n// Attributes that cannot be identified will not be included\n// Removes `indices` if present, as it should be stored separately from the attributes\nexport function getGLTFAccessors(attributes): {[key: string]: GLTFAccessor} {\n const accessors = {};\n for (const name in attributes) {\n const attribute = attributes[name];\n if (name !== 'indices') {\n const glTFAccessor = getGLTFAccessor(attribute);\n accessors[name] = glTFAccessor;\n }\n }\n return accessors;\n}\n\n// Fix up a single accessor.\n// Input: typed array or a partial accessor object\n// Return: accessor object\nexport function getGLTFAccessor(attribute) {\n const {buffer, size, count} = getAccessorData(attribute);\n\n const glTFAccessor: GLTFAccessor = {\n // glTF Accessor values\n // TODO: Instead of a bufferView index we could have an actual buffer (typed array)\n // bufferView: null,\n // TODO: Deprecate `value` in favor of bufferView?\n // @ts-ignore\n value: buffer,\n size, // Decoded `type` (e.g. SCALAR)\n\n byteOffset: 0,\n count,\n type: getAccessorTypeFromSize(size),\n componentType: getComponentTypeFromArray(buffer)\n };\n\n return glTFAccessor;\n}\n\n// export function getGLTFAttribute(data, gltfAttributeName): GLTFAccessor {\n// return data.attributes[data.glTFAttributeMap[gltfAttributeName]];\n// }\n\nfunction getAccessorData(attribute) {\n let buffer = attribute;\n let size = 1;\n let count = 0;\n\n if (attribute && attribute.value) {\n buffer = attribute.value;\n size = attribute.size || 1;\n }\n\n if (buffer) {\n if (!ArrayBuffer.isView(buffer)) {\n buffer = toTypedArray(buffer, Float32Array);\n }\n count = buffer.length / size;\n }\n\n return {buffer, size, count};\n}\n\n// Convert non-typed arrays to arrays of specified format\nfunction toTypedArray(array, ArrayType, convertTypedArrays = false) {\n if (!array) {\n return null;\n }\n if (Array.isArray(array)) {\n return new ArrayType(array);\n }\n if (convertTypedArrays && !(array instanceof ArrayType)) {\n return new ArrayType(array);\n }\n return array;\n}\n"],"file":"gltf-attribute-utils.js"}