@loaders.gl/gltf 3.1.0-alpha.4 → 3.1.0-beta.3

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 (202) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +4518 -0
  4. package/dist/es5/bundle.js +1 -1
  5. package/dist/es5/bundle.js.map +1 -1
  6. package/dist/es5/glb-loader.js +10 -33
  7. package/dist/es5/glb-loader.js.map +1 -1
  8. package/dist/es5/glb-writer.js +9 -8
  9. package/dist/es5/glb-writer.js.map +1 -1
  10. package/dist/es5/gltf-loader.js +14 -52
  11. package/dist/es5/gltf-loader.js.map +1 -1
  12. package/dist/es5/gltf-writer.js +10 -10
  13. package/dist/es5/gltf-writer.js.map +1 -1
  14. package/dist/es5/index.js +6 -6
  15. package/dist/es5/lib/api/gltf-extensions.js +18 -106
  16. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  17. package/dist/es5/lib/api/gltf-scenegraph.js +447 -541
  18. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  19. package/dist/es5/lib/api/normalize-gltf-v1.js +154 -279
  20. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  21. package/dist/es5/lib/api/post-process-gltf.js +301 -349
  22. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  23. package/dist/es5/lib/encoders/encode-glb.js +19 -22
  24. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  25. package/dist/es5/lib/encoders/encode-gltf.js +3 -5
  26. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +39 -104
  28. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  29. package/dist/es5/lib/extensions/EXT_texture_webp.js +12 -26
  30. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
  31. package/dist/es5/lib/extensions/KHR_binary_gltf.js +12 -26
  32. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  33. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +76 -261
  34. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  35. package/dist/es5/lib/extensions/KHR_texture_basisu.js +12 -26
  36. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
  37. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +40 -104
  38. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  39. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +24 -69
  40. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  41. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +34 -90
  42. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  43. package/dist/es5/lib/gltf-utils/get-typed-array.js +6 -6
  44. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  45. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +19 -21
  46. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  47. package/dist/es5/lib/gltf-utils/gltf-constants.js +7 -7
  48. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  49. package/dist/es5/lib/gltf-utils/gltf-utils.js +16 -16
  50. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  51. package/dist/es5/lib/gltf-utils/resolve-url.js +2 -2
  52. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  53. package/dist/es5/lib/parsers/parse-glb.js +34 -38
  54. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  55. package/dist/es5/lib/parsers/parse-gltf.js +107 -249
  56. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  57. package/dist/es5/lib/utils/assert.js.map +1 -1
  58. package/dist/es5/lib/utils/version.js +1 -1
  59. package/dist/es5/lib/utils/version.js.map +1 -1
  60. package/dist/es5/meshopt/meshopt-decoder.js +46 -197
  61. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  62. package/dist/es5/webp/webp.js +16 -84
  63. package/dist/es5/webp/webp.js.map +1 -1
  64. package/dist/esm/lib/api/gltf-scenegraph.js +1 -1
  65. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  66. package/dist/esm/lib/api/normalize-gltf-v1.js +9 -6
  67. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  68. package/dist/esm/lib/api/post-process-gltf.js +42 -15
  69. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  70. package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
  71. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
  72. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +1 -1
  73. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  74. package/dist/esm/lib/extensions/EXT_texture_webp.js +1 -1
  75. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
  76. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
  77. package/dist/esm/lib/gltf-utils/resolve-url.js +1 -1
  78. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  79. package/dist/esm/lib/parsers/parse-glb.js +2 -6
  80. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  81. package/dist/esm/lib/parsers/parse-gltf.js +19 -2
  82. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  83. package/dist/esm/lib/utils/assert.js.map +1 -1
  84. package/dist/esm/lib/utils/version.js +1 -1
  85. package/dist/esm/lib/utils/version.js.map +1 -1
  86. package/dist/esm/meshopt/meshopt-decoder.js +1 -1
  87. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  88. package/dist/esm/webp/webp.js +1 -1
  89. package/dist/esm/webp/webp.js.map +1 -1
  90. package/dist/glb-loader.d.ts +13 -0
  91. package/dist/glb-loader.d.ts.map +1 -0
  92. package/dist/glb-loader.js +39 -0
  93. package/dist/glb-writer.d.ts +22 -0
  94. package/dist/glb-writer.d.ts.map +1 -0
  95. package/dist/glb-writer.js +37 -0
  96. package/dist/gltf-loader.d.ts +18 -0
  97. package/dist/gltf-loader.d.ts.map +1 -0
  98. package/dist/gltf-loader.js +50 -0
  99. package/dist/gltf-writer.d.ts +25 -0
  100. package/dist/gltf-writer.d.ts.map +1 -0
  101. package/dist/gltf-writer.js +32 -0
  102. package/dist/index.d.ts +11 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +21 -0
  105. package/dist/lib/api/gltf-extensions.d.ts +26 -0
  106. package/dist/lib/api/gltf-extensions.d.ts.map +1 -0
  107. package/dist/lib/api/gltf-extensions.js +75 -0
  108. package/dist/lib/api/gltf-scenegraph.d.ts +183 -0
  109. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -0
  110. package/dist/lib/api/gltf-scenegraph.js +553 -0
  111. package/dist/lib/api/normalize-gltf-v1.d.ts +2 -0
  112. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  113. package/dist/lib/api/normalize-gltf-v1.js +295 -0
  114. package/dist/lib/api/post-process-gltf.d.ts +2 -0
  115. package/dist/lib/api/post-process-gltf.d.ts.map +1 -0
  116. package/dist/lib/api/post-process-gltf.js +367 -0
  117. package/dist/lib/encoders/encode-glb.d.ts +2 -0
  118. package/dist/lib/encoders/encode-glb.d.ts.map +1 -0
  119. package/dist/lib/encoders/encode-glb.js +61 -0
  120. package/dist/lib/encoders/encode-gltf.d.ts +2 -0
  121. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -0
  122. package/dist/lib/encoders/encode-gltf.js +27 -0
  123. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +10 -0
  124. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  125. package/dist/lib/extensions/EXT_meshopt_compression.js +54 -0
  126. package/dist/lib/extensions/EXT_texture_webp.d.ts +12 -0
  127. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  128. package/dist/lib/extensions/EXT_texture_webp.js +38 -0
  129. package/dist/lib/extensions/KHR_binary_gltf.d.ts +7 -0
  130. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  131. package/dist/lib/extensions/KHR_binary_gltf.js +42 -0
  132. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +13 -0
  133. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  134. package/dist/lib/extensions/KHR_draco_mesh_compression.js +141 -0
  135. package/dist/lib/extensions/KHR_texture_basisu.d.ts +12 -0
  136. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  137. package/dist/lib/extensions/KHR_texture_basisu.js +31 -0
  138. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +7 -0
  139. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  140. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +62 -0
  141. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +7 -0
  142. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  143. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +47 -0
  144. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +7 -0
  145. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  146. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +81 -0
  147. package/dist/lib/gltf-utils/get-typed-array.d.ts +3 -0
  148. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  149. package/dist/lib/gltf-utils/get-typed-array.js +41 -0
  150. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  151. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  152. package/dist/lib/gltf-utils/gltf-attribute-utils.js +73 -0
  153. package/dist/lib/gltf-utils/gltf-constants.d.ts +4 -0
  154. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  155. package/dist/lib/gltf-utils/gltf-constants.js +43 -0
  156. package/dist/lib/gltf-utils/gltf-utils.d.ts +8 -0
  157. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  158. package/dist/lib/gltf-utils/gltf-utils.js +63 -0
  159. package/dist/lib/gltf-utils/resolve-url.d.ts +2 -0
  160. package/dist/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  161. package/dist/lib/gltf-utils/resolve-url.js +18 -0
  162. package/dist/lib/parsers/parse-glb.d.ts +8 -0
  163. package/dist/lib/parsers/parse-glb.d.ts.map +1 -0
  164. package/dist/lib/parsers/parse-glb.js +141 -0
  165. package/dist/lib/parsers/parse-gltf.d.ts +14 -0
  166. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -0
  167. package/dist/lib/parsers/parse-gltf.js +189 -0
  168. package/dist/lib/types/glb-types.d.ts +17 -0
  169. package/dist/lib/types/glb-types.d.ts.map +1 -0
  170. package/dist/lib/types/glb-types.js +2 -0
  171. package/dist/lib/types/gltf-json-schema.d.ts +720 -0
  172. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -0
  173. package/dist/lib/types/gltf-json-schema.js +4 -0
  174. package/dist/lib/types/gltf-postprocessed-schema.d.ts +685 -0
  175. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -0
  176. package/dist/lib/types/gltf-postprocessed-schema.js +4 -0
  177. package/dist/lib/types/gltf-types.d.ts +10 -0
  178. package/dist/lib/types/gltf-types.d.ts.map +1 -0
  179. package/dist/lib/types/gltf-types.js +3 -0
  180. package/dist/lib/utils/assert.d.ts +2 -0
  181. package/dist/lib/utils/assert.d.ts.map +1 -0
  182. package/dist/lib/utils/assert.js +12 -0
  183. package/dist/lib/utils/version.d.ts +2 -0
  184. package/dist/lib/utils/version.d.ts.map +1 -0
  185. package/dist/lib/utils/version.js +7 -0
  186. package/dist/meshopt/meshopt-decoder.d.ts +6 -0
  187. package/dist/meshopt/meshopt-decoder.d.ts.map +1 -0
  188. package/dist/meshopt/meshopt-decoder.js +118 -0
  189. package/dist/webp/webp.d.ts +7 -0
  190. package/dist/webp/webp.d.ts.map +1 -0
  191. package/dist/webp/webp.js +38 -0
  192. package/package.json +11 -8
  193. package/src/lib/api/{normalize-gltf-v1.js → normalize-gltf-v1.ts} +18 -16
  194. package/src/lib/api/{post-process-gltf.js → post-process-gltf.ts} +41 -3
  195. package/src/lib/encoders/{encode-glb.js → encode-glb.ts} +0 -0
  196. package/src/lib/encoders/{encode-gltf.js → encode-gltf.ts} +0 -0
  197. package/src/lib/extensions/KHR_texture_basisu.ts +2 -2
  198. package/src/lib/parsers/parse-gltf.ts +17 -1
  199. package/src/lib/utils/{assert.js → assert.ts} +1 -1
  200. package/src/lib/utils/{version.js → version.ts} +0 -0
  201. package/dist/dist.min.js +0 -2
  202. package/dist/dist.min.js.map +0 -1
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.parseGLTF = exports.isGLTF = void 0;
23
+ const textures_1 = require("@loaders.gl/textures");
24
+ const images_1 = require("@loaders.gl/images");
25
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
26
+ const assert_1 = require("../utils/assert");
27
+ const resolve_url_1 = require("../gltf-utils/resolve-url");
28
+ const get_typed_array_1 = require("../gltf-utils/get-typed-array");
29
+ const gltf_extensions_1 = require("../api/gltf-extensions");
30
+ const normalize_gltf_v1_1 = require("../api/normalize-gltf-v1");
31
+ const post_process_gltf_1 = require("../api/post-process-gltf");
32
+ const parse_glb_1 = __importStar(require("./parse-glb"));
33
+ // export type GLTFOptions = {
34
+ // gltf?: GLTFParseOptions;
35
+ // };
36
+ function isGLTF(arrayBuffer, options) {
37
+ const byteOffset = 0;
38
+ return (0, parse_glb_1.isGLB)(arrayBuffer, byteOffset, options);
39
+ }
40
+ exports.isGLTF = isGLTF;
41
+ async function parseGLTF(gltf, arrayBufferOrString, byteOffset = 0, options, context) {
42
+ parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
43
+ (0, normalize_gltf_v1_1.normalizeGLTFV1)(gltf, { normalize: options?.gltf?.normalize });
44
+ (0, gltf_extensions_1.preprocessExtensions)(gltf, options, context);
45
+ const promises = [];
46
+ // Load linked buffers asynchronously and decodes base64 buffers in parallel
47
+ if (options?.gltf?.loadBuffers && gltf.json.buffers) {
48
+ await loadBuffers(gltf, options, context);
49
+ }
50
+ if (options?.gltf?.loadImages) {
51
+ const promise = loadImages(gltf, options, context);
52
+ promises.push(promise);
53
+ }
54
+ const promise = (0, gltf_extensions_1.decodeExtensions)(gltf, options, context);
55
+ promises.push(promise);
56
+ // Parallelize image loading and buffer loading/extension decoding
57
+ await Promise.all(promises);
58
+ // Post processing resolves indices to objects, buffers
59
+ return options?.gltf?.postProcess ? (0, post_process_gltf_1.postProcessGLTF)(gltf, options) : gltf;
60
+ }
61
+ exports.parseGLTF = parseGLTF;
62
+ // `data` - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)
63
+ function parseGLTFContainerSync(gltf, data, byteOffset, options) {
64
+ // Initialize gltf container
65
+ if (options.uri) {
66
+ gltf.baseUri = options.uri;
67
+ }
68
+ // If data is binary and starting with magic bytes, assume binary JSON text, convert to string
69
+ if (data instanceof ArrayBuffer && !(0, parse_glb_1.isGLB)(data, byteOffset, options)) {
70
+ const textDecoder = new TextDecoder();
71
+ data = textDecoder.decode(data);
72
+ }
73
+ if (typeof data === 'string') {
74
+ // If string, try to parse as JSON
75
+ gltf.json = (0, loader_utils_1.parseJSON)(data);
76
+ }
77
+ else if (data instanceof ArrayBuffer) {
78
+ // If still ArrayBuffer, parse as GLB container
79
+ const glb = {};
80
+ byteOffset = (0, parse_glb_1.default)(glb, data, byteOffset, options.glb);
81
+ (0, assert_1.assert)(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);
82
+ gltf._glb = glb;
83
+ gltf.json = glb.json;
84
+ }
85
+ else {
86
+ (0, assert_1.assert)(false, 'GLTF: must be ArrayBuffer or string');
87
+ }
88
+ // Populate buffers
89
+ // Create an external buffers array to hold binary data
90
+ const buffers = gltf.json.buffers || [];
91
+ gltf.buffers = new Array(buffers.length).fill(null);
92
+ // Populates JSON and some bin chunk info
93
+ if (gltf._glb && gltf._glb.header.hasBinChunk) {
94
+ const { binChunks } = gltf._glb;
95
+ gltf.buffers[0] = {
96
+ arrayBuffer: binChunks[0].arrayBuffer,
97
+ byteOffset: binChunks[0].byteOffset,
98
+ byteLength: binChunks[0].byteLength
99
+ };
100
+ // TODO - this modifies JSON and is a post processing thing
101
+ // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;
102
+ // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;
103
+ }
104
+ // Populate images
105
+ const images = gltf.json.images || [];
106
+ gltf.images = new Array(images.length).fill({});
107
+ }
108
+ /** Asynchronously fetch and parse buffers, store in buffers array outside of json
109
+ * TODO - traverse gltf and determine which buffers are actually needed
110
+ */
111
+ async function loadBuffers(gltf, options, context) {
112
+ // TODO
113
+ const buffers = gltf.json.buffers || [];
114
+ for (let i = 0; i < buffers.length; ++i) {
115
+ const buffer = buffers[i];
116
+ if (buffer.uri) {
117
+ const { fetch } = context;
118
+ (0, assert_1.assert)(fetch);
119
+ const uri = (0, resolve_url_1.resolveUrl)(buffer.uri, options);
120
+ const response = await context?.fetch?.(uri);
121
+ const arrayBuffer = await response?.arrayBuffer?.();
122
+ gltf.buffers[i] = {
123
+ arrayBuffer,
124
+ byteOffset: 0,
125
+ byteLength: arrayBuffer.byteLength
126
+ };
127
+ delete buffer.uri;
128
+ }
129
+ }
130
+ }
131
+ /**
132
+ * Loads all images
133
+ * TODO - traverse gltf and determine which images are actually needed
134
+ * @param gltf
135
+ * @param options
136
+ * @param context
137
+ * @returns
138
+ */
139
+ async function loadImages(gltf, options, context) {
140
+ const imageIndices = getReferencesImageIndices(gltf);
141
+ const images = gltf.json.images || [];
142
+ const promises = [];
143
+ for (const imageIndex of imageIndices) {
144
+ promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));
145
+ }
146
+ return await Promise.all(promises);
147
+ }
148
+ /** Make sure we only load images that are actually referenced by textures */
149
+ function getReferencesImageIndices(gltf) {
150
+ const imageIndices = new Set();
151
+ const textures = gltf.json.textures || [];
152
+ for (const texture of textures) {
153
+ if (texture.source !== undefined) {
154
+ imageIndices.add(texture.source);
155
+ }
156
+ }
157
+ return Array.from(imageIndices).sort();
158
+ }
159
+ /** Asynchronously fetches and parses one image, store in images array outside of json */
160
+ async function loadImage(gltf, image, index, options, context) {
161
+ const { fetch, parse } = context;
162
+ let arrayBuffer;
163
+ if (image.uri) {
164
+ const uri = (0, resolve_url_1.resolveUrl)(image.uri, options);
165
+ const response = await fetch(uri);
166
+ arrayBuffer = await response.arrayBuffer();
167
+ }
168
+ if (Number.isFinite(image.bufferView)) {
169
+ const array = (0, get_typed_array_1.getTypedArrayForBufferView)(gltf.json, gltf.buffers, image.bufferView);
170
+ arrayBuffer = (0, loader_utils_1.sliceArrayBuffer)(array.buffer, array.byteOffset, array.byteLength);
171
+ }
172
+ (0, assert_1.assert)(arrayBuffer, 'glTF image has no data');
173
+ // Call `parse`
174
+ let parsedImage = await parse(arrayBuffer, [images_1.ImageLoader, textures_1.BasisLoader], { mimeType: image.mimeType, basis: { format: (0, textures_1.selectSupportedBasisFormat)() } }, context);
175
+ if (parsedImage && parsedImage[0]) {
176
+ parsedImage = {
177
+ compressed: true,
178
+ mipmaps: false,
179
+ width: parsedImage[0].width,
180
+ height: parsedImage[0].height,
181
+ data: parsedImage
182
+ };
183
+ }
184
+ // TODO making sure ImageLoader is overridable by using array of loaders
185
+ // const parsedImage = await parse(arrayBuffer, [ImageLoader]);
186
+ // Store the loaded image
187
+ gltf.images = gltf.images || [];
188
+ gltf.images[index] = parsedImage;
189
+ }
@@ -0,0 +1,17 @@
1
+ export declare type GLBBinChunk = {
2
+ byteOffset: number;
3
+ byteLength: number;
4
+ arrayBuffer: ArrayBuffer;
5
+ };
6
+ export declare type GLB = {
7
+ type: string;
8
+ version: number;
9
+ header: {
10
+ byteOffset: number;
11
+ byteLength: number;
12
+ hasBinChunk: boolean;
13
+ };
14
+ json: {};
15
+ binChunks: GLBBinChunk[];
16
+ };
17
+ //# sourceMappingURL=glb-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/glb-types.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,oBAAY,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAGF,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });