@loaders.gl/gltf 3.1.7 → 3.2.0-alpha.2
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.
- package/dist/dist.min.js +223 -227
- package/dist/es5/gltf-writer.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +6 -15
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/es5/lib/parsers/parse-gltf.js +16 -5
- package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/esm/gltf-writer.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js +7 -13
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/esm/lib/parsers/parse-gltf.js +7 -1
- package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/gltf-writer.d.ts +2 -2
- package/dist/gltf-writer.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts +0 -3
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js +6 -15
- package/dist/lib/parsers/parse-gltf.js +8 -1
- package/dist/lib/types/gltf-postprocessed-schema.d.ts +9 -9
- package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.d.ts +2 -2
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/package.json +6 -9
- package/src/gltf-writer.ts +2 -2
- package/src/index.ts +3 -0
- package/src/lib/extensions/EXT_meshopt_compression.ts +11 -18
- package/src/lib/parsers/parse-gltf.ts +7 -1
- package/src/lib/types/gltf-postprocessed-schema.ts +9 -9
- package/src/lib/types/gltf-types.ts +16 -2
package/dist/dist.min.js
CHANGED
|
@@ -37,20 +37,43 @@
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
// ../
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
41
|
+
function assert(condition, message) {
|
|
42
|
+
if (!condition) {
|
|
43
|
+
throw new Error(message || "loader assertion failed.");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
var init_assert = __esm({
|
|
47
|
+
"../loader-utils/src/lib/env-utils/assert.ts"() {
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// ../loader-utils/src/lib/env-utils/globals.ts
|
|
52
|
+
var globals, self_, window_, global_, document_, isBrowser, matches, nodeVersion;
|
|
53
|
+
var init_globals = __esm({
|
|
54
|
+
"../loader-utils/src/lib/env-utils/globals.ts"() {
|
|
55
|
+
globals = {
|
|
56
|
+
self: typeof self !== "undefined" && self,
|
|
57
|
+
window: typeof window !== "undefined" && window,
|
|
58
|
+
global: typeof global !== "undefined" && global,
|
|
59
|
+
document: typeof document !== "undefined" && document
|
|
60
|
+
};
|
|
61
|
+
self_ = globals.self || globals.window || globals.global || {};
|
|
62
|
+
window_ = globals.window || globals.self || globals.global || {};
|
|
63
|
+
global_ = globals.global || globals.self || globals.window || {};
|
|
64
|
+
document_ = globals.document || {};
|
|
65
|
+
isBrowser = Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser);
|
|
66
|
+
matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
67
|
+
nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
45
68
|
}
|
|
46
69
|
});
|
|
47
70
|
|
|
48
71
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
49
|
-
var DEFAULT_VERSION,
|
|
50
|
-
var
|
|
72
|
+
var DEFAULT_VERSION, VERSION2;
|
|
73
|
+
var init_version2 = __esm({
|
|
51
74
|
"../worker-utils/src/lib/env-utils/version.ts"() {
|
|
52
|
-
DEFAULT_VERSION = "
|
|
53
|
-
|
|
75
|
+
DEFAULT_VERSION = "beta";
|
|
76
|
+
VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
|
|
54
77
|
if (typeof __VERSION__ === "undefined") {
|
|
55
78
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
56
79
|
}
|
|
@@ -58,35 +81,35 @@
|
|
|
58
81
|
});
|
|
59
82
|
|
|
60
83
|
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
61
|
-
function
|
|
84
|
+
function assert2(condition, message) {
|
|
62
85
|
if (!condition) {
|
|
63
86
|
throw new Error(message || "loaders.gl assertion failed.");
|
|
64
87
|
}
|
|
65
88
|
}
|
|
66
|
-
var
|
|
89
|
+
var init_assert2 = __esm({
|
|
67
90
|
"../worker-utils/src/lib/env-utils/assert.ts"() {
|
|
68
91
|
}
|
|
69
92
|
});
|
|
70
93
|
|
|
71
94
|
// ../worker-utils/src/lib/env-utils/globals.ts
|
|
72
|
-
var
|
|
73
|
-
var
|
|
95
|
+
var globals2, self_2, window_2, global_2, document_2, isBrowser2, isWorker, isMobile, matches2, nodeVersion2;
|
|
96
|
+
var init_globals2 = __esm({
|
|
74
97
|
"../worker-utils/src/lib/env-utils/globals.ts"() {
|
|
75
|
-
|
|
98
|
+
globals2 = {
|
|
76
99
|
self: typeof self !== "undefined" && self,
|
|
77
100
|
window: typeof window !== "undefined" && window,
|
|
78
101
|
global: typeof global !== "undefined" && global,
|
|
79
102
|
document: typeof document !== "undefined" && document
|
|
80
103
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
104
|
+
self_2 = globals2.self || globals2.window || globals2.global || {};
|
|
105
|
+
window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
106
|
+
global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
107
|
+
document_2 = globals2.document || {};
|
|
108
|
+
isBrowser2 = typeof process !== "object" || String(process) !== "[object process]" || process.browser;
|
|
86
109
|
isWorker = typeof importScripts === "function";
|
|
87
110
|
isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
|
|
88
|
-
|
|
89
|
-
|
|
111
|
+
matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
112
|
+
nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
|
|
90
113
|
}
|
|
91
114
|
});
|
|
92
115
|
|
|
@@ -112,12 +135,12 @@
|
|
|
112
135
|
if (modules[library]) {
|
|
113
136
|
return modules[library];
|
|
114
137
|
}
|
|
115
|
-
if (!
|
|
138
|
+
if (!isBrowser2) {
|
|
116
139
|
return `modules/${moduleName}/dist/libs/${library}`;
|
|
117
140
|
}
|
|
118
141
|
if (options.CDN) {
|
|
119
|
-
|
|
120
|
-
return `${options.CDN}/${moduleName}@${
|
|
142
|
+
assert2(options.CDN.startsWith("http"));
|
|
143
|
+
return `${options.CDN}/${moduleName}@${VERSION3}/dist/libs/${library}`;
|
|
121
144
|
}
|
|
122
145
|
if (isWorker) {
|
|
123
146
|
return `../src/libs/${library}`;
|
|
@@ -129,7 +152,7 @@
|
|
|
129
152
|
const response2 = await fetch(libraryUrl);
|
|
130
153
|
return await response2.arrayBuffer();
|
|
131
154
|
}
|
|
132
|
-
if (!
|
|
155
|
+
if (!isBrowser2) {
|
|
133
156
|
try {
|
|
134
157
|
return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
|
|
135
158
|
} catch {
|
|
@@ -144,11 +167,11 @@
|
|
|
144
167
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
145
168
|
}
|
|
146
169
|
function loadLibraryFromString(scriptSource, id) {
|
|
147
|
-
if (!
|
|
170
|
+
if (!isBrowser2) {
|
|
148
171
|
return node.requireFromString && node.requireFromString(scriptSource, id);
|
|
149
172
|
}
|
|
150
173
|
if (isWorker) {
|
|
151
|
-
eval.call(
|
|
174
|
+
eval.call(global_2, scriptSource);
|
|
152
175
|
return null;
|
|
153
176
|
}
|
|
154
177
|
const script = document.createElement("script");
|
|
@@ -161,15 +184,15 @@
|
|
|
161
184
|
document.body.appendChild(script);
|
|
162
185
|
return null;
|
|
163
186
|
}
|
|
164
|
-
var node, LATEST,
|
|
187
|
+
var node, LATEST, VERSION3, loadLibraryPromises;
|
|
165
188
|
var init_library_utils = __esm({
|
|
166
189
|
"../worker-utils/src/lib/library-utils/library-utils.ts"() {
|
|
167
|
-
|
|
190
|
+
init_globals2();
|
|
168
191
|
node = __toModule(require_require_utils());
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
LATEST = "
|
|
172
|
-
|
|
192
|
+
init_assert2();
|
|
193
|
+
init_version2();
|
|
194
|
+
LATEST = "beta";
|
|
195
|
+
VERSION3 = typeof VERSION2 !== "undefined" ? VERSION2 : LATEST;
|
|
173
196
|
loadLibraryPromises = {};
|
|
174
197
|
}
|
|
175
198
|
});
|
|
@@ -181,6 +204,130 @@
|
|
|
181
204
|
}
|
|
182
205
|
});
|
|
183
206
|
|
|
207
|
+
// ../loader-utils/src/lib/binary-utils/get-first-characters.ts
|
|
208
|
+
function getFirstCharacters(data, length = 5) {
|
|
209
|
+
if (typeof data === "string") {
|
|
210
|
+
return data.slice(0, length);
|
|
211
|
+
} else if (ArrayBuffer.isView(data)) {
|
|
212
|
+
return getMagicString(data.buffer, data.byteOffset, length);
|
|
213
|
+
} else if (data instanceof ArrayBuffer) {
|
|
214
|
+
const byteOffset = 0;
|
|
215
|
+
return getMagicString(data, byteOffset, length);
|
|
216
|
+
}
|
|
217
|
+
return "";
|
|
218
|
+
}
|
|
219
|
+
function getMagicString(arrayBuffer, byteOffset, length) {
|
|
220
|
+
if (arrayBuffer.byteLength <= byteOffset + length) {
|
|
221
|
+
return "";
|
|
222
|
+
}
|
|
223
|
+
const dataView = new DataView(arrayBuffer);
|
|
224
|
+
let magic = "";
|
|
225
|
+
for (let i2 = 0; i2 < length; i2++) {
|
|
226
|
+
magic += String.fromCharCode(dataView.getUint8(byteOffset + i2));
|
|
227
|
+
}
|
|
228
|
+
return magic;
|
|
229
|
+
}
|
|
230
|
+
var init_get_first_characters = __esm({
|
|
231
|
+
"../loader-utils/src/lib/binary-utils/get-first-characters.ts"() {
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
// ../loader-utils/src/lib/parser-utils/parse-json.ts
|
|
236
|
+
function parseJSON(string) {
|
|
237
|
+
try {
|
|
238
|
+
return JSON.parse(string);
|
|
239
|
+
} catch (_) {
|
|
240
|
+
throw new Error(`Failed to parse JSON from data starting with "${getFirstCharacters(string)}"`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
var init_parse_json = __esm({
|
|
244
|
+
"../loader-utils/src/lib/parser-utils/parse-json.ts"() {
|
|
245
|
+
init_get_first_characters();
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
// ../loader-utils/src/lib/binary-utils/array-buffer-utils.ts
|
|
250
|
+
function sliceArrayBuffer(arrayBuffer, byteOffset, byteLength) {
|
|
251
|
+
const subArray = byteLength !== void 0 ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength) : new Uint8Array(arrayBuffer).subarray(byteOffset);
|
|
252
|
+
const arrayCopy = new Uint8Array(subArray);
|
|
253
|
+
return arrayCopy.buffer;
|
|
254
|
+
}
|
|
255
|
+
var init_array_buffer_utils = __esm({
|
|
256
|
+
"../loader-utils/src/lib/binary-utils/array-buffer-utils.ts"() {
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// ../loader-utils/src/lib/binary-utils/memory-copy-utils.ts
|
|
261
|
+
function padToNBytes(byteLength, padding) {
|
|
262
|
+
assert(byteLength >= 0);
|
|
263
|
+
assert(padding > 0);
|
|
264
|
+
return byteLength + (padding - 1) & ~(padding - 1);
|
|
265
|
+
}
|
|
266
|
+
function copyToArray(source, target, targetOffset) {
|
|
267
|
+
let sourceArray;
|
|
268
|
+
if (source instanceof ArrayBuffer) {
|
|
269
|
+
sourceArray = new Uint8Array(source);
|
|
270
|
+
} else {
|
|
271
|
+
const srcByteOffset = source.byteOffset;
|
|
272
|
+
const srcByteLength = source.byteLength;
|
|
273
|
+
sourceArray = new Uint8Array(source.buffer || source.arrayBuffer, srcByteOffset, srcByteLength);
|
|
274
|
+
}
|
|
275
|
+
target.set(sourceArray, targetOffset);
|
|
276
|
+
return targetOffset + padToNBytes(sourceArray.byteLength, 4);
|
|
277
|
+
}
|
|
278
|
+
var init_memory_copy_utils = __esm({
|
|
279
|
+
"../loader-utils/src/lib/binary-utils/memory-copy-utils.ts"() {
|
|
280
|
+
init_assert();
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
// ../loader-utils/src/lib/binary-utils/binary-copy-utils.ts
|
|
285
|
+
function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
|
|
286
|
+
const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);
|
|
287
|
+
const padLength = paddedLength - sourceBuffer.byteLength;
|
|
288
|
+
if (dataView) {
|
|
289
|
+
const targetArray = new Uint8Array(dataView.buffer, dataView.byteOffset + byteOffset, sourceBuffer.byteLength);
|
|
290
|
+
const sourceArray = new Uint8Array(sourceBuffer);
|
|
291
|
+
targetArray.set(sourceArray);
|
|
292
|
+
for (let i2 = 0; i2 < padLength; ++i2) {
|
|
293
|
+
dataView.setUint8(byteOffset + sourceBuffer.byteLength + i2, 32);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
byteOffset += paddedLength;
|
|
297
|
+
return byteOffset;
|
|
298
|
+
}
|
|
299
|
+
function copyPaddedStringToDataView(dataView, byteOffset, string, padding) {
|
|
300
|
+
const textEncoder = new TextEncoder();
|
|
301
|
+
const stringBuffer = textEncoder.encode(string);
|
|
302
|
+
byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
|
|
303
|
+
return byteOffset;
|
|
304
|
+
}
|
|
305
|
+
var init_binary_copy_utils = __esm({
|
|
306
|
+
"../loader-utils/src/lib/binary-utils/binary-copy-utils.ts"() {
|
|
307
|
+
init_memory_copy_utils();
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
// ../loader-utils/src/index.ts
|
|
312
|
+
var init_src2 = __esm({
|
|
313
|
+
"../loader-utils/src/index.ts"() {
|
|
314
|
+
init_assert();
|
|
315
|
+
init_globals();
|
|
316
|
+
init_parse_json();
|
|
317
|
+
init_array_buffer_utils();
|
|
318
|
+
init_memory_copy_utils();
|
|
319
|
+
init_binary_copy_utils();
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
// ../textures/src/lib/utils/version.ts
|
|
324
|
+
var VERSION4;
|
|
325
|
+
var init_version3 = __esm({
|
|
326
|
+
"../textures/src/lib/utils/version.ts"() {
|
|
327
|
+
VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
|
|
184
331
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
185
332
|
async function loadBasisTrascoderModule(options) {
|
|
186
333
|
const modules = options.modules || {};
|
|
@@ -248,7 +395,7 @@
|
|
|
248
395
|
var init_basis_module_loader = __esm({
|
|
249
396
|
"../textures/src/lib/parsers/basis-module-loader.ts"() {
|
|
250
397
|
init_src();
|
|
251
|
-
VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "
|
|
398
|
+
VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
252
399
|
BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION5}/dist/libs/basis_encoder.wasm`;
|
|
253
400
|
BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION5}/dist/libs/basis_encoder.js`;
|
|
254
401
|
}
|
|
@@ -445,7 +592,7 @@
|
|
|
445
592
|
const basisFile = new BasisFile(new Uint8Array(data));
|
|
446
593
|
try {
|
|
447
594
|
if (!basisFile.startTranscoding()) {
|
|
448
|
-
|
|
595
|
+
throw new Error("Failed to start basis transcoding");
|
|
449
596
|
}
|
|
450
597
|
const imageCount = basisFile.getNumImages();
|
|
451
598
|
const images = [];
|
|
@@ -471,22 +618,22 @@
|
|
|
471
618
|
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
472
619
|
const decodedData = new Uint8Array(decodedSize);
|
|
473
620
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
474
|
-
|
|
621
|
+
throw new Error("failed to start Basis transcoding");
|
|
475
622
|
}
|
|
476
623
|
return {
|
|
477
624
|
width,
|
|
478
625
|
height,
|
|
479
626
|
data: decodedData,
|
|
480
627
|
compressed,
|
|
481
|
-
|
|
482
|
-
|
|
628
|
+
format,
|
|
629
|
+
hasAlpha
|
|
483
630
|
};
|
|
484
631
|
}
|
|
485
632
|
function parseKTX2File(KTX2File, data, options) {
|
|
486
633
|
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
487
634
|
try {
|
|
488
635
|
if (!ktx2File.startTranscoding()) {
|
|
489
|
-
|
|
636
|
+
throw new Error("failed to start KTX2 transcoding");
|
|
490
637
|
}
|
|
491
638
|
const levelsCount = ktx2File.getLevels();
|
|
492
639
|
const levels = [];
|
|
@@ -494,7 +641,7 @@
|
|
|
494
641
|
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
495
642
|
break;
|
|
496
643
|
}
|
|
497
|
-
return levels;
|
|
644
|
+
return [levels];
|
|
498
645
|
} finally {
|
|
499
646
|
ktx2File.close();
|
|
500
647
|
ktx2File.delete();
|
|
@@ -506,14 +653,14 @@
|
|
|
506
653
|
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
|
|
507
654
|
const decodedData = new Uint8Array(decodedSize);
|
|
508
655
|
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
|
|
509
|
-
|
|
656
|
+
throw new Error("Failed to transcode KTX2 image");
|
|
510
657
|
}
|
|
511
658
|
return {
|
|
512
659
|
width,
|
|
513
660
|
height,
|
|
514
661
|
data: decodedData,
|
|
515
662
|
compressed,
|
|
516
|
-
alphaFlag,
|
|
663
|
+
hasAlpha: alphaFlag,
|
|
517
664
|
format
|
|
518
665
|
};
|
|
519
666
|
}
|
|
@@ -606,13 +753,13 @@
|
|
|
606
753
|
var BasisWorkerLoader, BasisLoader;
|
|
607
754
|
var init_basis_loader = __esm({
|
|
608
755
|
"../textures/src/basis-loader.ts"() {
|
|
609
|
-
|
|
756
|
+
init_version3();
|
|
610
757
|
init_parse_basis();
|
|
611
758
|
BasisWorkerLoader = {
|
|
612
759
|
name: "Basis",
|
|
613
760
|
id: "basis",
|
|
614
761
|
module: "textures",
|
|
615
|
-
version:
|
|
762
|
+
version: VERSION4,
|
|
616
763
|
worker: true,
|
|
617
764
|
extensions: ["basis", "ktx2"],
|
|
618
765
|
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
@@ -634,153 +781,6 @@
|
|
|
634
781
|
}
|
|
635
782
|
});
|
|
636
783
|
|
|
637
|
-
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
638
|
-
function assert2(condition, message) {
|
|
639
|
-
if (!condition) {
|
|
640
|
-
throw new Error(message || "loader assertion failed.");
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
var init_assert2 = __esm({
|
|
644
|
-
"../loader-utils/src/lib/env-utils/assert.ts"() {
|
|
645
|
-
}
|
|
646
|
-
});
|
|
647
|
-
|
|
648
|
-
// ../loader-utils/src/lib/env-utils/globals.ts
|
|
649
|
-
var globals2, self_2, window_2, global_2, document_2, isBrowser2, matches2, nodeVersion2;
|
|
650
|
-
var init_globals2 = __esm({
|
|
651
|
-
"../loader-utils/src/lib/env-utils/globals.ts"() {
|
|
652
|
-
globals2 = {
|
|
653
|
-
self: typeof self !== "undefined" && self,
|
|
654
|
-
window: typeof window !== "undefined" && window,
|
|
655
|
-
global: typeof global !== "undefined" && global,
|
|
656
|
-
document: typeof document !== "undefined" && document
|
|
657
|
-
};
|
|
658
|
-
self_2 = globals2.self || globals2.window || globals2.global || {};
|
|
659
|
-
window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
660
|
-
global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
661
|
-
document_2 = globals2.document || {};
|
|
662
|
-
isBrowser2 = Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser);
|
|
663
|
-
matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
664
|
-
nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
|
|
665
|
-
}
|
|
666
|
-
});
|
|
667
|
-
|
|
668
|
-
// ../loader-utils/src/lib/binary-utils/get-first-characters.ts
|
|
669
|
-
function getFirstCharacters(data, length = 5) {
|
|
670
|
-
if (typeof data === "string") {
|
|
671
|
-
return data.slice(0, length);
|
|
672
|
-
} else if (ArrayBuffer.isView(data)) {
|
|
673
|
-
return getMagicString(data.buffer, data.byteOffset, length);
|
|
674
|
-
} else if (data instanceof ArrayBuffer) {
|
|
675
|
-
const byteOffset = 0;
|
|
676
|
-
return getMagicString(data, byteOffset, length);
|
|
677
|
-
}
|
|
678
|
-
return "";
|
|
679
|
-
}
|
|
680
|
-
function getMagicString(arrayBuffer, byteOffset, length) {
|
|
681
|
-
if (arrayBuffer.byteLength <= byteOffset + length) {
|
|
682
|
-
return "";
|
|
683
|
-
}
|
|
684
|
-
const dataView = new DataView(arrayBuffer);
|
|
685
|
-
let magic = "";
|
|
686
|
-
for (let i2 = 0; i2 < length; i2++) {
|
|
687
|
-
magic += String.fromCharCode(dataView.getUint8(byteOffset + i2));
|
|
688
|
-
}
|
|
689
|
-
return magic;
|
|
690
|
-
}
|
|
691
|
-
var init_get_first_characters = __esm({
|
|
692
|
-
"../loader-utils/src/lib/binary-utils/get-first-characters.ts"() {
|
|
693
|
-
}
|
|
694
|
-
});
|
|
695
|
-
|
|
696
|
-
// ../loader-utils/src/lib/parser-utils/parse-json.ts
|
|
697
|
-
function parseJSON(string) {
|
|
698
|
-
try {
|
|
699
|
-
return JSON.parse(string);
|
|
700
|
-
} catch (_) {
|
|
701
|
-
throw new Error(`Failed to parse JSON from data starting with "${getFirstCharacters(string)}"`);
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
var init_parse_json = __esm({
|
|
705
|
-
"../loader-utils/src/lib/parser-utils/parse-json.ts"() {
|
|
706
|
-
init_get_first_characters();
|
|
707
|
-
}
|
|
708
|
-
});
|
|
709
|
-
|
|
710
|
-
// ../loader-utils/src/lib/binary-utils/array-buffer-utils.ts
|
|
711
|
-
function sliceArrayBuffer(arrayBuffer, byteOffset, byteLength) {
|
|
712
|
-
const subArray = byteLength !== void 0 ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength) : new Uint8Array(arrayBuffer).subarray(byteOffset);
|
|
713
|
-
const arrayCopy = new Uint8Array(subArray);
|
|
714
|
-
return arrayCopy.buffer;
|
|
715
|
-
}
|
|
716
|
-
var init_array_buffer_utils = __esm({
|
|
717
|
-
"../loader-utils/src/lib/binary-utils/array-buffer-utils.ts"() {
|
|
718
|
-
}
|
|
719
|
-
});
|
|
720
|
-
|
|
721
|
-
// ../loader-utils/src/lib/binary-utils/memory-copy-utils.ts
|
|
722
|
-
function padToNBytes(byteLength, padding) {
|
|
723
|
-
assert2(byteLength >= 0);
|
|
724
|
-
assert2(padding > 0);
|
|
725
|
-
return byteLength + (padding - 1) & ~(padding - 1);
|
|
726
|
-
}
|
|
727
|
-
function copyToArray(source, target, targetOffset) {
|
|
728
|
-
let sourceArray;
|
|
729
|
-
if (source instanceof ArrayBuffer) {
|
|
730
|
-
sourceArray = new Uint8Array(source);
|
|
731
|
-
} else {
|
|
732
|
-
const srcByteOffset = source.byteOffset;
|
|
733
|
-
const srcByteLength = source.byteLength;
|
|
734
|
-
sourceArray = new Uint8Array(source.buffer || source.arrayBuffer, srcByteOffset, srcByteLength);
|
|
735
|
-
}
|
|
736
|
-
target.set(sourceArray, targetOffset);
|
|
737
|
-
return targetOffset + padToNBytes(sourceArray.byteLength, 4);
|
|
738
|
-
}
|
|
739
|
-
var init_memory_copy_utils = __esm({
|
|
740
|
-
"../loader-utils/src/lib/binary-utils/memory-copy-utils.ts"() {
|
|
741
|
-
init_assert2();
|
|
742
|
-
}
|
|
743
|
-
});
|
|
744
|
-
|
|
745
|
-
// ../loader-utils/src/lib/binary-utils/binary-copy-utils.ts
|
|
746
|
-
function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
|
|
747
|
-
const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);
|
|
748
|
-
const padLength = paddedLength - sourceBuffer.byteLength;
|
|
749
|
-
if (dataView) {
|
|
750
|
-
const targetArray = new Uint8Array(dataView.buffer, dataView.byteOffset + byteOffset, sourceBuffer.byteLength);
|
|
751
|
-
const sourceArray = new Uint8Array(sourceBuffer);
|
|
752
|
-
targetArray.set(sourceArray);
|
|
753
|
-
for (let i2 = 0; i2 < padLength; ++i2) {
|
|
754
|
-
dataView.setUint8(byteOffset + sourceBuffer.byteLength + i2, 32);
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
byteOffset += paddedLength;
|
|
758
|
-
return byteOffset;
|
|
759
|
-
}
|
|
760
|
-
function copyPaddedStringToDataView(dataView, byteOffset, string, padding) {
|
|
761
|
-
const textEncoder = new TextEncoder();
|
|
762
|
-
const stringBuffer = textEncoder.encode(string);
|
|
763
|
-
byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
|
|
764
|
-
return byteOffset;
|
|
765
|
-
}
|
|
766
|
-
var init_binary_copy_utils = __esm({
|
|
767
|
-
"../loader-utils/src/lib/binary-utils/binary-copy-utils.ts"() {
|
|
768
|
-
init_memory_copy_utils();
|
|
769
|
-
}
|
|
770
|
-
});
|
|
771
|
-
|
|
772
|
-
// ../loader-utils/src/index.ts
|
|
773
|
-
var init_src2 = __esm({
|
|
774
|
-
"../loader-utils/src/index.ts"() {
|
|
775
|
-
init_assert2();
|
|
776
|
-
init_globals2();
|
|
777
|
-
init_parse_json();
|
|
778
|
-
init_array_buffer_utils();
|
|
779
|
-
init_memory_copy_utils();
|
|
780
|
-
init_binary_copy_utils();
|
|
781
|
-
}
|
|
782
|
-
});
|
|
783
|
-
|
|
784
784
|
// ../images/src/lib/utils/version.ts
|
|
785
785
|
var VERSION6;
|
|
786
786
|
var init_version4 = __esm({
|
|
@@ -824,7 +824,7 @@
|
|
|
824
824
|
IMAGE_SUPPORTED = typeof Image !== "undefined";
|
|
825
825
|
IMAGE_BITMAP_SUPPORTED = typeof ImageBitmap !== "undefined";
|
|
826
826
|
NODE_IMAGE_SUPPORTED = Boolean(_parseImageNode);
|
|
827
|
-
DATA_SUPPORTED =
|
|
827
|
+
DATA_SUPPORTED = isBrowser ? true : NODE_IMAGE_SUPPORTED;
|
|
828
828
|
}
|
|
829
829
|
});
|
|
830
830
|
|
|
@@ -1096,7 +1096,7 @@
|
|
|
1096
1096
|
async function parseToNodeImage(arrayBuffer, options) {
|
|
1097
1097
|
const { mimeType } = getBinaryImageMetadata(arrayBuffer) || {};
|
|
1098
1098
|
const _parseImageNode2 = globalThis._parseImageNode;
|
|
1099
|
-
|
|
1099
|
+
assert(_parseImageNode2);
|
|
1100
1100
|
return await _parseImageNode2(arrayBuffer, mimeType);
|
|
1101
1101
|
}
|
|
1102
1102
|
var init_parse_to_node_image = __esm({
|
|
@@ -1125,7 +1125,7 @@
|
|
|
1125
1125
|
image = await parseToNodeImage(arrayBuffer, options);
|
|
1126
1126
|
break;
|
|
1127
1127
|
default:
|
|
1128
|
-
|
|
1128
|
+
assert(false);
|
|
1129
1129
|
}
|
|
1130
1130
|
if (imageType === "data") {
|
|
1131
1131
|
image = getImageData(image);
|
|
@@ -1202,9 +1202,9 @@
|
|
|
1202
1202
|
case "image/webp":
|
|
1203
1203
|
return checkWebPSupport();
|
|
1204
1204
|
case "image/svg":
|
|
1205
|
-
return
|
|
1205
|
+
return isBrowser;
|
|
1206
1206
|
default:
|
|
1207
|
-
if (!
|
|
1207
|
+
if (!isBrowser) {
|
|
1208
1208
|
const { _parseImageNode: _parseImageNode2 } = globalThis;
|
|
1209
1209
|
return Boolean(_parseImageNode2) && NODE_FORMAT_SUPPORT.includes(mimeType);
|
|
1210
1210
|
}
|
|
@@ -1212,7 +1212,7 @@
|
|
|
1212
1212
|
}
|
|
1213
1213
|
}
|
|
1214
1214
|
function checkWebPSupport() {
|
|
1215
|
-
if (!
|
|
1215
|
+
if (!isBrowser) {
|
|
1216
1216
|
return false;
|
|
1217
1217
|
}
|
|
1218
1218
|
try {
|
|
@@ -1753,9 +1753,6 @@
|
|
|
1753
1753
|
});
|
|
1754
1754
|
|
|
1755
1755
|
// src/meshopt/meshopt-decoder.ts
|
|
1756
|
-
function isMeshoptSupported() {
|
|
1757
|
-
return isWebAssemblySupported;
|
|
1758
|
-
}
|
|
1759
1756
|
async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = "NONE") {
|
|
1760
1757
|
const instance = await loadWasmInstance();
|
|
1761
1758
|
decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || "NONE"]]);
|
|
@@ -1805,10 +1802,9 @@
|
|
|
1805
1802
|
throw new Error(`Malformed buffer data: ${res}`);
|
|
1806
1803
|
}
|
|
1807
1804
|
}
|
|
1808
|
-
var
|
|
1805
|
+
var wasm_base, wasm_simd, detector, wasmpack, FILTERS, DECODERS, wasmPromise;
|
|
1809
1806
|
var init_meshopt_decoder = __esm({
|
|
1810
1807
|
"src/meshopt/meshopt-decoder.ts"() {
|
|
1811
|
-
isWebAssemblySupported = typeof WebAssembly !== "object";
|
|
1812
1808
|
wasm_base = "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";
|
|
1813
1809
|
wasm_simd = "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";
|
|
1814
1810
|
detector = new Uint8Array([
|
|
@@ -1951,15 +1947,8 @@
|
|
|
1951
1947
|
var EXT_meshopt_compression_exports = {};
|
|
1952
1948
|
__export(EXT_meshopt_compression_exports, {
|
|
1953
1949
|
decode: () => decode2,
|
|
1954
|
-
name: () => name
|
|
1955
|
-
preprocess: () => preprocess
|
|
1950
|
+
name: () => name
|
|
1956
1951
|
});
|
|
1957
|
-
function preprocess(gltfData) {
|
|
1958
|
-
const scenegraph = new GLTFScenegraph(gltfData);
|
|
1959
|
-
if (scenegraph.getRequiredExtensions().includes(EXT_MESHOPT_COMPRESSION) && !isMeshoptSupported()) {
|
|
1960
|
-
throw new Error(`gltf: Required extension ${EXT_MESHOPT_COMPRESSION} not supported by browser`);
|
|
1961
|
-
}
|
|
1962
|
-
}
|
|
1963
1952
|
async function decode2(gltfData, options) {
|
|
1964
1953
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
1965
1954
|
if (!options?.gltf?.decompressMeshes) {
|
|
@@ -1975,18 +1964,19 @@
|
|
|
1975
1964
|
async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
1976
1965
|
const meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
1977
1966
|
if (meshoptExtension) {
|
|
1978
|
-
const buffer = bufferView.buffer;
|
|
1979
1967
|
const {
|
|
1980
1968
|
byteOffset = 0,
|
|
1981
1969
|
byteLength = 0,
|
|
1982
1970
|
byteStride,
|
|
1983
1971
|
count,
|
|
1984
1972
|
mode,
|
|
1985
|
-
filter = "NONE"
|
|
1973
|
+
filter = "NONE",
|
|
1974
|
+
buffer: bufferIndex
|
|
1986
1975
|
} = meshoptExtension;
|
|
1987
|
-
const
|
|
1988
|
-
const
|
|
1989
|
-
|
|
1976
|
+
const buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
1977
|
+
const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
1978
|
+
const result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
1979
|
+
await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);
|
|
1990
1980
|
return result;
|
|
1991
1981
|
}
|
|
1992
1982
|
return null;
|
|
@@ -2005,9 +1995,9 @@
|
|
|
2005
1995
|
var EXT_texture_webp_exports = {};
|
|
2006
1996
|
__export(EXT_texture_webp_exports, {
|
|
2007
1997
|
name: () => name2,
|
|
2008
|
-
preprocess: () =>
|
|
1998
|
+
preprocess: () => preprocess
|
|
2009
1999
|
});
|
|
2010
|
-
function
|
|
2000
|
+
function preprocess(gltfData, options) {
|
|
2011
2001
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
2012
2002
|
if (!_isImageFormatSupported("image/webp")) {
|
|
2013
2003
|
if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
|
|
@@ -2039,9 +2029,9 @@
|
|
|
2039
2029
|
var KHR_texture_basisu_exports = {};
|
|
2040
2030
|
__export(KHR_texture_basisu_exports, {
|
|
2041
2031
|
name: () => name3,
|
|
2042
|
-
preprocess: () =>
|
|
2032
|
+
preprocess: () => preprocess2
|
|
2043
2033
|
});
|
|
2044
|
-
function
|
|
2034
|
+
function preprocess2(gltfData, options) {
|
|
2045
2035
|
const scene = new GLTFScenegraph(gltfData);
|
|
2046
2036
|
const { json } = scene;
|
|
2047
2037
|
for (const texture of json.textures || []) {
|
|
@@ -3205,9 +3195,9 @@
|
|
|
3205
3195
|
decode: () => decode3,
|
|
3206
3196
|
encode: () => encode,
|
|
3207
3197
|
name: () => name4,
|
|
3208
|
-
preprocess: () =>
|
|
3198
|
+
preprocess: () => preprocess3
|
|
3209
3199
|
});
|
|
3210
|
-
function
|
|
3200
|
+
function preprocess3(gltfData, options, context) {
|
|
3211
3201
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
3212
3202
|
for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {
|
|
3213
3203
|
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
@@ -3511,7 +3501,7 @@
|
|
|
3511
3501
|
});
|
|
3512
3502
|
|
|
3513
3503
|
// src/lib/extensions/KHR_binary_gltf.ts
|
|
3514
|
-
function
|
|
3504
|
+
function preprocess4(gltfData) {
|
|
3515
3505
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
3516
3506
|
const { json } = gltfScenegraph;
|
|
3517
3507
|
for (const image of json.images || []) {
|
|
@@ -3606,7 +3596,7 @@
|
|
|
3606
3596
|
console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail.");
|
|
3607
3597
|
this._addAsset(json);
|
|
3608
3598
|
this._convertTopLevelObjectsToArrays(json);
|
|
3609
|
-
|
|
3599
|
+
preprocess4(gltf);
|
|
3610
3600
|
this._convertObjectIdsToArrayIndices(json);
|
|
3611
3601
|
this._updateObjects(json);
|
|
3612
3602
|
this._updateMaterial(json);
|
|
@@ -4093,18 +4083,18 @@
|
|
|
4093
4083
|
}
|
|
4094
4084
|
}
|
|
4095
4085
|
function parseGLBV1(glb, dataView, byteOffset) {
|
|
4096
|
-
|
|
4086
|
+
assert(glb.header.byteLength > GLB_FILE_HEADER_SIZE + GLB_CHUNK_HEADER_SIZE);
|
|
4097
4087
|
const contentLength = dataView.getUint32(byteOffset + 0, LE);
|
|
4098
4088
|
const contentFormat = dataView.getUint32(byteOffset + 4, LE);
|
|
4099
4089
|
byteOffset += GLB_CHUNK_HEADER_SIZE;
|
|
4100
|
-
|
|
4090
|
+
assert(contentFormat === GLB_V1_CONTENT_FORMAT_JSON);
|
|
4101
4091
|
parseJSONChunk(glb, dataView, byteOffset, contentLength);
|
|
4102
4092
|
byteOffset += contentLength;
|
|
4103
4093
|
byteOffset += parseBINChunk(glb, dataView, byteOffset, glb.header.byteLength);
|
|
4104
4094
|
return byteOffset;
|
|
4105
4095
|
}
|
|
4106
4096
|
function parseGLBV2(glb, dataView, byteOffset, options) {
|
|
4107
|
-
|
|
4097
|
+
assert(glb.header.byteLength > GLB_FILE_HEADER_SIZE + GLB_CHUNK_HEADER_SIZE);
|
|
4108
4098
|
parseGLBChunksSync(glb, dataView, byteOffset, options);
|
|
4109
4099
|
return byteOffset + glb.header.byteLength;
|
|
4110
4100
|
}
|
|
@@ -4235,6 +4225,12 @@
|
|
|
4235
4225
|
byteLength: arrayBuffer.byteLength
|
|
4236
4226
|
};
|
|
4237
4227
|
delete buffer.uri;
|
|
4228
|
+
} else if (gltf.buffers[i2] === null) {
|
|
4229
|
+
gltf.buffers[i2] = {
|
|
4230
|
+
arrayBuffer: new ArrayBuffer(buffer.byteLength),
|
|
4231
|
+
byteOffset: 0,
|
|
4232
|
+
byteLength: buffer.byteLength
|
|
4233
|
+
};
|
|
4238
4234
|
}
|
|
4239
4235
|
}
|
|
4240
4236
|
}
|
|
@@ -4277,7 +4273,7 @@
|
|
|
4277
4273
|
mipmaps: false,
|
|
4278
4274
|
width: parsedImage[0].width,
|
|
4279
4275
|
height: parsedImage[0].height,
|
|
4280
|
-
data: parsedImage
|
|
4276
|
+
data: parsedImage[0]
|
|
4281
4277
|
};
|
|
4282
4278
|
}
|
|
4283
4279
|
gltf.images = gltf.images || [];
|