@loaders.gl/gltf 3.1.0-alpha.4 → 4.0.0-alpha.1

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 (178) hide show
  1. package/dist/{esm/bundle.js → bundle.js} +0 -0
  2. package/dist/bundle.js.map +1 -0
  3. package/dist/{esm/glb-loader.js → glb-loader.js} +0 -0
  4. package/dist/glb-loader.js.map +1 -0
  5. package/dist/{esm/glb-writer.js → glb-writer.js} +0 -0
  6. package/dist/glb-writer.js.map +1 -0
  7. package/dist/{esm/gltf-loader.js → gltf-loader.js} +0 -0
  8. package/dist/gltf-loader.js.map +1 -0
  9. package/dist/{esm/gltf-writer.js → gltf-writer.js} +0 -0
  10. package/dist/gltf-writer.js.map +1 -0
  11. package/dist/{esm/index.js → index.js} +0 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/{esm/lib → lib}/api/gltf-extensions.js +0 -0
  14. package/dist/lib/api/gltf-extensions.js.map +1 -0
  15. package/dist/{esm/lib → lib}/api/gltf-scenegraph.js +1 -1
  16. package/dist/lib/api/gltf-scenegraph.js.map +1 -0
  17. package/dist/{esm/lib → lib}/api/normalize-gltf-v1.js +3 -3
  18. package/dist/lib/api/normalize-gltf-v1.js.map +1 -0
  19. package/dist/{esm/lib → lib}/api/post-process-gltf.js +12 -12
  20. package/dist/lib/api/post-process-gltf.js.map +1 -0
  21. package/dist/{esm/lib → lib}/encoders/encode-glb.js +0 -0
  22. package/dist/lib/encoders/encode-glb.js.map +1 -0
  23. package/dist/{esm/lib → lib}/encoders/encode-gltf.js +0 -0
  24. package/dist/lib/encoders/encode-gltf.js.map +1 -0
  25. package/dist/{esm/lib → lib}/extensions/EXT_meshopt_compression.js +1 -1
  26. package/dist/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  27. package/dist/{esm/lib → lib}/extensions/EXT_texture_webp.js +1 -1
  28. package/dist/lib/extensions/EXT_texture_webp.js.map +1 -0
  29. package/dist/{esm/lib → lib}/extensions/KHR_binary_gltf.js +0 -0
  30. package/dist/lib/extensions/KHR_binary_gltf.js.map +1 -0
  31. package/dist/{esm/lib → lib}/extensions/KHR_draco_mesh_compression.js +0 -0
  32. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  33. package/dist/{esm/lib → lib}/extensions/KHR_texture_basisu.js +0 -0
  34. package/dist/lib/extensions/KHR_texture_basisu.js.map +1 -0
  35. package/dist/{esm/lib → lib}/extensions/deprecated/KHR_lights_punctual.js +0 -0
  36. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  37. package/dist/{esm/lib → lib}/extensions/deprecated/KHR_materials_unlit.js +0 -0
  38. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  39. package/dist/{esm/lib → lib}/extensions/deprecated/KHR_techniques_webgl.js +0 -0
  40. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  41. package/dist/{esm/lib → lib}/gltf-utils/get-typed-array.js +0 -0
  42. package/dist/lib/gltf-utils/get-typed-array.js.map +1 -0
  43. package/dist/{esm/lib → lib}/gltf-utils/gltf-attribute-utils.js +0 -0
  44. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  45. package/dist/{esm/lib → lib}/gltf-utils/gltf-constants.js +0 -0
  46. package/dist/lib/gltf-utils/gltf-constants.js.map +1 -0
  47. package/dist/{esm/lib → lib}/gltf-utils/gltf-utils.js +0 -0
  48. package/dist/lib/gltf-utils/gltf-utils.js.map +1 -0
  49. package/dist/{esm/lib → lib}/gltf-utils/resolve-url.js +1 -1
  50. package/dist/lib/gltf-utils/resolve-url.js.map +1 -0
  51. package/dist/{esm/lib → lib}/parsers/parse-glb.js +2 -6
  52. package/dist/lib/parsers/parse-glb.js.map +1 -0
  53. package/dist/{esm/lib → lib}/parsers/parse-gltf.js +19 -2
  54. package/dist/lib/parsers/parse-gltf.js.map +1 -0
  55. package/dist/{esm/lib → lib}/types/glb-types.js +0 -0
  56. package/dist/{es5/lib → lib}/types/glb-types.js.map +0 -0
  57. package/dist/{esm/lib → lib}/types/gltf-json-schema.js +0 -0
  58. package/dist/{es5/lib → lib}/types/gltf-json-schema.js.map +0 -0
  59. package/dist/{esm/lib → lib}/types/gltf-postprocessed-schema.js +0 -0
  60. package/dist/{es5/lib → lib}/types/gltf-postprocessed-schema.js.map +0 -0
  61. package/dist/{esm/lib → lib}/types/gltf-types.js +0 -0
  62. package/dist/{es5/lib → lib}/types/gltf-types.js.map +0 -0
  63. package/dist/{esm/lib → lib}/utils/assert.js +0 -0
  64. package/dist/lib/utils/assert.js.map +1 -0
  65. package/dist/lib/utils/version.js +2 -0
  66. package/dist/lib/utils/version.js.map +1 -0
  67. package/dist/{esm/meshopt → meshopt}/meshopt-decoder.js +1 -1
  68. package/dist/meshopt/meshopt-decoder.js.map +1 -0
  69. package/dist/{es5/meshopt → meshopt}/meshopt-encoder.ts.disabled +0 -0
  70. package/dist/{esm/webp → webp}/webp.js +1 -1
  71. package/dist/webp/webp.js.map +1 -0
  72. package/package.json +12 -9
  73. package/src/lib/parsers/parse-gltf.ts +17 -1
  74. package/dist/dist.min.js +0 -2
  75. package/dist/dist.min.js.map +0 -1
  76. package/dist/es5/bundle.js +0 -7
  77. package/dist/es5/bundle.js.map +0 -1
  78. package/dist/es5/glb-loader.js +0 -70
  79. package/dist/es5/glb-loader.js.map +0 -1
  80. package/dist/es5/glb-writer.js +0 -41
  81. package/dist/es5/glb-writer.js.map +0 -1
  82. package/dist/es5/gltf-loader.js +0 -97
  83. package/dist/es5/gltf-loader.js.map +0 -1
  84. package/dist/es5/gltf-writer.js +0 -40
  85. package/dist/es5/gltf-writer.js.map +0 -1
  86. package/dist/es5/index.js +0 -56
  87. package/dist/es5/index.js.map +0 -1
  88. package/dist/es5/lib/api/gltf-extensions.js +0 -146
  89. package/dist/es5/lib/api/gltf-extensions.js.map +0 -1
  90. package/dist/es5/lib/api/gltf-scenegraph.js +0 -623
  91. package/dist/es5/lib/api/gltf-scenegraph.js.map +0 -1
  92. package/dist/es5/lib/api/normalize-gltf-v1.js +0 -389
  93. package/dist/es5/lib/api/normalize-gltf-v1.js.map +0 -1
  94. package/dist/es5/lib/api/post-process-gltf.js +0 -476
  95. package/dist/es5/lib/api/post-process-gltf.js.map +0 -1
  96. package/dist/es5/lib/encoders/encode-glb.js +0 -75
  97. package/dist/es5/lib/encoders/encode-glb.js.map +0 -1
  98. package/dist/es5/lib/encoders/encode-gltf.js +0 -26
  99. package/dist/es5/lib/encoders/encode-gltf.js.map +0 -1
  100. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +0 -137
  101. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  102. package/dist/es5/lib/extensions/EXT_texture_webp.js +0 -60
  103. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +0 -1
  104. package/dist/es5/lib/extensions/KHR_binary_gltf.js +0 -53
  105. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +0 -1
  106. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +0 -331
  107. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  108. package/dist/es5/lib/extensions/KHR_texture_basisu.js +0 -49
  109. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +0 -1
  110. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -129
  111. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  112. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +0 -97
  113. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  114. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +0 -139
  115. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  116. package/dist/es5/lib/gltf-utils/get-typed-array.js +0 -26
  117. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +0 -1
  118. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +0 -85
  119. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  120. package/dist/es5/lib/gltf-utils/gltf-constants.js +0 -48
  121. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +0 -1
  122. package/dist/es5/lib/gltf-utils/gltf-utils.js +0 -69
  123. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +0 -1
  124. package/dist/es5/lib/gltf-utils/resolve-url.js +0 -23
  125. package/dist/es5/lib/gltf-utils/resolve-url.js.map +0 -1
  126. package/dist/es5/lib/parsers/parse-glb.js +0 -142
  127. package/dist/es5/lib/parsers/parse-glb.js.map +0 -1
  128. package/dist/es5/lib/parsers/parse-gltf.js +0 -335
  129. package/dist/es5/lib/parsers/parse-gltf.js.map +0 -1
  130. package/dist/es5/lib/types/glb-types.js +0 -2
  131. package/dist/es5/lib/types/gltf-json-schema.js +0 -2
  132. package/dist/es5/lib/types/gltf-postprocessed-schema.js +0 -2
  133. package/dist/es5/lib/types/gltf-types.js +0 -2
  134. package/dist/es5/lib/utils/assert.js +0 -13
  135. package/dist/es5/lib/utils/assert.js.map +0 -1
  136. package/dist/es5/lib/utils/version.js +0 -9
  137. package/dist/es5/lib/utils/version.js.map +0 -1
  138. package/dist/es5/meshopt/meshopt-decoder.js +0 -270
  139. package/dist/es5/meshopt/meshopt-decoder.js.map +0 -1
  140. package/dist/es5/webp/webp.js +0 -104
  141. package/dist/es5/webp/webp.js.map +0 -1
  142. package/dist/esm/bundle.js.map +0 -1
  143. package/dist/esm/glb-loader.js.map +0 -1
  144. package/dist/esm/glb-writer.js.map +0 -1
  145. package/dist/esm/gltf-loader.js.map +0 -1
  146. package/dist/esm/gltf-writer.js.map +0 -1
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/lib/api/gltf-extensions.js.map +0 -1
  149. package/dist/esm/lib/api/gltf-scenegraph.js.map +0 -1
  150. package/dist/esm/lib/api/normalize-gltf-v1.js.map +0 -1
  151. package/dist/esm/lib/api/post-process-gltf.js.map +0 -1
  152. package/dist/esm/lib/encoders/encode-glb.js.map +0 -1
  153. package/dist/esm/lib/encoders/encode-gltf.js.map +0 -1
  154. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  155. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +0 -1
  156. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +0 -1
  157. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  158. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +0 -1
  159. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  160. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  161. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  162. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +0 -1
  163. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  164. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +0 -1
  165. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +0 -1
  166. package/dist/esm/lib/gltf-utils/resolve-url.js.map +0 -1
  167. package/dist/esm/lib/parsers/parse-glb.js.map +0 -1
  168. package/dist/esm/lib/parsers/parse-gltf.js.map +0 -1
  169. package/dist/esm/lib/types/glb-types.js.map +0 -1
  170. package/dist/esm/lib/types/gltf-json-schema.js.map +0 -1
  171. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +0 -1
  172. package/dist/esm/lib/types/gltf-types.js.map +0 -1
  173. package/dist/esm/lib/utils/assert.js.map +0 -1
  174. package/dist/esm/lib/utils/version.js +0 -2
  175. package/dist/esm/lib/utils/version.js.map +0 -1
  176. package/dist/esm/meshopt/meshopt-decoder.js.map +0 -1
  177. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +0 -409
  178. package/dist/esm/webp/webp.js.map +0 -1
