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

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,38 +1,23 @@
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.default = void 0;
9
-
10
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
12
  var _images = require("@loaders.gl/images");
19
-
20
13
  var _loaderUtils = require("@loaders.gl/loader-utils");
21
-
22
14
  var _assert = require("../utils/assert");
23
-
24
15
  var _gltfUtils = require("../gltf-utils/gltf-utils");
25
-
26
16
  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; } } }; }
27
-
28
17
  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); }
29
-
30
18
  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; }
31
-
32
- 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; }
33
-
34
- 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; }
35
-
19
+ 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; }
20
+ 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; }
36
21
  var DEFAULT_GLTF_JSON = {
37
22
  asset: {
38
23
  version: '2.0',
@@ -40,8 +25,8 @@ var DEFAULT_GLTF_JSON = {
40
25
  },
41
26
  buffers: []
42
27
  };
43
-
44
28
  var GLTFScenegraph = function () {
29
+
45
30
  function GLTFScenegraph(gltf) {
46
31
  (0, _classCallCheck2.default)(this, GLTFScenegraph);
47
32
  (0, _defineProperty2.default)(this, "gltf", void 0);
@@ -62,7 +47,9 @@ var GLTFScenegraph = function () {
62
47
 
63
48
  (0, _createClass2.default)(GLTFScenegraph, [{
64
49
  key: "json",
65
- get: function get() {
50
+ get:
51
+
52
+ function get() {
66
53
  return this.gltf.json;
67
54
  }
68
55
  }, {
@@ -140,9 +127,12 @@ var GLTFScenegraph = function () {
140
127
  value: function getAccessor(index) {
141
128
  return this.getObject('accessors', index);
142
129
  }
130
+
143
131
  }, {
144
132
  key: "getTexture",
145
- value: function getTexture(index) {
133
+ value:
134
+
135
+ function getTexture(index) {
146
136
  return this.getObject('textures', index);
147
137
  }
148
138
  }, {
@@ -171,43 +161,48 @@ var GLTFScenegraph = function () {
171
161
  if ((0, _typeof2.default)(index) === 'object') {
172
162
  return index;
173
163
  }
174
-
175
164
  var object = this.json[array] && this.json[array][index];
176
-
177
165
  if (!object) {
178
166
  throw new Error("glTF file error: Could not find ".concat(array, "[").concat(index, "]"));
179
167
  }
180
168
 
181
169
  return object;
182
170
  }
171
+
183
172
  }, {
184
173
  key: "getTypedArrayForBufferView",
185
- value: function getTypedArrayForBufferView(bufferView) {
174
+ value:
175
+ function getTypedArrayForBufferView(bufferView) {
186
176
  bufferView = this.getBufferView(bufferView);
187
177
  var bufferIndex = bufferView.buffer;
178
+
188
179
  var binChunk = this.gltf.buffers[bufferIndex];
189
180
  (0, _assert.assert)(binChunk);
181
+
190
182
  var byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;
191
183
  return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);
192
184
  }
185
+
193
186
  }, {
194
187
  key: "getTypedArrayForAccessor",
195
- value: function getTypedArrayForAccessor(accessor) {
188
+ value:
189
+ function getTypedArrayForAccessor(accessor) {
196
190
  accessor = this.getAccessor(accessor);
197
191
  var bufferView = this.getBufferView(accessor.bufferView);
198
192
  var buffer = this.getBuffer(bufferView.buffer);
199
193
  var arrayBuffer = buffer.data;
200
194
 
201
195
  var _getAccessorArrayType = (0, _gltfUtils.getAccessorArrayTypeAndLength)(accessor, bufferView),
202
- ArrayType = _getAccessorArrayType.ArrayType,
203
- length = _getAccessorArrayType.length;
204
-
196
+ ArrayType = _getAccessorArrayType.ArrayType,
197
+ length = _getAccessorArrayType.length;
205
198
  var byteOffset = bufferView.byteOffset + accessor.byteOffset;
206
199
  return new ArrayType(arrayBuffer, byteOffset, length);
207
200
  }
201
+
208
202
  }, {
209
203
  key: "getTypedArrayForImageData",
210
- value: function getTypedArrayForImageData(image) {
204
+ value:
205
+ function getTypedArrayForImageData(image) {
211
206
  image = this.getAccessor(image);
212
207
  var bufferView = this.getBufferView(image.bufferView);
213
208
  var buffer = this.getBuffer(bufferView.buffer);
@@ -215,15 +210,20 @@ var GLTFScenegraph = function () {
215
210
  var byteOffset = bufferView.byteOffset || 0;
216
211
  return new Uint8Array(arrayBuffer, byteOffset, bufferView.byteLength);
217
212
  }
213
+
218
214
  }, {
219
215
  key: "addApplicationData",
220
- value: function addApplicationData(key, data) {
216
+ value:
217
+
218
+ function addApplicationData(key, data) {
221
219
  this.json[key] = data;
222
220
  return this;
223
221
  }
222
+
224
223
  }, {
225
224
  key: "addExtraData",
226
- value: function addExtraData(key, data) {
225
+ value:
226
+ function addExtraData(key, data) {
227
227
  this.json.extras = this.json.extras || {};
228
228
  this.json.extras[key] = data;
229
229
  return this;
@@ -250,9 +250,11 @@ var GLTFScenegraph = function () {
250
250
  delete extensions[extensionName];
251
251
  return extension;
252
252
  }
253
+
253
254
  }, {
254
255
  key: "addExtension",
255
- value: function addExtension(extensionName) {
256
+ value:
257
+ function addExtension(extensionName) {
256
258
  var extensionData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
257
259
  (0, _assert.assert)(extensionData);
258
260
  this.json.extensions = this.json.extensions || {};
@@ -260,61 +262,69 @@ var GLTFScenegraph = function () {
260
262
  this.registerUsedExtension(extensionName);
261
263
  return extensionData;
262
264
  }
265
+
263
266
  }, {
264
267
  key: "addRequiredExtension",
265
- value: function addRequiredExtension(extensionName) {
268
+ value:
269
+ function addRequiredExtension(extensionName) {
266
270
  var extensionData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
267
271
  (0, _assert.assert)(extensionData);
268
272
  this.addExtension(extensionName, extensionData);
269
273
  this.registerRequiredExtension(extensionName);
270
274
  return extensionData;
271
275
  }
276
+
272
277
  }, {
273
278
  key: "registerUsedExtension",
274
- value: function registerUsedExtension(extensionName) {
279
+ value:
280
+ function registerUsedExtension(extensionName) {
275
281
  this.json.extensionsUsed = this.json.extensionsUsed || [];
276
-
277
282
  if (!this.json.extensionsUsed.find(function (ext) {
278
283
  return ext === extensionName;
279
284
  })) {
280
285
  this.json.extensionsUsed.push(extensionName);
281
286
  }
282
287
  }
288
+
283
289
  }, {
284
290
  key: "registerRequiredExtension",
285
- value: function registerRequiredExtension(extensionName) {
291
+ value:
292
+ function registerRequiredExtension(extensionName) {
286
293
  this.registerUsedExtension(extensionName);
287
294
  this.json.extensionsRequired = this.json.extensionsRequired || [];
288
-
289
295
  if (!this.json.extensionsRequired.find(function (ext) {
290
296
  return ext === extensionName;
291
297
  })) {
292
298
  this.json.extensionsRequired.push(extensionName);
293
299
  }
294
300
  }
301
+
295
302
  }, {
296
303
  key: "removeExtension",
297
- value: function removeExtension(extensionName) {
304
+ value:
305
+ function removeExtension(extensionName) {
298
306
  if (this.json.extensionsRequired) {
299
307
  this._removeStringFromArray(this.json.extensionsRequired, extensionName);
300
308
  }
301
-
302
309
  if (this.json.extensionsUsed) {
303
310
  this._removeStringFromArray(this.json.extensionsUsed, extensionName);
304
311
  }
305
-
306
312
  if (this.json.extensions) {
307
313
  delete this.json.extensions[extensionName];
308
314
  }
309
315
  }
316
+
310
317
  }, {
311
318
  key: "setDefaultScene",
312
- value: function setDefaultScene(sceneIndex) {
319
+ value:
320
+ function setDefaultScene(sceneIndex) {
313
321
  this.json.scene = sceneIndex;
314
322
  }
323
+
315
324
  }, {
316
325
  key: "addScene",
317
- value: function addScene(scene) {
326
+ value:
327
+ function addScene(scene) {
318
328
  var nodeIndices = scene.nodeIndices;
319
329
  this.json.scenes = this.json.scenes || [];
320
330
  this.json.scenes.push({
@@ -322,51 +332,47 @@ var GLTFScenegraph = function () {
322
332
  });
323
333
  return this.json.scenes.length - 1;
324
334
  }
335
+
325
336
  }, {
326
337
  key: "addNode",
327
- value: function addNode(node) {
338
+ value:
339
+ function addNode(node) {
328
340
  var meshIndex = node.meshIndex,
329
- matrix = node.matrix;
341
+ matrix = node.matrix;
330
342
  this.json.nodes = this.json.nodes || [];
331
343
  var nodeData = {
332
344
  mesh: meshIndex
333
345
  };
334
-
335
346
  if (matrix) {
336
347
  nodeData.matrix = matrix;
337
348
  }
338
-
339
349
  this.json.nodes.push(nodeData);
340
350
  return this.json.nodes.length - 1;
341
351
  }
352
+
342
353
  }, {
343
354
  key: "addMesh",
344
- value: function addMesh(mesh) {
355
+ value:
356
+ function addMesh(mesh) {
345
357
  var attributes = mesh.attributes,
346
- indices = mesh.indices,
347
- material = mesh.material,
348
- _mesh$mode = mesh.mode,
349
- mode = _mesh$mode === void 0 ? 4 : _mesh$mode;
350
-
358
+ indices = mesh.indices,
359
+ material = mesh.material,
360
+ _mesh$mode = mesh.mode,
361
+ mode = _mesh$mode === void 0 ? 4 : _mesh$mode;
351
362
  var accessors = this._addAttributes(attributes);
352
-
353
363
  var glTFMesh = {
354
364
  primitives: [{
355
365
  attributes: accessors,
356
366
  mode: mode
357
367
  }]
358
368
  };
359
-
360
369
  if (indices) {
361
370
  var indicesAccessor = this._addIndices(indices);
362
-
363
371
  glTFMesh.primitives[0].indices = indicesAccessor;
364
372
  }
365
-
366
373
  if (Number.isFinite(material)) {
367
374
  glTFMesh.primitives[0].material = material;
368
375
  }
369
-
370
376
  this.json.meshes = this.json.meshes || [];
371
377
  this.json.meshes.push(glTFMesh);
372
378
  return this.json.meshes.length - 1;
@@ -375,20 +381,22 @@ var GLTFScenegraph = function () {
375
381
  key: "addPointCloud",
376
382
  value: function addPointCloud(attributes) {
377
383
  var accessorIndices = this._addAttributes(attributes);
378
-
379
384
  var glTFMesh = {
380
385
  primitives: [{
381
386
  attributes: accessorIndices,
382
387
  mode: 0
383
388
  }]
384
389
  };
390
+
385
391
  this.json.meshes = this.json.meshes || [];
386
392
  this.json.meshes.push(glTFMesh);
387
393
  return this.json.meshes.length - 1;
388
394
  }
395
+
389
396
  }, {
390
397
  key: "addImage",
391
- value: function addImage(imageData, mimeTypeOpt) {
398
+ value:
399
+ function addImage(imageData, mimeTypeOpt) {
392
400
  var metadata = (0, _images.getBinaryImageMetadata)(imageData);
393
401
  var mimeType = mimeTypeOpt || (metadata === null || metadata === void 0 ? void 0 : metadata.mimeType);
394
402
  var bufferViewIndex = this.addBufferView(imageData);
@@ -400,11 +408,14 @@ var GLTFScenegraph = function () {
400
408
  this.json.images.push(glTFImage);
401
409
  return this.json.images.length - 1;
402
410
  }
411
+
403
412
  }, {
404
413
  key: "addBufferView",
405
- value: function addBufferView(buffer) {
414
+ value:
415
+ function addBufferView(buffer) {
406
416
  var byteLength = buffer.byteLength;
407
417
  (0, _assert.assert)(Number.isFinite(byteLength));
418
+
408
419
  this.sourceBuffers = this.sourceBuffers || [];
409
420
  this.sourceBuffers.push(buffer);
410
421
  var glTFBufferView = {
@@ -412,14 +423,18 @@ var GLTFScenegraph = function () {
412
423
  byteOffset: this.byteLength,
413
424
  byteLength: byteLength
414
425
  };
426
+
415
427
  this.byteLength += (0, _loaderUtils.padToNBytes)(byteLength, 4);
428
+
416
429
  this.json.bufferViews = this.json.bufferViews || [];
417
430
  this.json.bufferViews.push(glTFBufferView);
418
431
  return this.json.bufferViews.length - 1;
419
432
  }
433
+
420
434
  }, {
421
435
  key: "addAccessor",
422
- value: function addAccessor(bufferViewIndex, accessor) {
436
+ value:
437
+ function addAccessor(bufferViewIndex, accessor) {
423
438
  var glTFAccessor = {
424
439
  bufferView: bufferViewIndex,
425
440
  type: (0, _gltfUtils.getAccessorTypeFromSize)(accessor.size),
@@ -432,9 +447,11 @@ var GLTFScenegraph = function () {
432
447
  this.json.accessors.push(glTFAccessor);
433
448
  return this.json.accessors.length - 1;
434
449
  }
450
+
435
451
  }, {
436
452
  key: "addBinaryBuffer",
437
- value: function addBinaryBuffer(sourceBuffer) {
453
+ value:
454
+ function addBinaryBuffer(sourceBuffer) {
438
455
  var accessor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
439
456
  size: 3
440
457
  };
@@ -443,11 +460,9 @@ var GLTFScenegraph = function () {
443
460
  min: accessor.min,
444
461
  max: accessor.max
445
462
  };
446
-
447
463
  if (!minMax.min || !minMax.max) {
448
464
  minMax = this._getAccessorMinMax(sourceBuffer, accessor.size);
449
465
  }
450
-
451
466
  var accessorDefaults = {
452
467
  size: accessor.size,
453
468
  componentType: (0, _gltfUtils.getComponentTypeFromArray)(sourceBuffer),
@@ -457,9 +472,11 @@ var GLTFScenegraph = function () {
457
472
  };
458
473
  return this.addAccessor(bufferViewIndex, Object.assign(accessorDefaults, accessor));
459
474
  }
475
+
460
476
  }, {
461
477
  key: "addTexture",
462
- value: function addTexture(texture) {
478
+ value:
479
+ function addTexture(texture) {
463
480
  var imageIndex = texture.imageIndex;
464
481
  var glTFTexture = {
465
482
  source: imageIndex
@@ -468,38 +485,41 @@ var GLTFScenegraph = function () {
468
485
  this.json.textures.push(glTFTexture);
469
486
  return this.json.textures.length - 1;
470
487
  }
488
+
471
489
  }, {
472
490
  key: "addMaterial",
473
- value: function addMaterial(pbrMaterialInfo) {
491
+ value:
492
+ function addMaterial(pbrMaterialInfo) {
474
493
  this.json.materials = this.json.materials || [];
475
494
  this.json.materials.push(pbrMaterialInfo);
476
495
  return this.json.materials.length - 1;
477
496
  }
497
+
478
498
  }, {
479
499
  key: "createBinaryChunk",
480
- value: function createBinaryChunk() {
500
+ value:
501
+ function createBinaryChunk() {
481
502
  var _this$json, _this$json$buffers;
482
-
483
503
  this.gltf.buffers = [];
504
+
484
505
  var totalByteLength = this.byteLength;
485
506
  var arrayBuffer = new ArrayBuffer(totalByteLength);
486
507
  var targetArray = new Uint8Array(arrayBuffer);
487
- var dstByteOffset = 0;
488
508
 
509
+ var dstByteOffset = 0;
489
510
  var _iterator = _createForOfIteratorHelper(this.sourceBuffers || []),
490
- _step;
491
-
511
+ _step;
492
512
  try {
493
513
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
494
514
  var sourceBuffer = _step.value;
495
515
  dstByteOffset = (0, _loaderUtils.copyToArray)(sourceBuffer, targetArray, dstByteOffset);
496
516
  }
517
+
497
518
  } catch (err) {
498
519
  _iterator.e(err);
499
520
  } finally {
500
521
  _iterator.f();
501
522
  }
502
-
503
523
  if ((_this$json = this.json) !== null && _this$json !== void 0 && (_this$json$buffers = _this$json.buffers) !== null && _this$json$buffers !== void 0 && _this$json$buffers[0]) {
504
524
  this.json.buffers[0].byteLength = totalByteLength;
505
525
  } else {
@@ -509,16 +529,18 @@ var GLTFScenegraph = function () {
509
529
  }
510
530
 
511
531
  this.gltf.binary = arrayBuffer;
532
+
512
533
  this.sourceBuffers = [arrayBuffer];
513
534
  }
535
+
514
536
  }, {
515
537
  key: "_removeStringFromArray",
516
- value: function _removeStringFromArray(array, string) {
517
- var found = true;
538
+ value:
518
539
 
540
+ function _removeStringFromArray(array, string) {
541
+ var found = true;
519
542
  while (found) {
520
543
  var index = array.indexOf(string);
521
-
522
544
  if (index > -1) {
523
545
  array.splice(index, 1);
524
546
  } else {
@@ -526,74 +548,70 @@ var GLTFScenegraph = function () {
526
548
  }
527
549
  }
528
550
  }
551
+
529
552
  }, {
530
553
  key: "_addAttributes",
531
- value: function _addAttributes() {
554
+ value:
555
+ function _addAttributes() {
532
556
  var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
533
557
  var result = {};
534
-
535
558
  for (var attributeKey in attributes) {
536
559
  var attributeData = attributes[attributeKey];
537
-
538
560
  var attrName = this._getGltfAttributeName(attributeKey);
539
-
540
561
  var accessor = this.addBinaryBuffer(attributeData.value, attributeData);
541
562
  result[attrName] = accessor;
542
563
  }
543
-
544
564
  return result;
545
565
  }
566
+
546
567
  }, {
547
568
  key: "_addIndices",
548
- value: function _addIndices(indices) {
569
+ value:
570
+ function _addIndices(indices) {
549
571
  return this.addBinaryBuffer(indices, {
550
572
  size: 1
551
573
  });
552
574
  }
575
+
553
576
  }, {
554
577
  key: "_getGltfAttributeName",
555
- value: function _getGltfAttributeName(attributeName) {
578
+ value:
579
+ function _getGltfAttributeName(attributeName) {
556
580
  switch (attributeName.toLowerCase()) {
557
581
  case 'position':
558
582
  case 'positions':
559
583
  case 'vertices':
560
584
  return 'POSITION';
561
-
562
585
  case 'normal':
563
586
  case 'normals':
564
587
  return 'NORMAL';
565
-
566
588
  case 'color':
567
589
  case 'colors':
568
590
  return 'COLOR_0';
569
-
570
591
  case 'texcoord':
571
592
  case 'texcoords':
572
593
  return 'TEXCOORD_0';
573
-
574
594
  default:
575
595
  return attributeName;
576
596
  }
577
597
  }
598
+
578
599
  }, {
579
600
  key: "_getAccessorMinMax",
580
- value: function _getAccessorMinMax(buffer, size) {
601
+ value:
602
+ function _getAccessorMinMax(buffer, size) {
581
603
  var result = {
582
604
  min: null,
583
605
  max: null
584
606
  };
585
-
586
607
  if (buffer.length < size) {
587
608
  return result;
588
609
  }
589
-
590
610
  result.min = [];
591
611
  result.max = [];
592
612
  var initValues = buffer.subarray(0, size);
593
-
594
613
  var _iterator2 = _createForOfIteratorHelper(initValues),
595
- _step2;
596
-
614
+ _step2;
597
615
  try {
598
616
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
599
617
  var value = _step2.value;
@@ -605,19 +623,18 @@ var GLTFScenegraph = function () {
605
623
  } finally {
606
624
  _iterator2.f();
607
625
  }
608
-
609
626
  for (var index = size; index < buffer.length; index += size) {
610
627
  for (var componentIndex = 0; componentIndex < size; componentIndex++) {
611
- result.min[0 + componentIndex] = Math.min(result.min[0 + componentIndex], buffer[index + componentIndex]);
612
- result.max[0 + componentIndex] = Math.max(result.max[0 + componentIndex], buffer[index + componentIndex]);
628
+ result.min[0 + componentIndex] = Math.min(
629
+ result.min[0 + componentIndex], buffer[index + componentIndex]);
630
+ result.max[0 + componentIndex] = Math.max(
631
+ result.max[0 + componentIndex], buffer[index + componentIndex]);
613
632
  }
614
633
  }
615
-
616
634
  return result;
617
635
  }
618
636
  }]);
619
637
  return GLTFScenegraph;
620
638
  }();
621
-
622
639
  exports.default = GLTFScenegraph;
623
640
  //# sourceMappingURL=gltf-scenegraph.js.map