@loaders.gl/gltf 3.3.0-alpha.1 → 3.3.0-alpha.11

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