@@ -1,476 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.postProcessGLTF = postProcessGLTF;
9
-
10
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _assert = require("../utils/assert");
19
-
20
- var _gltfUtils = require("../gltf-utils/gltf-utils");
21
-
22
- var _DEFAULT_SAMPLER;
23
-
24
- 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; }
25
-
26
- 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; }
27
-
28
- var COMPONENTS = {
29
- SCALAR: 1,
30
- VEC2: 2,
31
- VEC3: 3,
32
- VEC4: 4,
33
- MAT2: 4,
34
- MAT3: 9,
35
- MAT4: 16
36
- };
37
- var BYTES = {
38
- 5120: 1,
39
- 5121: 1,
40
- 5122: 2,
41
- 5123: 2,
42
- 5125: 4,
43
- 5126: 4
44
- };
45
- var GL_SAMPLER = {
46
- TEXTURE_MAG_FILTER: 0x2800,
47
- TEXTURE_MIN_FILTER: 0x2801,
48
- TEXTURE_WRAP_S: 0x2802,
49
- TEXTURE_WRAP_T: 0x2803,
50
- REPEAT: 0x2901,
51
- LINEAR: 0x2601,
52
- NEAREST_MIPMAP_LINEAR: 0x2702
53
- };
54
- var SAMPLER_PARAMETER_GLTF_TO_GL = {
55
- magFilter: GL_SAMPLER.TEXTURE_MAG_FILTER,
56
- minFilter: GL_SAMPLER.TEXTURE_MIN_FILTER,
57
- wrapS: GL_SAMPLER.TEXTURE_WRAP_S,
58
- wrapT: GL_SAMPLER.TEXTURE_WRAP_T
59
- };
60
- var DEFAULT_SAMPLER = (_DEFAULT_SAMPLER = {}, (0, _defineProperty2.default)(_DEFAULT_SAMPLER, GL_SAMPLER.TEXTURE_MAG_FILTER, GL_SAMPLER.LINEAR), (0, _defineProperty2.default)(_DEFAULT_SAMPLER, GL_SAMPLER.TEXTURE_MIN_FILTER, GL_SAMPLER.NEAREST_MIPMAP_LINEAR), (0, _defineProperty2.default)(_DEFAULT_SAMPLER, GL_SAMPLER.TEXTURE_WRAP_S, GL_SAMPLER.REPEAT), (0, _defineProperty2.default)(_DEFAULT_SAMPLER, GL_SAMPLER.TEXTURE_WRAP_, GL_SAMPLER.REPEAT), _DEFAULT_SAMPLER);
61
-
62
- function getBytesFromComponentType(componentType) {
63
- return BYTES[componentType];
64
- }
65
-
66
- function getSizeFromAccessorType(type) {
67
- return COMPONENTS[type];
68
- }
69
-
70
- var GLTFPostProcessor = function () {
71
- function GLTFPostProcessor() {
72
- (0, _classCallCheck2.default)(this, GLTFPostProcessor);
73
- }
74
-
75
- (0, _createClass2.default)(GLTFPostProcessor, [{
76
- key: "postProcess",
77
- value: function postProcess(gltf) {
78
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
79
- var json = gltf.json,
80
- _gltf$buffers = gltf.buffers,
81
- buffers = _gltf$buffers === void 0 ? [] : _gltf$buffers,
82
- _gltf$images = gltf.images,
83
- images = _gltf$images === void 0 ? [] : _gltf$images,
84
- _gltf$baseUri = gltf.baseUri,
85
- baseUri = _gltf$baseUri === void 0 ? '' : _gltf$baseUri;
86
- (0, _assert.assert)(json);
87
- this.baseUri = baseUri;
88
- this.json = json;
89
- this.buffers = buffers;
90
- this.images = images;
91
-
92
- this._resolveTree(this.json, options);
93
-
94
- return this.json;
95
- }
96
- }, {
97
- key: "_resolveTree",
98
- value: function _resolveTree(json) {
99
- var _this = this;
100
-
101
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
102
-
103
- if (json.bufferViews) {
104
- json.bufferViews = json.bufferViews.map(function (bufView, i) {
105
- return _this._resolveBufferView(bufView, i);
106
- });
107
- }
108
-
109
- if (json.images) {
110
- json.images = json.images.map(function (image, i) {
111
- return _this._resolveImage(image, i);
112
- });
113
- }
114
-
115
- if (json.samplers) {
116
- json.samplers = json.samplers.map(function (sampler, i) {
117
- return _this._resolveSampler(sampler, i);
118
- });
119
- }
120
-
121
- if (json.textures) {
122
- json.textures = json.textures.map(function (texture, i) {
123
- return _this._resolveTexture(texture, i);
124
- });
125
- }
126
-
127
- if (json.accessors) {
128
- json.accessors = json.accessors.map(function (accessor, i) {
129
- return _this._resolveAccessor(accessor, i);
130
- });
131
- }
132
-
133
- if (json.materials) {
134
- json.materials = json.materials.map(function (material, i) {
135
- return _this._resolveMaterial(material, i);
136
- });
137
- }
138
-
139
- if (json.meshes) {
140
- json.meshes = json.meshes.map(function (mesh, i) {
141
- return _this._resolveMesh(mesh, i);
142
- });
143
- }
144
-
145
- if (json.nodes) {
146
- json.nodes = json.nodes.map(function (node, i) {
147
- return _this._resolveNode(node, i);
148
- });
149
- }
150
-
151
- if (json.skins) {
152
- json.skins = json.skins.map(function (skin, i) {
153
- return _this._resolveSkin(skin, i);
154
- });
155
- }
156
-
157
- if (json.scenes) {
158
- json.scenes = json.scenes.map(function (scene, i) {
159
- return _this._resolveScene(scene, i);
160
- });
161
- }
162
-
163
- if (json.scene !== undefined) {
164
- json.scene = json.scenes[this.json.scene];
165
- }
166
- }
167
- }, {
168
- key: "getScene",
169
- value: function getScene(index) {
170
- return this._get('scenes', index);
171
- }
172
- }, {
173
- key: "getNode",
174
- value: function getNode(index) {
175
- return this._get('nodes', index);
176
- }
177
- }, {
178
- key: "getSkin",
179
- value: function getSkin(index) {
180
- return this._get('skins', index);
181
- }
182
- }, {
183
- key: "getMesh",
184
- value: function getMesh(index) {
185
- return this._get('meshes', index);
186
- }
187
- }, {
188
- key: "getMaterial",
189
- value: function getMaterial(index) {
190
- return this._get('materials', index);
191
- }
192
- }, {
193
- key: "getAccessor",
194
- value: function getAccessor(index) {
195
- return this._get('accessors', index);
196
- }
197
- }, {
198
- key: "getCamera",
199
- value: function getCamera(index) {
200
- return null;
201
- }
202
- }, {
203
- key: "getTexture",
204
- value: function getTexture(index) {
205
- return this._get('textures', index);
206
- }
207
- }, {
208
- key: "getSampler",
209
- value: function getSampler(index) {
210
- return this._get('samplers', index);
211
- }
212
- }, {
213
- key: "getImage",
214
- value: function getImage(index) {
215
- return this._get('images', index);
216
- }
217
- }, {
218
- key: "getBufferView",
219
- value: function getBufferView(index) {
220
- return this._get('bufferViews', index);
221
- }
222
- }, {
223
- key: "getBuffer",
224
- value: function getBuffer(index) {
225
- return this._get('buffers', index);
226
- }
227
- }, {
228
- key: "_get",
229
- value: function _get(array, index) {
230
- if ((0, _typeof2.default)(index) === 'object') {
231
- return index;
232
- }
233
-
234
- var object = this.json[array] && this.json[array][index];
235
-
236
- if (!object) {
237
- console.warn("glTF file error: Could not find ".concat(array, "[").concat(index, "]"));
238
- }
239
-
240
- return object;
241
- }
242
- }, {
243
- key: "_resolveScene",
244
- value: function _resolveScene(scene, index) {
245
- var _this2 = this;
246
-
247
- scene.id = scene.id || "scene-".concat(index);
248
- scene.nodes = (scene.nodes || []).map(function (node) {
249
- return _this2.getNode(node);
250
- });
251
- return scene;
252
- }
253
- }, {
254
- key: "_resolveNode",
255
- value: function _resolveNode(node, index) {
256
- var _this3 = this;
257
-
258
- node.id = node.id || "node-".concat(index);
259
-
260
- if (node.children) {
261
- node.children = node.children.map(function (child) {
262
- return _this3.getNode(child);
263
- });
264
- }
265
-
266
- if (node.mesh !== undefined) {
267
- node.mesh = this.getMesh(node.mesh);
268
- } else if (node.meshes !== undefined && node.meshes.length) {
269
- node.mesh = node.meshes.reduce(function (accum, meshIndex) {
270
- var mesh = _this3.getMesh(meshIndex);
271
-
272
- accum.id = mesh.id;
273
- accum.primitives = accum.primitives.concat(mesh.primitives);
274
- return accum;
275
- }, {
276
- primitives: []
277
- });
278
- }
279
-
280
- if (node.camera !== undefined) {
281
- node.camera = this.getCamera(node.camera);
282
- }
283
-
284
- if (node.skin !== undefined) {
285
- node.skin = this.getSkin(node.skin);
286
- }
287
-
288
- return node;
289
- }
290
- }, {
291
- key: "_resolveSkin",
292
- value: function _resolveSkin(skin, index) {
293
- skin.id = skin.id || "skin-".concat(index);
294
- skin.inverseBindMatrices = this.getAccessor(skin.inverseBindMatrices);
295
- return skin;
296
- }
297
- }, {
298
- key: "_resolveMesh",
299
- value: function _resolveMesh(mesh, index) {
300
- var _this4 = this;
301
-
302
- mesh.id = mesh.id || "mesh-".concat(index);
303
-
304
- if (mesh.primitives) {
305
- mesh.primitives = mesh.primitives.map(function (primitive) {
306
- primitive = _objectSpread({}, primitive);
307
- var attributes = primitive.attributes;
308
- primitive.attributes = {};
309
-
310
- for (var attribute in attributes) {
311
- primitive.attributes[attribute] = _this4.getAccessor(attributes[attribute]);
312
- }
313
-
314
- if (primitive.indices !== undefined) {
315
- primitive.indices = _this4.getAccessor(primitive.indices);
316
- }
317
-
318
- if (primitive.material !== undefined) {
319
- primitive.material = _this4.getMaterial(primitive.material);
320
- }
321
-
322
- return primitive;
323
- });
324
- }
325
-
326
- return mesh;
327
- }
328
- }, {
329
- key: "_resolveMaterial",
330
- value: function _resolveMaterial(material, index) {
331
- material.id = material.id || "material-".concat(index);
332
-
333
- if (material.normalTexture) {
334
- material.normalTexture = _objectSpread({}, material.normalTexture);
335
- material.normalTexture.texture = this.getTexture(material.normalTexture.index);
336
- }
337
-
338
- if (material.occlusionTexture) {
339
- material.occlustionTexture = _objectSpread({}, material.occlustionTexture);
340
- material.occlusionTexture.texture = this.getTexture(material.occlusionTexture.index);
341
- }
342
-
343
- if (material.emissiveTexture) {
344
- material.emmisiveTexture = _objectSpread({}, material.emmisiveTexture);
345
- material.emissiveTexture.texture = this.getTexture(material.emissiveTexture.index);
346
- }
347
-
348
- if (!material.emissiveFactor) {
349
- material.emissiveFactor = material.emmisiveTexture ? [1, 1, 1] : [0, 0, 0];
350
- }
351
-
352
- if (material.pbrMetallicRoughness) {
353
- material.pbrMetallicRoughness = _objectSpread({}, material.pbrMetallicRoughness);
354
- var mr = material.pbrMetallicRoughness;
355
-
356
- if (mr.baseColorTexture) {
357
- mr.baseColorTexture = _objectSpread({}, mr.baseColorTexture);
358
- mr.baseColorTexture.texture = this.getTexture(mr.baseColorTexture.index);
359
- }
360
-
361
- if (mr.metallicRoughnessTexture) {
362
- mr.metallicRoughnessTexture = _objectSpread({}, mr.metallicRoughnessTexture);
363
- mr.metallicRoughnessTexture.texture = this.getTexture(mr.metallicRoughnessTexture.index);
364
- }
365
- }
366
-
367
- return material;
368
- }
369
- }, {
370
- key: "_resolveAccessor",
371
- value: function _resolveAccessor(accessor, index) {
372
- accessor.id = accessor.id || "accessor-".concat(index);
373
-
374
- if (accessor.bufferView !== undefined) {
375
- accessor.bufferView = this.getBufferView(accessor.bufferView);
376
- }
377
-
378
- accessor.bytesPerComponent = getBytesFromComponentType(accessor.componentType);
379
- accessor.components = getSizeFromAccessorType(accessor.type);
380
- accessor.bytesPerElement = accessor.bytesPerComponent * accessor.components;
381
-
382
- if (accessor.bufferView) {
383
- var buffer = accessor.bufferView.buffer;
384
-
385
- var _getAccessorArrayType = (0, _gltfUtils.getAccessorArrayTypeAndLength)(accessor, accessor.bufferView),
386
- ArrayType = _getAccessorArrayType.ArrayType,
387
- byteLength = _getAccessorArrayType.byteLength;
388
-
389
- var byteOffset = (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;
390
- var cutBufffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);
391
- accessor.value = new ArrayType(cutBufffer);
392
- }
393
-
394
- return accessor;
395
- }
396
- }, {
397
- key: "_resolveTexture",
398
- value: function _resolveTexture(texture, index) {
399
- texture.id = texture.id || "texture-".concat(index);
400
- texture.sampler = 'sampler' in texture ? this.getSampler(texture.sampler) : DEFAULT_SAMPLER;
401
- texture.source = this.getImage(texture.source);
402
- return texture;
403
- }
404
- }, {
405
- key: "_resolveSampler",
406
- value: function _resolveSampler(sampler, index) {
407
- sampler.id = sampler.id || "sampler-".concat(index);
408
- sampler.parameters = {};
409
-
410
- for (var key in sampler) {
411
- var glEnum = this._enumSamplerParameter(key);
412
-
413
- if (glEnum !== undefined) {
414
- sampler.parameters[glEnum] = sampler[key];
415
- }
416
- }
417
-
418
- return sampler;
419
- }
420
- }, {
421
- key: "_enumSamplerParameter",
422
- value: function _enumSamplerParameter(key) {
423
- return SAMPLER_PARAMETER_GLTF_TO_GL[key];
424
- }
425
- }, {
426
- key: "_resolveImage",
427
- value: function _resolveImage(image, index) {
428
- image.id = image.id || "image-".concat(index);
429
-
430
- if (image.bufferView !== undefined) {
431
- image.bufferView = this.getBufferView(image.bufferView);
432
- }
433
-
434
- var preloadedImage = this.images[index];
435
-
436
- if (preloadedImage) {
437
- image.image = preloadedImage;
438
- }
439
-
440
- return image;
441
- }
442
- }, {
443
- key: "_resolveBufferView",
444
- value: function _resolveBufferView(bufferView, index) {
445
- bufferView.id = bufferView.id || "bufferView-".concat(index);
446
- var bufferIndex = bufferView.buffer;
447
- bufferView.buffer = this.buffers[bufferIndex];
448
- var arrayBuffer = this.buffers[bufferIndex].arrayBuffer;
449
- var byteOffset = this.buffers[bufferIndex].byteOffset || 0;
450
-
451
- if ('byteOffset' in bufferView) {
452
- byteOffset += bufferView.byteOffset;
453
- }
454
-
455
- bufferView.data = new Uint8Array(arrayBuffer, byteOffset, bufferView.byteLength);
456
- return bufferView;
457
- }
458
- }, {
459
- key: "_resolveCamera",
460
- value: function _resolveCamera(camera, index) {
461
- camera.id = camera.id || "camera-".concat(index);
462
-
463
- if (camera.perspective) {}
464
-
465
- if (camera.orthographic) {}
466
-
467
- return camera;
468
- }
469
- }]);
470
- return GLTFPostProcessor;
471
- }();
472
-
473
- function postProcessGLTF(gltf, options) {
474
- return new GLTFPostProcessor().postProcess(gltf, options);
475
- }
476
- //# sourceMappingURL=post-process-gltf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/api/post-process-gltf.js"],"names":["COMPONENTS","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","BYTES","GL_SAMPLER","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","REPEAT","LINEAR","NEAREST_MIPMAP_LINEAR","SAMPLER_PARAMETER_GLTF_TO_GL","magFilter","minFilter","wrapS","wrapT","DEFAULT_SAMPLER","TEXTURE_WRAP_","getBytesFromComponentType","componentType","getSizeFromAccessorType","type","GLTFPostProcessor","gltf","options","json","buffers","images","baseUri","_resolveTree","bufferViews","map","bufView","i","_resolveBufferView","image","_resolveImage","samplers","sampler","_resolveSampler","textures","texture","_resolveTexture","accessors","accessor","_resolveAccessor","materials","material","_resolveMaterial","meshes","mesh","_resolveMesh","nodes","node","_resolveNode","skins","skin","_resolveSkin","scenes","scene","_resolveScene","undefined","index","_get","array","object","console","warn","id","getNode","children","child","getMesh","length","reduce","accum","meshIndex","primitives","concat","camera","getCamera","getSkin","inverseBindMatrices","getAccessor","primitive","attributes","attribute","indices","getMaterial","normalTexture","getTexture","occlusionTexture","occlustionTexture","emissiveTexture","emmisiveTexture","emissiveFactor","pbrMetallicRoughness","mr","baseColorTexture","metallicRoughnessTexture","bufferView","getBufferView","bytesPerComponent","components","bytesPerElement","buffer","ArrayType","byteLength","byteOffset","cutBufffer","arrayBuffer","slice","value","getSampler","source","getImage","parameters","key","glEnum","_enumSamplerParameter","preloadedImage","bufferIndex","data","Uint8Array","perspective","orthographic","postProcessGLTF","postProcess"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;AAYA,IAAMA,UAAU,GAAG;AACjBC,EAAAA,MAAM,EAAE,CADS;AAEjBC,EAAAA,IAAI,EAAE,CAFW;AAGjBC,EAAAA,IAAI,EAAE,CAHW;AAIjBC,EAAAA,IAAI,EAAE,CAJW;AAKjBC,EAAAA,IAAI,EAAE,CALW;AAMjBC,EAAAA,IAAI,EAAE,CANW;AAOjBC,EAAAA,IAAI,EAAE;AAPW,CAAnB;AAUA,IAAMC,KAAK,GAAG;AACZ,QAAM,CADM;AAEZ,QAAM,CAFM;AAGZ,QAAM,CAHM;AAIZ,QAAM,CAJM;AAKZ,QAAM,CALM;AAMZ,QAAM;AANM,CAAd;AASA,IAAMC,UAAU,GAAG;AAEjBC,EAAAA,kBAAkB,EAAE,MAFH;AAGjBC,EAAAA,kBAAkB,EAAE,MAHH;AAIjBC,EAAAA,cAAc,EAAE,MAJC;AAKjBC,EAAAA,cAAc,EAAE,MALC;AAQjBC,EAAAA,MAAM,EAAE,MARS;AASjBC,EAAAA,MAAM,EAAE,MATS;AAUjBC,EAAAA,qBAAqB,EAAE;AAVN,CAAnB;AAaA,IAAMC,4BAA4B,GAAG;AACnCC,EAAAA,SAAS,EAAET,UAAU,CAACC,kBADa;AAEnCS,EAAAA,SAAS,EAAEV,UAAU,CAACE,kBAFa;AAGnCS,EAAAA,KAAK,EAAEX,UAAU,CAACG,cAHiB;AAInCS,EAAAA,KAAK,EAAEZ,UAAU,CAACI;AAJiB,CAArC;AASA,IAAMS,eAAe,2EAClBb,UAAU,CAACC,kBADO,EACcD,UAAU,CAACM,MADzB,mDAElBN,UAAU,CAACE,kBAFO,EAEcF,UAAU,CAACO,qBAFzB,mDAGlBP,UAAU,CAACG,cAHO,EAGUH,UAAU,CAACK,MAHrB,mDAIlBL,UAAU,CAACc,aAJO,EAISd,UAAU,CAACK,MAJpB,oBAArB;;AAOA,SAASU,yBAAT,CAAmCC,aAAnC,EAAkD;AAChD,SAAOjB,KAAK,CAACiB,aAAD,CAAZ;AACD;;AAED,SAASC,uBAAT,CAAiCC,IAAjC,EAAuC;AACrC,SAAO3B,UAAU,CAAC2B,IAAD,CAAjB;AACD;;IAEKC,iB;;;;;;;WACJ,qBAAYC,IAAZ,EAAgC;AAAA,UAAdC,OAAc,uEAAJ,EAAI;AAC9B,UAAOC,IAAP,GAAwDF,IAAxD,CAAOE,IAAP;AAAA,0BAAwDF,IAAxD,CAAaG,OAAb;AAAA,UAAaA,OAAb,8BAAuB,EAAvB;AAAA,yBAAwDH,IAAxD,CAA2BI,MAA3B;AAAA,UAA2BA,MAA3B,6BAAoC,EAApC;AAAA,0BAAwDJ,IAAxD,CAAwCK,OAAxC;AAAA,UAAwCA,OAAxC,8BAAkD,EAAlD;AACA,0BAAOH,IAAP;AAEA,WAAKG,OAAL,GAAeA,OAAf;AACA,WAAKH,IAAL,GAAYA,IAAZ;AACA,WAAKC,OAAL,GAAeA,OAAf;AACA,WAAKC,MAAL,GAAcA,MAAd;;AAEA,WAAKE,YAAL,CAAkB,KAAKJ,IAAvB,EAA6BD,OAA7B;;AAEA,aAAO,KAAKC,IAAZ;AACD;;;WAKD,sBAAaA,IAAb,EAAiC;AAAA;;AAAA,UAAdD,OAAc,uEAAJ,EAAI;;AAC/B,UAAIC,IAAI,CAACK,WAAT,EAAsB;AACpBL,QAAAA,IAAI,CAACK,WAAL,GAAmBL,IAAI,CAACK,WAAL,CAAiBC,GAAjB,CAAqB,UAACC,OAAD,EAAUC,CAAV;AAAA,iBAAgB,KAAI,CAACC,kBAAL,CAAwBF,OAAxB,EAAiCC,CAAjC,CAAhB;AAAA,SAArB,CAAnB;AACD;;AACD,UAAIR,IAAI,CAACE,MAAT,EAAiB;AACfF,QAAAA,IAAI,CAACE,MAAL,GAAcF,IAAI,CAACE,MAAL,CAAYI,GAAZ,CAAgB,UAACI,KAAD,EAAQF,CAAR;AAAA,iBAAc,KAAI,CAACG,aAAL,CAAmBD,KAAnB,EAA0BF,CAA1B,CAAd;AAAA,SAAhB,CAAd;AACD;;AACD,UAAIR,IAAI,CAACY,QAAT,EAAmB;AACjBZ,QAAAA,IAAI,CAACY,QAAL,GAAgBZ,IAAI,CAACY,QAAL,CAAcN,GAAd,CAAkB,UAACO,OAAD,EAAUL,CAAV;AAAA,iBAAgB,KAAI,CAACM,eAAL,CAAqBD,OAArB,EAA8BL,CAA9B,CAAhB;AAAA,SAAlB,CAAhB;AACD;;AACD,UAAIR,IAAI,CAACe,QAAT,EAAmB;AACjBf,QAAAA,IAAI,CAACe,QAAL,GAAgBf,IAAI,CAACe,QAAL,CAAcT,GAAd,CAAkB,UAACU,OAAD,EAAUR,CAAV;AAAA,iBAAgB,KAAI,CAACS,eAAL,CAAqBD,OAArB,EAA8BR,CAA9B,CAAhB;AAAA,SAAlB,CAAhB;AACD;;AACD,UAAIR,IAAI,CAACkB,SAAT,EAAoB;AAClBlB,QAAAA,IAAI,CAACkB,SAAL,GAAiBlB,IAAI,CAACkB,SAAL,CAAeZ,GAAf,CAAmB,UAACa,QAAD,EAAWX,CAAX;AAAA,iBAAiB,KAAI,CAACY,gBAAL,CAAsBD,QAAtB,EAAgCX,CAAhC,CAAjB;AAAA,SAAnB,CAAjB;AACD;;AACD,UAAIR,IAAI,CAACqB,SAAT,EAAoB;AAClBrB,QAAAA,IAAI,CAACqB,SAAL,GAAiBrB,IAAI,CAACqB,SAAL,CAAef,GAAf,CAAmB,UAACgB,QAAD,EAAWd,CAAX;AAAA,iBAAiB,KAAI,CAACe,gBAAL,CAAsBD,QAAtB,EAAgCd,CAAhC,CAAjB;AAAA,SAAnB,CAAjB;AACD;;AACD,UAAIR,IAAI,CAACwB,MAAT,EAAiB;AACfxB,QAAAA,IAAI,CAACwB,MAAL,GAAcxB,IAAI,CAACwB,MAAL,CAAYlB,GAAZ,CAAgB,UAACmB,IAAD,EAAOjB,CAAP;AAAA,iBAAa,KAAI,CAACkB,YAAL,CAAkBD,IAAlB,EAAwBjB,CAAxB,CAAb;AAAA,SAAhB,CAAd;AACD;;AACD,UAAIR,IAAI,CAAC2B,KAAT,EAAgB;AACd3B,QAAAA,IAAI,CAAC2B,KAAL,GAAa3B,IAAI,CAAC2B,KAAL,CAAWrB,GAAX,CAAe,UAACsB,IAAD,EAAOpB,CAAP;AAAA,iBAAa,KAAI,CAACqB,YAAL,CAAkBD,IAAlB,EAAwBpB,CAAxB,CAAb;AAAA,SAAf,CAAb;AACD;;AACD,UAAIR,IAAI,CAAC8B,KAAT,EAAgB;AACd9B,QAAAA,IAAI,CAAC8B,KAAL,GAAa9B,IAAI,CAAC8B,KAAL,CAAWxB,GAAX,CAAe,UAACyB,IAAD,EAAOvB,CAAP;AAAA,iBAAa,KAAI,CAACwB,YAAL,CAAkBD,IAAlB,EAAwBvB,CAAxB,CAAb;AAAA,SAAf,CAAb;AACD;;AACD,UAAIR,IAAI,CAACiC,MAAT,EAAiB;AACfjC,QAAAA,IAAI,CAACiC,MAAL,GAAcjC,IAAI,CAACiC,MAAL,CAAY3B,GAAZ,CAAgB,UAAC4B,KAAD,EAAQ1B,CAAR;AAAA,iBAAc,KAAI,CAAC2B,aAAL,CAAmBD,KAAnB,EAA0B1B,CAA1B,CAAd;AAAA,SAAhB,CAAd;AACD;;AACD,UAAIR,IAAI,CAACkC,KAAL,KAAeE,SAAnB,EAA8B;AAC5BpC,QAAAA,IAAI,CAACkC,KAAL,GAAalC,IAAI,CAACiC,MAAL,CAAY,KAAKjC,IAAL,CAAUkC,KAAtB,CAAb;AACD;AACF;;;WAED,kBAASG,KAAT,EAAgB;AACd,aAAO,KAAKC,IAAL,CAAU,QAAV,EAAoBD,KAApB,CAAP;AACD;;;WAED,iBAAQA,KAAR,EAAe;AACb,aAAO,KAAKC,IAAL,CAAU,OAAV,EAAmBD,KAAnB,CAAP;AACD;;;WAED,iBAAQA,KAAR,EAAe;AACb,aAAO,KAAKC,IAAL,CAAU,OAAV,EAAmBD,KAAnB,CAAP;AACD;;;WAED,iBAAQA,KAAR,EAAe;AACb,aAAO,KAAKC,IAAL,CAAU,QAAV,EAAoBD,KAApB,CAAP;AACD;;;WAED,qBAAYA,KAAZ,EAAmB;AACjB,aAAO,KAAKC,IAAL,CAAU,WAAV,EAAuBD,KAAvB,CAAP;AACD;;;WAED,qBAAYA,KAAZ,EAAmB;AACjB,aAAO,KAAKC,IAAL,CAAU,WAAV,EAAuBD,KAAvB,CAAP;AACD;;;WAED,mBAAUA,KAAV,EAAiB;AACf,aAAO,IAAP;AACD;;;WAED,oBAAWA,KAAX,EAAkB;AAChB,aAAO,KAAKC,IAAL,CAAU,UAAV,EAAsBD,KAAtB,CAAP;AACD;;;WAED,oBAAWA,KAAX,EAAkB;AAChB,aAAO,KAAKC,IAAL,CAAU,UAAV,EAAsBD,KAAtB,CAAP;AACD;;;WAED,kBAASA,KAAT,EAAgB;AACd,aAAO,KAAKC,IAAL,CAAU,QAAV,EAAoBD,KAApB,CAAP;AACD;;;WAED,uBAAcA,KAAd,EAAqB;AACnB,aAAO,KAAKC,IAAL,CAAU,aAAV,EAAyBD,KAAzB,CAAP;AACD;;;WAED,mBAAUA,KAAV,EAAiB;AACf,aAAO,KAAKC,IAAL,CAAU,SAAV,EAAqBD,KAArB,CAAP;AACD;;;WAED,cAAKE,KAAL,EAAYF,KAAZ,EAAmB;AAEjB,UAAI,sBAAOA,KAAP,MAAiB,QAArB,EAA+B;AAC7B,eAAOA,KAAP;AACD;;AACD,UAAMG,MAAM,GAAG,KAAKxC,IAAL,CAAUuC,KAAV,KAAoB,KAAKvC,IAAL,CAAUuC,KAAV,EAAiBF,KAAjB,CAAnC;;AACA,UAAI,CAACG,MAAL,EAAa;AACXC,QAAAA,OAAO,CAACC,IAAR,2CAAgDH,KAAhD,cAAyDF,KAAzD;AACD;;AACD,aAAOG,MAAP;AACD;;;WAID,uBAAcN,KAAd,EAAqBG,KAArB,EAA4B;AAAA;;AAE1BH,MAAAA,KAAK,CAACS,EAAN,GAAWT,KAAK,CAACS,EAAN,oBAAqBN,KAArB,CAAX;AACAH,MAAAA,KAAK,CAACP,KAAN,GAAc,CAACO,KAAK,CAACP,KAAN,IAAe,EAAhB,EAAoBrB,GAApB,CAAwB,UAACsB,IAAD;AAAA,eAAU,MAAI,CAACgB,OAAL,CAAahB,IAAb,CAAV;AAAA,OAAxB,CAAd;AACA,aAAOM,KAAP;AACD;;;WAED,sBAAaN,IAAb,EAAmBS,KAAnB,EAA0B;AAAA;;AAExBT,MAAAA,IAAI,CAACe,EAAL,GAAUf,IAAI,CAACe,EAAL,mBAAmBN,KAAnB,CAAV;;AACA,UAAIT,IAAI,CAACiB,QAAT,EAAmB;AACjBjB,QAAAA,IAAI,CAACiB,QAAL,GAAgBjB,IAAI,CAACiB,QAAL,CAAcvC,GAAd,CAAkB,UAACwC,KAAD;AAAA,iBAAW,MAAI,CAACF,OAAL,CAAaE,KAAb,CAAX;AAAA,SAAlB,CAAhB;AACD;;AACD,UAAIlB,IAAI,CAACH,IAAL,KAAcW,SAAlB,EAA6B;AAC3BR,QAAAA,IAAI,CAACH,IAAL,GAAY,KAAKsB,OAAL,CAAanB,IAAI,CAACH,IAAlB,CAAZ;AACD,OAFD,MAEO,IAAIG,IAAI,CAACJ,MAAL,KAAgBY,SAAhB,IAA6BR,IAAI,CAACJ,MAAL,CAAYwB,MAA7C,EAAqD;AAC1DpB,QAAAA,IAAI,CAACH,IAAL,GAAYG,IAAI,CAACJ,MAAL,CAAYyB,MAAZ,CACV,UAACC,KAAD,EAAQC,SAAR,EAAsB;AACpB,cAAM1B,IAAI,GAAG,MAAI,CAACsB,OAAL,CAAaI,SAAb,CAAb;;AACAD,UAAAA,KAAK,CAACP,EAAN,GAAWlB,IAAI,CAACkB,EAAhB;AACAO,UAAAA,KAAK,CAACE,UAAN,GAAmBF,KAAK,CAACE,UAAN,CAAiBC,MAAjB,CAAwB5B,IAAI,CAAC2B,UAA7B,CAAnB;AACA,iBAAOF,KAAP;AACD,SANS,EAOV;AAACE,UAAAA,UAAU,EAAE;AAAb,SAPU,CAAZ;AASD;;AACD,UAAIxB,IAAI,CAAC0B,MAAL,KAAgBlB,SAApB,EAA+B;AAC7BR,QAAAA,IAAI,CAAC0B,MAAL,GAAc,KAAKC,SAAL,CAAe3B,IAAI,CAAC0B,MAApB,CAAd;AACD;;AACD,UAAI1B,IAAI,CAACG,IAAL,KAAcK,SAAlB,EAA6B;AAC3BR,QAAAA,IAAI,CAACG,IAAL,GAAY,KAAKyB,OAAL,CAAa5B,IAAI,CAACG,IAAlB,CAAZ;AACD;;AACD,aAAOH,IAAP;AACD;;;WAED,sBAAaG,IAAb,EAAmBM,KAAnB,EAA0B;AAExBN,MAAAA,IAAI,CAACY,EAAL,GAAUZ,IAAI,CAACY,EAAL,mBAAmBN,KAAnB,CAAV;AACAN,MAAAA,IAAI,CAAC0B,mBAAL,GAA2B,KAAKC,WAAL,CAAiB3B,IAAI,CAAC0B,mBAAtB,CAA3B;AACA,aAAO1B,IAAP;AACD;;;WAED,sBAAaN,IAAb,EAAmBY,KAAnB,EAA0B;AAAA;;AAExBZ,MAAAA,IAAI,CAACkB,EAAL,GAAUlB,IAAI,CAACkB,EAAL,mBAAmBN,KAAnB,CAAV;;AACA,UAAIZ,IAAI,CAAC2B,UAAT,EAAqB;AACnB3B,QAAAA,IAAI,CAAC2B,UAAL,GAAkB3B,IAAI,CAAC2B,UAAL,CAAgB9C,GAAhB,CAAoB,UAACqD,SAAD,EAAe;AACnDA,UAAAA,SAAS,qBAAOA,SAAP,CAAT;AACA,cAAMC,UAAU,GAAGD,SAAS,CAACC,UAA7B;AACAD,UAAAA,SAAS,CAACC,UAAV,GAAuB,EAAvB;;AACA,eAAK,IAAMC,SAAX,IAAwBD,UAAxB,EAAoC;AAClCD,YAAAA,SAAS,CAACC,UAAV,CAAqBC,SAArB,IAAkC,MAAI,CAACH,WAAL,CAAiBE,UAAU,CAACC,SAAD,CAA3B,CAAlC;AACD;;AACD,cAAIF,SAAS,CAACG,OAAV,KAAsB1B,SAA1B,EAAqC;AACnCuB,YAAAA,SAAS,CAACG,OAAV,GAAoB,MAAI,CAACJ,WAAL,CAAiBC,SAAS,CAACG,OAA3B,CAApB;AACD;;AACD,cAAIH,SAAS,CAACrC,QAAV,KAAuBc,SAA3B,EAAsC;AACpCuB,YAAAA,SAAS,CAACrC,QAAV,GAAqB,MAAI,CAACyC,WAAL,CAAiBJ,SAAS,CAACrC,QAA3B,CAArB;AACD;;AACD,iBAAOqC,SAAP;AACD,SAdiB,CAAlB;AAeD;;AACD,aAAOlC,IAAP;AACD;;;WAED,0BAAiBH,QAAjB,EAA2Be,KAA3B,EAAkC;AAEhCf,MAAAA,QAAQ,CAACqB,EAAT,GAAcrB,QAAQ,CAACqB,EAAT,uBAA2BN,KAA3B,CAAd;;AACA,UAAIf,QAAQ,CAAC0C,aAAb,EAA4B;AAC1B1C,QAAAA,QAAQ,CAAC0C,aAAT,qBAA6B1C,QAAQ,CAAC0C,aAAtC;AACA1C,QAAAA,QAAQ,CAAC0C,aAAT,CAAuBhD,OAAvB,GAAiC,KAAKiD,UAAL,CAAgB3C,QAAQ,CAAC0C,aAAT,CAAuB3B,KAAvC,CAAjC;AACD;;AACD,UAAIf,QAAQ,CAAC4C,gBAAb,EAA+B;AAC7B5C,QAAAA,QAAQ,CAAC6C,iBAAT,qBAAiC7C,QAAQ,CAAC6C,iBAA1C;AACA7C,QAAAA,QAAQ,CAAC4C,gBAAT,CAA0BlD,OAA1B,GAAoC,KAAKiD,UAAL,CAAgB3C,QAAQ,CAAC4C,gBAAT,CAA0B7B,KAA1C,CAApC;AACD;;AACD,UAAIf,QAAQ,CAAC8C,eAAb,EAA8B;AAC5B9C,QAAAA,QAAQ,CAAC+C,eAAT,qBAA+B/C,QAAQ,CAAC+C,eAAxC;AACA/C,QAAAA,QAAQ,CAAC8C,eAAT,CAAyBpD,OAAzB,GAAmC,KAAKiD,UAAL,CAAgB3C,QAAQ,CAAC8C,eAAT,CAAyB/B,KAAzC,CAAnC;AACD;;AACD,UAAI,CAACf,QAAQ,CAACgD,cAAd,EAA8B;AAC5BhD,QAAAA,QAAQ,CAACgD,cAAT,GAA0BhD,QAAQ,CAAC+C,eAAT,GAA2B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAA3B,GAAuC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAjE;AACD;;AAED,UAAI/C,QAAQ,CAACiD,oBAAb,EAAmC;AACjCjD,QAAAA,QAAQ,CAACiD,oBAAT,qBAAoCjD,QAAQ,CAACiD,oBAA7C;AACA,YAAMC,EAAE,GAAGlD,QAAQ,CAACiD,oBAApB;;AACA,YAAIC,EAAE,CAACC,gBAAP,EAAyB;AACvBD,UAAAA,EAAE,CAACC,gBAAH,qBAA0BD,EAAE,CAACC,gBAA7B;AACAD,UAAAA,EAAE,CAACC,gBAAH,CAAoBzD,OAApB,GAA8B,KAAKiD,UAAL,CAAgBO,EAAE,CAACC,gBAAH,CAAoBpC,KAApC,CAA9B;AACD;;AACD,YAAImC,EAAE,CAACE,wBAAP,EAAiC;AAC/BF,UAAAA,EAAE,CAACE,wBAAH,qBAAkCF,EAAE,CAACE,wBAArC;AACAF,UAAAA,EAAE,CAACE,wBAAH,CAA4B1D,OAA5B,GAAsC,KAAKiD,UAAL,CAAgBO,EAAE,CAACE,wBAAH,CAA4BrC,KAA5C,CAAtC;AACD;AACF;;AACD,aAAOf,QAAP;AACD;;;WAED,0BAAiBH,QAAjB,EAA2BkB,KAA3B,EAAkC;AAEhClB,MAAAA,QAAQ,CAACwB,EAAT,GAAcxB,QAAQ,CAACwB,EAAT,uBAA2BN,KAA3B,CAAd;;AACA,UAAIlB,QAAQ,CAACwD,UAAT,KAAwBvC,SAA5B,EAAuC;AAErCjB,QAAAA,QAAQ,CAACwD,UAAT,GAAsB,KAAKC,aAAL,CAAmBzD,QAAQ,CAACwD,UAA5B,CAAtB;AACD;;AAGDxD,MAAAA,QAAQ,CAAC0D,iBAAT,GAA6BpF,yBAAyB,CAAC0B,QAAQ,CAACzB,aAAV,CAAtD;AACAyB,MAAAA,QAAQ,CAAC2D,UAAT,GAAsBnF,uBAAuB,CAACwB,QAAQ,CAACvB,IAAV,CAA7C;AACAuB,MAAAA,QAAQ,CAAC4D,eAAT,GAA2B5D,QAAQ,CAAC0D,iBAAT,GAA6B1D,QAAQ,CAAC2D,UAAjE;;AAKA,UAAI3D,QAAQ,CAACwD,UAAb,EAAyB;AACvB,YAAMK,MAAM,GAAG7D,QAAQ,CAACwD,UAAT,CAAoBK,MAAnC;;AACA,oCAAgC,8CAA8B7D,QAA9B,EAAwCA,QAAQ,CAACwD,UAAjD,CAAhC;AAAA,YAAOM,SAAP,yBAAOA,SAAP;AAAA,YAAkBC,UAAlB,yBAAkBA,UAAlB;;AACA,YAAMC,UAAU,GACd,CAAChE,QAAQ,CAACwD,UAAT,CAAoBQ,UAApB,IAAkC,CAAnC,KAAyChE,QAAQ,CAACgE,UAAT,IAAuB,CAAhE,IAAqEH,MAAM,CAACG,UAD9E;AAEA,YAAMC,UAAU,GAAGJ,MAAM,CAACK,WAAP,CAAmBC,KAAnB,CAAyBH,UAAzB,EAAqCA,UAAU,GAAGD,UAAlD,CAAnB;AACA/D,QAAAA,QAAQ,CAACoE,KAAT,GAAiB,IAAIN,SAAJ,CAAcG,UAAd,CAAjB;AACD;;AAED,aAAOjE,QAAP;AACD;;;WAED,yBAAgBH,OAAhB,EAAyBqB,KAAzB,EAAgC;AAE9BrB,MAAAA,OAAO,CAAC2B,EAAR,GAAa3B,OAAO,CAAC2B,EAAR,sBAAyBN,KAAzB,CAAb;AACArB,MAAAA,OAAO,CAACH,OAAR,GAAkB,aAAaG,OAAb,GAAuB,KAAKwE,UAAL,CAAgBxE,OAAO,CAACH,OAAxB,CAAvB,GAA0DtB,eAA5E;AACAyB,MAAAA,OAAO,CAACyE,MAAR,GAAiB,KAAKC,QAAL,CAAc1E,OAAO,CAACyE,MAAtB,CAAjB;AACA,aAAOzE,OAAP;AACD;;;WAED,yBAAgBH,OAAhB,EAAyBwB,KAAzB,EAAgC;AAE9BxB,MAAAA,OAAO,CAAC8B,EAAR,GAAa9B,OAAO,CAAC8B,EAAR,sBAAyBN,KAAzB,CAAb;AAEAxB,MAAAA,OAAO,CAAC8E,UAAR,GAAqB,EAArB;;AACA,WAAK,IAAMC,GAAX,IAAkB/E,OAAlB,EAA2B;AACzB,YAAMgF,MAAM,GAAG,KAAKC,qBAAL,CAA2BF,GAA3B,CAAf;;AACA,YAAIC,MAAM,KAAKzD,SAAf,EAA0B;AACxBvB,UAAAA,OAAO,CAAC8E,UAAR,CAAmBE,MAAnB,IAA6BhF,OAAO,CAAC+E,GAAD,CAApC;AACD;AACF;;AACD,aAAO/E,OAAP;AACD;;;WAED,+BAAsB+E,GAAtB,EAA2B;AACzB,aAAO1G,4BAA4B,CAAC0G,GAAD,CAAnC;AACD;;;WAED,uBAAclF,KAAd,EAAqB2B,KAArB,EAA4B;AAE1B3B,MAAAA,KAAK,CAACiC,EAAN,GAAWjC,KAAK,CAACiC,EAAN,oBAAqBN,KAArB,CAAX;;AACA,UAAI3B,KAAK,CAACiE,UAAN,KAAqBvC,SAAzB,EAAoC;AAClC1B,QAAAA,KAAK,CAACiE,UAAN,GAAmB,KAAKC,aAAL,CAAmBlE,KAAK,CAACiE,UAAzB,CAAnB;AACD;;AAID,UAAMoB,cAAc,GAAG,KAAK7F,MAAL,CAAYmC,KAAZ,CAAvB;;AACA,UAAI0D,cAAJ,EAAoB;AAClBrF,QAAAA,KAAK,CAACA,KAAN,GAAcqF,cAAd;AACD;;AAED,aAAOrF,KAAP;AACD;;;WAED,4BAAmBiE,UAAnB,EAA+BtC,KAA/B,EAAsC;AAEpCsC,MAAAA,UAAU,CAAChC,EAAX,GAAgBgC,UAAU,CAAChC,EAAX,yBAA+BN,KAA/B,CAAhB;AACA,UAAM2D,WAAW,GAAGrB,UAAU,CAACK,MAA/B;AACAL,MAAAA,UAAU,CAACK,MAAX,GAAoB,KAAK/E,OAAL,CAAa+F,WAAb,CAApB;AAEA,UAAMX,WAAW,GAAG,KAAKpF,OAAL,CAAa+F,WAAb,EAA0BX,WAA9C;AACA,UAAIF,UAAU,GAAG,KAAKlF,OAAL,CAAa+F,WAAb,EAA0Bb,UAA1B,IAAwC,CAAzD;;AAEA,UAAI,gBAAgBR,UAApB,EAAgC;AAC9BQ,QAAAA,UAAU,IAAIR,UAAU,CAACQ,UAAzB;AACD;;AAEDR,MAAAA,UAAU,CAACsB,IAAX,GAAkB,IAAIC,UAAJ,CAAeb,WAAf,EAA4BF,UAA5B,EAAwCR,UAAU,CAACO,UAAnD,CAAlB;AACA,aAAOP,UAAP;AACD;;;WAED,wBAAerB,MAAf,EAAuBjB,KAAvB,EAA8B;AAC5BiB,MAAAA,MAAM,CAACX,EAAP,GAAYW,MAAM,CAACX,EAAP,qBAAuBN,KAAvB,CAAZ;;AAEA,UAAIiB,MAAM,CAAC6C,WAAX,EAAwB,CAEvB;;AACD,UAAI7C,MAAM,CAAC8C,YAAX,EAAyB,CAExB;;AACD,aAAO9C,MAAP;AACD;;;;;AAGI,SAAS+C,eAAT,CAAyBvG,IAAzB,EAA+BC,OAA/B,EAAwC;AAC7C,SAAO,IAAIF,iBAAJ,GAAwByG,WAAxB,CAAoCxG,IAApC,EAA0CC,OAA1C,CAAP;AACD","sourcesContent":["import {assert} from '../utils/assert';\nimport {getAccessorArrayTypeAndLength} from '../gltf-utils/gltf-utils';\n\n// This is a post processor for loaded glTF files\n// The goal is to make the loaded data easier to use in WebGL applications\n//\n// Functions:\n// * Resolve indexed arrays structure of glTF into a linked tree.\n// * Translate stringified enum keys and values into WebGL constants.\n// * Load images (optional)\n\n// ENUM LOOKUP\n\nconst COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\n\nconst BYTES = {\n 5120: 1, // BYTE\n 5121: 1, // UNSIGNED_BYTE\n 5122: 2, // SHORT\n 5123: 2, // UNSIGNED_SHORT\n 5125: 4, // UNSIGNED_INT\n 5126: 4 // FLOAT\n};\n\nconst GL_SAMPLER = {\n // Sampler parameters\n TEXTURE_MAG_FILTER: 0x2800,\n TEXTURE_MIN_FILTER: 0x2801,\n TEXTURE_WRAP_S: 0x2802,\n TEXTURE_WRAP_T: 0x2803,\n\n // Sampler default values\n REPEAT: 0x2901,\n LINEAR: 0x2601,\n NEAREST_MIPMAP_LINEAR: 0x2702\n};\n\nconst SAMPLER_PARAMETER_GLTF_TO_GL = {\n magFilter: GL_SAMPLER.TEXTURE_MAG_FILTER,\n minFilter: GL_SAMPLER.TEXTURE_MIN_FILTER,\n wrapS: GL_SAMPLER.TEXTURE_WRAP_S,\n wrapT: GL_SAMPLER.TEXTURE_WRAP_T\n};\n\n// When undefined, a sampler with repeat wrapping and auto filtering should be used.\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#texture\nconst DEFAULT_SAMPLER = {\n [GL_SAMPLER.TEXTURE_MAG_FILTER]: GL_SAMPLER.LINEAR,\n [GL_SAMPLER.TEXTURE_MIN_FILTER]: GL_SAMPLER.NEAREST_MIPMAP_LINEAR,\n [GL_SAMPLER.TEXTURE_WRAP_S]: GL_SAMPLER.REPEAT,\n [GL_SAMPLER.TEXTURE_WRAP_]: GL_SAMPLER.REPEAT\n};\n\nfunction getBytesFromComponentType(componentType) {\n return BYTES[componentType];\n}\n\nfunction getSizeFromAccessorType(type) {\n return COMPONENTS[type];\n}\n\nclass GLTFPostProcessor {\n postProcess(gltf, options = {}) {\n const {json, buffers = [], images = [], baseUri = ''} = gltf;\n assert(json);\n\n this.baseUri = baseUri;\n this.json = json;\n this.buffers = buffers;\n this.images = images;\n\n this._resolveTree(this.json, options);\n\n return this.json;\n }\n\n // Convert indexed glTF structure into tree structure\n // cross-link index resolution, enum lookup, convenience calculations\n // eslint-disable-next-line complexity\n _resolveTree(json, options = {}) {\n if (json.bufferViews) {\n json.bufferViews = json.bufferViews.map((bufView, i) => this._resolveBufferView(bufView, i));\n }\n if (json.images) {\n json.images = json.images.map((image, i) => this._resolveImage(image, i));\n }\n if (json.samplers) {\n json.samplers = json.samplers.map((sampler, i) => this._resolveSampler(sampler, i));\n }\n if (json.textures) {\n json.textures = json.textures.map((texture, i) => this._resolveTexture(texture, i));\n }\n if (json.accessors) {\n json.accessors = json.accessors.map((accessor, i) => this._resolveAccessor(accessor, i));\n }\n if (json.materials) {\n json.materials = json.materials.map((material, i) => this._resolveMaterial(material, i));\n }\n if (json.meshes) {\n json.meshes = json.meshes.map((mesh, i) => this._resolveMesh(mesh, i));\n }\n if (json.nodes) {\n json.nodes = json.nodes.map((node, i) => this._resolveNode(node, i));\n }\n if (json.skins) {\n json.skins = json.skins.map((skin, i) => this._resolveSkin(skin, i));\n }\n if (json.scenes) {\n json.scenes = json.scenes.map((scene, i) => this._resolveScene(scene, i));\n }\n if (json.scene !== undefined) {\n json.scene = json.scenes[this.json.scene];\n }\n }\n\n getScene(index) {\n return this._get('scenes', index);\n }\n\n getNode(index) {\n return this._get('nodes', index);\n }\n\n getSkin(index) {\n return this._get('skins', index);\n }\n\n getMesh(index) {\n return this._get('meshes', index);\n }\n\n getMaterial(index) {\n return this._get('materials', index);\n }\n\n getAccessor(index) {\n return this._get('accessors', index);\n }\n\n getCamera(index) {\n return null; // TODO: fix this\n }\n\n getTexture(index) {\n return this._get('textures', index);\n }\n\n getSampler(index) {\n return this._get('samplers', index);\n }\n\n getImage(index) {\n return this._get('images', index);\n }\n\n getBufferView(index) {\n return this._get('bufferViews', index);\n }\n\n getBuffer(index) {\n return this._get('buffers', index);\n }\n\n _get(array, index) {\n // check if already resolved\n if (typeof index === 'object') {\n return index;\n }\n const object = this.json[array] && this.json[array][index];\n if (!object) {\n console.warn(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line\n }\n return object;\n }\n\n // PARSING HELPERS\n\n _resolveScene(scene, index) {\n // scene = {...scene};\n scene.id = scene.id || `scene-${index}`;\n scene.nodes = (scene.nodes || []).map((node) => this.getNode(node));\n return scene;\n }\n\n _resolveNode(node, index) {\n // node = {...node};\n node.id = node.id || `node-${index}`;\n if (node.children) {\n node.children = node.children.map((child) => this.getNode(child));\n }\n if (node.mesh !== undefined) {\n node.mesh = this.getMesh(node.mesh);\n } else if (node.meshes !== undefined && node.meshes.length) {\n node.mesh = node.meshes.reduce(\n (accum, meshIndex) => {\n const mesh = this.getMesh(meshIndex);\n accum.id = mesh.id;\n accum.primitives = accum.primitives.concat(mesh.primitives);\n return accum;\n },\n {primitives: []}\n );\n }\n if (node.camera !== undefined) {\n node.camera = this.getCamera(node.camera);\n }\n if (node.skin !== undefined) {\n node.skin = this.getSkin(node.skin);\n }\n return node;\n }\n\n _resolveSkin(skin, index) {\n // skin = {...skin};\n skin.id = skin.id || `skin-${index}`;\n skin.inverseBindMatrices = this.getAccessor(skin.inverseBindMatrices);\n return skin;\n }\n\n _resolveMesh(mesh, index) {\n // mesh = {...mesh};\n mesh.id = mesh.id || `mesh-${index}`;\n if (mesh.primitives) {\n mesh.primitives = mesh.primitives.map((primitive) => {\n primitive = {...primitive};\n const attributes = primitive.attributes;\n primitive.attributes = {};\n for (const attribute in attributes) {\n primitive.attributes[attribute] = this.getAccessor(attributes[attribute]);\n }\n if (primitive.indices !== undefined) {\n primitive.indices = this.getAccessor(primitive.indices);\n }\n if (primitive.material !== undefined) {\n primitive.material = this.getMaterial(primitive.material);\n }\n return primitive;\n });\n }\n return mesh;\n }\n\n _resolveMaterial(material, index) {\n // material = {...material};\n material.id = material.id || `material-${index}`;\n if (material.normalTexture) {\n material.normalTexture = {...material.normalTexture};\n material.normalTexture.texture = this.getTexture(material.normalTexture.index);\n }\n if (material.occlusionTexture) {\n material.occlustionTexture = {...material.occlustionTexture};\n material.occlusionTexture.texture = this.getTexture(material.occlusionTexture.index);\n }\n if (material.emissiveTexture) {\n material.emmisiveTexture = {...material.emmisiveTexture};\n material.emissiveTexture.texture = this.getTexture(material.emissiveTexture.index);\n }\n if (!material.emissiveFactor) {\n material.emissiveFactor = material.emmisiveTexture ? [1, 1, 1] : [0, 0, 0];\n }\n\n if (material.pbrMetallicRoughness) {\n material.pbrMetallicRoughness = {...material.pbrMetallicRoughness};\n const mr = material.pbrMetallicRoughness;\n if (mr.baseColorTexture) {\n mr.baseColorTexture = {...mr.baseColorTexture};\n mr.baseColorTexture.texture = this.getTexture(mr.baseColorTexture.index);\n }\n if (mr.metallicRoughnessTexture) {\n mr.metallicRoughnessTexture = {...mr.metallicRoughnessTexture};\n mr.metallicRoughnessTexture.texture = this.getTexture(mr.metallicRoughnessTexture.index);\n }\n }\n return material;\n }\n\n _resolveAccessor(accessor, index) {\n // accessor = {...accessor};\n accessor.id = accessor.id || `accessor-${index}`;\n if (accessor.bufferView !== undefined) {\n // Draco encoded meshes don't have bufferView\n accessor.bufferView = this.getBufferView(accessor.bufferView);\n }\n\n // Look up enums\n accessor.bytesPerComponent = getBytesFromComponentType(accessor.componentType);\n accessor.components = getSizeFromAccessorType(accessor.type);\n accessor.bytesPerElement = accessor.bytesPerComponent * accessor.components;\n\n // Create TypedArray for the accessor\n // Note: The canonical way to instantiate is to ignore this array and create\n // WebGLBuffer's using the bufferViews.\n if (accessor.bufferView) {\n const buffer = accessor.bufferView.buffer;\n const {ArrayType, byteLength} = getAccessorArrayTypeAndLength(accessor, accessor.bufferView);\n const byteOffset =\n (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;\n const cutBufffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);\n accessor.value = new ArrayType(cutBufffer);\n }\n\n return accessor;\n }\n\n _resolveTexture(texture, index) {\n // texture = {...texture};\n texture.id = texture.id || `texture-${index}`;\n texture.sampler = 'sampler' in texture ? this.getSampler(texture.sampler) : DEFAULT_SAMPLER;\n texture.source = this.getImage(texture.source);\n return texture;\n }\n\n _resolveSampler(sampler, index) {\n // sampler = {...sampler};\n sampler.id = sampler.id || `sampler-${index}`;\n // Map textual parameters to GL parameter values\n sampler.parameters = {};\n for (const key in sampler) {\n const glEnum = this._enumSamplerParameter(key);\n if (glEnum !== undefined) {\n sampler.parameters[glEnum] = sampler[key];\n }\n }\n return sampler;\n }\n\n _enumSamplerParameter(key) {\n return SAMPLER_PARAMETER_GLTF_TO_GL[key];\n }\n\n _resolveImage(image, index) {\n // image = {...image};\n image.id = image.id || `image-${index}`;\n if (image.bufferView !== undefined) {\n image.bufferView = this.getBufferView(image.bufferView);\n }\n\n // Check if image has been preloaded by the GLTFLoader\n // If so, link it into the JSON and drop the URI\n const preloadedImage = this.images[index];\n if (preloadedImage) {\n image.image = preloadedImage;\n }\n\n return image;\n }\n\n _resolveBufferView(bufferView, index) {\n // bufferView = {...bufferView};\n bufferView.id = bufferView.id || `bufferView-${index}`;\n const bufferIndex = bufferView.buffer;\n bufferView.buffer = this.buffers[bufferIndex];\n\n const arrayBuffer = this.buffers[bufferIndex].arrayBuffer;\n let byteOffset = this.buffers[bufferIndex].byteOffset || 0;\n\n if ('byteOffset' in bufferView) {\n byteOffset += bufferView.byteOffset;\n }\n\n bufferView.data = new Uint8Array(arrayBuffer, byteOffset, bufferView.byteLength);\n return bufferView;\n }\n\n _resolveCamera(camera, index) {\n camera.id = camera.id || `camera-${index}`;\n // TODO - create 4x4 matrices\n if (camera.perspective) {\n // camera.matrix = createPerspectiveMatrix(camera.perspective);\n }\n if (camera.orthographic) {\n // camera.matrix = createOrthographicMatrix(camera.orthographic);\n }\n return camera;\n }\n}\n\nexport function postProcessGLTF(gltf, options) {\n return new GLTFPostProcessor().postProcess(gltf, options);\n}\n"],"file":"post-process-gltf.js"}
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = encodeGLBSync;
7
-
8
- var _loaderUtils = require("@loaders.gl/loader-utils");
9
-
10
- var MAGIC_glTF = 0x46546c67;
11
- var MAGIC_JSON = 0x4e4f534a;
12
- var MAGIC_BIN = 0x004e4942;
13
- var LE = true;
14
-
15
- function encodeGLBSync(glb, dataView) {
16
- var byteOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
17
- var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
18
- var _glb$magic = glb.magic,
19
- magic = _glb$magic === void 0 ? MAGIC_glTF : _glb$magic,
20
- _glb$version = glb.version,
21
- version = _glb$version === void 0 ? 2 : _glb$version,
22
- _glb$json = glb.json,
23
- json = _glb$json === void 0 ? {} : _glb$json,
24
- binary = glb.binary;
25
- var byteOffsetStart = byteOffset;
26
-
27
- if (dataView) {
28
- dataView.setUint32(byteOffset + 0, magic, LE);
29
- dataView.setUint32(byteOffset + 4, version, LE);
30
- dataView.setUint32(byteOffset + 8, 0, LE);
31
- }
32
-
33
- var byteOffsetFileLength = byteOffset + 8;
34
- byteOffset += 12;
35
- var byteOffsetJsonHeader = byteOffset;
36
-
37
- if (dataView) {
38
- dataView.setUint32(byteOffset + 0, 0, LE);
39
- dataView.setUint32(byteOffset + 4, MAGIC_JSON, LE);
40
- }
41
-
42
- byteOffset += 8;
43
- var jsonString = JSON.stringify(json);
44
- byteOffset = (0, _loaderUtils.copyPaddedStringToDataView)(dataView, byteOffset, jsonString, 4);
45
-
46
- if (dataView) {
47
- var jsonByteLength = byteOffset - byteOffsetJsonHeader - 8;
48
- dataView.setUint32(byteOffsetJsonHeader + 0, jsonByteLength, LE);
49
- }
50
-
51
- if (binary) {
52
- var byteOffsetBinHeader = byteOffset;
53
-
54
- if (dataView) {
55
- dataView.setUint32(byteOffset + 0, 0, LE);
56
- dataView.setUint32(byteOffset + 4, MAGIC_BIN, LE);
57
- }
58
-
59
- byteOffset += 8;
60
- byteOffset = (0, _loaderUtils.copyPaddedArrayBufferToDataView)(dataView, byteOffset, binary, 4);
61
-
62
- if (dataView) {
63
- var binByteLength = byteOffset - byteOffsetBinHeader - 8;
64
- dataView.setUint32(byteOffsetBinHeader + 0, binByteLength, LE);
65
- }
66
- }
67
-
68
- if (dataView) {
69
- var fileByteLength = byteOffset - byteOffsetStart;
70
- dataView.setUint32(byteOffsetFileLength, fileByteLength, LE);
71
- }
72
-
73
- return byteOffset;
74
- }
75
- //# sourceMappingURL=encode-glb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/encoders/encode-glb.js"],"names":["MAGIC_glTF","MAGIC_JSON","MAGIC_BIN","LE","encodeGLBSync","glb","dataView","byteOffset","options","magic","version","json","binary","byteOffsetStart","setUint32","byteOffsetFileLength","byteOffsetJsonHeader","jsonString","JSON","stringify","jsonByteLength","byteOffsetBinHeader","binByteLength","fileByteLength"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase, max-statements */\nimport {\n copyPaddedStringToDataView,\n copyPaddedArrayBufferToDataView\n} from '@loaders.gl/loader-utils';\n\nconst MAGIC_glTF = 0x46546c67; // glTF in ASCII\nconst MAGIC_JSON = 0x4e4f534a; // JSON in ASCII\nconst MAGIC_BIN = 0x004e4942; // BIN\\0 in ASCII\n\nconst LE = true; // Binary GLTF is little endian.\n\n// Encode the full GLB buffer with header etc\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#\n// glb-file-format-specification\nexport default function encodeGLBSync(glb, dataView, byteOffset = 0, options = {}) {\n const {magic = MAGIC_glTF, version = 2, json = {}, binary} = glb;\n\n const byteOffsetStart = byteOffset;\n\n // Write GLB Header\n if (dataView) {\n dataView.setUint32(byteOffset + 0, magic, LE); // Magic number (the ASCII string 'glTF').\n dataView.setUint32(byteOffset + 4, version, LE); // Version 2 of binary glTF container format uint32\n dataView.setUint32(byteOffset + 8, 0, LE); // Total byte length of generated file (uint32), will be set last\n }\n const byteOffsetFileLength = byteOffset + 8;\n byteOffset += 12; // GLB_FILE_HEADER_SIZE\n\n // Write the JSON chunk header\n const byteOffsetJsonHeader = byteOffset;\n if (dataView) {\n dataView.setUint32(byteOffset + 0, 0, LE); // Byte length of json chunk (will be written later)\n dataView.setUint32(byteOffset + 4, MAGIC_JSON, LE); // Chunk type\n }\n byteOffset += 8; // GLB_CHUNK_HEADER_SIZE\n\n // Write the JSON chunk\n const jsonString = JSON.stringify(json);\n byteOffset = copyPaddedStringToDataView(dataView, byteOffset, jsonString, 4);\n\n // Now we know the JSON chunk length so we can write it.\n if (dataView) {\n const jsonByteLength = byteOffset - byteOffsetJsonHeader - 8; // GLB_CHUNK_HEADER_SIZE\n dataView.setUint32(byteOffsetJsonHeader + 0, jsonByteLength, LE); // Byte length of json chunk (uint32)\n }\n\n // Write the BIN chunk if present. The BIN chunk is optional.\n if (binary) {\n const byteOffsetBinHeader = byteOffset;\n\n // Write the BIN chunk header\n if (dataView) {\n dataView.setUint32(byteOffset + 0, 0, LE); // Byte length BIN (uint32)\n dataView.setUint32(byteOffset + 4, MAGIC_BIN, LE); // Chunk type\n }\n byteOffset += 8; // GLB_CHUNK_HEADER_SIZE\n\n byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, binary, 4);\n\n // Now we know the BIN chunk length so we can write it.\n if (dataView) {\n const binByteLength = byteOffset - byteOffsetBinHeader - 8; // GLB_CHUNK_HEADER_SIZE\n dataView.setUint32(byteOffsetBinHeader + 0, binByteLength, LE); // Byte length BIN (uint32)\n }\n }\n\n // Now we know the glb file length so we can write it.\n if (dataView) {\n const fileByteLength = byteOffset - byteOffsetStart;\n dataView.setUint32(byteOffsetFileLength, fileByteLength, LE); // Total byte length of generated file (uint32)\n }\n\n return byteOffset;\n}\n"],"file":"encode-glb.js"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.encodeGLTFSync = encodeGLTFSync;
9
-
10
- var _encodeGlb = _interopRequireDefault(require("./encode-glb"));
11
-
12
- function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {
13
- convertBuffersToBase64(gltf);
14
- return (0, _encodeGlb.default)(gltf, arrayBuffer, byteOffset, options);
15
- }
16
-
17
- function convertBuffersToBase64(gltf) {
18
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
19
- _ref$firstBuffer = _ref.firstBuffer,
20
- firstBuffer = _ref$firstBuffer === void 0 ? 0 : _ref$firstBuffer;
21
-
22
- if (gltf.buffers && gltf.buffers.length > firstBuffer) {
23
- throw new Error('encodeGLTF: multiple buffers not yet implemented');
24
- }
25
- }
26
- //# sourceMappingURL=encode-gltf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/encoders/encode-gltf.js"],"names":["encodeGLTFSync","gltf","arrayBuffer","byteOffset","options","convertBuffersToBase64","firstBuffer","buffers","length","Error"],"mappings":";;;;;;;;;AAAA;;AAYO,SAASA,cAAT,CAAwBC,IAAxB,EAA8BC,WAA9B,EAA2CC,UAA3C,EAAuDC,OAAvD,EAAgE;AACrEC,EAAAA,sBAAsB,CAACJ,IAAD,CAAtB;AAIA,SAAO,wBAAcA,IAAd,EAAoBC,WAApB,EAAiCC,UAAjC,EAA6CC,OAA7C,CAAP;AACD;;AAED,SAASC,sBAAT,CAAgCJ,IAAhC,EAA8D;AAAA,iFAAJ,EAAI;AAAA,8BAAvBK,WAAuB;AAAA,MAAvBA,WAAuB,iCAAT,CAAS;;AAC5D,MAAIL,IAAI,CAACM,OAAL,IAAgBN,IAAI,CAACM,OAAL,CAAaC,MAAb,GAAsBF,WAA1C,EAAuD;AACrD,UAAM,IAAIG,KAAJ,CAAU,kDAAV,CAAN;AACD;AACF","sourcesContent":["import encodeGLBSync from './encode-glb';\n\n// Encode the full glTF file as a binary GLB file\n// Returns an ArrayBuffer that represents the complete GLB image that can be saved to file\n//\n// TODO - Does not support encoding to non-GLB versions of glTF format\n// - Encode as a textual JSON file with binary data in base64 data URLs.\n// - Encode as a JSON with all images (and buffers?) in separate binary files\n//\n// glb-file-format-specification\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#\n\nexport function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {\n convertBuffersToBase64(gltf);\n\n // TODO: Copy buffers to binary\n\n return encodeGLBSync(gltf, arrayBuffer, byteOffset, options);\n}\n\nfunction convertBuffersToBase64(gltf, {firstBuffer = 0} = {}) {\n if (gltf.buffers && gltf.buffers.length > firstBuffer) {\n throw new Error('encodeGLTF: multiple buffers not yet implemented');\n }\n}\n"],"file":"encode-gltf.js"}