@vctrl/hooks 0.4.0 → 0.6.0
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/README.md +15 -8
- package/index.cjs.js +1 -1
- package/index.d.ts +1 -0
- package/index.es.js +6 -4
- package/{model-context-BmfXsk0j.cjs → model-context-DLPGvQ8f.cjs} +5 -5
- package/{model-context-qjRd1gfd.js → model-context-hgFMs-nK.js} +460 -388
- package/package.json +1 -1
- package/use-export-model-BBfXwJbA.cjs +12 -0
- package/use-export-model-CUUL3YCH.js +2465 -0
- package/use-export-model.cjs.js +1 -12
- package/use-export-model.es.js +2 -2463
- package/use-load-model/model-context.d.ts +38 -0
- package/use-load-model/state.d.ts +8 -0
- package/use-load-model/types.d.ts +2 -1
- package/use-load-model/use-load-model.d.ts +54 -0
- package/use-load-model.cjs.js +1 -1
- package/use-load-model.es.js +1 -1
- package/use-optimize-model/state.d.ts +13 -0
- package/use-optimize-model/types.d.ts +37 -0
- package/use-optimize-model/use-optimize-model.d.ts +23 -4
- package/use-optimize-model-7wjiNiSZ.cjs +1 -0
- package/use-optimize-model-CVcoeFrO.js +117 -0
- package/use-optimize-model.cjs.js +1 -1
- package/use-optimize-model.es.js +1 -1
- package/use-optimize-model-CXJnsRYK.cjs +0 -1
- package/use-optimize-model-CsddjnWO.js +0 -51
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as Bt } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback as
|
|
3
|
-
import { TrianglesDrawMode as Qt, TriangleFanDrawMode as XA, TriangleStripDrawMode as Ge, Loader as TA, LoaderUtils as mA, FileLoader as aA, Color as rA, LinearSRGBColorSpace as Y, SpotLight as dt, PointLight as ht, DirectionalLight as pt, MeshBasicMaterial as hA, SRGBColorSpace as
|
|
4
|
-
const BA = {},
|
|
2
|
+
import { useCallback as z, useRef as Ct, useReducer as bt, useEffect as lt, createContext as ft, useContext as Et } from "react";
|
|
3
|
+
import { TrianglesDrawMode as Qt, TriangleFanDrawMode as XA, TriangleStripDrawMode as Ge, Loader as TA, LoaderUtils as mA, FileLoader as aA, Color as rA, LinearSRGBColorSpace as Y, SpotLight as dt, PointLight as ht, DirectionalLight as pt, MeshBasicMaterial as hA, SRGBColorSpace as AA, MeshPhysicalMaterial as W, Vector2 as SA, Matrix4 as yA, Vector3 as CA, Quaternion as xe, InstancedMesh as ut, InstancedBufferAttribute as mt, Object3D as se, TextureLoader as Te, ImageBitmapLoader as wt, BufferAttribute as X, InterleavedBuffer as Dt, InterleavedBufferAttribute as kt, LinearFilter as GA, LinearMipmapLinearFilter as ie, RepeatWrapping as xA, PointsMaterial as Ft, Material as NA, LineBasicMaterial as Rt, MeshStandardMaterial as Le, DoubleSide as St, PropertyBinding as yt, BufferGeometry as ne, SkinnedMesh as Gt, Mesh as Me, LineSegments as xt, Line as Tt, LineLoop as Lt, Points as Mt, Group as kA, PerspectiveCamera as Nt, MathUtils as Ut, OrthographicCamera as _t, Skeleton as qt, AnimationClip as Ht, Bone as Ot, InterpolateLinear as Ne, ColorManagement as le, NearestFilter as vt, NearestMipmapNearestFilter as Jt, LinearMipmapNearestFilter as jt, NearestMipmapLinearFilter as Kt, ClampToEdgeWrapping as Ue, MirroredRepeatWrapping as _e, InterpolateDiscrete as Pt, FrontSide as Yt, Texture as fe, VectorKeyframeTrack as Ee, NumberKeyframeTrack as Qe, QuaternionKeyframeTrack as de, Box3 as Wt, Sphere as Vt, Interpolant as zt, CompressedCubeTexture as Xt, UnsignedByteType as K, CompressedArrayTexture as Zt, CompressedTexture as qe, RGBAFormat as bA, RGBA_ASTC_4x4_Format as $t, RGBA_BPTC_Format as Aa, RGBA_ETC2_EAC_Format as ea, RGBA_PVRTC_4BPPV1_Format as ta, RGBA_S3TC_DXT5_Format as aa, RGB_ETC1_Format as sa, RGB_ETC2_Format as ia, RGB_PVRTC_4BPPV1_Format as na, RGBA_S3TC_DXT1_Format as oa, FloatType as FA, HalfFloatType as RA, DataTexture as ra, Data3DTexture as ca, DisplayP3ColorSpace as ga, LinearDisplayP3ColorSpace as Ia, NoColorSpace as oA, RGFormat as pA, RedFormat as uA, RGBA_ASTC_6x6_Format as he, WebGLRenderer as Ba } from "three";
|
|
4
|
+
const BA = {}, V = {
|
|
5
5
|
emit(n, A) {
|
|
6
6
|
const e = BA[n];
|
|
7
7
|
e && e.forEach((a) => a(A));
|
|
@@ -18,9 +18,22 @@ const BA = {}, eA = {
|
|
|
18
18
|
};
|
|
19
19
|
var q = /* @__PURE__ */ ((n) => (n.gltf = "gltf", n.glb = "glb", n.usdz = "usdz", n))(q || {});
|
|
20
20
|
const He = {
|
|
21
|
+
/**
|
|
22
|
+
* Currently loaded file
|
|
23
|
+
*/
|
|
21
24
|
file: null,
|
|
25
|
+
/**
|
|
26
|
+
* Flag indicating if a file is currently being loaded
|
|
27
|
+
*/
|
|
22
28
|
isFileLoading: !1,
|
|
29
|
+
/**
|
|
30
|
+
* Current loading progress (0-100)
|
|
31
|
+
*/
|
|
23
32
|
progress: 0,
|
|
33
|
+
/**
|
|
34
|
+
* List of supported file types
|
|
35
|
+
* @type {ModelFileTypes[]}
|
|
36
|
+
*/
|
|
24
37
|
supportedFileTypes: Object.values(q)
|
|
25
38
|
};
|
|
26
39
|
function Ca(n, A) {
|
|
@@ -63,10 +76,10 @@ function ue(n, A) {
|
|
|
63
76
|
if (A === XA || A === Ge) {
|
|
64
77
|
let e = n.getIndex();
|
|
65
78
|
if (e === null) {
|
|
66
|
-
const i = [],
|
|
67
|
-
if (
|
|
68
|
-
for (let
|
|
69
|
-
i.push(
|
|
79
|
+
const i = [], o = n.getAttribute("position");
|
|
80
|
+
if (o !== void 0) {
|
|
81
|
+
for (let r = 0; r < o.count; r++)
|
|
82
|
+
i.push(r);
|
|
70
83
|
n.setIndex(i), e = n.getIndex();
|
|
71
84
|
} else
|
|
72
85
|
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), n;
|
|
@@ -133,18 +146,18 @@ class la extends TA {
|
|
|
133
146
|
} else
|
|
134
147
|
i = mA.extractUrlBase(A);
|
|
135
148
|
this.manager.itemStart(A);
|
|
136
|
-
const
|
|
149
|
+
const o = function(c) {
|
|
137
150
|
t ? t(c) : console.error(c), s.manager.itemError(A), s.manager.itemEnd(A);
|
|
138
|
-
},
|
|
139
|
-
|
|
151
|
+
}, r = new aA(this.manager);
|
|
152
|
+
r.setPath(this.path), r.setResponseType("arraybuffer"), r.setRequestHeader(this.requestHeader), r.setWithCredentials(this.withCredentials), r.load(A, function(c) {
|
|
140
153
|
try {
|
|
141
154
|
s.parse(c, i, function(I) {
|
|
142
155
|
e(I), s.manager.itemEnd(A);
|
|
143
|
-
},
|
|
156
|
+
}, o);
|
|
144
157
|
} catch (I) {
|
|
145
|
-
|
|
158
|
+
o(I);
|
|
146
159
|
}
|
|
147
|
-
}, a,
|
|
160
|
+
}, a, o);
|
|
148
161
|
}
|
|
149
162
|
setDRACOLoader(A) {
|
|
150
163
|
return this.dracoLoader = A, this;
|
|
@@ -168,11 +181,11 @@ class la extends TA {
|
|
|
168
181
|
}
|
|
169
182
|
parse(A, e, a, t) {
|
|
170
183
|
let s;
|
|
171
|
-
const i = {},
|
|
184
|
+
const i = {}, o = {}, r = new TextDecoder();
|
|
172
185
|
if (typeof A == "string")
|
|
173
186
|
s = JSON.parse(A);
|
|
174
187
|
else if (A instanceof ArrayBuffer)
|
|
175
|
-
if (
|
|
188
|
+
if (r.decode(new Uint8Array(A, 0, 4)) === Oe) {
|
|
176
189
|
try {
|
|
177
190
|
i[y.KHR_BINARY_GLTF] = new Ma(A);
|
|
178
191
|
} catch (g) {
|
|
@@ -181,7 +194,7 @@ class la extends TA {
|
|
|
181
194
|
}
|
|
182
195
|
s = JSON.parse(i[y.KHR_BINARY_GLTF].content);
|
|
183
196
|
} else
|
|
184
|
-
s = JSON.parse(
|
|
197
|
+
s = JSON.parse(r.decode(A));
|
|
185
198
|
else
|
|
186
199
|
s = A;
|
|
187
200
|
if (s.asset === void 0 || s.asset.version[0] < 2) {
|
|
@@ -199,7 +212,7 @@ class la extends TA {
|
|
|
199
212
|
c.fileLoader.setRequestHeader(this.requestHeader);
|
|
200
213
|
for (let I = 0; I < this.pluginCallbacks.length; I++) {
|
|
201
214
|
const g = this.pluginCallbacks[I](c);
|
|
202
|
-
g.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),
|
|
215
|
+
g.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), o[g.name] = g, i[g.name] = !0;
|
|
203
216
|
}
|
|
204
217
|
if (s.extensionsUsed)
|
|
205
218
|
for (let I = 0; I < s.extensionsUsed.length; ++I) {
|
|
@@ -218,10 +231,10 @@ class la extends TA {
|
|
|
218
231
|
i[g] = new _a();
|
|
219
232
|
break;
|
|
220
233
|
default:
|
|
221
|
-
B.indexOf(g) >= 0 &&
|
|
234
|
+
B.indexOf(g) >= 0 && o[g] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + g + '".');
|
|
222
235
|
}
|
|
223
236
|
}
|
|
224
|
-
c.setExtensions(i), c.setPlugins(
|
|
237
|
+
c.setExtensions(i), c.setPlugins(o), c.parse(a, t);
|
|
225
238
|
}
|
|
226
239
|
parseAsync(A, e) {
|
|
227
240
|
const a = this;
|
|
@@ -286,12 +299,12 @@ class Ea {
|
|
|
286
299
|
const e = this.parser, a = "light:" + A;
|
|
287
300
|
let t = e.cache.get(a);
|
|
288
301
|
if (t) return t;
|
|
289
|
-
const s = e.json,
|
|
302
|
+
const s = e.json, r = ((s.extensions && s.extensions[this.name] || {}).lights || [])[A];
|
|
290
303
|
let c;
|
|
291
304
|
const I = new rA(16777215);
|
|
292
|
-
|
|
293
|
-
const g =
|
|
294
|
-
switch (
|
|
305
|
+
r.color !== void 0 && I.setRGB(r.color[0], r.color[1], r.color[2], Y);
|
|
306
|
+
const g = r.range !== void 0 ? r.range : 0;
|
|
307
|
+
switch (r.type) {
|
|
295
308
|
case "directional":
|
|
296
309
|
c = new pt(I), c.target.position.set(0, 0, -1), c.add(c.target);
|
|
297
310
|
break;
|
|
@@ -299,21 +312,21 @@ class Ea {
|
|
|
299
312
|
c = new ht(I), c.distance = g;
|
|
300
313
|
break;
|
|
301
314
|
case "spot":
|
|
302
|
-
c = new dt(I), c.distance = g,
|
|
315
|
+
c = new dt(I), c.distance = g, r.spot = r.spot || {}, r.spot.innerConeAngle = r.spot.innerConeAngle !== void 0 ? r.spot.innerConeAngle : 0, r.spot.outerConeAngle = r.spot.outerConeAngle !== void 0 ? r.spot.outerConeAngle : Math.PI / 4, c.angle = r.spot.outerConeAngle, c.penumbra = 1 - r.spot.innerConeAngle / r.spot.outerConeAngle, c.target.position.set(0, 0, -1), c.add(c.target);
|
|
303
316
|
break;
|
|
304
317
|
default:
|
|
305
|
-
throw new Error("THREE.GLTFLoader: Unexpected light type: " +
|
|
318
|
+
throw new Error("THREE.GLTFLoader: Unexpected light type: " + r.type);
|
|
306
319
|
}
|
|
307
|
-
return c.position.set(0, 0, 0), c.decay = 2, tA(c,
|
|
320
|
+
return c.position.set(0, 0, 0), c.decay = 2, tA(c, r), r.intensity !== void 0 && (c.intensity = r.intensity), c.name = e.createUniqueName(r.name || "light_" + A), t = Promise.resolve(c), e.cache.add(a, t), t;
|
|
308
321
|
}
|
|
309
322
|
getDependency(A, e) {
|
|
310
323
|
if (A === "light")
|
|
311
324
|
return this._loadLight(e);
|
|
312
325
|
}
|
|
313
326
|
createNodeAttachment(A) {
|
|
314
|
-
const e = this, a = this.parser, s = a.json.nodes[A],
|
|
315
|
-
return
|
|
316
|
-
return a._getNodeRef(e.cache,
|
|
327
|
+
const e = this, a = this.parser, s = a.json.nodes[A], o = (s.extensions && s.extensions[this.name] || {}).light;
|
|
328
|
+
return o === void 0 ? null : this._loadLight(o).then(function(r) {
|
|
329
|
+
return a._getNodeRef(e.cache, o, r);
|
|
317
330
|
});
|
|
318
331
|
}
|
|
319
332
|
}
|
|
@@ -333,7 +346,7 @@ class Qa {
|
|
|
333
346
|
const i = s.baseColorFactor;
|
|
334
347
|
A.color.setRGB(i[0], i[1], i[2], Y), A.opacity = i[3];
|
|
335
348
|
}
|
|
336
|
-
s.baseColorTexture !== void 0 && t.push(a.assignTexture(A, "map", s.baseColorTexture,
|
|
349
|
+
s.baseColorTexture !== void 0 && t.push(a.assignTexture(A, "map", s.baseColorTexture, AA));
|
|
337
350
|
}
|
|
338
351
|
return Promise.all(t);
|
|
339
352
|
}
|
|
@@ -364,8 +377,8 @@ class ha {
|
|
|
364
377
|
return Promise.resolve();
|
|
365
378
|
const s = [], i = t.extensions[this.name];
|
|
366
379
|
if (i.clearcoatFactor !== void 0 && (e.clearcoat = i.clearcoatFactor), i.clearcoatTexture !== void 0 && s.push(a.assignTexture(e, "clearcoatMap", i.clearcoatTexture)), i.clearcoatRoughnessFactor !== void 0 && (e.clearcoatRoughness = i.clearcoatRoughnessFactor), i.clearcoatRoughnessTexture !== void 0 && s.push(a.assignTexture(e, "clearcoatRoughnessMap", i.clearcoatRoughnessTexture)), i.clearcoatNormalTexture !== void 0 && (s.push(a.assignTexture(e, "clearcoatNormalMap", i.clearcoatNormalTexture)), i.clearcoatNormalTexture.scale !== void 0)) {
|
|
367
|
-
const
|
|
368
|
-
e.clearcoatNormalScale = new SA(
|
|
380
|
+
const o = i.clearcoatNormalTexture.scale;
|
|
381
|
+
e.clearcoatNormalScale = new SA(o, o);
|
|
369
382
|
}
|
|
370
383
|
return Promise.all(s);
|
|
371
384
|
}
|
|
@@ -418,10 +431,10 @@ class ma {
|
|
|
418
431
|
e.sheenColor = new rA(0, 0, 0), e.sheenRoughness = 0, e.sheen = 1;
|
|
419
432
|
const i = t.extensions[this.name];
|
|
420
433
|
if (i.sheenColorFactor !== void 0) {
|
|
421
|
-
const
|
|
422
|
-
e.sheenColor.setRGB(
|
|
434
|
+
const o = i.sheenColorFactor;
|
|
435
|
+
e.sheenColor.setRGB(o[0], o[1], o[2], Y);
|
|
423
436
|
}
|
|
424
|
-
return i.sheenRoughnessFactor !== void 0 && (e.sheenRoughness = i.sheenRoughnessFactor), i.sheenColorTexture !== void 0 && s.push(a.assignTexture(e, "sheenColorMap", i.sheenColorTexture,
|
|
437
|
+
return i.sheenRoughnessFactor !== void 0 && (e.sheenRoughness = i.sheenRoughnessFactor), i.sheenColorTexture !== void 0 && s.push(a.assignTexture(e, "sheenColorMap", i.sheenColorTexture, AA)), i.sheenRoughnessTexture !== void 0 && s.push(a.assignTexture(e, "sheenRoughnessMap", i.sheenRoughnessTexture)), Promise.all(s);
|
|
425
438
|
}
|
|
426
439
|
}
|
|
427
440
|
class wa {
|
|
@@ -454,8 +467,8 @@ class Da {
|
|
|
454
467
|
return Promise.resolve();
|
|
455
468
|
const s = [], i = t.extensions[this.name];
|
|
456
469
|
e.thickness = i.thicknessFactor !== void 0 ? i.thicknessFactor : 0, i.thicknessTexture !== void 0 && s.push(a.assignTexture(e, "thicknessMap", i.thicknessTexture)), e.attenuationDistance = i.attenuationDistance || 1 / 0;
|
|
457
|
-
const
|
|
458
|
-
return e.attenuationColor = new rA().setRGB(
|
|
470
|
+
const o = i.attenuationColor || [1, 1, 1];
|
|
471
|
+
return e.attenuationColor = new rA().setRGB(o[0], o[1], o[2], Y), Promise.all(s);
|
|
459
472
|
}
|
|
460
473
|
}
|
|
461
474
|
class ka {
|
|
@@ -488,8 +501,8 @@ class Fa {
|
|
|
488
501
|
return Promise.resolve();
|
|
489
502
|
const s = [], i = t.extensions[this.name];
|
|
490
503
|
e.specularIntensity = i.specularFactor !== void 0 ? i.specularFactor : 1, i.specularTexture !== void 0 && s.push(a.assignTexture(e, "specularIntensityMap", i.specularTexture));
|
|
491
|
-
const
|
|
492
|
-
return e.specularColor = new rA().setRGB(
|
|
504
|
+
const o = i.specularColorFactor || [1, 1, 1];
|
|
505
|
+
return e.specularColor = new rA().setRGB(o[0], o[1], o[2], Y), i.specularColorTexture !== void 0 && s.push(a.assignTexture(e, "specularColorMap", i.specularColorTexture, AA)), Promise.all(s);
|
|
493
506
|
}
|
|
494
507
|
}
|
|
495
508
|
class Ra {
|
|
@@ -549,14 +562,14 @@ class Ga {
|
|
|
549
562
|
const e = this.name, a = this.parser, t = a.json, s = t.textures[A];
|
|
550
563
|
if (!s.extensions || !s.extensions[e])
|
|
551
564
|
return null;
|
|
552
|
-
const i = s.extensions[e],
|
|
553
|
-
let
|
|
554
|
-
if (
|
|
555
|
-
const c = a.options.manager.getHandler(
|
|
556
|
-
c !== null && (
|
|
565
|
+
const i = s.extensions[e], o = t.images[i.source];
|
|
566
|
+
let r = a.textureLoader;
|
|
567
|
+
if (o.uri) {
|
|
568
|
+
const c = a.options.manager.getHandler(o.uri);
|
|
569
|
+
c !== null && (r = c);
|
|
557
570
|
}
|
|
558
571
|
return this.detectSupport().then(function(c) {
|
|
559
|
-
if (c) return a.loadTextureImage(A, i.source,
|
|
572
|
+
if (c) return a.loadTextureImage(A, i.source, r);
|
|
560
573
|
if (t.extensionsRequired && t.extensionsRequired.indexOf(e) >= 0)
|
|
561
574
|
throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");
|
|
562
575
|
return a.loadTexture(A);
|
|
@@ -579,14 +592,14 @@ class xa {
|
|
|
579
592
|
const e = this.name, a = this.parser, t = a.json, s = t.textures[A];
|
|
580
593
|
if (!s.extensions || !s.extensions[e])
|
|
581
594
|
return null;
|
|
582
|
-
const i = s.extensions[e],
|
|
583
|
-
let
|
|
584
|
-
if (
|
|
585
|
-
const c = a.options.manager.getHandler(
|
|
586
|
-
c !== null && (
|
|
595
|
+
const i = s.extensions[e], o = t.images[i.source];
|
|
596
|
+
let r = a.textureLoader;
|
|
597
|
+
if (o.uri) {
|
|
598
|
+
const c = a.options.manager.getHandler(o.uri);
|
|
599
|
+
c !== null && (r = c);
|
|
587
600
|
}
|
|
588
601
|
return this.detectSupport().then(function(c) {
|
|
589
|
-
if (c) return a.loadTextureImage(A, i.source,
|
|
602
|
+
if (c) return a.loadTextureImage(A, i.source, r);
|
|
590
603
|
if (t.extensionsRequired && t.extensionsRequired.indexOf(e) >= 0)
|
|
591
604
|
throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");
|
|
592
605
|
return a.loadTexture(A);
|
|
@@ -614,8 +627,8 @@ class Ta {
|
|
|
614
627
|
throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");
|
|
615
628
|
return null;
|
|
616
629
|
}
|
|
617
|
-
return s.then(function(
|
|
618
|
-
const
|
|
630
|
+
return s.then(function(o) {
|
|
631
|
+
const r = t.byteOffset || 0, c = t.byteLength || 0, I = t.count, g = t.byteStride, B = new Uint8Array(o, r, c);
|
|
619
632
|
return i.decodeGltfBufferAsync ? i.decodeGltfBufferAsync(I, g, B, t.mode, t.filter).then(function(C) {
|
|
620
633
|
return C.buffer;
|
|
621
634
|
}) : i.ready.then(function() {
|
|
@@ -639,20 +652,20 @@ class La {
|
|
|
639
652
|
for (const c of t.primitives)
|
|
640
653
|
if (c.mode !== O.TRIANGLES && c.mode !== O.TRIANGLE_STRIP && c.mode !== O.TRIANGLE_FAN && c.mode !== void 0)
|
|
641
654
|
return null;
|
|
642
|
-
const i = a.extensions[this.name].attributes,
|
|
655
|
+
const i = a.extensions[this.name].attributes, o = [], r = {};
|
|
643
656
|
for (const c in i)
|
|
644
|
-
|
|
645
|
-
return
|
|
657
|
+
o.push(this.parser.getDependency("accessor", i[c]).then((I) => (r[c] = I, r[c])));
|
|
658
|
+
return o.length < 1 ? null : (o.push(this.parser.createNodeMesh(A)), Promise.all(o).then((c) => {
|
|
646
659
|
const I = c.pop(), g = I.isGroup ? I.children : [I], B = c[0].count, C = [];
|
|
647
660
|
for (const f of g) {
|
|
648
661
|
const d = new yA(), p = new CA(), E = new xe(), l = new CA(1, 1, 1), h = new ut(f.geometry, f.material, B);
|
|
649
662
|
for (let u = 0; u < B; u++)
|
|
650
|
-
|
|
651
|
-
for (const u in
|
|
663
|
+
r.TRANSLATION && p.fromBufferAttribute(r.TRANSLATION, u), r.ROTATION && E.fromBufferAttribute(r.ROTATION, u), r.SCALE && l.fromBufferAttribute(r.SCALE, u), h.setMatrixAt(u, d.compose(p, E, l));
|
|
664
|
+
for (const u in r)
|
|
652
665
|
if (u === "_COLOR_0") {
|
|
653
|
-
const k =
|
|
666
|
+
const k = r[u];
|
|
654
667
|
h.instanceColor = new mt(k.array, k.itemSize, k.normalized);
|
|
655
|
-
} else u !== "TRANSLATION" && u !== "ROTATION" && u !== "SCALE" && f.geometry.setAttribute(u,
|
|
668
|
+
} else u !== "TRANSLATION" && u !== "ROTATION" && u !== "SCALE" && f.geometry.setAttribute(u, r[u]);
|
|
656
669
|
se.prototype.copy.call(h, f), this.parser.assignFinalMaterial(h), C.push(h);
|
|
657
670
|
}
|
|
658
671
|
return I.isGroup ? (I.clear(), I.add(...C), I) : C[0];
|
|
@@ -675,17 +688,17 @@ class Ma {
|
|
|
675
688
|
const t = this.header.length - QA, s = new DataView(A, QA);
|
|
676
689
|
let i = 0;
|
|
677
690
|
for (; i < t; ) {
|
|
678
|
-
const r = s.getUint32(i, !0);
|
|
679
|
-
i += 4;
|
|
680
691
|
const o = s.getUint32(i, !0);
|
|
681
|
-
|
|
682
|
-
|
|
692
|
+
i += 4;
|
|
693
|
+
const r = s.getUint32(i, !0);
|
|
694
|
+
if (i += 4, r === me.JSON) {
|
|
695
|
+
const c = new Uint8Array(A, QA + i, o);
|
|
683
696
|
this.content = a.decode(c);
|
|
684
|
-
} else if (
|
|
697
|
+
} else if (r === me.BIN) {
|
|
685
698
|
const c = QA + i;
|
|
686
|
-
this.body = A.slice(c, c +
|
|
699
|
+
this.body = A.slice(c, c + o);
|
|
687
700
|
}
|
|
688
|
-
i +=
|
|
701
|
+
i += o;
|
|
689
702
|
}
|
|
690
703
|
if (this.content === null)
|
|
691
704
|
throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
@@ -698,27 +711,27 @@ class Na {
|
|
|
698
711
|
this.name = y.KHR_DRACO_MESH_COMPRESSION, this.json = A, this.dracoLoader = e, this.dracoLoader.preload();
|
|
699
712
|
}
|
|
700
713
|
decodePrimitive(A, e) {
|
|
701
|
-
const a = this.json, t = this.dracoLoader, s = A.extensions[this.name].bufferView, i = A.extensions[this.name].attributes,
|
|
714
|
+
const a = this.json, t = this.dracoLoader, s = A.extensions[this.name].bufferView, i = A.extensions[this.name].attributes, o = {}, r = {}, c = {};
|
|
702
715
|
for (const I in i) {
|
|
703
716
|
const g = ZA[I] || I.toLowerCase();
|
|
704
|
-
|
|
717
|
+
o[g] = i[I];
|
|
705
718
|
}
|
|
706
719
|
for (const I in A.attributes) {
|
|
707
720
|
const g = ZA[I] || I.toLowerCase();
|
|
708
721
|
if (i[I] !== void 0) {
|
|
709
722
|
const B = a.accessors[A.attributes[I]], C = fA[B.componentType];
|
|
710
|
-
c[g] = C.name,
|
|
723
|
+
c[g] = C.name, r[g] = B.normalized === !0;
|
|
711
724
|
}
|
|
712
725
|
}
|
|
713
726
|
return e.getDependency("bufferView", s).then(function(I) {
|
|
714
727
|
return new Promise(function(g, B) {
|
|
715
728
|
t.decodeDracoFile(I, function(C) {
|
|
716
729
|
for (const f in C.attributes) {
|
|
717
|
-
const d = C.attributes[f], p =
|
|
730
|
+
const d = C.attributes[f], p = r[f];
|
|
718
731
|
p !== void 0 && (d.normalized = p);
|
|
719
732
|
}
|
|
720
733
|
g(C);
|
|
721
|
-
},
|
|
734
|
+
}, o, c, Y, B);
|
|
722
735
|
});
|
|
723
736
|
});
|
|
724
737
|
}
|
|
@@ -747,9 +760,9 @@ class ve extends zt {
|
|
|
747
760
|
return e;
|
|
748
761
|
}
|
|
749
762
|
interpolate_(A, e, a, t) {
|
|
750
|
-
const s = this.resultBuffer, i = this.sampleValues,
|
|
751
|
-
for (let u = 0; u !==
|
|
752
|
-
const k = i[d + u +
|
|
763
|
+
const s = this.resultBuffer, i = this.sampleValues, o = this.valueSize, r = o * 2, c = o * 3, I = t - e, g = (a - e) / I, B = g * g, C = B * g, f = A * c, d = f - c, p = -2 * C + 3 * B, E = C - B, l = 1 - p, h = E - B + g;
|
|
764
|
+
for (let u = 0; u !== o; u++) {
|
|
765
|
+
const k = i[d + u + o], R = i[d + u + r] * I, G = i[f + u + o], M = i[f + u] * I;
|
|
753
766
|
s[u] = l * k + h * R + p * G + E * M;
|
|
754
767
|
}
|
|
755
768
|
return s;
|
|
@@ -860,7 +873,7 @@ function Ja(n, A, e) {
|
|
|
860
873
|
if (g.POSITION !== void 0 && (a = !0), g.NORMAL !== void 0 && (t = !0), g.COLOR_0 !== void 0 && (s = !0), a && t && s) break;
|
|
861
874
|
}
|
|
862
875
|
if (!a && !t && !s) return Promise.resolve(n);
|
|
863
|
-
const i = [],
|
|
876
|
+
const i = [], o = [], r = [];
|
|
864
877
|
for (let c = 0, I = A.length; c < I; c++) {
|
|
865
878
|
const g = A[c];
|
|
866
879
|
if (a) {
|
|
@@ -869,17 +882,17 @@ function Ja(n, A, e) {
|
|
|
869
882
|
}
|
|
870
883
|
if (t) {
|
|
871
884
|
const B = g.NORMAL !== void 0 ? e.getDependency("accessor", g.NORMAL) : n.attributes.normal;
|
|
872
|
-
|
|
885
|
+
o.push(B);
|
|
873
886
|
}
|
|
874
887
|
if (s) {
|
|
875
888
|
const B = g.COLOR_0 !== void 0 ? e.getDependency("accessor", g.COLOR_0) : n.attributes.color;
|
|
876
|
-
|
|
889
|
+
r.push(B);
|
|
877
890
|
}
|
|
878
891
|
}
|
|
879
892
|
return Promise.all([
|
|
880
893
|
Promise.all(i),
|
|
881
|
-
Promise.all(
|
|
882
|
-
Promise.all(
|
|
894
|
+
Promise.all(o),
|
|
895
|
+
Promise.all(r)
|
|
883
896
|
]).then(function(c) {
|
|
884
897
|
const I = c[0], g = c[1], B = c[2];
|
|
885
898
|
return a && (n.morphAttributes.position = I), t && (n.morphAttributes.normal = g), s && (n.morphAttributes.color = B), n.morphTargetsRelative = !0, n;
|
|
@@ -937,10 +950,10 @@ class Wa {
|
|
|
937
950
|
this.json = A, this.extensions = {}, this.plugins = {}, this.options = e, this.cache = new fa(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
|
|
938
951
|
let a = !1, t = -1, s = !1, i = -1;
|
|
939
952
|
if (typeof navigator < "u") {
|
|
940
|
-
const
|
|
941
|
-
a = /^((?!chrome|android).)*safari/i.test(
|
|
942
|
-
const
|
|
943
|
-
t = a &&
|
|
953
|
+
const o = navigator.userAgent;
|
|
954
|
+
a = /^((?!chrome|android).)*safari/i.test(o) === !0;
|
|
955
|
+
const r = o.match(/Version\/(\d+)/);
|
|
956
|
+
t = a && r ? parseInt(r[1], 10) : -1, s = o.indexOf("Firefox") > -1, i = s ? o.match(/Firefox\/([0-9]+)\./)[1] : -1;
|
|
944
957
|
}
|
|
945
958
|
typeof createImageBitmap > "u" || a && t < 17 || s && i < 98 ? this.textureLoader = new Te(this.options.manager) : this.textureLoader = new wt(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new aA(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(!0);
|
|
946
959
|
}
|
|
@@ -963,7 +976,7 @@ class Wa {
|
|
|
963
976
|
a.getDependencies("camera")
|
|
964
977
|
]);
|
|
965
978
|
}).then(function(i) {
|
|
966
|
-
const
|
|
979
|
+
const o = {
|
|
967
980
|
scene: i[0][t.scene || 0],
|
|
968
981
|
scenes: i[0],
|
|
969
982
|
animations: i[1],
|
|
@@ -972,12 +985,12 @@ class Wa {
|
|
|
972
985
|
parser: a,
|
|
973
986
|
userData: {}
|
|
974
987
|
};
|
|
975
|
-
return gA(s,
|
|
976
|
-
return
|
|
988
|
+
return gA(s, o, t), tA(o, t), Promise.all(a._invokeAll(function(r) {
|
|
989
|
+
return r.afterRoot && r.afterRoot(o);
|
|
977
990
|
})).then(function() {
|
|
978
|
-
for (const
|
|
979
|
-
|
|
980
|
-
A(
|
|
991
|
+
for (const r of o.scenes)
|
|
992
|
+
r.updateMatrixWorld();
|
|
993
|
+
A(o);
|
|
981
994
|
});
|
|
982
995
|
}).catch(e);
|
|
983
996
|
}
|
|
@@ -988,8 +1001,8 @@ class Wa {
|
|
|
988
1001
|
const A = this.json.nodes || [], e = this.json.skins || [], a = this.json.meshes || [];
|
|
989
1002
|
for (let t = 0, s = e.length; t < s; t++) {
|
|
990
1003
|
const i = e[t].joints;
|
|
991
|
-
for (let
|
|
992
|
-
A[i[
|
|
1004
|
+
for (let o = 0, r = i.length; o < r; o++)
|
|
1005
|
+
A[i[o]].isBone = !0;
|
|
993
1006
|
}
|
|
994
1007
|
for (let t = 0, s = A.length; t < s; t++) {
|
|
995
1008
|
const i = A[t];
|
|
@@ -1011,11 +1024,11 @@ class Wa {
|
|
|
1011
1024
|
/** Returns a reference to a shared resource, cloning it if necessary. */
|
|
1012
1025
|
_getNodeRef(A, e, a) {
|
|
1013
1026
|
if (A.refs[e] <= 1) return a;
|
|
1014
|
-
const t = a.clone(), s = (i,
|
|
1015
|
-
const
|
|
1016
|
-
|
|
1027
|
+
const t = a.clone(), s = (i, o) => {
|
|
1028
|
+
const r = this.associations.get(i);
|
|
1029
|
+
r != null && this.associations.set(o, r);
|
|
1017
1030
|
for (const [c, I] of i.children.entries())
|
|
1018
|
-
s(I,
|
|
1031
|
+
s(I, o.children[c]);
|
|
1019
1032
|
};
|
|
1020
1033
|
return s(a, t), t.name += "_instance_" + A.uses[e]++, t;
|
|
1021
1034
|
}
|
|
@@ -1158,25 +1171,25 @@ class Wa {
|
|
|
1158
1171
|
loadAccessor(A) {
|
|
1159
1172
|
const e = this, a = this.json, t = this.json.accessors[A];
|
|
1160
1173
|
if (t.bufferView === void 0 && t.sparse === void 0) {
|
|
1161
|
-
const i = UA[t.type],
|
|
1162
|
-
return Promise.resolve(new
|
|
1174
|
+
const i = UA[t.type], o = fA[t.componentType], r = t.normalized === !0, c = new o(t.count * i);
|
|
1175
|
+
return Promise.resolve(new X(c, i, r));
|
|
1163
1176
|
}
|
|
1164
1177
|
const s = [];
|
|
1165
1178
|
return t.bufferView !== void 0 ? s.push(this.getDependency("bufferView", t.bufferView)) : s.push(null), t.sparse !== void 0 && (s.push(this.getDependency("bufferView", t.sparse.indices.bufferView)), s.push(this.getDependency("bufferView", t.sparse.values.bufferView))), Promise.all(s).then(function(i) {
|
|
1166
|
-
const
|
|
1179
|
+
const o = i[0], r = UA[t.type], c = fA[t.componentType], I = c.BYTES_PER_ELEMENT, g = I * r, B = t.byteOffset || 0, C = t.bufferView !== void 0 ? a.bufferViews[t.bufferView].byteStride : void 0, f = t.normalized === !0;
|
|
1167
1180
|
let d, p;
|
|
1168
1181
|
if (C && C !== g) {
|
|
1169
1182
|
const E = Math.floor(B / C), l = "InterleavedBuffer:" + t.bufferView + ":" + t.componentType + ":" + E + ":" + t.count;
|
|
1170
1183
|
let h = e.cache.get(l);
|
|
1171
|
-
h || (d = new c(
|
|
1184
|
+
h || (d = new c(o, E * C, t.count * C / I), h = new Dt(d, C / I), e.cache.add(l, h)), p = new kt(h, r, B % C / I, f);
|
|
1172
1185
|
} else
|
|
1173
|
-
|
|
1186
|
+
o === null ? d = new c(t.count * r) : d = new c(o, B, t.count * r), p = new X(d, r, f);
|
|
1174
1187
|
if (t.sparse !== void 0) {
|
|
1175
|
-
const E = UA.SCALAR, l = fA[t.sparse.indices.componentType], h = t.sparse.indices.byteOffset || 0, u = t.sparse.values.byteOffset || 0, k = new l(i[1], h, t.sparse.count * E), R = new c(i[2], u, t.sparse.count *
|
|
1176
|
-
|
|
1188
|
+
const E = UA.SCALAR, l = fA[t.sparse.indices.componentType], h = t.sparse.indices.byteOffset || 0, u = t.sparse.values.byteOffset || 0, k = new l(i[1], h, t.sparse.count * E), R = new c(i[2], u, t.sparse.count * r);
|
|
1189
|
+
o !== null && (p = new X(p.array.slice(), p.itemSize, p.normalized));
|
|
1177
1190
|
for (let G = 0, M = k.length; G < M; G++) {
|
|
1178
1191
|
const b = k[G];
|
|
1179
|
-
if (p.setX(b, R[G *
|
|
1192
|
+
if (p.setX(b, R[G * r]), r >= 2 && p.setY(b, R[G * r + 1]), r >= 3 && p.setZ(b, R[G * r + 2]), r >= 4 && p.setW(b, R[G * r + 3]), r >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
|
|
1180
1193
|
}
|
|
1181
1194
|
}
|
|
1182
1195
|
return p;
|
|
@@ -1189,41 +1202,41 @@ class Wa {
|
|
|
1189
1202
|
*/
|
|
1190
1203
|
loadTexture(A) {
|
|
1191
1204
|
const e = this.json, a = this.options, s = e.textures[A].source, i = e.images[s];
|
|
1192
|
-
let
|
|
1205
|
+
let o = this.textureLoader;
|
|
1193
1206
|
if (i.uri) {
|
|
1194
|
-
const
|
|
1195
|
-
|
|
1207
|
+
const r = a.manager.getHandler(i.uri);
|
|
1208
|
+
r !== null && (o = r);
|
|
1196
1209
|
}
|
|
1197
|
-
return this.loadTextureImage(A, s,
|
|
1210
|
+
return this.loadTextureImage(A, s, o);
|
|
1198
1211
|
}
|
|
1199
1212
|
loadTextureImage(A, e, a) {
|
|
1200
|
-
const t = this, s = this.json, i = s.textures[A],
|
|
1201
|
-
if (this.textureCache[
|
|
1202
|
-
return this.textureCache[
|
|
1213
|
+
const t = this, s = this.json, i = s.textures[A], o = s.images[e], r = (o.uri || o.bufferView) + ":" + i.sampler;
|
|
1214
|
+
if (this.textureCache[r])
|
|
1215
|
+
return this.textureCache[r];
|
|
1203
1216
|
const c = this.loadImageSource(e, a).then(function(I) {
|
|
1204
|
-
I.flipY = !1, I.name = i.name ||
|
|
1217
|
+
I.flipY = !1, I.name = i.name || o.name || "", I.name === "" && typeof o.uri == "string" && o.uri.startsWith("data:image/") === !1 && (I.name = o.uri);
|
|
1205
1218
|
const B = (s.samplers || {})[i.sampler] || {};
|
|
1206
1219
|
return I.magFilter = we[B.magFilter] || GA, I.minFilter = we[B.minFilter] || ie, I.wrapS = De[B.wrapS] || xA, I.wrapT = De[B.wrapT] || xA, t.associations.set(I, { textures: A }), I;
|
|
1207
1220
|
}).catch(function() {
|
|
1208
1221
|
return null;
|
|
1209
1222
|
});
|
|
1210
|
-
return this.textureCache[
|
|
1223
|
+
return this.textureCache[r] = c, c;
|
|
1211
1224
|
}
|
|
1212
1225
|
loadImageSource(A, e) {
|
|
1213
1226
|
const a = this, t = this.json, s = this.options;
|
|
1214
1227
|
if (this.sourceCache[A] !== void 0)
|
|
1215
1228
|
return this.sourceCache[A].then((g) => g.clone());
|
|
1216
|
-
const i = t.images[A],
|
|
1217
|
-
let
|
|
1229
|
+
const i = t.images[A], o = self.URL || self.webkitURL;
|
|
1230
|
+
let r = i.uri || "", c = !1;
|
|
1218
1231
|
if (i.bufferView !== void 0)
|
|
1219
|
-
|
|
1232
|
+
r = a.getDependency("bufferView", i.bufferView).then(function(g) {
|
|
1220
1233
|
c = !0;
|
|
1221
1234
|
const B = new Blob([g], { type: i.mimeType });
|
|
1222
|
-
return
|
|
1235
|
+
return r = o.createObjectURL(B), r;
|
|
1223
1236
|
});
|
|
1224
1237
|
else if (i.uri === void 0)
|
|
1225
1238
|
throw new Error("THREE.GLTFLoader: Image " + A + " is missing URI and bufferView");
|
|
1226
|
-
const I = Promise.resolve(
|
|
1239
|
+
const I = Promise.resolve(r).then(function(g) {
|
|
1227
1240
|
return new Promise(function(B, C) {
|
|
1228
1241
|
let f = B;
|
|
1229
1242
|
e.isImageBitmapLoader === !0 && (f = function(d) {
|
|
@@ -1232,9 +1245,9 @@ class Wa {
|
|
|
1232
1245
|
}), e.load(mA.resolveURL(g, s.path), f, void 0, C);
|
|
1233
1246
|
});
|
|
1234
1247
|
}).then(function(g) {
|
|
1235
|
-
return c === !0 &&
|
|
1248
|
+
return c === !0 && o.revokeObjectURL(r), tA(g, i), g.userData.mimeType = i.mimeType || Pa(i.uri), g;
|
|
1236
1249
|
}).catch(function(g) {
|
|
1237
|
-
throw console.error("THREE.GLTFLoader: Couldn't load texture",
|
|
1250
|
+
throw console.error("THREE.GLTFLoader: Couldn't load texture", r), g;
|
|
1238
1251
|
});
|
|
1239
1252
|
return this.sourceCache[A] = I, I;
|
|
1240
1253
|
}
|
|
@@ -1250,10 +1263,10 @@ class Wa {
|
|
|
1250
1263
|
return this.getDependency("texture", a.index).then(function(i) {
|
|
1251
1264
|
if (!i) return null;
|
|
1252
1265
|
if (a.texCoord !== void 0 && a.texCoord > 0 && (i = i.clone(), i.channel = a.texCoord), s.extensions[y.KHR_TEXTURE_TRANSFORM]) {
|
|
1253
|
-
const
|
|
1254
|
-
if (
|
|
1255
|
-
const
|
|
1256
|
-
i = s.extensions[y.KHR_TEXTURE_TRANSFORM].extendTexture(i,
|
|
1266
|
+
const o = a.extensions !== void 0 ? a.extensions[y.KHR_TEXTURE_TRANSFORM] : void 0;
|
|
1267
|
+
if (o) {
|
|
1268
|
+
const r = s.associations.get(i);
|
|
1269
|
+
i = s.extensions[y.KHR_TEXTURE_TRANSFORM].extendTexture(i, o), s.associations.set(i, r);
|
|
1257
1270
|
}
|
|
1258
1271
|
}
|
|
1259
1272
|
return t !== void 0 && (i.colorSpace = t), A[e] = i, i;
|
|
@@ -1272,19 +1285,19 @@ class Wa {
|
|
|
1272
1285
|
let a = A.material;
|
|
1273
1286
|
const t = e.attributes.tangent === void 0, s = e.attributes.color !== void 0, i = e.attributes.normal === void 0;
|
|
1274
1287
|
if (A.isPoints) {
|
|
1275
|
-
const
|
|
1276
|
-
let
|
|
1277
|
-
|
|
1288
|
+
const o = "PointsMaterial:" + a.uuid;
|
|
1289
|
+
let r = this.cache.get(o);
|
|
1290
|
+
r || (r = new Ft(), NA.prototype.copy.call(r, a), r.color.copy(a.color), r.map = a.map, r.sizeAttenuation = !1, this.cache.add(o, r)), a = r;
|
|
1278
1291
|
} else if (A.isLine) {
|
|
1279
|
-
const
|
|
1280
|
-
let
|
|
1281
|
-
|
|
1292
|
+
const o = "LineBasicMaterial:" + a.uuid;
|
|
1293
|
+
let r = this.cache.get(o);
|
|
1294
|
+
r || (r = new Rt(), NA.prototype.copy.call(r, a), r.color.copy(a.color), r.map = a.map, this.cache.add(o, r)), a = r;
|
|
1282
1295
|
}
|
|
1283
1296
|
if (t || s || i) {
|
|
1284
|
-
let
|
|
1285
|
-
t && (
|
|
1286
|
-
let
|
|
1287
|
-
|
|
1297
|
+
let o = "ClonedMaterial:" + a.uuid + ":";
|
|
1298
|
+
t && (o += "derivative-tangents:"), s && (o += "vertex-colors:"), i && (o += "flat-shading:");
|
|
1299
|
+
let r = this.cache.get(o);
|
|
1300
|
+
r || (r = a.clone(), s && (r.vertexColors = !0), i && (r.flatShading = !0), t && (r.normalScale && (r.normalScale.y *= -1), r.clearcoatNormalScale && (r.clearcoatNormalScale.y *= -1)), this.cache.add(o, r), this.associations.set(r, this.associations.get(a))), a = r;
|
|
1288
1301
|
}
|
|
1289
1302
|
A.material = a;
|
|
1290
1303
|
}
|
|
@@ -1299,34 +1312,34 @@ class Wa {
|
|
|
1299
1312
|
loadMaterial(A) {
|
|
1300
1313
|
const e = this, a = this.json, t = this.extensions, s = a.materials[A];
|
|
1301
1314
|
let i;
|
|
1302
|
-
const
|
|
1303
|
-
if (
|
|
1315
|
+
const o = {}, r = s.extensions || {}, c = [];
|
|
1316
|
+
if (r[y.KHR_MATERIALS_UNLIT]) {
|
|
1304
1317
|
const g = t[y.KHR_MATERIALS_UNLIT];
|
|
1305
|
-
i = g.getMaterialType(), c.push(g.extendParams(
|
|
1318
|
+
i = g.getMaterialType(), c.push(g.extendParams(o, s, e));
|
|
1306
1319
|
} else {
|
|
1307
1320
|
const g = s.pbrMetallicRoughness || {};
|
|
1308
|
-
if (
|
|
1321
|
+
if (o.color = new rA(1, 1, 1), o.opacity = 1, Array.isArray(g.baseColorFactor)) {
|
|
1309
1322
|
const B = g.baseColorFactor;
|
|
1310
|
-
|
|
1323
|
+
o.color.setRGB(B[0], B[1], B[2], Y), o.opacity = B[3];
|
|
1311
1324
|
}
|
|
1312
|
-
g.baseColorTexture !== void 0 && c.push(e.assignTexture(
|
|
1325
|
+
g.baseColorTexture !== void 0 && c.push(e.assignTexture(o, "map", g.baseColorTexture, AA)), o.metalness = g.metallicFactor !== void 0 ? g.metallicFactor : 1, o.roughness = g.roughnessFactor !== void 0 ? g.roughnessFactor : 1, g.metallicRoughnessTexture !== void 0 && (c.push(e.assignTexture(o, "metalnessMap", g.metallicRoughnessTexture)), c.push(e.assignTexture(o, "roughnessMap", g.metallicRoughnessTexture))), i = this._invokeOne(function(B) {
|
|
1313
1326
|
return B.getMaterialType && B.getMaterialType(A);
|
|
1314
1327
|
}), c.push(Promise.all(this._invokeAll(function(B) {
|
|
1315
|
-
return B.extendMaterialParams && B.extendMaterialParams(A,
|
|
1328
|
+
return B.extendMaterialParams && B.extendMaterialParams(A, o);
|
|
1316
1329
|
})));
|
|
1317
1330
|
}
|
|
1318
|
-
s.doubleSided === !0 && (
|
|
1331
|
+
s.doubleSided === !0 && (o.side = St);
|
|
1319
1332
|
const I = s.alphaMode || _A.OPAQUE;
|
|
1320
|
-
if (I === _A.BLEND ? (
|
|
1333
|
+
if (I === _A.BLEND ? (o.transparent = !0, o.depthWrite = !1) : (o.transparent = !1, I === _A.MASK && (o.alphaTest = s.alphaCutoff !== void 0 ? s.alphaCutoff : 0.5)), s.normalTexture !== void 0 && i !== hA && (c.push(e.assignTexture(o, "normalMap", s.normalTexture)), o.normalScale = new SA(1, 1), s.normalTexture.scale !== void 0)) {
|
|
1321
1334
|
const g = s.normalTexture.scale;
|
|
1322
|
-
|
|
1335
|
+
o.normalScale.set(g, g);
|
|
1323
1336
|
}
|
|
1324
|
-
if (s.occlusionTexture !== void 0 && i !== hA && (c.push(e.assignTexture(
|
|
1337
|
+
if (s.occlusionTexture !== void 0 && i !== hA && (c.push(e.assignTexture(o, "aoMap", s.occlusionTexture)), s.occlusionTexture.strength !== void 0 && (o.aoMapIntensity = s.occlusionTexture.strength)), s.emissiveFactor !== void 0 && i !== hA) {
|
|
1325
1338
|
const g = s.emissiveFactor;
|
|
1326
|
-
|
|
1339
|
+
o.emissive = new rA().setRGB(g[0], g[1], g[2], Y);
|
|
1327
1340
|
}
|
|
1328
|
-
return s.emissiveTexture !== void 0 && i !== hA && c.push(e.assignTexture(
|
|
1329
|
-
const g = new i(
|
|
1341
|
+
return s.emissiveTexture !== void 0 && i !== hA && c.push(e.assignTexture(o, "emissiveMap", s.emissiveTexture, AA)), Promise.all(c).then(function() {
|
|
1342
|
+
const g = new i(o);
|
|
1330
1343
|
return s.name && (g.name = s.name), tA(g, s), e.associations.set(g, { materials: A }), s.extensions && gA(t, g, s), g;
|
|
1331
1344
|
});
|
|
1332
1345
|
}
|
|
@@ -1345,14 +1358,14 @@ class Wa {
|
|
|
1345
1358
|
*/
|
|
1346
1359
|
loadGeometries(A) {
|
|
1347
1360
|
const e = this, a = this.extensions, t = this.primitiveCache;
|
|
1348
|
-
function s(
|
|
1349
|
-
return a[y.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(
|
|
1350
|
-
return ke(
|
|
1361
|
+
function s(o) {
|
|
1362
|
+
return a[y.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o, e).then(function(r) {
|
|
1363
|
+
return ke(r, o, e);
|
|
1351
1364
|
});
|
|
1352
1365
|
}
|
|
1353
1366
|
const i = [];
|
|
1354
|
-
for (let
|
|
1355
|
-
const c = A[
|
|
1367
|
+
for (let o = 0, r = A.length; o < r; o++) {
|
|
1368
|
+
const c = A[o], I = Ka(c), g = t[I];
|
|
1356
1369
|
if (g)
|
|
1357
1370
|
i.push(g.promise);
|
|
1358
1371
|
else {
|
|
@@ -1368,13 +1381,13 @@ class Wa {
|
|
|
1368
1381
|
* @return {Promise<Group|Mesh|SkinnedMesh>}
|
|
1369
1382
|
*/
|
|
1370
1383
|
loadMesh(A) {
|
|
1371
|
-
const e = this, a = this.json, t = this.extensions, s = a.meshes[A], i = s.primitives,
|
|
1372
|
-
for (let
|
|
1373
|
-
const I = i[
|
|
1374
|
-
|
|
1384
|
+
const e = this, a = this.json, t = this.extensions, s = a.meshes[A], i = s.primitives, o = [];
|
|
1385
|
+
for (let r = 0, c = i.length; r < c; r++) {
|
|
1386
|
+
const I = i[r].material === void 0 ? va(this.cache) : this.getDependency("material", i[r].material);
|
|
1387
|
+
o.push(I);
|
|
1375
1388
|
}
|
|
1376
|
-
return
|
|
1377
|
-
const c =
|
|
1389
|
+
return o.push(e.loadGeometries(i)), Promise.all(o).then(function(r) {
|
|
1390
|
+
const c = r.slice(0, r.length - 1), I = r[r.length - 1], g = [];
|
|
1378
1391
|
for (let C = 0, f = I.length; C < f; C++) {
|
|
1379
1392
|
const d = I[C], p = i[C];
|
|
1380
1393
|
let E;
|
|
@@ -1431,17 +1444,17 @@ class Wa {
|
|
|
1431
1444
|
for (let t = 0, s = e.joints.length; t < s; t++)
|
|
1432
1445
|
a.push(this._loadNodeShallow(e.joints[t]));
|
|
1433
1446
|
return e.inverseBindMatrices !== void 0 ? a.push(this.getDependency("accessor", e.inverseBindMatrices)) : a.push(null), Promise.all(a).then(function(t) {
|
|
1434
|
-
const s = t.pop(), i = t,
|
|
1447
|
+
const s = t.pop(), i = t, o = [], r = [];
|
|
1435
1448
|
for (let c = 0, I = i.length; c < I; c++) {
|
|
1436
1449
|
const g = i[c];
|
|
1437
1450
|
if (g) {
|
|
1438
|
-
|
|
1451
|
+
o.push(g);
|
|
1439
1452
|
const B = new yA();
|
|
1440
|
-
s !== null && B.fromArray(s.array, c * 16),
|
|
1453
|
+
s !== null && B.fromArray(s.array, c * 16), r.push(B);
|
|
1441
1454
|
} else
|
|
1442
1455
|
console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', e.joints[c]);
|
|
1443
1456
|
}
|
|
1444
|
-
return new qt(
|
|
1457
|
+
return new qt(o, r);
|
|
1445
1458
|
});
|
|
1446
1459
|
}
|
|
1447
1460
|
/**
|
|
@@ -1450,15 +1463,15 @@ class Wa {
|
|
|
1450
1463
|
* @return {Promise<AnimationClip>}
|
|
1451
1464
|
*/
|
|
1452
1465
|
loadAnimation(A) {
|
|
1453
|
-
const e = this.json, a = this, t = e.animations[A], s = t.name ? t.name : "animation_" + A, i = [],
|
|
1466
|
+
const e = this.json, a = this, t = e.animations[A], s = t.name ? t.name : "animation_" + A, i = [], o = [], r = [], c = [], I = [];
|
|
1454
1467
|
for (let g = 0, B = t.channels.length; g < B; g++) {
|
|
1455
1468
|
const C = t.channels[g], f = t.samplers[C.sampler], d = C.target, p = d.node, E = t.parameters !== void 0 ? t.parameters[f.input] : f.input, l = t.parameters !== void 0 ? t.parameters[f.output] : f.output;
|
|
1456
|
-
d.node !== void 0 && (i.push(this.getDependency("node", p)),
|
|
1469
|
+
d.node !== void 0 && (i.push(this.getDependency("node", p)), o.push(this.getDependency("accessor", E)), r.push(this.getDependency("accessor", l)), c.push(f), I.push(d));
|
|
1457
1470
|
}
|
|
1458
1471
|
return Promise.all([
|
|
1459
1472
|
Promise.all(i),
|
|
1460
|
-
Promise.all(r),
|
|
1461
1473
|
Promise.all(o),
|
|
1474
|
+
Promise.all(r),
|
|
1462
1475
|
Promise.all(c),
|
|
1463
1476
|
Promise.all(I)
|
|
1464
1477
|
]).then(function(g) {
|
|
@@ -1479,10 +1492,10 @@ class Wa {
|
|
|
1479
1492
|
const e = this.json, a = this, t = e.nodes[A];
|
|
1480
1493
|
return t.mesh === void 0 ? null : a.getDependency("mesh", t.mesh).then(function(s) {
|
|
1481
1494
|
const i = a._getNodeRef(a.meshCache, t.mesh, s);
|
|
1482
|
-
return t.weights !== void 0 && i.traverse(function(
|
|
1483
|
-
if (
|
|
1484
|
-
for (let
|
|
1485
|
-
|
|
1495
|
+
return t.weights !== void 0 && i.traverse(function(o) {
|
|
1496
|
+
if (o.isMesh)
|
|
1497
|
+
for (let r = 0, c = t.weights.length; r < c; r++)
|
|
1498
|
+
o.morphTargetInfluences[r] = t.weights[r];
|
|
1486
1499
|
}), i;
|
|
1487
1500
|
});
|
|
1488
1501
|
}
|
|
@@ -1492,14 +1505,14 @@ class Wa {
|
|
|
1492
1505
|
* @return {Promise<Object3D>}
|
|
1493
1506
|
*/
|
|
1494
1507
|
loadNode(A) {
|
|
1495
|
-
const e = this.json, a = this, t = e.nodes[A], s = a._loadNodeShallow(A), i = [],
|
|
1496
|
-
for (let c = 0, I =
|
|
1497
|
-
i.push(a.getDependency("node",
|
|
1498
|
-
const
|
|
1508
|
+
const e = this.json, a = this, t = e.nodes[A], s = a._loadNodeShallow(A), i = [], o = t.children || [];
|
|
1509
|
+
for (let c = 0, I = o.length; c < I; c++)
|
|
1510
|
+
i.push(a.getDependency("node", o[c]));
|
|
1511
|
+
const r = t.skin === void 0 ? Promise.resolve(null) : a.getDependency("skin", t.skin);
|
|
1499
1512
|
return Promise.all([
|
|
1500
1513
|
s,
|
|
1501
1514
|
Promise.all(i),
|
|
1502
|
-
|
|
1515
|
+
r
|
|
1503
1516
|
]).then(function(c) {
|
|
1504
1517
|
const I = c[0], g = c[1], B = c[2];
|
|
1505
1518
|
B !== null && I.traverse(function(C) {
|
|
@@ -1516,16 +1529,16 @@ class Wa {
|
|
|
1516
1529
|
const e = this.json, a = this.extensions, t = this;
|
|
1517
1530
|
if (this.nodeCache[A] !== void 0)
|
|
1518
1531
|
return this.nodeCache[A];
|
|
1519
|
-
const s = e.nodes[A], i = s.name ? t.createUniqueName(s.name) : "",
|
|
1532
|
+
const s = e.nodes[A], i = s.name ? t.createUniqueName(s.name) : "", o = [], r = t._invokeOne(function(c) {
|
|
1520
1533
|
return c.createNodeMesh && c.createNodeMesh(A);
|
|
1521
1534
|
});
|
|
1522
|
-
return
|
|
1535
|
+
return r && o.push(r), s.camera !== void 0 && o.push(t.getDependency("camera", s.camera).then(function(c) {
|
|
1523
1536
|
return t._getNodeRef(t.cameraCache, s.camera, c);
|
|
1524
1537
|
})), t._invokeAll(function(c) {
|
|
1525
1538
|
return c.createNodeAttachment && c.createNodeAttachment(A);
|
|
1526
1539
|
}).forEach(function(c) {
|
|
1527
|
-
|
|
1528
|
-
}), this.nodeCache[A] = Promise.all(
|
|
1540
|
+
o.push(c);
|
|
1541
|
+
}), this.nodeCache[A] = Promise.all(o).then(function(c) {
|
|
1529
1542
|
let I;
|
|
1530
1543
|
if (s.isBone === !0 ? I = new Ot() : c.length > 1 ? I = new kA() : c.length === 1 ? I = c[0] : I = new se(), I !== c[0])
|
|
1531
1544
|
for (let g = 0, B = c.length; g < B; g++)
|
|
@@ -1546,12 +1559,12 @@ class Wa {
|
|
|
1546
1559
|
loadScene(A) {
|
|
1547
1560
|
const e = this.extensions, a = this.json.scenes[A], t = this, s = new kA();
|
|
1548
1561
|
a.name && (s.name = t.createUniqueName(a.name)), tA(s, a), a.extensions && gA(e, s, a);
|
|
1549
|
-
const i = a.nodes || [],
|
|
1550
|
-
for (let
|
|
1551
|
-
|
|
1552
|
-
return Promise.all(
|
|
1553
|
-
for (let I = 0, g =
|
|
1554
|
-
s.add(
|
|
1562
|
+
const i = a.nodes || [], o = [];
|
|
1563
|
+
for (let r = 0, c = i.length; r < c; r++)
|
|
1564
|
+
o.push(t.getDependency("node", i[r]));
|
|
1565
|
+
return Promise.all(o).then(function(r) {
|
|
1566
|
+
for (let I = 0, g = r.length; I < g; I++)
|
|
1567
|
+
s.add(r[I]);
|
|
1555
1568
|
const c = (I) => {
|
|
1556
1569
|
const g = /* @__PURE__ */ new Map();
|
|
1557
1570
|
for (const [B, C] of t.associations)
|
|
@@ -1565,10 +1578,10 @@ class Wa {
|
|
|
1565
1578
|
});
|
|
1566
1579
|
}
|
|
1567
1580
|
_createAnimationTracks(A, e, a, t, s) {
|
|
1568
|
-
const i = [],
|
|
1581
|
+
const i = [], o = A.name ? A.name : A.uuid, r = [];
|
|
1569
1582
|
iA[s.path] === iA.weights ? A.traverse(function(B) {
|
|
1570
|
-
B.morphTargetInfluences &&
|
|
1571
|
-
}) :
|
|
1583
|
+
B.morphTargetInfluences && r.push(B.name ? B.name : B.uuid);
|
|
1584
|
+
}) : r.push(o);
|
|
1572
1585
|
let c;
|
|
1573
1586
|
switch (iA[s.path]) {
|
|
1574
1587
|
case iA.weights:
|
|
@@ -1595,9 +1608,9 @@ class Wa {
|
|
|
1595
1608
|
break;
|
|
1596
1609
|
}
|
|
1597
1610
|
const I = t.interpolation !== void 0 ? Oa[t.interpolation] : Ne, g = this._getArrayFromAccessor(a);
|
|
1598
|
-
for (let B = 0, C =
|
|
1611
|
+
for (let B = 0, C = r.length; B < C; B++) {
|
|
1599
1612
|
const f = new c(
|
|
1600
|
-
|
|
1613
|
+
r[B] + "." + iA[s.path],
|
|
1601
1614
|
e.array,
|
|
1602
1615
|
g,
|
|
1603
1616
|
I
|
|
@@ -1626,13 +1639,13 @@ class Wa {
|
|
|
1626
1639
|
function Va(n, A, e) {
|
|
1627
1640
|
const a = A.attributes, t = new Wt();
|
|
1628
1641
|
if (a.POSITION !== void 0) {
|
|
1629
|
-
const
|
|
1630
|
-
if (
|
|
1642
|
+
const o = e.json.accessors[a.POSITION], r = o.min, c = o.max;
|
|
1643
|
+
if (r !== void 0 && c !== void 0) {
|
|
1631
1644
|
if (t.set(
|
|
1632
|
-
new CA(
|
|
1645
|
+
new CA(r[0], r[1], r[2]),
|
|
1633
1646
|
new CA(c[0], c[1], c[2])
|
|
1634
|
-
),
|
|
1635
|
-
const I = $A(fA[
|
|
1647
|
+
), o.normalized) {
|
|
1648
|
+
const I = $A(fA[o.componentType]);
|
|
1636
1649
|
t.min.multiplyScalar(I), t.max.multiplyScalar(I);
|
|
1637
1650
|
}
|
|
1638
1651
|
} else {
|
|
@@ -1643,22 +1656,22 @@ function Va(n, A, e) {
|
|
|
1643
1656
|
return;
|
|
1644
1657
|
const s = A.targets;
|
|
1645
1658
|
if (s !== void 0) {
|
|
1646
|
-
const
|
|
1659
|
+
const o = new CA(), r = new CA();
|
|
1647
1660
|
for (let c = 0, I = s.length; c < I; c++) {
|
|
1648
1661
|
const g = s[c];
|
|
1649
1662
|
if (g.POSITION !== void 0) {
|
|
1650
1663
|
const B = e.json.accessors[g.POSITION], C = B.min, f = B.max;
|
|
1651
1664
|
if (C !== void 0 && f !== void 0) {
|
|
1652
|
-
if (
|
|
1665
|
+
if (r.setX(Math.max(Math.abs(C[0]), Math.abs(f[0]))), r.setY(Math.max(Math.abs(C[1]), Math.abs(f[1]))), r.setZ(Math.max(Math.abs(C[2]), Math.abs(f[2]))), B.normalized) {
|
|
1653
1666
|
const d = $A(fA[B.componentType]);
|
|
1654
|
-
|
|
1667
|
+
r.multiplyScalar(d);
|
|
1655
1668
|
}
|
|
1656
|
-
|
|
1669
|
+
o.max(r);
|
|
1657
1670
|
} else
|
|
1658
1671
|
console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1659
1672
|
}
|
|
1660
1673
|
}
|
|
1661
|
-
t.expandByVector(
|
|
1674
|
+
t.expandByVector(o);
|
|
1662
1675
|
}
|
|
1663
1676
|
n.boundingBox = t;
|
|
1664
1677
|
const i = new Vt();
|
|
@@ -1666,18 +1679,18 @@ function Va(n, A, e) {
|
|
|
1666
1679
|
}
|
|
1667
1680
|
function ke(n, A, e) {
|
|
1668
1681
|
const a = A.attributes, t = [];
|
|
1669
|
-
function s(i,
|
|
1670
|
-
return e.getDependency("accessor", i).then(function(
|
|
1671
|
-
n.setAttribute(
|
|
1682
|
+
function s(i, o) {
|
|
1683
|
+
return e.getDependency("accessor", i).then(function(r) {
|
|
1684
|
+
n.setAttribute(o, r);
|
|
1672
1685
|
});
|
|
1673
1686
|
}
|
|
1674
1687
|
for (const i in a) {
|
|
1675
|
-
const
|
|
1676
|
-
|
|
1688
|
+
const o = ZA[i] || i.toLowerCase();
|
|
1689
|
+
o in n.attributes || t.push(s(a[i], o));
|
|
1677
1690
|
}
|
|
1678
1691
|
if (A.indices !== void 0 && !n.index) {
|
|
1679
|
-
const i = e.getDependency("accessor", A.indices).then(function(
|
|
1680
|
-
n.setIndex(
|
|
1692
|
+
const i = e.getDependency("accessor", A.indices).then(function(o) {
|
|
1693
|
+
n.setIndex(o);
|
|
1681
1694
|
});
|
|
1682
1695
|
t.push(i);
|
|
1683
1696
|
}
|
|
@@ -1717,51 +1730,51 @@ class za extends TA {
|
|
|
1717
1730
|
}
|
|
1718
1731
|
parse(A, e, a = () => {
|
|
1719
1732
|
}) {
|
|
1720
|
-
this.decodeDracoFile(A, e, null, null,
|
|
1733
|
+
this.decodeDracoFile(A, e, null, null, AA, a).catch(a);
|
|
1721
1734
|
}
|
|
1722
1735
|
decodeDracoFile(A, e, a, t, s = Y, i = () => {
|
|
1723
1736
|
}) {
|
|
1724
|
-
const
|
|
1737
|
+
const o = {
|
|
1725
1738
|
attributeIDs: a || this.defaultAttributeIDs,
|
|
1726
1739
|
attributeTypes: t || this.defaultAttributeTypes,
|
|
1727
1740
|
useUniqueIDs: !!a,
|
|
1728
1741
|
vertexColorSpace: s
|
|
1729
1742
|
};
|
|
1730
|
-
return this.decodeGeometry(A,
|
|
1743
|
+
return this.decodeGeometry(A, o).then(e).catch(i);
|
|
1731
1744
|
}
|
|
1732
1745
|
decodeGeometry(A, e) {
|
|
1733
1746
|
const a = JSON.stringify(e);
|
|
1734
1747
|
if (HA.has(A)) {
|
|
1735
|
-
const
|
|
1736
|
-
if (
|
|
1737
|
-
return
|
|
1748
|
+
const r = HA.get(A);
|
|
1749
|
+
if (r.key === a)
|
|
1750
|
+
return r.promise;
|
|
1738
1751
|
if (A.byteLength === 0)
|
|
1739
1752
|
throw new Error(
|
|
1740
1753
|
"THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred."
|
|
1741
1754
|
);
|
|
1742
1755
|
}
|
|
1743
1756
|
let t;
|
|
1744
|
-
const s = this.workerNextTaskID++, i = A.byteLength,
|
|
1757
|
+
const s = this.workerNextTaskID++, i = A.byteLength, o = this._getWorker(s, i).then((r) => (t = r, new Promise((c, I) => {
|
|
1745
1758
|
t._callbacks[s] = { resolve: c, reject: I }, t.postMessage({ type: "decode", id: s, taskConfig: e, buffer: A }, [A]);
|
|
1746
|
-
}))).then((
|
|
1747
|
-
return
|
|
1759
|
+
}))).then((r) => this._createGeometry(r.geometry));
|
|
1760
|
+
return o.catch(() => !0).then(() => {
|
|
1748
1761
|
t && s && this._releaseTask(t, s);
|
|
1749
1762
|
}), HA.set(A, {
|
|
1750
1763
|
key: a,
|
|
1751
|
-
promise:
|
|
1752
|
-
}),
|
|
1764
|
+
promise: o
|
|
1765
|
+
}), o;
|
|
1753
1766
|
}
|
|
1754
1767
|
_createGeometry(A) {
|
|
1755
1768
|
const e = new ne();
|
|
1756
|
-
A.index && e.setIndex(new
|
|
1769
|
+
A.index && e.setIndex(new X(A.index.array, 1));
|
|
1757
1770
|
for (let a = 0; a < A.attributes.length; a++) {
|
|
1758
|
-
const t = A.attributes[a], s = t.name, i = t.array,
|
|
1759
|
-
s === "color" && (this._assignVertexColorSpace(
|
|
1771
|
+
const t = A.attributes[a], s = t.name, i = t.array, o = t.itemSize, r = new X(i, o);
|
|
1772
|
+
s === "color" && (this._assignVertexColorSpace(r, t.vertexColorSpace), r.normalized = !(i instanceof Float32Array)), e.setAttribute(s, r);
|
|
1760
1773
|
}
|
|
1761
1774
|
return e;
|
|
1762
1775
|
}
|
|
1763
1776
|
_assignVertexColorSpace(A, e) {
|
|
1764
|
-
if (e !==
|
|
1777
|
+
if (e !== AA) return;
|
|
1765
1778
|
const a = new rA();
|
|
1766
1779
|
for (let t = 0, s = A.count; t < s; t++)
|
|
1767
1780
|
a.fromBufferAttribute(A, t).convertSRGBToLinear(), A.setXYZ(t, a.r, a.g, a.b);
|
|
@@ -1832,24 +1845,24 @@ class za extends TA {
|
|
|
1832
1845
|
function Xa() {
|
|
1833
1846
|
let n, A;
|
|
1834
1847
|
onmessage = function(i) {
|
|
1835
|
-
const
|
|
1836
|
-
switch (
|
|
1848
|
+
const o = i.data;
|
|
1849
|
+
switch (o.type) {
|
|
1837
1850
|
case "init":
|
|
1838
|
-
n =
|
|
1851
|
+
n = o.decoderConfig, A = new Promise(function(I) {
|
|
1839
1852
|
n.onModuleLoaded = function(g) {
|
|
1840
1853
|
I({ draco: g });
|
|
1841
1854
|
}, DracoDecoderModule(n);
|
|
1842
1855
|
});
|
|
1843
1856
|
break;
|
|
1844
1857
|
case "decode":
|
|
1845
|
-
const
|
|
1858
|
+
const r = o.buffer, c = o.taskConfig;
|
|
1846
1859
|
A.then((I) => {
|
|
1847
1860
|
const g = I.draco, B = new g.Decoder();
|
|
1848
1861
|
try {
|
|
1849
|
-
const C = e(g, B, new Int8Array(
|
|
1850
|
-
C.index && f.push(C.index.array.buffer), self.postMessage({ type: "decode", id:
|
|
1862
|
+
const C = e(g, B, new Int8Array(r), c), f = C.attributes.map((d) => d.array.buffer);
|
|
1863
|
+
C.index && f.push(C.index.array.buffer), self.postMessage({ type: "decode", id: o.id, geometry: C }, f);
|
|
1851
1864
|
} catch (C) {
|
|
1852
|
-
console.error(C), self.postMessage({ type: "error", id:
|
|
1865
|
+
console.error(C), self.postMessage({ type: "error", id: o.id, error: C.message });
|
|
1853
1866
|
} finally {
|
|
1854
1867
|
g.destroy(B);
|
|
1855
1868
|
}
|
|
@@ -1857,14 +1870,14 @@ function Xa() {
|
|
|
1857
1870
|
break;
|
|
1858
1871
|
}
|
|
1859
1872
|
};
|
|
1860
|
-
function e(i,
|
|
1873
|
+
function e(i, o, r, c) {
|
|
1861
1874
|
const I = c.attributeIDs, g = c.attributeTypes;
|
|
1862
1875
|
let B, C;
|
|
1863
|
-
const f =
|
|
1876
|
+
const f = o.GetEncodedGeometryType(r);
|
|
1864
1877
|
if (f === i.TRIANGULAR_MESH)
|
|
1865
|
-
B = new i.Mesh(), C =
|
|
1878
|
+
B = new i.Mesh(), C = o.DecodeArrayToMesh(r, r.byteLength, B);
|
|
1866
1879
|
else if (f === i.POINT_CLOUD)
|
|
1867
|
-
B = new i.PointCloud(), C =
|
|
1880
|
+
B = new i.PointCloud(), C = o.DecodeArrayToPointCloud(r, r.byteLength, B);
|
|
1868
1881
|
else
|
|
1869
1882
|
throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
|
|
1870
1883
|
if (!C.ok() || B.ptr === 0)
|
|
@@ -1874,25 +1887,25 @@ function Xa() {
|
|
|
1874
1887
|
const E = self[g[p]];
|
|
1875
1888
|
let l, h;
|
|
1876
1889
|
if (c.useUniqueIDs)
|
|
1877
|
-
h = I[p], l =
|
|
1890
|
+
h = I[p], l = o.GetAttributeByUniqueId(B, h);
|
|
1878
1891
|
else {
|
|
1879
|
-
if (h =
|
|
1880
|
-
l =
|
|
1892
|
+
if (h = o.GetAttributeId(B, i[I[p]]), h === -1) continue;
|
|
1893
|
+
l = o.GetAttribute(B, h);
|
|
1881
1894
|
}
|
|
1882
|
-
const u = t(i,
|
|
1895
|
+
const u = t(i, o, B, p, E, l);
|
|
1883
1896
|
p === "color" && (u.vertexColorSpace = c.vertexColorSpace), d.attributes.push(u);
|
|
1884
1897
|
}
|
|
1885
|
-
return f === i.TRIANGULAR_MESH && (d.index = a(i,
|
|
1898
|
+
return f === i.TRIANGULAR_MESH && (d.index = a(i, o, B)), i.destroy(B), d;
|
|
1886
1899
|
}
|
|
1887
|
-
function a(i,
|
|
1888
|
-
const I =
|
|
1889
|
-
|
|
1900
|
+
function a(i, o, r) {
|
|
1901
|
+
const I = r.num_faces() * 3, g = I * 4, B = i._malloc(g);
|
|
1902
|
+
o.GetTrianglesUInt32Array(r, g, B);
|
|
1890
1903
|
const C = new Uint32Array(i.HEAPF32.buffer, B, I).slice();
|
|
1891
1904
|
return i._free(B), { array: C, itemSize: 1 };
|
|
1892
1905
|
}
|
|
1893
|
-
function t(i,
|
|
1894
|
-
const B = g.num_components(), f =
|
|
1895
|
-
|
|
1906
|
+
function t(i, o, r, c, I, g) {
|
|
1907
|
+
const B = g.num_components(), f = r.num_points() * B, d = f * I.BYTES_PER_ELEMENT, p = s(i, I), E = i._malloc(d);
|
|
1908
|
+
o.GetAttributeDataArrayForAllPoints(r, g, p, d, E);
|
|
1896
1909
|
const l = new I(i.HEAPF32.buffer, E, f).slice();
|
|
1897
1910
|
return i._free(E), {
|
|
1898
1911
|
name: c,
|
|
@@ -1900,8 +1913,8 @@ function Xa() {
|
|
|
1900
1913
|
itemSize: B
|
|
1901
1914
|
};
|
|
1902
1915
|
}
|
|
1903
|
-
function s(i,
|
|
1904
|
-
switch (
|
|
1916
|
+
function s(i, o) {
|
|
1917
|
+
switch (o) {
|
|
1905
1918
|
case Float32Array:
|
|
1906
1919
|
return i.DT_FLOAT32;
|
|
1907
1920
|
case Int8Array:
|
|
@@ -2009,15 +2022,15 @@ function ns(n) {
|
|
|
2009
2022
|
e.vkFormat = t._nextUint32(), e.typeSize = t._nextUint32(), e.pixelWidth = t._nextUint32(), e.pixelHeight = t._nextUint32(), e.pixelDepth = t._nextUint32(), e.layerCount = t._nextUint32(), e.faceCount = t._nextUint32();
|
|
2010
2023
|
const s = t._nextUint32();
|
|
2011
2024
|
e.supercompressionScheme = t._nextUint32();
|
|
2012
|
-
const i = t._nextUint32(),
|
|
2025
|
+
const i = t._nextUint32(), o = t._nextUint32(), r = t._nextUint32(), c = t._nextUint32(), I = t._nextUint64(), g = t._nextUint64(), B = new dA(n, U.length + a, 3 * s * 8, !0);
|
|
2013
2026
|
for (let T = 0; T < s; T++) e.levels.push({ levelData: new Uint8Array(n.buffer, n.byteOffset + B._nextUint64(), B._nextUint64()), uncompressedByteLength: B._nextUint64() });
|
|
2014
|
-
const C = new dA(n, i,
|
|
2027
|
+
const C = new dA(n, i, o, !0), f = { vendorId: C._skip(4)._nextUint16(), descriptorType: C._nextUint16(), versionNumber: C._nextUint16(), descriptorBlockSize: C._nextUint16(), colorModel: C._nextUint8(), colorPrimaries: C._nextUint8(), transferFunction: C._nextUint8(), flags: C._nextUint8(), texelBlockDimension: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], bytesPlane: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], samples: [] }, d = (f.descriptorBlockSize / 4 - 6) / 4;
|
|
2015
2028
|
for (let T = 0; T < d; T++) {
|
|
2016
2029
|
const N = { bitOffset: C._nextUint16(), bitLength: C._nextUint8(), channelType: C._nextUint8(), samplePosition: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2017
2030
|
64 & N.channelType ? (N.sampleLower = C._nextInt32(), N.sampleUpper = C._nextInt32()) : (N.sampleLower = C._nextUint32(), N.sampleUpper = C._nextUint32()), f.samples[T] = N;
|
|
2018
2031
|
}
|
|
2019
2032
|
e.dataFormatDescriptor.length = 0, e.dataFormatDescriptor.push(f);
|
|
2020
|
-
const p = new dA(n,
|
|
2033
|
+
const p = new dA(n, r, c, !0);
|
|
2021
2034
|
for (; p._offset < c; ) {
|
|
2022
2035
|
const T = p._nextUint32(), N = p._scan(T), _ = Se(N), J = p._scan(T - N.byteLength);
|
|
2023
2036
|
e.keyValue[_] = _.match(/^ktx/i) ? Se(J) : J, p._offset % 4 && p._skip(4 - p._offset % 4);
|
|
@@ -2028,28 +2041,28 @@ function ns(n) {
|
|
|
2028
2041
|
const b = I + E._offset, Q = b + u, m = Q + k, D = m + R, w = new Uint8Array(n.buffer, n.byteOffset + b, u), S = new Uint8Array(n.buffer, n.byteOffset + Q, k), F = new Uint8Array(n.buffer, n.byteOffset + m, R), x = new Uint8Array(n.buffer, n.byteOffset + D, G);
|
|
2029
2042
|
return e.globalData = { endpointCount: l, selectorCount: h, imageDescs: M, endpointsData: w, selectorsData: S, tablesData: F, extendedData: x }, e;
|
|
2030
2043
|
}
|
|
2031
|
-
let OA,
|
|
2044
|
+
let OA, eA, Ae;
|
|
2032
2045
|
const vA = { env: { emscripten_notify_memory_growth: function(n) {
|
|
2033
|
-
Ae = new Uint8Array(
|
|
2046
|
+
Ae = new Uint8Array(eA.exports.memory.buffer);
|
|
2034
2047
|
} } };
|
|
2035
2048
|
class os {
|
|
2036
2049
|
init() {
|
|
2037
2050
|
return OA || (OA = typeof fetch < "u" ? fetch("data:application/wasm;base64," + ye).then((A) => A.arrayBuffer()).then((A) => WebAssembly.instantiate(A, vA)).then(this._init) : WebAssembly.instantiate(Buffer.from(ye, "base64"), vA).then(this._init), OA);
|
|
2038
2051
|
}
|
|
2039
2052
|
_init(A) {
|
|
2040
|
-
|
|
2053
|
+
eA = A.instance, vA.env.emscripten_notify_memory_growth(0);
|
|
2041
2054
|
}
|
|
2042
2055
|
decode(A, e = 0) {
|
|
2043
|
-
if (!
|
|
2044
|
-
const a = A.byteLength, t =
|
|
2045
|
-
Ae.set(A, t), e = e || Number(
|
|
2046
|
-
const s =
|
|
2047
|
-
return
|
|
2056
|
+
if (!eA) throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
2057
|
+
const a = A.byteLength, t = eA.exports.malloc(a);
|
|
2058
|
+
Ae.set(A, t), e = e || Number(eA.exports.ZSTD_findDecompressedSize(t, a));
|
|
2059
|
+
const s = eA.exports.malloc(e), i = eA.exports.ZSTD_decompress(s, e, t, a), o = Ae.slice(s, s + i);
|
|
2060
|
+
return eA.exports.free(t), eA.exports.free(s), o;
|
|
2048
2061
|
}
|
|
2049
2062
|
}
|
|
2050
2063
|
const ye = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", JA = /* @__PURE__ */ new WeakMap();
|
|
2051
2064
|
let jA = 0, KA;
|
|
2052
|
-
class
|
|
2065
|
+
class $ extends TA {
|
|
2053
2066
|
constructor(A) {
|
|
2054
2067
|
super(A), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Za(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
|
|
2055
2068
|
'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
|
|
@@ -2096,18 +2109,18 @@ class Z extends TA {
|
|
|
2096
2109
|
a.setPath(this.transcoderPath), a.setResponseType("arraybuffer"), a.setWithCredentials(this.withCredentials);
|
|
2097
2110
|
const t = a.loadAsync("basis_transcoder.wasm");
|
|
2098
2111
|
this.transcoderPending = Promise.all([e, t]).then(([s, i]) => {
|
|
2099
|
-
const
|
|
2112
|
+
const o = $.BasisWorker.toString(), r = [
|
|
2100
2113
|
"/* constants */",
|
|
2101
|
-
"let _EngineFormat = " + JSON.stringify(
|
|
2102
|
-
"let _TranscoderFormat = " + JSON.stringify(
|
|
2103
|
-
"let _BasisFormat = " + JSON.stringify(
|
|
2114
|
+
"let _EngineFormat = " + JSON.stringify($.EngineFormat),
|
|
2115
|
+
"let _TranscoderFormat = " + JSON.stringify($.TranscoderFormat),
|
|
2116
|
+
"let _BasisFormat = " + JSON.stringify($.BasisFormat),
|
|
2104
2117
|
"/* basis_transcoder.js */",
|
|
2105
2118
|
s,
|
|
2106
2119
|
"/* worker */",
|
|
2107
|
-
|
|
2120
|
+
o.substring(o.indexOf("{") + 1, o.lastIndexOf("}"))
|
|
2108
2121
|
].join(`
|
|
2109
2122
|
`);
|
|
2110
|
-
this.workerSourceURL = URL.createObjectURL(new Blob([
|
|
2123
|
+
this.workerSourceURL = URL.createObjectURL(new Blob([r])), this.transcoderBinary = i, this.workerPool.setWorkerCreator(() => {
|
|
2111
2124
|
const c = new Worker(this.workerSourceURL), I = this.transcoderBinary.slice(0);
|
|
2112
2125
|
return c.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: I }, [I]), c;
|
|
2113
2126
|
});
|
|
@@ -2133,8 +2146,8 @@ class Z extends TA {
|
|
|
2133
2146
|
this._createTexture(A).then((t) => e ? e(t) : null).catch(a);
|
|
2134
2147
|
}
|
|
2135
2148
|
_createTextureFrom(A, e) {
|
|
2136
|
-
const { faces: a, width: t, height: s, format: i, type:
|
|
2137
|
-
if (
|
|
2149
|
+
const { faces: a, width: t, height: s, format: i, type: o, error: r, dfdFlags: c } = A;
|
|
2150
|
+
if (o === "error") return Promise.reject(r);
|
|
2138
2151
|
let I;
|
|
2139
2152
|
if (e.faceCount === 6)
|
|
2140
2153
|
I = new Xt(a, i, K);
|
|
@@ -2160,11 +2173,11 @@ class Z extends TA {
|
|
|
2160
2173
|
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), jA--, this;
|
|
2161
2174
|
}
|
|
2162
2175
|
}
|
|
2163
|
-
|
|
2176
|
+
$.BasisFormat = {
|
|
2164
2177
|
ETC1S: 0,
|
|
2165
2178
|
UASTC_4x4: 1
|
|
2166
2179
|
};
|
|
2167
|
-
|
|
2180
|
+
$.TranscoderFormat = {
|
|
2168
2181
|
ETC1: 0,
|
|
2169
2182
|
ETC2: 1,
|
|
2170
2183
|
BC1: 2,
|
|
@@ -2183,7 +2196,7 @@ Z.TranscoderFormat = {
|
|
|
2183
2196
|
BGR565: 15,
|
|
2184
2197
|
RGBA4444: 16
|
|
2185
2198
|
};
|
|
2186
|
-
|
|
2199
|
+
$.EngineFormat = {
|
|
2187
2200
|
RGBAFormat: bA,
|
|
2188
2201
|
RGBA_ASTC_4x4_Format: $t,
|
|
2189
2202
|
RGBA_BPTC_Format: Aa,
|
|
@@ -2195,7 +2208,7 @@ Z.EngineFormat = {
|
|
|
2195
2208
|
RGB_PVRTC_4BPPV1_Format: na,
|
|
2196
2209
|
RGBA_S3TC_DXT1_Format: oa
|
|
2197
2210
|
};
|
|
2198
|
-
|
|
2211
|
+
$.BasisWorker = function() {
|
|
2199
2212
|
let n, A, e;
|
|
2200
2213
|
const a = _EngineFormat, t = _TranscoderFormat, s = _BasisFormat;
|
|
2201
2214
|
self.addEventListener("message", function(f) {
|
|
@@ -2207,7 +2220,7 @@ Z.BasisWorker = function() {
|
|
|
2207
2220
|
case "transcode":
|
|
2208
2221
|
A.then(() => {
|
|
2209
2222
|
try {
|
|
2210
|
-
const { faces: p, buffers: E, width: l, height: h, hasAlpha: u, format: k, dfdFlags: R } =
|
|
2223
|
+
const { faces: p, buffers: E, width: l, height: h, hasAlpha: u, format: k, dfdFlags: R } = o(d.buffer);
|
|
2211
2224
|
self.postMessage({ type: "transcode", id: d.id, faces: p, width: l, height: h, hasAlpha: u, format: k, dfdFlags: R }, E);
|
|
2212
2225
|
} catch (p) {
|
|
2213
2226
|
console.error(p), self.postMessage({ type: "error", id: d.id, error: p.message });
|
|
@@ -2223,7 +2236,7 @@ Z.BasisWorker = function() {
|
|
|
2223
2236
|
e.initializeBasis(), e.KTX2File === void 0 && console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
|
|
2224
2237
|
});
|
|
2225
2238
|
}
|
|
2226
|
-
function
|
|
2239
|
+
function o(f) {
|
|
2227
2240
|
const d = new e.KTX2File(new Uint8Array(f));
|
|
2228
2241
|
function p() {
|
|
2229
2242
|
d.close(), d.delete();
|
|
@@ -2256,7 +2269,7 @@ Z.BasisWorker = function() {
|
|
|
2256
2269
|
}
|
|
2257
2270
|
return p(), { faces: m, buffers: D, width: l, height: h, hasAlpha: G, format: Q, dfdFlags: M };
|
|
2258
2271
|
}
|
|
2259
|
-
const
|
|
2272
|
+
const r = [
|
|
2260
2273
|
{
|
|
2261
2274
|
if: "astcSupported",
|
|
2262
2275
|
basisFormat: [s.UASTC_4x4],
|
|
@@ -2311,9 +2324,9 @@ Z.BasisWorker = function() {
|
|
|
2311
2324
|
priorityUASTC: 6,
|
|
2312
2325
|
needsPowerOfTwo: !0
|
|
2313
2326
|
}
|
|
2314
|
-
], c =
|
|
2327
|
+
], c = r.sort(function(f, d) {
|
|
2315
2328
|
return f.priorityETC1S - d.priorityETC1S;
|
|
2316
|
-
}), I =
|
|
2329
|
+
}), I = r.sort(function(f, d) {
|
|
2317
2330
|
return f.priorityUASTC - d.priorityUASTC;
|
|
2318
2331
|
});
|
|
2319
2332
|
function g(f, d, p, E) {
|
|
@@ -2387,7 +2400,7 @@ async function cs(n) {
|
|
|
2387
2400
|
})), e = await KA);
|
|
2388
2401
|
const a = [];
|
|
2389
2402
|
for (let s = 0; s < n.levels.length; s++) {
|
|
2390
|
-
const i = Math.max(1, n.pixelWidth >> s),
|
|
2403
|
+
const i = Math.max(1, n.pixelWidth >> s), o = Math.max(1, n.pixelHeight >> s), r = n.pixelDepth ? Math.max(1, n.pixelDepth >> s) : 0, c = n.levels[s];
|
|
2391
2404
|
let I;
|
|
2392
2405
|
if (n.supercompressionScheme === $a)
|
|
2393
2406
|
I = c.levelData;
|
|
@@ -2407,8 +2420,8 @@ async function cs(n) {
|
|
|
2407
2420
|
) : g = I, a.push({
|
|
2408
2421
|
data: g,
|
|
2409
2422
|
width: i,
|
|
2410
|
-
height:
|
|
2411
|
-
depth:
|
|
2423
|
+
height: o,
|
|
2424
|
+
depth: r
|
|
2412
2425
|
});
|
|
2413
2426
|
}
|
|
2414
2427
|
let t;
|
|
@@ -2422,7 +2435,7 @@ async function cs(n) {
|
|
|
2422
2435
|
}
|
|
2423
2436
|
function at(n) {
|
|
2424
2437
|
const A = n.dataFormatDescriptor[0];
|
|
2425
|
-
return A.colorPrimaries === ts ? A.transferFunction === Re ?
|
|
2438
|
+
return A.colorPrimaries === ts ? A.transferFunction === Re ? AA : Y : A.colorPrimaries === as ? A.transferFunction === Re ? ga : Ia : A.colorPrimaries === es ? oA : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`), oA);
|
|
2426
2439
|
}
|
|
2427
2440
|
var gs = function() {
|
|
2428
2441
|
var n = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb", A = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb", e = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2, 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11]), a = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
|
|
@@ -2430,10 +2443,10 @@ var gs = function() {
|
|
|
2430
2443
|
return {
|
|
2431
2444
|
supported: !1
|
|
2432
2445
|
};
|
|
2433
|
-
var t = WebAssembly.validate(e) ? A : n, s, i = WebAssembly.instantiate(
|
|
2446
|
+
var t = WebAssembly.validate(e) ? A : n, s, i = WebAssembly.instantiate(o(t), {}).then(function(E) {
|
|
2434
2447
|
s = E.instance, s.exports.__wasm_call_ctors();
|
|
2435
2448
|
});
|
|
2436
|
-
function
|
|
2449
|
+
function o(E) {
|
|
2437
2450
|
for (var l = new Uint8Array(E.length), h = 0; h < E.length; ++h) {
|
|
2438
2451
|
var u = E.charCodeAt(h);
|
|
2439
2452
|
l[h] = u > 96 ? u - 97 : u > 64 ? u - 39 : u + 4;
|
|
@@ -2442,7 +2455,7 @@ var gs = function() {
|
|
|
2442
2455
|
l[k++] = l[h] < 60 ? a[l[h]] : (l[h] - 60) * 64 + l[++h];
|
|
2443
2456
|
return l.buffer.slice(0, k);
|
|
2444
2457
|
}
|
|
2445
|
-
function
|
|
2458
|
+
function r(E, l, h, u, k, R) {
|
|
2446
2459
|
var G = s.exports.sbrk, M = h + 3 & -4, b = G(M * u), Q = G(k.length), m = new Uint8Array(s.exports.memory.buffer);
|
|
2447
2460
|
m.set(k, Q);
|
|
2448
2461
|
var D = E(b, h, u, Q, k.length);
|
|
@@ -2471,7 +2484,7 @@ var gs = function() {
|
|
|
2471
2484
|
}, l;
|
|
2472
2485
|
}
|
|
2473
2486
|
function f(E) {
|
|
2474
|
-
for (var l = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(
|
|
2487
|
+
for (var l = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(o(t)) + "]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;" + r.toString() + p.toString(), h = new Blob([l], { type: "text/javascript" }), u = URL.createObjectURL(h), k = 0; k < E; ++k)
|
|
2475
2488
|
g[k] = C(u);
|
|
2476
2489
|
URL.revokeObjectURL(u);
|
|
2477
2490
|
}
|
|
@@ -2488,7 +2501,7 @@ var gs = function() {
|
|
|
2488
2501
|
var l = E.data;
|
|
2489
2502
|
try {
|
|
2490
2503
|
var h = new Uint8Array(l.count * l.size);
|
|
2491
|
-
|
|
2504
|
+
r(s.exports[l.mode], h, l.count, l.size, l.source, s.exports[l.filter]), self.postMessage({ id: l.id, count: l.count, action: "resolve", value: h }, [h.buffer]);
|
|
2492
2505
|
} catch (u) {
|
|
2493
2506
|
self.postMessage({ id: l.id, count: l.count, action: "reject", value: u });
|
|
2494
2507
|
}
|
|
@@ -2501,21 +2514,21 @@ var gs = function() {
|
|
|
2501
2514
|
f(E);
|
|
2502
2515
|
},
|
|
2503
2516
|
decodeVertexBuffer: function(E, l, h, u, k) {
|
|
2504
|
-
|
|
2517
|
+
r(s.exports.meshopt_decodeVertexBuffer, E, l, h, u, s.exports[c[k]]);
|
|
2505
2518
|
},
|
|
2506
2519
|
decodeIndexBuffer: function(E, l, h, u) {
|
|
2507
|
-
|
|
2520
|
+
r(s.exports.meshopt_decodeIndexBuffer, E, l, h, u);
|
|
2508
2521
|
},
|
|
2509
2522
|
decodeIndexSequence: function(E, l, h, u) {
|
|
2510
|
-
|
|
2523
|
+
r(s.exports.meshopt_decodeIndexSequence, E, l, h, u);
|
|
2511
2524
|
},
|
|
2512
2525
|
decodeGltfBuffer: function(E, l, h, u, k, R) {
|
|
2513
|
-
|
|
2526
|
+
r(s.exports[I[k]], E, l, h, u, s.exports[c[R]]);
|
|
2514
2527
|
},
|
|
2515
2528
|
decodeGltfBufferAsync: function(E, l, h, u, k) {
|
|
2516
2529
|
return g.length > 0 ? d(E, l, h, I[u], c[k]) : i.then(function() {
|
|
2517
2530
|
var R = new Uint8Array(E * l);
|
|
2518
|
-
return
|
|
2531
|
+
return r(s.exports[I[u]], R, E, l, h, s.exports[c[k]]), R;
|
|
2519
2532
|
});
|
|
2520
2533
|
}
|
|
2521
2534
|
};
|
|
@@ -2523,11 +2536,11 @@ var gs = function() {
|
|
|
2523
2536
|
function oe() {
|
|
2524
2537
|
const n = new za();
|
|
2525
2538
|
n.setDecoderPath("/draco/");
|
|
2526
|
-
const A = new
|
|
2539
|
+
const A = new $();
|
|
2527
2540
|
A.setTranscoderPath("/draco/");
|
|
2528
2541
|
const e = new la().setDRACOLoader(n).setKTX2Loader(A.detectSupport(new Ba())).setMeshoptDecoder(gs);
|
|
2529
2542
|
return e.manager.onError = (a) => {
|
|
2530
|
-
|
|
2543
|
+
V.emit("load-error", `Failed to load file ${a}`);
|
|
2531
2544
|
}, e;
|
|
2532
2545
|
}
|
|
2533
2546
|
/*!
|
|
@@ -2625,18 +2638,18 @@ var wA = function(n, A, e) {
|
|
|
2625
2638
|
var i = new lA(A);
|
|
2626
2639
|
for (t = 1; t < A; ++t)
|
|
2627
2640
|
i[t] = i[t - 1] + s[t - 1] << 1;
|
|
2628
|
-
var
|
|
2641
|
+
var o;
|
|
2629
2642
|
if (e) {
|
|
2630
|
-
|
|
2631
|
-
var
|
|
2643
|
+
o = new lA(1 << A);
|
|
2644
|
+
var r = 15 - A;
|
|
2632
2645
|
for (t = 0; t < a; ++t)
|
|
2633
2646
|
if (n[t])
|
|
2634
2647
|
for (var c = t << 4 | n[t], I = A - n[t], g = i[n[t] - 1]++ << I, B = g | (1 << I) - 1; g <= B; ++g)
|
|
2635
|
-
|
|
2648
|
+
o[ee[g] >> r] = c;
|
|
2636
2649
|
} else
|
|
2637
|
-
for (
|
|
2638
|
-
n[t] && (
|
|
2639
|
-
return
|
|
2650
|
+
for (o = new lA(a), t = 0; t < a; ++t)
|
|
2651
|
+
n[t] && (o[t] = ee[i[n[t] - 1]++] >> 15 - n[t]);
|
|
2652
|
+
return o;
|
|
2640
2653
|
}, DA = new H(288);
|
|
2641
2654
|
for (var L = 0; L < 144; ++L)
|
|
2642
2655
|
DA[L] = 8;
|
|
@@ -2688,7 +2701,7 @@ var fs = /* @__PURE__ */ wA(DA, 9, 1), Es = /* @__PURE__ */ wA(ct, 5, 1), WA = f
|
|
|
2688
2701
|
var t = n.length, s = a ? a.length : 0;
|
|
2689
2702
|
if (!t || A.f && !A.l)
|
|
2690
2703
|
return e || new H(0);
|
|
2691
|
-
var i = !e,
|
|
2704
|
+
var i = !e, o = i || A.i != 2, r = A.i;
|
|
2692
2705
|
i && (e = new H(t * 3));
|
|
2693
2706
|
var c = function(Be) {
|
|
2694
2707
|
var Ce = e.length;
|
|
@@ -2729,22 +2742,22 @@ var fs = /* @__PURE__ */ wA(DA, 9, 1), Es = /* @__PURE__ */ wA(ct, 5, 1), WA = f
|
|
|
2729
2742
|
else {
|
|
2730
2743
|
var h = Qs(g) + 4, u = n[h - 4] | n[h - 3] << 8, k = h + u;
|
|
2731
2744
|
if (k > t) {
|
|
2732
|
-
|
|
2745
|
+
r && v(0);
|
|
2733
2746
|
break;
|
|
2734
2747
|
}
|
|
2735
|
-
|
|
2748
|
+
o && c(B + u), e.set(n.subarray(h, k), B), A.b = B += u, A.p = g = k * 8, A.f = I;
|
|
2736
2749
|
continue;
|
|
2737
2750
|
}
|
|
2738
2751
|
if (g > E) {
|
|
2739
|
-
|
|
2752
|
+
r && v(0);
|
|
2740
2753
|
break;
|
|
2741
2754
|
}
|
|
2742
2755
|
}
|
|
2743
|
-
|
|
2756
|
+
o && c(B + 131072);
|
|
2744
2757
|
for (var J = (1 << d) - 1, sA = (1 << p) - 1, IA = g; ; IA = g) {
|
|
2745
2758
|
var x = C[VA(n, g) & J], cA = x >> 4;
|
|
2746
2759
|
if (g += x & 15, g > E) {
|
|
2747
|
-
|
|
2760
|
+
r && v(0);
|
|
2748
2761
|
break;
|
|
2749
2762
|
}
|
|
2750
2763
|
if (x || v(2), cA < 256)
|
|
@@ -2766,10 +2779,10 @@ var fs = /* @__PURE__ */ wA(DA, 9, 1), Es = /* @__PURE__ */ wA(ct, 5, 1), WA = f
|
|
|
2766
2779
|
_ += VA(n, g) & (1 << EA) - 1, g += EA;
|
|
2767
2780
|
}
|
|
2768
2781
|
if (g > E) {
|
|
2769
|
-
|
|
2782
|
+
r && v(0);
|
|
2770
2783
|
break;
|
|
2771
2784
|
}
|
|
2772
|
-
|
|
2785
|
+
o && c(B + 131072);
|
|
2773
2786
|
var ge = B + ce;
|
|
2774
2787
|
if (B < _) {
|
|
2775
2788
|
var Ie = s - _, It = Math.min(_, ge);
|
|
@@ -2783,7 +2796,7 @@ var fs = /* @__PURE__ */ wA(DA, 9, 1), Es = /* @__PURE__ */ wA(ct, 5, 1), WA = f
|
|
|
2783
2796
|
A.l = C, A.p = IA, A.b = B, A.f = I, C && (I = 1, A.m = d, A.d = f, A.n = p);
|
|
2784
2797
|
} while (!I);
|
|
2785
2798
|
return B != e.length && i ? re(e, 0, B) : e.subarray(0, B);
|
|
2786
|
-
}, ps = /* @__PURE__ */ new H(0),
|
|
2799
|
+
}, ps = /* @__PURE__ */ new H(0), Z = function(n, A) {
|
|
2787
2800
|
return n[A] | n[A + 1] << 8;
|
|
2788
2801
|
}, P = function(n, A) {
|
|
2789
2802
|
return (n[A] | n[A + 1] << 8 | n[A + 2] << 16 | n[A + 3] << 24) >>> 0;
|
|
@@ -2819,27 +2832,27 @@ function ae(n, A) {
|
|
|
2819
2832
|
}
|
|
2820
2833
|
}
|
|
2821
2834
|
var Ds = function(n, A) {
|
|
2822
|
-
return A + 30 +
|
|
2835
|
+
return A + 30 + Z(n, A + 26) + Z(n, A + 28);
|
|
2823
2836
|
}, ks = function(n, A, e) {
|
|
2824
|
-
var a =
|
|
2825
|
-
return [
|
|
2837
|
+
var a = Z(n, A + 28), t = ae(n.subarray(A + 46, A + 46 + a), !(Z(n, A + 8) & 2048)), s = A + 46 + a, i = P(n, A + 20), o = e && i == 4294967295 ? Fs(n, s) : [i, P(n, A + 24), P(n, A + 42)], r = o[0], c = o[1], I = o[2];
|
|
2838
|
+
return [Z(n, A + 10), r, c, t, s + Z(n, A + 30) + Z(n, A + 32), I];
|
|
2826
2839
|
}, Fs = function(n, A) {
|
|
2827
|
-
for (;
|
|
2840
|
+
for (; Z(n, A) != 1; A += 4 + Z(n, A + 2))
|
|
2828
2841
|
;
|
|
2829
2842
|
return [zA(n, A + 12), zA(n, A + 4), zA(n, A + 20)];
|
|
2830
2843
|
};
|
|
2831
2844
|
function Rs(n, A) {
|
|
2832
2845
|
for (var e = {}, a = n.length - 22; P(n, a) != 101010256; --a)
|
|
2833
2846
|
(!a || n.length - a > 65558) && v(13);
|
|
2834
|
-
var t =
|
|
2847
|
+
var t = Z(n, a + 8);
|
|
2835
2848
|
if (!t)
|
|
2836
2849
|
return {};
|
|
2837
2850
|
var s = P(n, a + 16), i = s == 4294967295 || t == 65535;
|
|
2838
2851
|
if (i) {
|
|
2839
|
-
var
|
|
2840
|
-
i = P(n,
|
|
2852
|
+
var o = P(n, a - 12);
|
|
2853
|
+
i = P(n, o) == 101075792, i && (t = P(n, o + 32), s = P(n, o + 48));
|
|
2841
2854
|
}
|
|
2842
|
-
for (var
|
|
2855
|
+
for (var r = 0; r < t; ++r) {
|
|
2843
2856
|
var c = ks(n, s, i), I = c[0], g = c[1], B = c[2], C = c[3], f = c[4], d = c[5], p = Ds(n, d);
|
|
2844
2857
|
s = f, I ? I == 8 ? e[C] = us(n.subarray(p, p + g), { out: new H(B) }) : v(14, "unknown compression type " + I) : e[C] = re(n, p, p + g);
|
|
2845
2858
|
}
|
|
@@ -2851,9 +2864,9 @@ class Ss {
|
|
|
2851
2864
|
`);
|
|
2852
2865
|
let t = null, s = e;
|
|
2853
2866
|
const i = [e];
|
|
2854
|
-
for (const
|
|
2855
|
-
if (
|
|
2856
|
-
const
|
|
2867
|
+
for (const o of a)
|
|
2868
|
+
if (o.includes("=")) {
|
|
2869
|
+
const r = o.split("="), c = r[0].trim(), I = r[1].trim();
|
|
2857
2870
|
if (I.endsWith("{")) {
|
|
2858
2871
|
const g = {};
|
|
2859
2872
|
i.push(g), s[c] = g, s = g;
|
|
@@ -2864,16 +2877,16 @@ class Ss {
|
|
|
2864
2877
|
i.push(B), s = B;
|
|
2865
2878
|
} else
|
|
2866
2879
|
s[c] = I;
|
|
2867
|
-
} else if (
|
|
2868
|
-
const
|
|
2869
|
-
i.push(
|
|
2870
|
-
} else if (
|
|
2880
|
+
} else if (o.endsWith("{")) {
|
|
2881
|
+
const r = s[t] || {};
|
|
2882
|
+
i.push(r), s[t] = r, s = r;
|
|
2883
|
+
} else if (o.endsWith("}")) {
|
|
2871
2884
|
if (i.pop(), i.length === 0) continue;
|
|
2872
2885
|
s = i[i.length - 1];
|
|
2873
|
-
} else if (
|
|
2874
|
-
const
|
|
2875
|
-
i.push(
|
|
2876
|
-
} else
|
|
2886
|
+
} else if (o.endsWith("(")) {
|
|
2887
|
+
const r = {};
|
|
2888
|
+
i.push(r), t = o.split("(")[0].trim() || t, s[t] = r, s = r;
|
|
2889
|
+
} else o.endsWith(")") ? (i.pop(), s = i[i.length - 1]) : t = o.trim();
|
|
2877
2890
|
return e;
|
|
2878
2891
|
}
|
|
2879
2892
|
}
|
|
@@ -2883,11 +2896,11 @@ class ys extends TA {
|
|
|
2883
2896
|
}
|
|
2884
2897
|
load(A, e, a, t) {
|
|
2885
2898
|
const s = this, i = new aA(s.manager);
|
|
2886
|
-
i.setPath(s.path), i.setResponseType("arraybuffer"), i.setRequestHeader(s.requestHeader), i.setWithCredentials(s.withCredentials), i.load(A, function(
|
|
2899
|
+
i.setPath(s.path), i.setResponseType("arraybuffer"), i.setRequestHeader(s.requestHeader), i.setWithCredentials(s.withCredentials), i.load(A, function(o) {
|
|
2887
2900
|
try {
|
|
2888
|
-
e(s.parse(
|
|
2889
|
-
} catch (
|
|
2890
|
-
t ? t(
|
|
2901
|
+
e(s.parse(o));
|
|
2902
|
+
} catch (r) {
|
|
2903
|
+
t ? t(r) : console.error(r), s.manager.itemError(A);
|
|
2891
2904
|
}
|
|
2892
2905
|
}, a, t);
|
|
2893
2906
|
}
|
|
@@ -2929,12 +2942,12 @@ class ys extends TA {
|
|
|
2929
2942
|
if (m)
|
|
2930
2943
|
throw Error("THREE.USDZLoader: Crate files (.usdc or binary .usd) are not supported.");
|
|
2931
2944
|
}
|
|
2932
|
-
const i = Rs(new Uint8Array(A)),
|
|
2945
|
+
const i = Rs(new Uint8Array(A)), o = a(i), r = s(i), c = ae(r), I = e.parse(c);
|
|
2933
2946
|
function g(b) {
|
|
2934
2947
|
if (b) {
|
|
2935
2948
|
if ("prepend references" in b) {
|
|
2936
2949
|
const m = b["prepend references"].split("@"), D = m[1].replace(/^.\//, ""), w = m[2].replace(/^<\//, "").replace(/>$/, "");
|
|
2937
|
-
return B(
|
|
2950
|
+
return B(o[D], w);
|
|
2938
2951
|
}
|
|
2939
2952
|
return B(b);
|
|
2940
2953
|
}
|
|
@@ -2964,22 +2977,22 @@ class ys extends TA {
|
|
|
2964
2977
|
if ("int[] faceVertexIndices" in b && (m = JSON.parse(b["int[] faceVertexIndices"])), "int[] faceVertexCounts" in b && (D = JSON.parse(b["int[] faceVertexCounts"]), m = f(m, D)), "point3f[] points" in b) {
|
|
2965
2978
|
const F = JSON.parse(b["point3f[] points"].replace(/[()]*/g, ""));
|
|
2966
2979
|
S = F.length;
|
|
2967
|
-
let x = new
|
|
2980
|
+
let x = new X(new Float32Array(F), 3);
|
|
2968
2981
|
m !== null && (x = d(x, m)), Q.setAttribute("position", x);
|
|
2969
2982
|
}
|
|
2970
2983
|
if ("float2[] primvars:st" in b && (b["texCoord2f[] primvars:st"] = b["float2[] primvars:st"]), "texCoord2f[] primvars:st" in b) {
|
|
2971
2984
|
w = JSON.parse(b["texCoord2f[] primvars:st"].replace(/[()]*/g, ""));
|
|
2972
|
-
let F = new
|
|
2985
|
+
let F = new X(new Float32Array(w), 2);
|
|
2973
2986
|
m !== null && (F = d(F, m)), Q.setAttribute("uv", F);
|
|
2974
2987
|
}
|
|
2975
2988
|
if ("int[] primvars:st:indices" in b && w !== null) {
|
|
2976
|
-
const F = new
|
|
2989
|
+
const F = new X(new Float32Array(w), 2);
|
|
2977
2990
|
let x = JSON.parse(b["int[] primvars:st:indices"]);
|
|
2978
2991
|
x = f(x, D), Q.setAttribute("uv", d(F, x));
|
|
2979
2992
|
}
|
|
2980
2993
|
if ("normal3f[] normals" in b) {
|
|
2981
2994
|
const F = JSON.parse(b["normal3f[] normals"].replace(/[()]*/g, ""));
|
|
2982
|
-
let x = new
|
|
2995
|
+
let x = new X(new Float32Array(F), 3);
|
|
2983
2996
|
if (F.length === S)
|
|
2984
2997
|
m !== null && (x = d(x, m));
|
|
2985
2998
|
else {
|
|
@@ -3014,7 +3027,7 @@ class ys extends TA {
|
|
|
3014
3027
|
for (let N = 0; N < D; N++)
|
|
3015
3028
|
w[F++] = m[S++];
|
|
3016
3029
|
}
|
|
3017
|
-
return new
|
|
3030
|
+
return new X(w, D);
|
|
3018
3031
|
}
|
|
3019
3032
|
function p(b) {
|
|
3020
3033
|
if (b) {
|
|
@@ -3046,14 +3059,14 @@ class ys extends TA {
|
|
|
3046
3059
|
if (w !== void 0) {
|
|
3047
3060
|
if ("color3f inputs:diffuseColor.connect" in w) {
|
|
3048
3061
|
const S = w["color3f inputs:diffuseColor.connect"], F = u(I, /(\w+).output/.exec(S)[1]);
|
|
3049
|
-
Q.map = k(F), Q.map.colorSpace =
|
|
3062
|
+
Q.map = k(F), Q.map.colorSpace = AA, 'def Shader "Transform2d_diffuse"' in b && l(Q.map, b['def Shader "Transform2d_diffuse"']);
|
|
3050
3063
|
} else if ("color3f inputs:diffuseColor" in w) {
|
|
3051
3064
|
const S = w["color3f inputs:diffuseColor"].replace(/[()]*/g, "");
|
|
3052
3065
|
Q.color.fromArray(JSON.parse("[" + S + "]"));
|
|
3053
3066
|
}
|
|
3054
3067
|
if ("color3f inputs:emissiveColor.connect" in w) {
|
|
3055
3068
|
const S = w["color3f inputs:emissiveColor.connect"], F = u(I, /(\w+).output/.exec(S)[1]);
|
|
3056
|
-
Q.emissiveMap = k(F), Q.emissiveMap.colorSpace =
|
|
3069
|
+
Q.emissiveMap = k(F), Q.emissiveMap.colorSpace = AA, Q.emissive.set(16777215), 'def Shader "Transform2d_emissive"' in b && l(Q.emissiveMap, b['def Shader "Transform2d_emissive"']);
|
|
3057
3070
|
} else if ("color3f inputs:emissiveColor" in w) {
|
|
3058
3071
|
const S = w["color3f inputs:emissiveColor"].replace(/[()]*/g, "");
|
|
3059
3072
|
Q.emissive.fromArray(JSON.parse("[" + S + "]"));
|
|
@@ -3099,7 +3112,7 @@ class ys extends TA {
|
|
|
3099
3112
|
}
|
|
3100
3113
|
function k(b) {
|
|
3101
3114
|
if ("asset inputs:file" in b) {
|
|
3102
|
-
const Q = b["asset inputs:file"].replace(/@*/g, "").trim(), D = new Te().load(
|
|
3115
|
+
const Q = b["asset inputs:file"].replace(/@*/g, "").trim(), D = new Te().load(o[Q]), w = {
|
|
3103
3116
|
'"clamp"': Ue,
|
|
3104
3117
|
'"mirror"': _e,
|
|
3105
3118
|
'"repeat"': xA
|
|
@@ -3132,17 +3145,17 @@ class ys extends TA {
|
|
|
3132
3145
|
function Gs() {
|
|
3133
3146
|
const n = new ys();
|
|
3134
3147
|
return n.manager.onError = (A) => {
|
|
3135
|
-
|
|
3148
|
+
V.emit("load-error", `Failed to load file ${A}`);
|
|
3136
3149
|
}, n;
|
|
3137
3150
|
}
|
|
3138
3151
|
function xs(n) {
|
|
3139
|
-
const A =
|
|
3152
|
+
const A = z(
|
|
3140
3153
|
async (a, t, s) => {
|
|
3141
3154
|
var I, g;
|
|
3142
|
-
const i = new Map(t.map((B) => [B.name, B])),
|
|
3143
|
-
let
|
|
3155
|
+
const i = new Map(t.map((B) => [B.name, B])), o = (((I = a.buffers) == null ? void 0 : I.length) || 0) + (((g = a.images) == null ? void 0 : g.length) || 0);
|
|
3156
|
+
let r = 0;
|
|
3144
3157
|
const c = () => {
|
|
3145
|
-
|
|
3158
|
+
r++, s(r / o * 100);
|
|
3146
3159
|
};
|
|
3147
3160
|
if (a.buffers)
|
|
3148
3161
|
for (let B = 0; B < a.buffers.length; B++) {
|
|
@@ -3176,15 +3189,15 @@ function xs(n) {
|
|
|
3176
3189
|
},
|
|
3177
3190
|
[]
|
|
3178
3191
|
);
|
|
3179
|
-
return { loadGltf:
|
|
3192
|
+
return { loadGltf: z(
|
|
3180
3193
|
(a, t, s) => {
|
|
3181
3194
|
const i = new FileReader();
|
|
3182
|
-
i.onload = async (
|
|
3195
|
+
i.onload = async (o) => {
|
|
3183
3196
|
var g;
|
|
3184
|
-
const
|
|
3197
|
+
const r = JSON.parse((g = o.target) == null ? void 0 : g.result);
|
|
3185
3198
|
s(10);
|
|
3186
3199
|
const c = await A(
|
|
3187
|
-
|
|
3200
|
+
r,
|
|
3188
3201
|
t,
|
|
3189
3202
|
(B) => {
|
|
3190
3203
|
s(10 + B * 0.8);
|
|
@@ -3206,15 +3219,15 @@ function xs(n) {
|
|
|
3206
3219
|
) };
|
|
3207
3220
|
}
|
|
3208
3221
|
function Ts(n) {
|
|
3209
|
-
return { loadBinary:
|
|
3222
|
+
return { loadBinary: z(
|
|
3210
3223
|
(e, a, t) => {
|
|
3211
3224
|
const s = new FileReader();
|
|
3212
3225
|
s.onload = async (i) => {
|
|
3213
|
-
var
|
|
3214
|
-
if ((
|
|
3215
|
-
const
|
|
3226
|
+
var o;
|
|
3227
|
+
if ((o = i.target) != null && o.result) {
|
|
3228
|
+
const r = i.target.result;
|
|
3216
3229
|
if (a === q.glb)
|
|
3217
|
-
oe().parse(
|
|
3230
|
+
oe().parse(r, "", (I) => {
|
|
3218
3231
|
n({
|
|
3219
3232
|
type: "set-file",
|
|
3220
3233
|
payload: {
|
|
@@ -3225,7 +3238,7 @@ function Ts(n) {
|
|
|
3225
3238
|
});
|
|
3226
3239
|
});
|
|
3227
3240
|
else if (a === q.usdz) {
|
|
3228
|
-
const I = Gs().parse(
|
|
3241
|
+
const I = Gs().parse(r);
|
|
3229
3242
|
n({
|
|
3230
3243
|
type: "set-file",
|
|
3231
3244
|
payload: {
|
|
@@ -3245,27 +3258,27 @@ function Ts(n) {
|
|
|
3245
3258
|
) };
|
|
3246
3259
|
}
|
|
3247
3260
|
function Ls(n) {
|
|
3248
|
-
const A = Ct(!1), [e, a] = bt(Ca, He), { loadGltf: t } = xs(a), { loadBinary: s } = Ts(a), i =
|
|
3261
|
+
const A = Ct(!1), [e, a] = bt(Ca, He), { loadGltf: t } = xs(a), { loadBinary: s } = Ts(a), i = z(
|
|
3249
3262
|
(B, C) => B.find((f) => f.name.endsWith("." + C)),
|
|
3250
3263
|
[]
|
|
3251
|
-
),
|
|
3252
|
-
a({ type: "set-progress", payload: B }),
|
|
3253
|
-
}, []),
|
|
3254
|
-
a({ type: "reset-state" }),
|
|
3255
|
-
}, []), c =
|
|
3264
|
+
), o = z((B) => {
|
|
3265
|
+
a({ type: "set-progress", payload: B }), V.emit("load-progress", B);
|
|
3266
|
+
}, []), r = z(() => {
|
|
3267
|
+
a({ type: "reset-state" }), V.emit("load-reset");
|
|
3268
|
+
}, []), c = z(
|
|
3256
3269
|
(B) => {
|
|
3257
3270
|
if (B.length === 0) return;
|
|
3258
3271
|
const C = i(B, q.gltf), f = i(B, q.glb), d = i(B, q.usdz), p = [C, f, d].filter(
|
|
3259
3272
|
Boolean
|
|
3260
3273
|
);
|
|
3261
3274
|
if (p.length > 1) {
|
|
3262
|
-
|
|
3275
|
+
V.emit("multiple-models", p);
|
|
3263
3276
|
return;
|
|
3264
3277
|
}
|
|
3265
3278
|
const E = B.filter(
|
|
3266
3279
|
(h) => h !== C && h !== f && h !== d
|
|
3267
3280
|
), l = (h) => {
|
|
3268
|
-
|
|
3281
|
+
o(h), h === 100 && (A.current = !0);
|
|
3269
3282
|
};
|
|
3270
3283
|
if (C)
|
|
3271
3284
|
t(C, E, l);
|
|
@@ -3278,15 +3291,15 @@ function Ls(n) {
|
|
|
3278
3291
|
() => l(100)
|
|
3279
3292
|
);
|
|
3280
3293
|
else {
|
|
3281
|
-
|
|
3294
|
+
V.emit("not-loaded-files", B), a({ type: "set-file-loading", payload: !1 });
|
|
3282
3295
|
return;
|
|
3283
3296
|
}
|
|
3284
3297
|
},
|
|
3285
|
-
[
|
|
3286
|
-
), I =
|
|
3298
|
+
[o, i, t, s]
|
|
3299
|
+
), I = z(
|
|
3287
3300
|
async (B) => {
|
|
3288
3301
|
const C = [];
|
|
3289
|
-
a({ type: "reset-state" }), a({ type: "set-file-loading", payload: !0 }),
|
|
3302
|
+
V.emit("load-start"), a({ type: "reset-state" }), a({ type: "set-file-loading", payload: !0 }), o(0), A.current = !1;
|
|
3290
3303
|
for (const f of B)
|
|
3291
3304
|
if (f instanceof File)
|
|
3292
3305
|
C.push(f);
|
|
@@ -3296,10 +3309,10 @@ function Ls(n) {
|
|
|
3296
3309
|
}
|
|
3297
3310
|
c(C);
|
|
3298
3311
|
},
|
|
3299
|
-
[c,
|
|
3312
|
+
[c, o]
|
|
3300
3313
|
);
|
|
3301
3314
|
lt(() => {
|
|
3302
|
-
A.current && e.file && (
|
|
3315
|
+
A.current && e.file && (V.emit("load-complete", e.file), A.current = !1, n && e.file.model && n.load(e.file.model));
|
|
3303
3316
|
}, [e.file, n]);
|
|
3304
3317
|
const g = Ms(
|
|
3305
3318
|
n,
|
|
@@ -3308,55 +3321,102 @@ function Ls(n) {
|
|
|
3308
3321
|
);
|
|
3309
3322
|
return {
|
|
3310
3323
|
...e,
|
|
3311
|
-
|
|
3312
|
-
|
|
3324
|
+
/**
|
|
3325
|
+
* Add an event listener to the event system.
|
|
3326
|
+
*/
|
|
3327
|
+
on: V.on,
|
|
3328
|
+
/**
|
|
3329
|
+
* Remove an event listener from the event system.
|
|
3330
|
+
*/
|
|
3331
|
+
off: V.off,
|
|
3332
|
+
/**
|
|
3333
|
+
* Load a model and integrate it with the optimizer if available.
|
|
3334
|
+
* This also makes the model available in the use-model-context hook.
|
|
3335
|
+
*/
|
|
3313
3336
|
load: I,
|
|
3314
|
-
|
|
3337
|
+
/**
|
|
3338
|
+
* Reset the model and optimizer state to the initial state.
|
|
3339
|
+
*/
|
|
3340
|
+
reset: r,
|
|
3341
|
+
/**
|
|
3342
|
+
* Integration of the optimizer
|
|
3343
|
+
* An object containing functions to interact with the optimizer.
|
|
3344
|
+
*
|
|
3345
|
+
* It exposes the following functions:
|
|
3346
|
+
*
|
|
3347
|
+
* - `simplifyOptimization(options?: SimplifyOptions)`: Runs the simplification optimization with the given options.
|
|
3348
|
+
* - `dedupOptimization(options?: DedupOptions)`: Runs the deduplication optimization with the given options.
|
|
3349
|
+
* - `quantizeOptimization(options?: QuantizeOptions)`: Runs the quantization optimization with the given options.
|
|
3350
|
+
* - `texturesCompressionOptimization(options?: TextureCompressionOptions)`: Runs the texture compression optimization with the given options.
|
|
3351
|
+
* - `getSize()`: Returns the size of the optimized model.
|
|
3352
|
+
* - `reset()`: Resets the optimizer.
|
|
3353
|
+
* - `report`: The report state of the optimizer.
|
|
3354
|
+
* - `error`: The error state of the optimizer.
|
|
3355
|
+
* - `loading`: The loading state of the optimizer.
|
|
3356
|
+
*/
|
|
3315
3357
|
optimize: g
|
|
3316
3358
|
};
|
|
3317
3359
|
}
|
|
3318
3360
|
function Ms(n, A, e) {
|
|
3319
|
-
const a =
|
|
3361
|
+
const a = z(
|
|
3320
3362
|
(s) => {
|
|
3321
3363
|
oe().parse(
|
|
3322
3364
|
s.buffer,
|
|
3323
3365
|
"",
|
|
3324
|
-
(
|
|
3366
|
+
(o) => {
|
|
3325
3367
|
A({
|
|
3326
3368
|
type: "set-file",
|
|
3327
3369
|
payload: {
|
|
3328
|
-
model:
|
|
3370
|
+
model: o.scene,
|
|
3329
3371
|
type: q.glb,
|
|
3330
3372
|
name: (e == null ? void 0 : e.name) || "optimized.glb"
|
|
3331
3373
|
}
|
|
3332
3374
|
});
|
|
3333
3375
|
},
|
|
3334
|
-
(
|
|
3335
|
-
console.error("Error loading new model:",
|
|
3376
|
+
(o) => {
|
|
3377
|
+
console.error("Error loading new model:", o);
|
|
3336
3378
|
}
|
|
3337
3379
|
);
|
|
3338
3380
|
},
|
|
3339
3381
|
[A, e]
|
|
3340
|
-
), t =
|
|
3341
|
-
async (s) => {
|
|
3382
|
+
), t = z(
|
|
3383
|
+
async (s, i) => {
|
|
3342
3384
|
if (!n || !s) {
|
|
3343
3385
|
console.warn("Optimizer or optimization function is not available");
|
|
3344
3386
|
return;
|
|
3345
3387
|
}
|
|
3346
3388
|
try {
|
|
3347
|
-
await s();
|
|
3348
|
-
const
|
|
3349
|
-
|
|
3350
|
-
} catch (
|
|
3351
|
-
console.error("Optimization failed:",
|
|
3389
|
+
await s(i);
|
|
3390
|
+
const o = await n.getModel();
|
|
3391
|
+
o && a(o);
|
|
3392
|
+
} catch (o) {
|
|
3393
|
+
console.error("Optimization failed:", o);
|
|
3352
3394
|
}
|
|
3353
3395
|
},
|
|
3354
3396
|
[n, a]
|
|
3355
3397
|
);
|
|
3356
3398
|
return n ? {
|
|
3357
|
-
simplifyOptimization: () => t(
|
|
3358
|
-
|
|
3359
|
-
|
|
3399
|
+
simplifyOptimization: (s) => t(
|
|
3400
|
+
n.simplifyOptimization,
|
|
3401
|
+
s
|
|
3402
|
+
),
|
|
3403
|
+
dedupOptimization: (s) => t(n.dedupOptimization, s),
|
|
3404
|
+
quantizeOptimization: (s) => t(
|
|
3405
|
+
n.quantizeOptimization,
|
|
3406
|
+
s
|
|
3407
|
+
),
|
|
3408
|
+
texturesCompressOptimization: (s) => t(
|
|
3409
|
+
n.texturesOptimization,
|
|
3410
|
+
s
|
|
3411
|
+
),
|
|
3412
|
+
getSize: n.getSize,
|
|
3413
|
+
reset: n.reset,
|
|
3414
|
+
report: n.report,
|
|
3415
|
+
// Include the report state
|
|
3416
|
+
error: n.error,
|
|
3417
|
+
// Include the error state
|
|
3418
|
+
loading: n.loading
|
|
3419
|
+
// Include the loading state
|
|
3360
3420
|
} : {
|
|
3361
3421
|
simplifyOptimization: () => {
|
|
3362
3422
|
console.warn("Optimizer is not available");
|
|
@@ -3366,7 +3426,19 @@ function Ms(n, A, e) {
|
|
|
3366
3426
|
},
|
|
3367
3427
|
quantizeOptimization: () => {
|
|
3368
3428
|
console.warn("Optimizer is not available");
|
|
3369
|
-
}
|
|
3429
|
+
},
|
|
3430
|
+
texturesCompressOptimization: () => {
|
|
3431
|
+
console.warn("Optimizer is not available");
|
|
3432
|
+
},
|
|
3433
|
+
getSize: () => {
|
|
3434
|
+
console.warn("Optimizer is not available");
|
|
3435
|
+
},
|
|
3436
|
+
reset: () => {
|
|
3437
|
+
console.warn("Optimizer is not available");
|
|
3438
|
+
},
|
|
3439
|
+
report: null,
|
|
3440
|
+
error: null,
|
|
3441
|
+
loading: !1
|
|
3370
3442
|
};
|
|
3371
3443
|
}
|
|
3372
3444
|
const gt = ft({}), qs = ({ children: n, optimizer: A }) => {
|