aptechka 0.1.16 → 0.1.18
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/lib/{Composed-DhtYBEmo.js → Composed-ClTo1f0b.js} +19 -19
- package/lib/Composed-Mdr4ZFbI.cjs +1 -0
- package/lib/attribute/index.cjs +1 -1
- package/lib/attribute/index.d.ts +2 -0
- package/lib/attribute/index.js +43 -34
- package/lib/component/Component.d.ts +1 -5
- package/lib/component/hooks/attributes.d.ts +2 -0
- package/lib/component/index.cjs +1 -1
- package/lib/component/index.d.ts +1 -1
- package/lib/component/index.js +135 -132
- package/lib/element-resizer/index.cjs +1 -1
- package/lib/element-resizer/index.js +16 -16
- package/lib/en3/index.cjs +5 -5
- package/lib/en3/index.js +501 -499
- package/lib/intersector/index.cjs +1 -1
- package/lib/intersector/index.js +14 -14
- package/lib/ladder/index.cjs +1 -1
- package/lib/ladder/index.d.ts +18 -3
- package/lib/ladder/index.js +124 -68
- package/lib/layout-box/index.cjs +1 -1
- package/lib/layout-box/index.js +61 -61
- package/lib/store/DerivedArray.d.ts +1 -1
- package/lib/store/index.cjs +1 -1
- package/lib/store/index.js +2 -2
- package/lib/window-resizer/index.cjs +1 -1
- package/lib/window-resizer/index.js +16 -16
- package/package.json +1 -1
- package/lib/Composed-C2Vv1xxR.cjs +0 -1
- package/lib/component/hooks/context.d.ts +0 -2
package/lib/en3/index.js
CHANGED
|
@@ -21,27 +21,27 @@ var g = (a, A, e) => (Ne(a, A, "read from private field"), e ? e.call(a) : A.get
|
|
|
21
21
|
}, G = (a, A, e, s) => (Ne(a, A, "write to private field"), s ? s.call(a, e) : A.set(a, e), e);
|
|
22
22
|
var QA = (a, A, e) => (Ne(a, A, "access private method"), e);
|
|
23
23
|
var _A = (a, A, e) => new Promise((s, t) => {
|
|
24
|
-
var i = (
|
|
24
|
+
var i = (o) => {
|
|
25
25
|
try {
|
|
26
|
-
|
|
27
|
-
} catch (
|
|
28
|
-
t(
|
|
26
|
+
B(e.next(o));
|
|
27
|
+
} catch (r) {
|
|
28
|
+
t(r);
|
|
29
29
|
}
|
|
30
|
-
}, n = (
|
|
30
|
+
}, n = (o) => {
|
|
31
31
|
try {
|
|
32
|
-
|
|
33
|
-
} catch (
|
|
34
|
-
t(
|
|
32
|
+
B(e.throw(o));
|
|
33
|
+
} catch (r) {
|
|
34
|
+
t(r);
|
|
35
35
|
}
|
|
36
|
-
},
|
|
37
|
-
|
|
36
|
+
}, B = (o) => o.done ? s(o.value) : Promise.resolve(o.value).then(i, n);
|
|
37
|
+
B((e = e.apply(a, A)).next());
|
|
38
38
|
});
|
|
39
39
|
import { Ladder as ct } from "../ladder/index.js";
|
|
40
40
|
import { LayoutBox as Nt } from "../layout-box/index.js";
|
|
41
41
|
import { RESIZE_ORDER as xt, TICK_ORDER as nt } from "../order/index.js";
|
|
42
42
|
import { windowResizer as xA } from "../window-resizer/index.js";
|
|
43
43
|
import { ticker as kA } from "../ticker/index.js";
|
|
44
|
-
import { Mesh as Fe, REVISION as ds, OrthographicCamera as je, PerspectiveCamera as Ze, Scene as us, WebGLRenderer as fs, TrianglesDrawMode as Ds, TriangleFanDrawMode as ze, TriangleStripDrawMode as kt, Loader as ot, LoaderUtils as WA, FileLoader as fA, Color as EA, LinearSRGBColorSpace as O, SpotLight as Fs, PointLight as Gs, DirectionalLight as Rs, MeshBasicMaterial as qA, SRGBColorSpace as $, MeshPhysicalMaterial as AA, Vector2 as Bt, Matrix4 as bA, Vector3 as b, Quaternion as rt, InstancedMesh as ps, InstancedBufferAttribute as ms, Object3D as Ct, TextureLoader as bt, ImageBitmapLoader as Ms, BufferAttribute as VA, InterleavedBuffer as ws, InterleavedBufferAttribute as Ss, LinearFilter as
|
|
44
|
+
import { Mesh as Fe, REVISION as ds, OrthographicCamera as je, PerspectiveCamera as Ze, Scene as us, WebGLRenderer as fs, TrianglesDrawMode as Ds, TriangleFanDrawMode as ze, TriangleStripDrawMode as kt, Loader as ot, LoaderUtils as WA, FileLoader as fA, Color as EA, LinearSRGBColorSpace as O, SpotLight as Fs, PointLight as Gs, DirectionalLight as Rs, MeshBasicMaterial as qA, SRGBColorSpace as $, MeshPhysicalMaterial as AA, Vector2 as Bt, Matrix4 as bA, Vector3 as b, Quaternion as rt, InstancedMesh as ps, InstancedBufferAttribute as ms, Object3D as Ct, TextureLoader as bt, ImageBitmapLoader as Ms, BufferAttribute as VA, InterleavedBuffer as ws, InterleavedBufferAttribute as Ss, LinearFilter as He, LinearMipmapLinearFilter as at, RepeatWrapping as $e, PointsMaterial as Ls, Material as xe, LineBasicMaterial as ys, MeshStandardMaterial as Kt, DoubleSide as Hs, PropertyBinding as Js, BufferGeometry as Ot, SkinnedMesh as Us, LineSegments as Ts, Line as Ns, LineLoop as xs, Points as ks, Group as jA, MathUtils as bs, Skeleton as Ks, AnimationClip as Os, Bone as _s, InterpolateLinear as _t, ColorManagement as Qt, NearestFilter as Ps, NearestMipmapNearestFilter as Ys, LinearMipmapNearestFilter as qs, NearestMipmapLinearFilter as Xs, ClampToEdgeWrapping as vs, MirroredRepeatWrapping as Ws, InterpolateDiscrete as Vs, FrontSide as js, Texture as ht, VectorKeyframeTrack as lt, NumberKeyframeTrack as dt, QuaternionKeyframeTrack as ut, Box3 as Zs, Sphere as zs, Interpolant as $s, CompressedCubeTexture as Ai, UnsignedByteType as K, CompressedArrayTexture as ei, CompressedTexture as Pt, RGBAFormat as FA, RGBA_ASTC_4x4_Format as ti, RGBA_BPTC_Format as si, RGBA_ETC2_EAC_Format as ii, RGBA_PVRTC_4BPPV1_Format as ni, RGBA_S3TC_DXT5_Format as oi, RGB_ETC1_Format as Bi, RGB_ETC2_Format as ri, RGB_PVRTC_4BPPV1_Format as Ci, RGB_S3TC_DXT1_Format as ai, FloatType as Le, HalfFloatType as ye, DataTexture as Ii, Data3DTexture as gi, DisplayP3ColorSpace as Ei, LinearDisplayP3ColorSpace as ci, NoColorSpace as ft, RGFormat as XA, RedFormat as vA, RGBA_ASTC_6x6_Format as Dt, Plane as Me, PlaneHelper as we, PlaneGeometry as Qi, VideoTexture as hi, Raycaster as li } from "three";
|
|
45
45
|
import { intersector as Ft } from "../intersector/index.js";
|
|
46
46
|
import { S as Gt } from "../Store-JOKrNVEr.js";
|
|
47
47
|
import { g as di } from "../dom-BY7JhTx5.js";
|
|
@@ -65,12 +65,12 @@ function Yt(a) {
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
var
|
|
68
|
+
var Je, nA, T, Y, RA, pA, oA, x, mA, MA, Z, q, wA, ZA, zA, lA, Ue, qt, $A, At, Ae, ee;
|
|
69
69
|
class fi {
|
|
70
70
|
constructor() {
|
|
71
71
|
u(this, Ue);
|
|
72
72
|
u(this, $A);
|
|
73
|
-
u(this,
|
|
73
|
+
u(this, Je, `https://unpkg.com/three@0.${ds}.x`);
|
|
74
74
|
u(this, nA, null);
|
|
75
75
|
u(this, T, null);
|
|
76
76
|
u(this, Y, null);
|
|
@@ -103,7 +103,7 @@ class fi {
|
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
get CDNVersion() {
|
|
106
|
-
return g(this,
|
|
106
|
+
return g(this, Je);
|
|
107
107
|
}
|
|
108
108
|
get containerElement() {
|
|
109
109
|
return g(this, nA);
|
|
@@ -194,7 +194,7 @@ class fi {
|
|
|
194
194
|
g(this, T).render(A, e);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
|
|
197
|
+
Je = new WeakMap(), nA = new WeakMap(), T = new WeakMap(), Y = new WeakMap(), RA = new WeakMap(), pA = new WeakMap(), oA = new WeakMap(), x = new WeakMap(), mA = new WeakMap(), MA = new WeakMap(), Z = new WeakMap(), q = new WeakMap(), wA = new WeakMap(), ZA = new WeakMap(), zA = new WeakMap(), lA = new WeakMap(), Ue = new WeakSet(), qt = function() {
|
|
198
198
|
g(this, zA) && (g(this, x).calculate(), g(this, mA).calculate());
|
|
199
199
|
}, $A = new WeakSet(), At = function() {
|
|
200
200
|
this.camera instanceof Ze ? (this.camera.aspect = g(this, Z) / g(this, q), this.camera.fov = g(this, MA) === "auto" ? 2 * Math.atan(
|
|
@@ -218,10 +218,10 @@ function Rt(a, A) {
|
|
|
218
218
|
if (A === ze || A === kt) {
|
|
219
219
|
let e = a.getIndex();
|
|
220
220
|
if (e === null) {
|
|
221
|
-
const n = [],
|
|
222
|
-
if (
|
|
223
|
-
for (let
|
|
224
|
-
n.push(
|
|
221
|
+
const n = [], B = a.getAttribute("position");
|
|
222
|
+
if (B !== void 0) {
|
|
223
|
+
for (let o = 0; o < B.count; o++)
|
|
224
|
+
n.push(o);
|
|
225
225
|
a.setIndex(n), e = a.getIndex();
|
|
226
226
|
} else
|
|
227
227
|
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), a;
|
|
@@ -256,11 +256,11 @@ class Fi extends ot {
|
|
|
256
256
|
}), this.register(function(e) {
|
|
257
257
|
return new yi(e);
|
|
258
258
|
}), this.register(function(e) {
|
|
259
|
-
return new
|
|
259
|
+
return new Hi(e);
|
|
260
260
|
}), this.register(function(e) {
|
|
261
261
|
return new mi(e);
|
|
262
262
|
}), this.register(function(e) {
|
|
263
|
-
return new
|
|
263
|
+
return new Ji(e);
|
|
264
264
|
}), this.register(function(e) {
|
|
265
265
|
return new wi(e);
|
|
266
266
|
}), this.register(function(e) {
|
|
@@ -281,23 +281,23 @@ class Fi extends ot {
|
|
|
281
281
|
if (this.resourcePath !== "")
|
|
282
282
|
n = this.resourcePath;
|
|
283
283
|
else if (this.path !== "") {
|
|
284
|
-
const
|
|
285
|
-
n = WA.resolveURL(
|
|
284
|
+
const r = WA.extractUrlBase(A);
|
|
285
|
+
n = WA.resolveURL(r, this.path);
|
|
286
286
|
} else
|
|
287
287
|
n = WA.extractUrlBase(A);
|
|
288
288
|
this.manager.itemStart(A);
|
|
289
|
-
const
|
|
290
|
-
t ? t(
|
|
291
|
-
},
|
|
292
|
-
|
|
289
|
+
const B = function(r) {
|
|
290
|
+
t ? t(r) : console.error(r), i.manager.itemError(A), i.manager.itemEnd(A);
|
|
291
|
+
}, o = new fA(this.manager);
|
|
292
|
+
o.setPath(this.path), o.setResponseType("arraybuffer"), o.setRequestHeader(this.requestHeader), o.setWithCredentials(this.withCredentials), o.load(A, function(r) {
|
|
293
293
|
try {
|
|
294
|
-
i.parse(
|
|
294
|
+
i.parse(r, n, function(I) {
|
|
295
295
|
e(I), i.manager.itemEnd(A);
|
|
296
|
-
},
|
|
296
|
+
}, B);
|
|
297
297
|
} catch (I) {
|
|
298
|
-
|
|
298
|
+
B(I);
|
|
299
299
|
}
|
|
300
|
-
}, s,
|
|
300
|
+
}, s, B);
|
|
301
301
|
}
|
|
302
302
|
setDRACOLoader(A) {
|
|
303
303
|
return this.dracoLoader = A, this;
|
|
@@ -321,27 +321,27 @@ class Fi extends ot {
|
|
|
321
321
|
}
|
|
322
322
|
parse(A, e, s, t) {
|
|
323
323
|
let i;
|
|
324
|
-
const n = {},
|
|
324
|
+
const n = {}, B = {}, o = new TextDecoder();
|
|
325
325
|
if (typeof A == "string")
|
|
326
326
|
i = JSON.parse(A);
|
|
327
327
|
else if (A instanceof ArrayBuffer)
|
|
328
|
-
if (
|
|
328
|
+
if (o.decode(new Uint8Array(A, 0, 4)) === Xt) {
|
|
329
329
|
try {
|
|
330
330
|
n[R.KHR_BINARY_GLTF] = new Oi(A);
|
|
331
|
-
} catch (
|
|
332
|
-
t && t(
|
|
331
|
+
} catch (C) {
|
|
332
|
+
t && t(C);
|
|
333
333
|
return;
|
|
334
334
|
}
|
|
335
335
|
i = JSON.parse(n[R.KHR_BINARY_GLTF].content);
|
|
336
336
|
} else
|
|
337
|
-
i = JSON.parse(
|
|
337
|
+
i = JSON.parse(o.decode(A));
|
|
338
338
|
else
|
|
339
339
|
i = A;
|
|
340
340
|
if (i.asset === void 0 || i.asset.version[0] < 2) {
|
|
341
341
|
t && t(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
|
-
const
|
|
344
|
+
const r = new An(i, {
|
|
345
345
|
path: e || this.resourcePath || "",
|
|
346
346
|
crossOrigin: this.crossOrigin,
|
|
347
347
|
requestHeader: this.requestHeader,
|
|
@@ -349,32 +349,32 @@ class Fi extends ot {
|
|
|
349
349
|
ktx2Loader: this.ktx2Loader,
|
|
350
350
|
meshoptDecoder: this.meshoptDecoder
|
|
351
351
|
});
|
|
352
|
-
|
|
352
|
+
r.fileLoader.setRequestHeader(this.requestHeader);
|
|
353
353
|
for (let I = 0; I < this.pluginCallbacks.length; I++) {
|
|
354
|
-
const
|
|
355
|
-
|
|
354
|
+
const C = this.pluginCallbacks[I](r);
|
|
355
|
+
C.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), B[C.name] = C, n[C.name] = !0;
|
|
356
356
|
}
|
|
357
357
|
if (i.extensionsUsed)
|
|
358
358
|
for (let I = 0; I < i.extensionsUsed.length; ++I) {
|
|
359
|
-
const
|
|
360
|
-
switch (
|
|
359
|
+
const C = i.extensionsUsed[I], c = i.extensionsRequired || [];
|
|
360
|
+
switch (C) {
|
|
361
361
|
case R.KHR_MATERIALS_UNLIT:
|
|
362
|
-
n[
|
|
362
|
+
n[C] = new pi();
|
|
363
363
|
break;
|
|
364
364
|
case R.KHR_DRACO_MESH_COMPRESSION:
|
|
365
|
-
n[
|
|
365
|
+
n[C] = new _i(i, this.dracoLoader);
|
|
366
366
|
break;
|
|
367
367
|
case R.KHR_TEXTURE_TRANSFORM:
|
|
368
|
-
n[
|
|
368
|
+
n[C] = new Pi();
|
|
369
369
|
break;
|
|
370
370
|
case R.KHR_MESH_QUANTIZATION:
|
|
371
|
-
n[
|
|
371
|
+
n[C] = new Yi();
|
|
372
372
|
break;
|
|
373
373
|
default:
|
|
374
|
-
c.indexOf(
|
|
374
|
+
c.indexOf(C) >= 0 && B[C] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + C + '".');
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
|
|
377
|
+
r.setExtensions(n), r.setPlugins(B), r.parse(s, t);
|
|
378
378
|
}
|
|
379
379
|
parseAsync(A, e) {
|
|
380
380
|
const s = this;
|
|
@@ -439,34 +439,34 @@ class Ri {
|
|
|
439
439
|
let t = e.cache.get(s);
|
|
440
440
|
if (t)
|
|
441
441
|
return t;
|
|
442
|
-
const i = e.json,
|
|
443
|
-
let
|
|
442
|
+
const i = e.json, o = ((i.extensions && i.extensions[this.name] || {}).lights || [])[A];
|
|
443
|
+
let r;
|
|
444
444
|
const I = new EA(16777215);
|
|
445
|
-
|
|
446
|
-
const
|
|
447
|
-
switch (
|
|
445
|
+
o.color !== void 0 && I.setRGB(o.color[0], o.color[1], o.color[2], O);
|
|
446
|
+
const C = o.range !== void 0 ? o.range : 0;
|
|
447
|
+
switch (o.type) {
|
|
448
448
|
case "directional":
|
|
449
|
-
|
|
449
|
+
r = new Rs(I), r.target.position.set(0, 0, -1), r.add(r.target);
|
|
450
450
|
break;
|
|
451
451
|
case "point":
|
|
452
|
-
|
|
452
|
+
r = new Gs(I), r.distance = C;
|
|
453
453
|
break;
|
|
454
454
|
case "spot":
|
|
455
|
-
|
|
455
|
+
r = new Fs(I), r.distance = C, o.spot = o.spot || {}, o.spot.innerConeAngle = o.spot.innerConeAngle !== void 0 ? o.spot.innerConeAngle : 0, o.spot.outerConeAngle = o.spot.outerConeAngle !== void 0 ? o.spot.outerConeAngle : Math.PI / 4, r.angle = o.spot.outerConeAngle, r.penumbra = 1 - o.spot.innerConeAngle / o.spot.outerConeAngle, r.target.position.set(0, 0, -1), r.add(r.target);
|
|
456
456
|
break;
|
|
457
457
|
default:
|
|
458
|
-
throw new Error("THREE.GLTFLoader: Unexpected light type: " +
|
|
458
|
+
throw new Error("THREE.GLTFLoader: Unexpected light type: " + o.type);
|
|
459
459
|
}
|
|
460
|
-
return
|
|
460
|
+
return r.position.set(0, 0, 0), r.decay = 2, iA(r, o), o.intensity !== void 0 && (r.intensity = o.intensity), r.name = e.createUniqueName(o.name || "light_" + A), t = Promise.resolve(r), e.cache.add(s, t), t;
|
|
461
461
|
}
|
|
462
462
|
getDependency(A, e) {
|
|
463
463
|
if (A === "light")
|
|
464
464
|
return this._loadLight(e);
|
|
465
465
|
}
|
|
466
466
|
createNodeAttachment(A) {
|
|
467
|
-
const e = this, s = this.parser, i = s.json.nodes[A],
|
|
468
|
-
return
|
|
469
|
-
return s._getNodeRef(e.cache,
|
|
467
|
+
const e = this, s = this.parser, i = s.json.nodes[A], B = (i.extensions && i.extensions[this.name] || {}).light;
|
|
468
|
+
return B === void 0 ? null : this._loadLight(B).then(function(o) {
|
|
469
|
+
return s._getNodeRef(e.cache, B, o);
|
|
470
470
|
});
|
|
471
471
|
}
|
|
472
472
|
}
|
|
@@ -517,8 +517,8 @@ class Mi {
|
|
|
517
517
|
return Promise.resolve();
|
|
518
518
|
const i = [], n = t.extensions[this.name];
|
|
519
519
|
if (n.clearcoatFactor !== void 0 && (e.clearcoat = n.clearcoatFactor), n.clearcoatTexture !== void 0 && i.push(s.assignTexture(e, "clearcoatMap", n.clearcoatTexture)), n.clearcoatRoughnessFactor !== void 0 && (e.clearcoatRoughness = n.clearcoatRoughnessFactor), n.clearcoatRoughnessTexture !== void 0 && i.push(s.assignTexture(e, "clearcoatRoughnessMap", n.clearcoatRoughnessTexture)), n.clearcoatNormalTexture !== void 0 && (i.push(s.assignTexture(e, "clearcoatNormalMap", n.clearcoatNormalTexture)), n.clearcoatNormalTexture.scale !== void 0)) {
|
|
520
|
-
const
|
|
521
|
-
e.clearcoatNormalScale = new Bt(
|
|
520
|
+
const B = n.clearcoatNormalTexture.scale;
|
|
521
|
+
e.clearcoatNormalScale = new Bt(B, B);
|
|
522
522
|
}
|
|
523
523
|
return Promise.all(i);
|
|
524
524
|
}
|
|
@@ -555,8 +555,8 @@ class Si {
|
|
|
555
555
|
e.sheenColor = new EA(0, 0, 0), e.sheenRoughness = 0, e.sheen = 1;
|
|
556
556
|
const n = t.extensions[this.name];
|
|
557
557
|
if (n.sheenColorFactor !== void 0) {
|
|
558
|
-
const
|
|
559
|
-
e.sheenColor.setRGB(
|
|
558
|
+
const B = n.sheenColorFactor;
|
|
559
|
+
e.sheenColor.setRGB(B[0], B[1], B[2], O);
|
|
560
560
|
}
|
|
561
561
|
return n.sheenRoughnessFactor !== void 0 && (e.sheenRoughness = n.sheenRoughnessFactor), n.sheenColorTexture !== void 0 && i.push(s.assignTexture(e, "sheenColorMap", n.sheenColorTexture, $)), n.sheenRoughnessTexture !== void 0 && i.push(s.assignTexture(e, "sheenRoughnessMap", n.sheenRoughnessTexture)), Promise.all(i);
|
|
562
562
|
}
|
|
@@ -591,11 +591,11 @@ class yi {
|
|
|
591
591
|
return Promise.resolve();
|
|
592
592
|
const i = [], n = t.extensions[this.name];
|
|
593
593
|
e.thickness = n.thicknessFactor !== void 0 ? n.thicknessFactor : 0, n.thicknessTexture !== void 0 && i.push(s.assignTexture(e, "thicknessMap", n.thicknessTexture)), e.attenuationDistance = n.attenuationDistance || 1 / 0;
|
|
594
|
-
const
|
|
595
|
-
return e.attenuationColor = new EA().setRGB(
|
|
594
|
+
const B = n.attenuationColor || [1, 1, 1];
|
|
595
|
+
return e.attenuationColor = new EA().setRGB(B[0], B[1], B[2], O), Promise.all(i);
|
|
596
596
|
}
|
|
597
597
|
}
|
|
598
|
-
class
|
|
598
|
+
class Hi {
|
|
599
599
|
constructor(A) {
|
|
600
600
|
this.parser = A, this.name = R.KHR_MATERIALS_IOR;
|
|
601
601
|
}
|
|
@@ -611,7 +611,7 @@ class Ji {
|
|
|
611
611
|
return e.ior = i.ior !== void 0 ? i.ior : 1.5, Promise.resolve();
|
|
612
612
|
}
|
|
613
613
|
}
|
|
614
|
-
class
|
|
614
|
+
class Ji {
|
|
615
615
|
constructor(A) {
|
|
616
616
|
this.parser = A, this.name = R.KHR_MATERIALS_SPECULAR;
|
|
617
617
|
}
|
|
@@ -625,8 +625,8 @@ class Hi {
|
|
|
625
625
|
return Promise.resolve();
|
|
626
626
|
const i = [], n = t.extensions[this.name];
|
|
627
627
|
e.specularIntensity = n.specularFactor !== void 0 ? n.specularFactor : 1, n.specularTexture !== void 0 && i.push(s.assignTexture(e, "specularIntensityMap", n.specularTexture));
|
|
628
|
-
const
|
|
629
|
-
return e.specularColor = new EA().setRGB(
|
|
628
|
+
const B = n.specularColorFactor || [1, 1, 1];
|
|
629
|
+
return e.specularColor = new EA().setRGB(B[0], B[1], B[2], O), n.specularColorTexture !== void 0 && i.push(s.assignTexture(e, "specularColorMap", n.specularColorTexture, $)), Promise.all(i);
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
class Ui {
|
|
@@ -686,15 +686,15 @@ class xi {
|
|
|
686
686
|
const e = this.name, s = this.parser, t = s.json, i = t.textures[A];
|
|
687
687
|
if (!i.extensions || !i.extensions[e])
|
|
688
688
|
return null;
|
|
689
|
-
const n = i.extensions[e],
|
|
690
|
-
let
|
|
691
|
-
if (
|
|
692
|
-
const
|
|
693
|
-
|
|
689
|
+
const n = i.extensions[e], B = t.images[n.source];
|
|
690
|
+
let o = s.textureLoader;
|
|
691
|
+
if (B.uri) {
|
|
692
|
+
const r = s.options.manager.getHandler(B.uri);
|
|
693
|
+
r !== null && (o = r);
|
|
694
694
|
}
|
|
695
|
-
return this.detectSupport().then(function(
|
|
696
|
-
if (
|
|
697
|
-
return s.loadTextureImage(A, n.source,
|
|
695
|
+
return this.detectSupport().then(function(r) {
|
|
696
|
+
if (r)
|
|
697
|
+
return s.loadTextureImage(A, n.source, o);
|
|
698
698
|
if (t.extensionsRequired && t.extensionsRequired.indexOf(e) >= 0)
|
|
699
699
|
throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");
|
|
700
700
|
return s.loadTexture(A);
|
|
@@ -717,15 +717,15 @@ class ki {
|
|
|
717
717
|
const e = this.name, s = this.parser, t = s.json, i = t.textures[A];
|
|
718
718
|
if (!i.extensions || !i.extensions[e])
|
|
719
719
|
return null;
|
|
720
|
-
const n = i.extensions[e],
|
|
721
|
-
let
|
|
722
|
-
if (
|
|
723
|
-
const
|
|
724
|
-
|
|
720
|
+
const n = i.extensions[e], B = t.images[n.source];
|
|
721
|
+
let o = s.textureLoader;
|
|
722
|
+
if (B.uri) {
|
|
723
|
+
const r = s.options.manager.getHandler(B.uri);
|
|
724
|
+
r !== null && (o = r);
|
|
725
725
|
}
|
|
726
|
-
return this.detectSupport().then(function(
|
|
727
|
-
if (
|
|
728
|
-
return s.loadTextureImage(A, n.source,
|
|
726
|
+
return this.detectSupport().then(function(r) {
|
|
727
|
+
if (r)
|
|
728
|
+
return s.loadTextureImage(A, n.source, o);
|
|
729
729
|
if (t.extensionsRequired && t.extensionsRequired.indexOf(e) >= 0)
|
|
730
730
|
throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");
|
|
731
731
|
return s.loadTexture(A);
|
|
@@ -753,13 +753,13 @@ class bi {
|
|
|
753
753
|
throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");
|
|
754
754
|
return null;
|
|
755
755
|
}
|
|
756
|
-
return i.then(function(
|
|
757
|
-
const
|
|
758
|
-
return n.decodeGltfBufferAsync ? n.decodeGltfBufferAsync(I,
|
|
756
|
+
return i.then(function(B) {
|
|
757
|
+
const o = t.byteOffset || 0, r = t.byteLength || 0, I = t.count, C = t.byteStride, c = new Uint8Array(B, o, r);
|
|
758
|
+
return n.decodeGltfBufferAsync ? n.decodeGltfBufferAsync(I, C, c, t.mode, t.filter).then(function(Q) {
|
|
759
759
|
return Q.buffer;
|
|
760
760
|
}) : n.ready.then(function() {
|
|
761
|
-
const Q = new ArrayBuffer(I *
|
|
762
|
-
return n.decodeGltfBuffer(new Uint8Array(Q), I,
|
|
761
|
+
const Q = new ArrayBuffer(I * C);
|
|
762
|
+
return n.decodeGltfBuffer(new Uint8Array(Q), I, C, c, t.mode, t.filter), Q;
|
|
763
763
|
});
|
|
764
764
|
});
|
|
765
765
|
} else
|
|
@@ -775,24 +775,24 @@ class Ki {
|
|
|
775
775
|
if (!s.extensions || !s.extensions[this.name] || s.mesh === void 0)
|
|
776
776
|
return null;
|
|
777
777
|
const t = e.meshes[s.mesh];
|
|
778
|
-
for (const
|
|
779
|
-
if (
|
|
778
|
+
for (const r of t.primitives)
|
|
779
|
+
if (r.mode !== N.TRIANGLES && r.mode !== N.TRIANGLE_STRIP && r.mode !== N.TRIANGLE_FAN && r.mode !== void 0)
|
|
780
780
|
return null;
|
|
781
|
-
const n = s.extensions[this.name].attributes,
|
|
782
|
-
for (const
|
|
783
|
-
|
|
784
|
-
return
|
|
785
|
-
const I =
|
|
786
|
-
for (const l of
|
|
781
|
+
const n = s.extensions[this.name].attributes, B = [], o = {};
|
|
782
|
+
for (const r in n)
|
|
783
|
+
B.push(this.parser.getDependency("accessor", n[r]).then((I) => (o[r] = I, o[r])));
|
|
784
|
+
return B.length < 1 ? null : (B.push(this.parser.createNodeMesh(A)), Promise.all(B).then((r) => {
|
|
785
|
+
const I = r.pop(), C = I.isGroup ? I.children : [I], c = r[0].count, Q = [];
|
|
786
|
+
for (const l of C) {
|
|
787
787
|
const h = new bA(), E = new b(), d = new rt(), f = new b(1, 1, 1), D = new ps(l.geometry, l.material, c);
|
|
788
788
|
for (let F = 0; F < c; F++)
|
|
789
|
-
|
|
790
|
-
for (const F in
|
|
789
|
+
o.TRANSLATION && E.fromBufferAttribute(o.TRANSLATION, F), o.ROTATION && d.fromBufferAttribute(o.ROTATION, F), o.SCALE && f.fromBufferAttribute(o.SCALE, F), D.setMatrixAt(F, h.compose(E, d, f));
|
|
790
|
+
for (const F in o)
|
|
791
791
|
if (F === "_COLOR_0") {
|
|
792
|
-
const p =
|
|
792
|
+
const p = o[F];
|
|
793
793
|
D.instanceColor = new ms(p.array, p.itemSize, p.normalized);
|
|
794
794
|
} else
|
|
795
|
-
F !== "TRANSLATION" && F !== "ROTATION" && F !== "SCALE" && l.geometry.setAttribute(F,
|
|
795
|
+
F !== "TRANSLATION" && F !== "ROTATION" && F !== "SCALE" && l.geometry.setAttribute(F, o[F]);
|
|
796
796
|
Ct.prototype.copy.call(D, l), this.parser.assignFinalMaterial(D), Q.push(D);
|
|
797
797
|
}
|
|
798
798
|
return I.isGroup ? (I.clear(), I.add(...Q), I) : Q[0];
|
|
@@ -815,17 +815,17 @@ class Oi {
|
|
|
815
815
|
const t = this.header.length - PA, i = new DataView(A, PA);
|
|
816
816
|
let n = 0;
|
|
817
817
|
for (; n < t; ) {
|
|
818
|
-
const o = i.getUint32(n, !0);
|
|
819
|
-
n += 4;
|
|
820
818
|
const B = i.getUint32(n, !0);
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
819
|
+
n += 4;
|
|
820
|
+
const o = i.getUint32(n, !0);
|
|
821
|
+
if (n += 4, o === pt.JSON) {
|
|
822
|
+
const r = new Uint8Array(A, PA + n, B);
|
|
823
|
+
this.content = s.decode(r);
|
|
824
|
+
} else if (o === pt.BIN) {
|
|
825
|
+
const r = PA + n;
|
|
826
|
+
this.body = A.slice(r, r + B);
|
|
827
827
|
}
|
|
828
|
-
n +=
|
|
828
|
+
n += B;
|
|
829
829
|
}
|
|
830
830
|
if (this.content === null)
|
|
831
831
|
throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
@@ -838,27 +838,27 @@ class _i {
|
|
|
838
838
|
this.name = R.KHR_DRACO_MESH_COMPRESSION, this.json = A, this.dracoLoader = e, this.dracoLoader.preload();
|
|
839
839
|
}
|
|
840
840
|
decodePrimitive(A, e) {
|
|
841
|
-
const s = this.json, t = this.dracoLoader, i = A.extensions[this.name].bufferView, n = A.extensions[this.name].attributes,
|
|
841
|
+
const s = this.json, t = this.dracoLoader, i = A.extensions[this.name].bufferView, n = A.extensions[this.name].attributes, B = {}, o = {}, r = {};
|
|
842
842
|
for (const I in n) {
|
|
843
|
-
const
|
|
844
|
-
|
|
843
|
+
const C = et[I] || I.toLowerCase();
|
|
844
|
+
B[C] = n[I];
|
|
845
845
|
}
|
|
846
846
|
for (const I in A.attributes) {
|
|
847
|
-
const
|
|
847
|
+
const C = et[I] || I.toLowerCase();
|
|
848
848
|
if (n[I] !== void 0) {
|
|
849
849
|
const c = s.accessors[A.attributes[I]], Q = GA[c.componentType];
|
|
850
|
-
C
|
|
850
|
+
r[C] = Q.name, o[C] = c.normalized === !0;
|
|
851
851
|
}
|
|
852
852
|
}
|
|
853
853
|
return e.getDependency("bufferView", i).then(function(I) {
|
|
854
|
-
return new Promise(function(
|
|
854
|
+
return new Promise(function(C, c) {
|
|
855
855
|
t.decodeDracoFile(I, function(Q) {
|
|
856
856
|
for (const l in Q.attributes) {
|
|
857
|
-
const h = Q.attributes[l], E =
|
|
857
|
+
const h = Q.attributes[l], E = o[l];
|
|
858
858
|
E !== void 0 && (h.normalized = E);
|
|
859
859
|
}
|
|
860
|
-
|
|
861
|
-
},
|
|
860
|
+
C(Q);
|
|
861
|
+
}, B, r, O, c);
|
|
862
862
|
});
|
|
863
863
|
});
|
|
864
864
|
}
|
|
@@ -887,9 +887,9 @@ class vt extends $s {
|
|
|
887
887
|
return e;
|
|
888
888
|
}
|
|
889
889
|
interpolate_(A, e, s, t) {
|
|
890
|
-
const i = this.resultBuffer, n = this.sampleValues,
|
|
891
|
-
for (let F = 0; F !==
|
|
892
|
-
const p = n[h + F +
|
|
890
|
+
const i = this.resultBuffer, n = this.sampleValues, B = this.valueSize, o = B * 2, r = B * 3, I = t - e, C = (s - e) / I, c = C * C, Q = c * C, l = A * r, h = l - r, E = -2 * Q + 3 * c, d = Q - c, f = 1 - E, D = d - c + C;
|
|
891
|
+
for (let F = 0; F !== B; F++) {
|
|
892
|
+
const p = n[h + F + B], m = n[h + F + o] * I, M = n[l + F + B], _ = n[l + F] * I;
|
|
893
893
|
i[F] = f * p + D * m + E * M + d * _;
|
|
894
894
|
}
|
|
895
895
|
return i;
|
|
@@ -931,7 +931,7 @@ const N = {
|
|
|
931
931
|
5126: Float32Array
|
|
932
932
|
}, mt = {
|
|
933
933
|
9728: Ps,
|
|
934
|
-
9729:
|
|
934
|
+
9729: He,
|
|
935
935
|
9984: Ys,
|
|
936
936
|
9985: qs,
|
|
937
937
|
9986: Xs,
|
|
@@ -995,36 +995,36 @@ function iA(a, A) {
|
|
|
995
995
|
}
|
|
996
996
|
function Vi(a, A, e) {
|
|
997
997
|
let s = !1, t = !1, i = !1;
|
|
998
|
-
for (let
|
|
999
|
-
const
|
|
1000
|
-
if (
|
|
998
|
+
for (let r = 0, I = A.length; r < I; r++) {
|
|
999
|
+
const C = A[r];
|
|
1000
|
+
if (C.POSITION !== void 0 && (s = !0), C.NORMAL !== void 0 && (t = !0), C.COLOR_0 !== void 0 && (i = !0), s && t && i)
|
|
1001
1001
|
break;
|
|
1002
1002
|
}
|
|
1003
1003
|
if (!s && !t && !i)
|
|
1004
1004
|
return Promise.resolve(a);
|
|
1005
|
-
const n = [],
|
|
1006
|
-
for (let
|
|
1007
|
-
const
|
|
1005
|
+
const n = [], B = [], o = [];
|
|
1006
|
+
for (let r = 0, I = A.length; r < I; r++) {
|
|
1007
|
+
const C = A[r];
|
|
1008
1008
|
if (s) {
|
|
1009
|
-
const c =
|
|
1009
|
+
const c = C.POSITION !== void 0 ? e.getDependency("accessor", C.POSITION) : a.attributes.position;
|
|
1010
1010
|
n.push(c);
|
|
1011
1011
|
}
|
|
1012
1012
|
if (t) {
|
|
1013
|
-
const c =
|
|
1014
|
-
|
|
1013
|
+
const c = C.NORMAL !== void 0 ? e.getDependency("accessor", C.NORMAL) : a.attributes.normal;
|
|
1014
|
+
B.push(c);
|
|
1015
1015
|
}
|
|
1016
1016
|
if (i) {
|
|
1017
|
-
const c =
|
|
1018
|
-
|
|
1017
|
+
const c = C.COLOR_0 !== void 0 ? e.getDependency("accessor", C.COLOR_0) : a.attributes.color;
|
|
1018
|
+
o.push(c);
|
|
1019
1019
|
}
|
|
1020
1020
|
}
|
|
1021
1021
|
return Promise.all([
|
|
1022
1022
|
Promise.all(n),
|
|
1023
|
-
Promise.all(
|
|
1024
|
-
Promise.all(
|
|
1025
|
-
]).then(function(
|
|
1026
|
-
const I =
|
|
1027
|
-
return s && (a.morphAttributes.position = I), t && (a.morphAttributes.normal =
|
|
1023
|
+
Promise.all(B),
|
|
1024
|
+
Promise.all(o)
|
|
1025
|
+
]).then(function(r) {
|
|
1026
|
+
const I = r[0], C = r[1], c = r[2];
|
|
1027
|
+
return s && (a.morphAttributes.position = I), t && (a.morphAttributes.normal = C), i && (a.morphAttributes.color = c), a.morphTargetsRelative = !0, a;
|
|
1028
1028
|
});
|
|
1029
1029
|
}
|
|
1030
1030
|
function ji(a, A) {
|
|
@@ -1099,7 +1099,7 @@ class An {
|
|
|
1099
1099
|
s.getDependencies("camera")
|
|
1100
1100
|
]);
|
|
1101
1101
|
}).then(function(n) {
|
|
1102
|
-
const
|
|
1102
|
+
const B = {
|
|
1103
1103
|
scene: n[0][t.scene || 0],
|
|
1104
1104
|
scenes: n[0],
|
|
1105
1105
|
animations: n[1],
|
|
@@ -1108,10 +1108,10 @@ class An {
|
|
|
1108
1108
|
parser: s,
|
|
1109
1109
|
userData: {}
|
|
1110
1110
|
};
|
|
1111
|
-
return hA(i,
|
|
1112
|
-
return
|
|
1111
|
+
return hA(i, B, t), iA(B, t), Promise.all(s._invokeAll(function(o) {
|
|
1112
|
+
return o.afterRoot && o.afterRoot(B);
|
|
1113
1113
|
})).then(function() {
|
|
1114
|
-
A(
|
|
1114
|
+
A(B);
|
|
1115
1115
|
});
|
|
1116
1116
|
}).catch(e);
|
|
1117
1117
|
}
|
|
@@ -1122,8 +1122,8 @@ class An {
|
|
|
1122
1122
|
const A = this.json.nodes || [], e = this.json.skins || [], s = this.json.meshes || [];
|
|
1123
1123
|
for (let t = 0, i = e.length; t < i; t++) {
|
|
1124
1124
|
const n = e[t].joints;
|
|
1125
|
-
for (let
|
|
1126
|
-
A[n[
|
|
1125
|
+
for (let B = 0, o = n.length; B < o; B++)
|
|
1126
|
+
A[n[B]].isBone = !0;
|
|
1127
1127
|
}
|
|
1128
1128
|
for (let t = 0, i = A.length; t < i; t++) {
|
|
1129
1129
|
const n = A[t];
|
|
@@ -1146,11 +1146,11 @@ class An {
|
|
|
1146
1146
|
_getNodeRef(A, e, s) {
|
|
1147
1147
|
if (A.refs[e] <= 1)
|
|
1148
1148
|
return s;
|
|
1149
|
-
const t = s.clone(), i = (n,
|
|
1150
|
-
const
|
|
1151
|
-
|
|
1152
|
-
for (const [
|
|
1153
|
-
i(I,
|
|
1149
|
+
const t = s.clone(), i = (n, B) => {
|
|
1150
|
+
const o = this.associations.get(n);
|
|
1151
|
+
o != null && this.associations.set(B, o);
|
|
1152
|
+
for (const [r, I] of n.children.entries())
|
|
1153
|
+
i(I, B.children[r]);
|
|
1154
1154
|
};
|
|
1155
1155
|
return i(s, t), t.name += "_instance_" + A.uses[e]++, t;
|
|
1156
1156
|
}
|
|
@@ -1294,25 +1294,25 @@ class An {
|
|
|
1294
1294
|
loadAccessor(A) {
|
|
1295
1295
|
const e = this, s = this.json, t = this.json.accessors[A];
|
|
1296
1296
|
if (t.bufferView === void 0 && t.sparse === void 0) {
|
|
1297
|
-
const n = be[t.type],
|
|
1298
|
-
return Promise.resolve(new VA(
|
|
1297
|
+
const n = be[t.type], B = GA[t.componentType], o = t.normalized === !0, r = new B(t.count * n);
|
|
1298
|
+
return Promise.resolve(new VA(r, n, o));
|
|
1299
1299
|
}
|
|
1300
1300
|
const i = [];
|
|
1301
1301
|
return t.bufferView !== void 0 ? i.push(this.getDependency("bufferView", t.bufferView)) : i.push(null), t.sparse !== void 0 && (i.push(this.getDependency("bufferView", t.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", t.sparse.values.bufferView))), Promise.all(i).then(function(n) {
|
|
1302
|
-
const
|
|
1302
|
+
const B = n[0], o = be[t.type], r = GA[t.componentType], I = r.BYTES_PER_ELEMENT, C = I * o, c = t.byteOffset || 0, Q = t.bufferView !== void 0 ? s.bufferViews[t.bufferView].byteStride : void 0, l = t.normalized === !0;
|
|
1303
1303
|
let h, E;
|
|
1304
|
-
if (Q && Q !==
|
|
1304
|
+
if (Q && Q !== C) {
|
|
1305
1305
|
const d = Math.floor(c / Q), f = "InterleavedBuffer:" + t.bufferView + ":" + t.componentType + ":" + d + ":" + t.count;
|
|
1306
1306
|
let D = e.cache.get(f);
|
|
1307
|
-
D || (h = new
|
|
1307
|
+
D || (h = new r(B, d * Q, t.count * Q / I), D = new ws(h, Q / I), e.cache.add(f, D)), E = new Ss(D, o, c % Q / I, l);
|
|
1308
1308
|
} else
|
|
1309
|
-
|
|
1309
|
+
B === null ? h = new r(t.count * o) : h = new r(B, c, t.count * o), E = new VA(h, o, l);
|
|
1310
1310
|
if (t.sparse !== void 0) {
|
|
1311
|
-
const d = be.SCALAR, f = GA[t.sparse.indices.componentType], D = t.sparse.indices.byteOffset || 0, F = t.sparse.values.byteOffset || 0, p = new f(n[1], D, t.sparse.count * d), m = new
|
|
1312
|
-
|
|
1311
|
+
const d = be.SCALAR, f = GA[t.sparse.indices.componentType], D = t.sparse.indices.byteOffset || 0, F = t.sparse.values.byteOffset || 0, p = new f(n[1], D, t.sparse.count * d), m = new r(n[2], F, t.sparse.count * o);
|
|
1312
|
+
B !== null && (E = new VA(E.array.slice(), E.itemSize, E.normalized));
|
|
1313
1313
|
for (let M = 0, _ = p.length; M < _; M++) {
|
|
1314
1314
|
const y = p[M];
|
|
1315
|
-
if (E.setX(y, m[M *
|
|
1315
|
+
if (E.setX(y, m[M * o]), o >= 2 && E.setY(y, m[M * o + 1]), o >= 3 && E.setZ(y, m[M * o + 2]), o >= 4 && E.setW(y, m[M * o + 3]), o >= 5)
|
|
1316
1316
|
throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
|
|
1317
1317
|
}
|
|
1318
1318
|
}
|
|
@@ -1326,52 +1326,52 @@ class An {
|
|
|
1326
1326
|
*/
|
|
1327
1327
|
loadTexture(A) {
|
|
1328
1328
|
const e = this.json, s = this.options, i = e.textures[A].source, n = e.images[i];
|
|
1329
|
-
let
|
|
1329
|
+
let B = this.textureLoader;
|
|
1330
1330
|
if (n.uri) {
|
|
1331
|
-
const
|
|
1332
|
-
|
|
1331
|
+
const o = s.manager.getHandler(n.uri);
|
|
1332
|
+
o !== null && (B = o);
|
|
1333
1333
|
}
|
|
1334
|
-
return this.loadTextureImage(A, i,
|
|
1334
|
+
return this.loadTextureImage(A, i, B);
|
|
1335
1335
|
}
|
|
1336
1336
|
loadTextureImage(A, e, s) {
|
|
1337
|
-
const t = this, i = this.json, n = i.textures[A],
|
|
1338
|
-
if (this.textureCache[
|
|
1339
|
-
return this.textureCache[
|
|
1340
|
-
const
|
|
1341
|
-
I.flipY = !1, I.name = n.name ||
|
|
1337
|
+
const t = this, i = this.json, n = i.textures[A], B = i.images[e], o = (B.uri || B.bufferView) + ":" + n.sampler;
|
|
1338
|
+
if (this.textureCache[o])
|
|
1339
|
+
return this.textureCache[o];
|
|
1340
|
+
const r = this.loadImageSource(e, s).then(function(I) {
|
|
1341
|
+
I.flipY = !1, I.name = n.name || B.name || "", I.name === "" && typeof B.uri == "string" && B.uri.startsWith("data:image/") === !1 && (I.name = B.uri);
|
|
1342
1342
|
const c = (i.samplers || {})[n.sampler] || {};
|
|
1343
|
-
return I.magFilter = mt[c.magFilter] ||
|
|
1343
|
+
return I.magFilter = mt[c.magFilter] || He, I.minFilter = mt[c.minFilter] || at, I.wrapS = Mt[c.wrapS] || $e, I.wrapT = Mt[c.wrapT] || $e, t.associations.set(I, { textures: A }), I;
|
|
1344
1344
|
}).catch(function() {
|
|
1345
1345
|
return null;
|
|
1346
1346
|
});
|
|
1347
|
-
return this.textureCache[
|
|
1347
|
+
return this.textureCache[o] = r, r;
|
|
1348
1348
|
}
|
|
1349
1349
|
loadImageSource(A, e) {
|
|
1350
1350
|
const s = this, t = this.json, i = this.options;
|
|
1351
1351
|
if (this.sourceCache[A] !== void 0)
|
|
1352
|
-
return this.sourceCache[A].then((
|
|
1353
|
-
const n = t.images[A],
|
|
1354
|
-
let
|
|
1352
|
+
return this.sourceCache[A].then((C) => C.clone());
|
|
1353
|
+
const n = t.images[A], B = self.URL || self.webkitURL;
|
|
1354
|
+
let o = n.uri || "", r = !1;
|
|
1355
1355
|
if (n.bufferView !== void 0)
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
const c = new Blob([
|
|
1359
|
-
return
|
|
1356
|
+
o = s.getDependency("bufferView", n.bufferView).then(function(C) {
|
|
1357
|
+
r = !0;
|
|
1358
|
+
const c = new Blob([C], { type: n.mimeType });
|
|
1359
|
+
return o = B.createObjectURL(c), o;
|
|
1360
1360
|
});
|
|
1361
1361
|
else if (n.uri === void 0)
|
|
1362
1362
|
throw new Error("THREE.GLTFLoader: Image " + A + " is missing URI and bufferView");
|
|
1363
|
-
const I = Promise.resolve(
|
|
1363
|
+
const I = Promise.resolve(o).then(function(C) {
|
|
1364
1364
|
return new Promise(function(c, Q) {
|
|
1365
1365
|
let l = c;
|
|
1366
1366
|
e.isImageBitmapLoader === !0 && (l = function(h) {
|
|
1367
1367
|
const E = new ht(h);
|
|
1368
1368
|
E.needsUpdate = !0, c(E);
|
|
1369
|
-
}), e.load(WA.resolveURL(
|
|
1369
|
+
}), e.load(WA.resolveURL(C, i.path), l, void 0, Q);
|
|
1370
1370
|
});
|
|
1371
|
-
}).then(function(
|
|
1372
|
-
return
|
|
1373
|
-
}).catch(function(
|
|
1374
|
-
throw console.error("THREE.GLTFLoader: Couldn't load texture",
|
|
1371
|
+
}).then(function(C) {
|
|
1372
|
+
return r === !0 && B.revokeObjectURL(o), C.userData.mimeType = n.mimeType || zi(n.uri), C;
|
|
1373
|
+
}).catch(function(C) {
|
|
1374
|
+
throw console.error("THREE.GLTFLoader: Couldn't load texture", o), C;
|
|
1375
1375
|
});
|
|
1376
1376
|
return this.sourceCache[A] = I, I;
|
|
1377
1377
|
}
|
|
@@ -1388,10 +1388,10 @@ class An {
|
|
|
1388
1388
|
if (!n)
|
|
1389
1389
|
return null;
|
|
1390
1390
|
if (s.texCoord !== void 0 && s.texCoord > 0 && (n = n.clone(), n.channel = s.texCoord), i.extensions[R.KHR_TEXTURE_TRANSFORM]) {
|
|
1391
|
-
const
|
|
1392
|
-
if (
|
|
1393
|
-
const
|
|
1394
|
-
n = i.extensions[R.KHR_TEXTURE_TRANSFORM].extendTexture(n,
|
|
1391
|
+
const B = s.extensions !== void 0 ? s.extensions[R.KHR_TEXTURE_TRANSFORM] : void 0;
|
|
1392
|
+
if (B) {
|
|
1393
|
+
const o = i.associations.get(n);
|
|
1394
|
+
n = i.extensions[R.KHR_TEXTURE_TRANSFORM].extendTexture(n, B), i.associations.set(n, o);
|
|
1395
1395
|
}
|
|
1396
1396
|
}
|
|
1397
1397
|
return t !== void 0 && (n.colorSpace = t), A[e] = n, n;
|
|
@@ -1410,19 +1410,19 @@ class An {
|
|
|
1410
1410
|
let s = A.material;
|
|
1411
1411
|
const t = e.attributes.tangent === void 0, i = e.attributes.color !== void 0, n = e.attributes.normal === void 0;
|
|
1412
1412
|
if (A.isPoints) {
|
|
1413
|
-
const
|
|
1414
|
-
let
|
|
1415
|
-
|
|
1413
|
+
const B = "PointsMaterial:" + s.uuid;
|
|
1414
|
+
let o = this.cache.get(B);
|
|
1415
|
+
o || (o = new Ls(), xe.prototype.copy.call(o, s), o.color.copy(s.color), o.map = s.map, o.sizeAttenuation = !1, this.cache.add(B, o)), s = o;
|
|
1416
1416
|
} else if (A.isLine) {
|
|
1417
|
-
const
|
|
1418
|
-
let
|
|
1419
|
-
|
|
1417
|
+
const B = "LineBasicMaterial:" + s.uuid;
|
|
1418
|
+
let o = this.cache.get(B);
|
|
1419
|
+
o || (o = new ys(), xe.prototype.copy.call(o, s), o.color.copy(s.color), o.map = s.map, this.cache.add(B, o)), s = o;
|
|
1420
1420
|
}
|
|
1421
1421
|
if (t || i || n) {
|
|
1422
|
-
let
|
|
1423
|
-
t && (
|
|
1424
|
-
let
|
|
1425
|
-
|
|
1422
|
+
let B = "ClonedMaterial:" + s.uuid + ":";
|
|
1423
|
+
t && (B += "derivative-tangents:"), i && (B += "vertex-colors:"), n && (B += "flat-shading:");
|
|
1424
|
+
let o = this.cache.get(B);
|
|
1425
|
+
o || (o = s.clone(), i && (o.vertexColors = !0), n && (o.flatShading = !0), t && (o.normalScale && (o.normalScale.y *= -1), o.clearcoatNormalScale && (o.clearcoatNormalScale.y *= -1)), this.cache.add(B, o), this.associations.set(o, this.associations.get(s))), s = o;
|
|
1426
1426
|
}
|
|
1427
1427
|
A.material = s;
|
|
1428
1428
|
}
|
|
@@ -1437,40 +1437,40 @@ class An {
|
|
|
1437
1437
|
loadMaterial(A) {
|
|
1438
1438
|
const e = this, s = this.json, t = this.extensions, i = s.materials[A];
|
|
1439
1439
|
let n;
|
|
1440
|
-
const
|
|
1441
|
-
if (
|
|
1442
|
-
const
|
|
1443
|
-
n =
|
|
1440
|
+
const B = {}, o = i.extensions || {}, r = [];
|
|
1441
|
+
if (o[R.KHR_MATERIALS_UNLIT]) {
|
|
1442
|
+
const C = t[R.KHR_MATERIALS_UNLIT];
|
|
1443
|
+
n = C.getMaterialType(), r.push(C.extendParams(B, i, e));
|
|
1444
1444
|
} else {
|
|
1445
|
-
const
|
|
1446
|
-
if (
|
|
1447
|
-
const c =
|
|
1448
|
-
|
|
1445
|
+
const C = i.pbrMetallicRoughness || {};
|
|
1446
|
+
if (B.color = new EA(1, 1, 1), B.opacity = 1, Array.isArray(C.baseColorFactor)) {
|
|
1447
|
+
const c = C.baseColorFactor;
|
|
1448
|
+
B.color.setRGB(c[0], c[1], c[2], O), B.opacity = c[3];
|
|
1449
1449
|
}
|
|
1450
|
-
|
|
1450
|
+
C.baseColorTexture !== void 0 && r.push(e.assignTexture(B, "map", C.baseColorTexture, $)), B.metalness = C.metallicFactor !== void 0 ? C.metallicFactor : 1, B.roughness = C.roughnessFactor !== void 0 ? C.roughnessFactor : 1, C.metallicRoughnessTexture !== void 0 && (r.push(e.assignTexture(B, "metalnessMap", C.metallicRoughnessTexture)), r.push(e.assignTexture(B, "roughnessMap", C.metallicRoughnessTexture))), n = this._invokeOne(function(c) {
|
|
1451
1451
|
return c.getMaterialType && c.getMaterialType(A);
|
|
1452
|
-
}),
|
|
1453
|
-
return c.extendMaterialParams && c.extendMaterialParams(A,
|
|
1452
|
+
}), r.push(Promise.all(this._invokeAll(function(c) {
|
|
1453
|
+
return c.extendMaterialParams && c.extendMaterialParams(A, B);
|
|
1454
1454
|
})));
|
|
1455
1455
|
}
|
|
1456
|
-
i.doubleSided === !0 && (
|
|
1456
|
+
i.doubleSided === !0 && (B.side = Hs);
|
|
1457
1457
|
const I = i.alphaMode || Ke.OPAQUE;
|
|
1458
|
-
if (I === Ke.BLEND ? (
|
|
1459
|
-
const
|
|
1460
|
-
|
|
1458
|
+
if (I === Ke.BLEND ? (B.transparent = !0, B.depthWrite = !1) : (B.transparent = !1, I === Ke.MASK && (B.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && n !== qA && (r.push(e.assignTexture(B, "normalMap", i.normalTexture)), B.normalScale = new Bt(1, 1), i.normalTexture.scale !== void 0)) {
|
|
1459
|
+
const C = i.normalTexture.scale;
|
|
1460
|
+
B.normalScale.set(C, C);
|
|
1461
1461
|
}
|
|
1462
|
-
if (i.occlusionTexture !== void 0 && n !== qA && (
|
|
1463
|
-
const
|
|
1464
|
-
|
|
1462
|
+
if (i.occlusionTexture !== void 0 && n !== qA && (r.push(e.assignTexture(B, "aoMap", i.occlusionTexture)), i.occlusionTexture.strength !== void 0 && (B.aoMapIntensity = i.occlusionTexture.strength)), i.emissiveFactor !== void 0 && n !== qA) {
|
|
1463
|
+
const C = i.emissiveFactor;
|
|
1464
|
+
B.emissive = new EA().setRGB(C[0], C[1], C[2], O);
|
|
1465
1465
|
}
|
|
1466
|
-
return i.emissiveTexture !== void 0 && n !== qA &&
|
|
1467
|
-
const
|
|
1468
|
-
return i.name && (
|
|
1466
|
+
return i.emissiveTexture !== void 0 && n !== qA && r.push(e.assignTexture(B, "emissiveMap", i.emissiveTexture, $)), Promise.all(r).then(function() {
|
|
1467
|
+
const C = new n(B);
|
|
1468
|
+
return i.name && (C.name = i.name), iA(C, i), e.associations.set(C, { materials: A }), i.extensions && hA(t, C, i), C;
|
|
1469
1469
|
});
|
|
1470
1470
|
}
|
|
1471
1471
|
/** When Object3D instances are targeted by animation, they need unique names. */
|
|
1472
1472
|
createUniqueName(A) {
|
|
1473
|
-
const e =
|
|
1473
|
+
const e = Js.sanitizeNodeName(A || "");
|
|
1474
1474
|
return e in this.nodeNamesUsed ? e + "_" + ++this.nodeNamesUsed[e] : (this.nodeNamesUsed[e] = 0, e);
|
|
1475
1475
|
}
|
|
1476
1476
|
/**
|
|
@@ -1483,19 +1483,19 @@ class An {
|
|
|
1483
1483
|
*/
|
|
1484
1484
|
loadGeometries(A) {
|
|
1485
1485
|
const e = this, s = this.extensions, t = this.primitiveCache;
|
|
1486
|
-
function i(
|
|
1487
|
-
return s[R.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(
|
|
1488
|
-
return wt(
|
|
1486
|
+
function i(B) {
|
|
1487
|
+
return s[R.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(B, e).then(function(o) {
|
|
1488
|
+
return wt(o, B, e);
|
|
1489
1489
|
});
|
|
1490
1490
|
}
|
|
1491
1491
|
const n = [];
|
|
1492
|
-
for (let
|
|
1493
|
-
const
|
|
1494
|
-
if (
|
|
1495
|
-
n.push(
|
|
1492
|
+
for (let B = 0, o = A.length; B < o; B++) {
|
|
1493
|
+
const r = A[B], I = Zi(r), C = t[I];
|
|
1494
|
+
if (C)
|
|
1495
|
+
n.push(C.promise);
|
|
1496
1496
|
else {
|
|
1497
1497
|
let c;
|
|
1498
|
-
|
|
1498
|
+
r.extensions && r.extensions[R.KHR_DRACO_MESH_COMPRESSION] ? c = i(r) : c = wt(new Ot(), r, e), t[I] = { primitive: r, promise: c }, n.push(c);
|
|
1499
1499
|
}
|
|
1500
1500
|
}
|
|
1501
1501
|
return Promise.all(n);
|
|
@@ -1506,17 +1506,17 @@ class An {
|
|
|
1506
1506
|
* @return {Promise<Group|Mesh|SkinnedMesh>}
|
|
1507
1507
|
*/
|
|
1508
1508
|
loadMesh(A) {
|
|
1509
|
-
const e = this, s = this.json, t = this.extensions, i = s.meshes[A], n = i.primitives,
|
|
1510
|
-
for (let
|
|
1511
|
-
const I = n[
|
|
1512
|
-
|
|
1509
|
+
const e = this, s = this.json, t = this.extensions, i = s.meshes[A], n = i.primitives, B = [];
|
|
1510
|
+
for (let o = 0, r = n.length; o < r; o++) {
|
|
1511
|
+
const I = n[o].material === void 0 ? Wi(this.cache) : this.getDependency("material", n[o].material);
|
|
1512
|
+
B.push(I);
|
|
1513
1513
|
}
|
|
1514
|
-
return
|
|
1515
|
-
const
|
|
1514
|
+
return B.push(e.loadGeometries(n)), Promise.all(B).then(function(o) {
|
|
1515
|
+
const r = o.slice(0, o.length - 1), I = o[o.length - 1], C = [];
|
|
1516
1516
|
for (let Q = 0, l = I.length; Q < l; Q++) {
|
|
1517
1517
|
const h = I[Q], E = n[Q];
|
|
1518
1518
|
let d;
|
|
1519
|
-
const f =
|
|
1519
|
+
const f = r[Q];
|
|
1520
1520
|
if (E.mode === N.TRIANGLES || E.mode === N.TRIANGLE_STRIP || E.mode === N.TRIANGLE_FAN || E.mode === void 0)
|
|
1521
1521
|
d = i.isSkinnedMesh === !0 ? new Us(h, f) : new Fe(h, f), d.isSkinnedMesh === !0 && d.normalizeSkinWeights(), E.mode === N.TRIANGLE_STRIP ? d.geometry = Rt(d.geometry, kt) : E.mode === N.TRIANGLE_FAN && (d.geometry = Rt(d.geometry, ze));
|
|
1522
1522
|
else if (E.mode === N.LINES)
|
|
@@ -1529,19 +1529,19 @@ class An {
|
|
|
1529
1529
|
d = new ks(h, f);
|
|
1530
1530
|
else
|
|
1531
1531
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + E.mode);
|
|
1532
|
-
Object.keys(d.geometry.morphAttributes).length > 0 && ji(d, i), d.name = e.createUniqueName(i.name || "mesh_" + A), iA(d, i), E.extensions && hA(t, d, E), e.assignFinalMaterial(d),
|
|
1532
|
+
Object.keys(d.geometry.morphAttributes).length > 0 && ji(d, i), d.name = e.createUniqueName(i.name || "mesh_" + A), iA(d, i), E.extensions && hA(t, d, E), e.assignFinalMaterial(d), C.push(d);
|
|
1533
1533
|
}
|
|
1534
|
-
for (let Q = 0, l =
|
|
1535
|
-
e.associations.set(
|
|
1534
|
+
for (let Q = 0, l = C.length; Q < l; Q++)
|
|
1535
|
+
e.associations.set(C[Q], {
|
|
1536
1536
|
meshes: A,
|
|
1537
1537
|
primitives: Q
|
|
1538
1538
|
});
|
|
1539
|
-
if (
|
|
1540
|
-
return i.extensions && hA(t,
|
|
1539
|
+
if (C.length === 1)
|
|
1540
|
+
return i.extensions && hA(t, C[0], i), C[0];
|
|
1541
1541
|
const c = new jA();
|
|
1542
1542
|
i.extensions && hA(t, c, i), e.associations.set(c, { meshes: A });
|
|
1543
|
-
for (let Q = 0, l =
|
|
1544
|
-
c.add(
|
|
1543
|
+
for (let Q = 0, l = C.length; Q < l; Q++)
|
|
1544
|
+
c.add(C[Q]);
|
|
1545
1545
|
return c;
|
|
1546
1546
|
});
|
|
1547
1547
|
}
|
|
@@ -1569,17 +1569,17 @@ class An {
|
|
|
1569
1569
|
for (let t = 0, i = e.joints.length; t < i; t++)
|
|
1570
1570
|
s.push(this._loadNodeShallow(e.joints[t]));
|
|
1571
1571
|
return e.inverseBindMatrices !== void 0 ? s.push(this.getDependency("accessor", e.inverseBindMatrices)) : s.push(null), Promise.all(s).then(function(t) {
|
|
1572
|
-
const i = t.pop(), n = t,
|
|
1573
|
-
for (let
|
|
1574
|
-
const
|
|
1575
|
-
if (
|
|
1576
|
-
|
|
1572
|
+
const i = t.pop(), n = t, B = [], o = [];
|
|
1573
|
+
for (let r = 0, I = n.length; r < I; r++) {
|
|
1574
|
+
const C = n[r];
|
|
1575
|
+
if (C) {
|
|
1576
|
+
B.push(C);
|
|
1577
1577
|
const c = new bA();
|
|
1578
|
-
i !== null && c.fromArray(i.array,
|
|
1578
|
+
i !== null && c.fromArray(i.array, r * 16), o.push(c);
|
|
1579
1579
|
} else
|
|
1580
|
-
console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', e.joints[
|
|
1580
|
+
console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', e.joints[r]);
|
|
1581
1581
|
}
|
|
1582
|
-
return new Ks(
|
|
1582
|
+
return new Ks(B, o);
|
|
1583
1583
|
});
|
|
1584
1584
|
}
|
|
1585
1585
|
/**
|
|
@@ -1588,19 +1588,19 @@ class An {
|
|
|
1588
1588
|
* @return {Promise<AnimationClip>}
|
|
1589
1589
|
*/
|
|
1590
1590
|
loadAnimation(A) {
|
|
1591
|
-
const e = this.json, s = this, t = e.animations[A], i = t.name ? t.name : "animation_" + A, n = [],
|
|
1592
|
-
for (let
|
|
1593
|
-
const Q = t.channels[
|
|
1594
|
-
h.node !== void 0 && (n.push(this.getDependency("node", E)),
|
|
1591
|
+
const e = this.json, s = this, t = e.animations[A], i = t.name ? t.name : "animation_" + A, n = [], B = [], o = [], r = [], I = [];
|
|
1592
|
+
for (let C = 0, c = t.channels.length; C < c; C++) {
|
|
1593
|
+
const Q = t.channels[C], l = t.samplers[Q.sampler], h = Q.target, E = h.node, d = t.parameters !== void 0 ? t.parameters[l.input] : l.input, f = t.parameters !== void 0 ? t.parameters[l.output] : l.output;
|
|
1594
|
+
h.node !== void 0 && (n.push(this.getDependency("node", E)), B.push(this.getDependency("accessor", d)), o.push(this.getDependency("accessor", f)), r.push(l), I.push(h));
|
|
1595
1595
|
}
|
|
1596
1596
|
return Promise.all([
|
|
1597
1597
|
Promise.all(n),
|
|
1598
|
-
Promise.all(o),
|
|
1599
1598
|
Promise.all(B),
|
|
1600
|
-
Promise.all(
|
|
1599
|
+
Promise.all(o),
|
|
1600
|
+
Promise.all(r),
|
|
1601
1601
|
Promise.all(I)
|
|
1602
|
-
]).then(function(
|
|
1603
|
-
const c =
|
|
1602
|
+
]).then(function(C) {
|
|
1603
|
+
const c = C[0], Q = C[1], l = C[2], h = C[3], E = C[4], d = [];
|
|
1604
1604
|
for (let f = 0, D = c.length; f < D; f++) {
|
|
1605
1605
|
const F = c[f], p = Q[f], m = l[f], M = h[f], _ = E[f];
|
|
1606
1606
|
if (F === void 0)
|
|
@@ -1618,10 +1618,10 @@ class An {
|
|
|
1618
1618
|
const e = this.json, s = this, t = e.nodes[A];
|
|
1619
1619
|
return t.mesh === void 0 ? null : s.getDependency("mesh", t.mesh).then(function(i) {
|
|
1620
1620
|
const n = s._getNodeRef(s.meshCache, t.mesh, i);
|
|
1621
|
-
return t.weights !== void 0 && n.traverse(function(
|
|
1622
|
-
if (
|
|
1623
|
-
for (let
|
|
1624
|
-
|
|
1621
|
+
return t.weights !== void 0 && n.traverse(function(B) {
|
|
1622
|
+
if (B.isMesh)
|
|
1623
|
+
for (let o = 0, r = t.weights.length; o < r; o++)
|
|
1624
|
+
B.morphTargetInfluences[o] = t.weights[o];
|
|
1625
1625
|
}), n;
|
|
1626
1626
|
});
|
|
1627
1627
|
}
|
|
@@ -1631,21 +1631,21 @@ class An {
|
|
|
1631
1631
|
* @return {Promise<Object3D>}
|
|
1632
1632
|
*/
|
|
1633
1633
|
loadNode(A) {
|
|
1634
|
-
const e = this.json, s = this, t = e.nodes[A], i = s._loadNodeShallow(A), n = [],
|
|
1635
|
-
for (let
|
|
1636
|
-
n.push(s.getDependency("node",
|
|
1637
|
-
const
|
|
1634
|
+
const e = this.json, s = this, t = e.nodes[A], i = s._loadNodeShallow(A), n = [], B = t.children || [];
|
|
1635
|
+
for (let r = 0, I = B.length; r < I; r++)
|
|
1636
|
+
n.push(s.getDependency("node", B[r]));
|
|
1637
|
+
const o = t.skin === void 0 ? Promise.resolve(null) : s.getDependency("skin", t.skin);
|
|
1638
1638
|
return Promise.all([
|
|
1639
1639
|
i,
|
|
1640
1640
|
Promise.all(n),
|
|
1641
|
-
|
|
1642
|
-
]).then(function(
|
|
1643
|
-
const I =
|
|
1641
|
+
o
|
|
1642
|
+
]).then(function(r) {
|
|
1643
|
+
const I = r[0], C = r[1], c = r[2];
|
|
1644
1644
|
c !== null && I.traverse(function(Q) {
|
|
1645
1645
|
Q.isSkinnedMesh && Q.bind(c, $i);
|
|
1646
1646
|
});
|
|
1647
|
-
for (let Q = 0, l =
|
|
1648
|
-
I.add(
|
|
1647
|
+
for (let Q = 0, l = C.length; Q < l; Q++)
|
|
1648
|
+
I.add(C[Q]);
|
|
1649
1649
|
return I;
|
|
1650
1650
|
});
|
|
1651
1651
|
}
|
|
@@ -1655,23 +1655,23 @@ class An {
|
|
|
1655
1655
|
const e = this.json, s = this.extensions, t = this;
|
|
1656
1656
|
if (this.nodeCache[A] !== void 0)
|
|
1657
1657
|
return this.nodeCache[A];
|
|
1658
|
-
const i = e.nodes[A], n = i.name ? t.createUniqueName(i.name) : "",
|
|
1659
|
-
return
|
|
1658
|
+
const i = e.nodes[A], n = i.name ? t.createUniqueName(i.name) : "", B = [], o = t._invokeOne(function(r) {
|
|
1659
|
+
return r.createNodeMesh && r.createNodeMesh(A);
|
|
1660
1660
|
});
|
|
1661
|
-
return
|
|
1662
|
-
return t._getNodeRef(t.cameraCache, i.camera,
|
|
1663
|
-
})), t._invokeAll(function(
|
|
1664
|
-
return
|
|
1665
|
-
}).forEach(function(
|
|
1666
|
-
|
|
1667
|
-
}), this.nodeCache[A] = Promise.all(
|
|
1661
|
+
return o && B.push(o), i.camera !== void 0 && B.push(t.getDependency("camera", i.camera).then(function(r) {
|
|
1662
|
+
return t._getNodeRef(t.cameraCache, i.camera, r);
|
|
1663
|
+
})), t._invokeAll(function(r) {
|
|
1664
|
+
return r.createNodeAttachment && r.createNodeAttachment(A);
|
|
1665
|
+
}).forEach(function(r) {
|
|
1666
|
+
B.push(r);
|
|
1667
|
+
}), this.nodeCache[A] = Promise.all(B).then(function(r) {
|
|
1668
1668
|
let I;
|
|
1669
|
-
if (i.isBone === !0 ? I = new _s() :
|
|
1670
|
-
for (let
|
|
1671
|
-
I.add(C
|
|
1669
|
+
if (i.isBone === !0 ? I = new _s() : r.length > 1 ? I = new jA() : r.length === 1 ? I = r[0] : I = new Ct(), I !== r[0])
|
|
1670
|
+
for (let C = 0, c = r.length; C < c; C++)
|
|
1671
|
+
I.add(r[C]);
|
|
1672
1672
|
if (i.name && (I.userData.name = i.name, I.name = n), iA(I, i), i.extensions && hA(s, I, i), i.matrix !== void 0) {
|
|
1673
|
-
const
|
|
1674
|
-
|
|
1673
|
+
const C = new bA();
|
|
1674
|
+
C.fromArray(i.matrix), I.applyMatrix4(C);
|
|
1675
1675
|
} else
|
|
1676
1676
|
i.translation !== void 0 && I.position.fromArray(i.translation), i.rotation !== void 0 && I.quaternion.fromArray(i.rotation), i.scale !== void 0 && I.scale.fromArray(i.scale);
|
|
1677
1677
|
return t.associations.has(I) || t.associations.set(I, {}), t.associations.get(I).nodes = A, I;
|
|
@@ -1685,60 +1685,60 @@ class An {
|
|
|
1685
1685
|
loadScene(A) {
|
|
1686
1686
|
const e = this.extensions, s = this.json.scenes[A], t = this, i = new jA();
|
|
1687
1687
|
s.name && (i.name = t.createUniqueName(s.name)), iA(i, s), s.extensions && hA(e, i, s);
|
|
1688
|
-
const n = s.nodes || [],
|
|
1689
|
-
for (let
|
|
1690
|
-
|
|
1691
|
-
return Promise.all(
|
|
1692
|
-
for (let I = 0,
|
|
1693
|
-
i.add(
|
|
1694
|
-
const
|
|
1695
|
-
const
|
|
1688
|
+
const n = s.nodes || [], B = [];
|
|
1689
|
+
for (let o = 0, r = n.length; o < r; o++)
|
|
1690
|
+
B.push(t.getDependency("node", n[o]));
|
|
1691
|
+
return Promise.all(B).then(function(o) {
|
|
1692
|
+
for (let I = 0, C = o.length; I < C; I++)
|
|
1693
|
+
i.add(o[I]);
|
|
1694
|
+
const r = (I) => {
|
|
1695
|
+
const C = /* @__PURE__ */ new Map();
|
|
1696
1696
|
for (const [c, Q] of t.associations)
|
|
1697
|
-
(c instanceof xe || c instanceof ht) &&
|
|
1697
|
+
(c instanceof xe || c instanceof ht) && C.set(c, Q);
|
|
1698
1698
|
return I.traverse((c) => {
|
|
1699
1699
|
const Q = t.associations.get(c);
|
|
1700
|
-
Q != null &&
|
|
1701
|
-
}),
|
|
1700
|
+
Q != null && C.set(c, Q);
|
|
1701
|
+
}), C;
|
|
1702
1702
|
};
|
|
1703
|
-
return t.associations =
|
|
1703
|
+
return t.associations = r(i), i;
|
|
1704
1704
|
});
|
|
1705
1705
|
}
|
|
1706
1706
|
_createAnimationTracks(A, e, s, t, i) {
|
|
1707
|
-
const n = [],
|
|
1707
|
+
const n = [], B = A.name ? A.name : A.uuid, o = [];
|
|
1708
1708
|
sA[i.path] === sA.weights ? A.traverse(function(c) {
|
|
1709
|
-
c.morphTargetInfluences &&
|
|
1710
|
-
}) :
|
|
1711
|
-
let
|
|
1709
|
+
c.morphTargetInfluences && o.push(c.name ? c.name : c.uuid);
|
|
1710
|
+
}) : o.push(B);
|
|
1711
|
+
let r;
|
|
1712
1712
|
switch (sA[i.path]) {
|
|
1713
1713
|
case sA.weights:
|
|
1714
|
-
|
|
1714
|
+
r = dt;
|
|
1715
1715
|
break;
|
|
1716
1716
|
case sA.rotation:
|
|
1717
|
-
|
|
1717
|
+
r = ut;
|
|
1718
1718
|
break;
|
|
1719
1719
|
case sA.position:
|
|
1720
1720
|
case sA.scale:
|
|
1721
|
-
|
|
1721
|
+
r = lt;
|
|
1722
1722
|
break;
|
|
1723
1723
|
default:
|
|
1724
1724
|
switch (s.itemSize) {
|
|
1725
1725
|
case 1:
|
|
1726
|
-
|
|
1726
|
+
r = dt;
|
|
1727
1727
|
break;
|
|
1728
1728
|
case 2:
|
|
1729
1729
|
case 3:
|
|
1730
1730
|
default:
|
|
1731
|
-
|
|
1731
|
+
r = lt;
|
|
1732
1732
|
break;
|
|
1733
1733
|
}
|
|
1734
1734
|
break;
|
|
1735
1735
|
}
|
|
1736
|
-
const I = t.interpolation !== void 0 ? vi[t.interpolation] : _t,
|
|
1737
|
-
for (let c = 0, Q =
|
|
1738
|
-
const l = new
|
|
1739
|
-
|
|
1736
|
+
const I = t.interpolation !== void 0 ? vi[t.interpolation] : _t, C = this._getArrayFromAccessor(s);
|
|
1737
|
+
for (let c = 0, Q = o.length; c < Q; c++) {
|
|
1738
|
+
const l = new r(
|
|
1739
|
+
o[c] + "." + sA[i.path],
|
|
1740
1740
|
e.array,
|
|
1741
|
-
|
|
1741
|
+
C,
|
|
1742
1742
|
I
|
|
1743
1743
|
);
|
|
1744
1744
|
t.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(l), n.push(l);
|
|
@@ -1765,13 +1765,13 @@ class An {
|
|
|
1765
1765
|
function en(a, A, e) {
|
|
1766
1766
|
const s = A.attributes, t = new Zs();
|
|
1767
1767
|
if (s.POSITION !== void 0) {
|
|
1768
|
-
const
|
|
1769
|
-
if (
|
|
1768
|
+
const B = e.json.accessors[s.POSITION], o = B.min, r = B.max;
|
|
1769
|
+
if (o !== void 0 && r !== void 0) {
|
|
1770
1770
|
if (t.set(
|
|
1771
|
-
new b(
|
|
1772
|
-
new b(
|
|
1773
|
-
),
|
|
1774
|
-
const I = tt(GA[
|
|
1771
|
+
new b(o[0], o[1], o[2]),
|
|
1772
|
+
new b(r[0], r[1], r[2])
|
|
1773
|
+
), B.normalized) {
|
|
1774
|
+
const I = tt(GA[B.componentType]);
|
|
1775
1775
|
t.min.multiplyScalar(I), t.max.multiplyScalar(I);
|
|
1776
1776
|
}
|
|
1777
1777
|
} else {
|
|
@@ -1782,22 +1782,22 @@ function en(a, A, e) {
|
|
|
1782
1782
|
return;
|
|
1783
1783
|
const i = A.targets;
|
|
1784
1784
|
if (i !== void 0) {
|
|
1785
|
-
const
|
|
1786
|
-
for (let
|
|
1787
|
-
const
|
|
1788
|
-
if (
|
|
1789
|
-
const c = e.json.accessors[
|
|
1785
|
+
const B = new b(), o = new b();
|
|
1786
|
+
for (let r = 0, I = i.length; r < I; r++) {
|
|
1787
|
+
const C = i[r];
|
|
1788
|
+
if (C.POSITION !== void 0) {
|
|
1789
|
+
const c = e.json.accessors[C.POSITION], Q = c.min, l = c.max;
|
|
1790
1790
|
if (Q !== void 0 && l !== void 0) {
|
|
1791
|
-
if (
|
|
1791
|
+
if (o.setX(Math.max(Math.abs(Q[0]), Math.abs(l[0]))), o.setY(Math.max(Math.abs(Q[1]), Math.abs(l[1]))), o.setZ(Math.max(Math.abs(Q[2]), Math.abs(l[2]))), c.normalized) {
|
|
1792
1792
|
const h = tt(GA[c.componentType]);
|
|
1793
|
-
|
|
1793
|
+
o.multiplyScalar(h);
|
|
1794
1794
|
}
|
|
1795
|
-
|
|
1795
|
+
B.max(o);
|
|
1796
1796
|
} else
|
|
1797
1797
|
console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1798
1798
|
}
|
|
1799
1799
|
}
|
|
1800
|
-
t.expandByVector(
|
|
1800
|
+
t.expandByVector(B);
|
|
1801
1801
|
}
|
|
1802
1802
|
a.boundingBox = t;
|
|
1803
1803
|
const n = new zs();
|
|
@@ -1805,18 +1805,18 @@ function en(a, A, e) {
|
|
|
1805
1805
|
}
|
|
1806
1806
|
function wt(a, A, e) {
|
|
1807
1807
|
const s = A.attributes, t = [];
|
|
1808
|
-
function i(n,
|
|
1809
|
-
return e.getDependency("accessor", n).then(function(
|
|
1810
|
-
a.setAttribute(
|
|
1808
|
+
function i(n, B) {
|
|
1809
|
+
return e.getDependency("accessor", n).then(function(o) {
|
|
1810
|
+
a.setAttribute(B, o);
|
|
1811
1811
|
});
|
|
1812
1812
|
}
|
|
1813
1813
|
for (const n in s) {
|
|
1814
|
-
const
|
|
1815
|
-
|
|
1814
|
+
const B = et[n] || n.toLowerCase();
|
|
1815
|
+
B in a.attributes || t.push(i(s[n], B));
|
|
1816
1816
|
}
|
|
1817
1817
|
if (A.indices !== void 0 && !a.index) {
|
|
1818
|
-
const n = e.getDependency("accessor", A.indices).then(function(
|
|
1819
|
-
a.setIndex(
|
|
1818
|
+
const n = e.getDependency("accessor", A.indices).then(function(B) {
|
|
1819
|
+
a.setIndex(B);
|
|
1820
1820
|
});
|
|
1821
1821
|
t.push(n);
|
|
1822
1822
|
}
|
|
@@ -1860,42 +1860,42 @@ class tn extends ot {
|
|
|
1860
1860
|
}
|
|
1861
1861
|
decodeDracoFile(A, e, s, t, i = O, n = () => {
|
|
1862
1862
|
}) {
|
|
1863
|
-
const
|
|
1863
|
+
const B = {
|
|
1864
1864
|
attributeIDs: s || this.defaultAttributeIDs,
|
|
1865
1865
|
attributeTypes: t || this.defaultAttributeTypes,
|
|
1866
1866
|
useUniqueIDs: !!s,
|
|
1867
1867
|
vertexColorSpace: i
|
|
1868
1868
|
};
|
|
1869
|
-
return this.decodeGeometry(A,
|
|
1869
|
+
return this.decodeGeometry(A, B).then(e).catch(n);
|
|
1870
1870
|
}
|
|
1871
1871
|
decodeGeometry(A, e) {
|
|
1872
1872
|
const s = JSON.stringify(e);
|
|
1873
1873
|
if (_e.has(A)) {
|
|
1874
|
-
const
|
|
1875
|
-
if (
|
|
1876
|
-
return
|
|
1874
|
+
const o = _e.get(A);
|
|
1875
|
+
if (o.key === s)
|
|
1876
|
+
return o.promise;
|
|
1877
1877
|
if (A.byteLength === 0)
|
|
1878
1878
|
throw new Error(
|
|
1879
1879
|
"THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred."
|
|
1880
1880
|
);
|
|
1881
1881
|
}
|
|
1882
1882
|
let t;
|
|
1883
|
-
const i = this.workerNextTaskID++, n = A.byteLength,
|
|
1884
|
-
t._callbacks[i] = { resolve:
|
|
1885
|
-
}))).then((
|
|
1886
|
-
return
|
|
1883
|
+
const i = this.workerNextTaskID++, n = A.byteLength, B = this._getWorker(i, n).then((o) => (t = o, new Promise((r, I) => {
|
|
1884
|
+
t._callbacks[i] = { resolve: r, reject: I }, t.postMessage({ type: "decode", id: i, taskConfig: e, buffer: A }, [A]);
|
|
1885
|
+
}))).then((o) => this._createGeometry(o.geometry));
|
|
1886
|
+
return B.catch(() => !0).then(() => {
|
|
1887
1887
|
t && i && this._releaseTask(t, i);
|
|
1888
1888
|
}), _e.set(A, {
|
|
1889
1889
|
key: s,
|
|
1890
|
-
promise:
|
|
1891
|
-
}),
|
|
1890
|
+
promise: B
|
|
1891
|
+
}), B;
|
|
1892
1892
|
}
|
|
1893
1893
|
_createGeometry(A) {
|
|
1894
1894
|
const e = new Ot();
|
|
1895
1895
|
A.index && e.setIndex(new VA(A.index.array, 1));
|
|
1896
1896
|
for (let s = 0; s < A.attributes.length; s++) {
|
|
1897
|
-
const t = A.attributes[s], i = t.name, n = t.array,
|
|
1898
|
-
i === "color" && (this._assignVertexColorSpace(
|
|
1897
|
+
const t = A.attributes[s], i = t.name, n = t.array, B = t.itemSize, o = new VA(n, B);
|
|
1898
|
+
i === "color" && (this._assignVertexColorSpace(o, t.vertexColorSpace), o.normalized = !(n instanceof Float32Array)), e.setAttribute(i, o);
|
|
1899
1899
|
}
|
|
1900
1900
|
return e;
|
|
1901
1901
|
}
|
|
@@ -1973,77 +1973,77 @@ class tn extends ot {
|
|
|
1973
1973
|
function sn() {
|
|
1974
1974
|
let a, A;
|
|
1975
1975
|
onmessage = function(n) {
|
|
1976
|
-
const
|
|
1977
|
-
switch (
|
|
1976
|
+
const B = n.data;
|
|
1977
|
+
switch (B.type) {
|
|
1978
1978
|
case "init":
|
|
1979
|
-
a =
|
|
1980
|
-
a.onModuleLoaded = function(
|
|
1981
|
-
I({ draco:
|
|
1979
|
+
a = B.decoderConfig, A = new Promise(function(I) {
|
|
1980
|
+
a.onModuleLoaded = function(C) {
|
|
1981
|
+
I({ draco: C });
|
|
1982
1982
|
}, DracoDecoderModule(a);
|
|
1983
1983
|
});
|
|
1984
1984
|
break;
|
|
1985
1985
|
case "decode":
|
|
1986
|
-
const
|
|
1986
|
+
const o = B.buffer, r = B.taskConfig;
|
|
1987
1987
|
A.then((I) => {
|
|
1988
|
-
const
|
|
1988
|
+
const C = I.draco, c = new C.Decoder();
|
|
1989
1989
|
try {
|
|
1990
|
-
const Q = e(
|
|
1991
|
-
Q.index && l.push(Q.index.array.buffer), self.postMessage({ type: "decode", id:
|
|
1990
|
+
const Q = e(C, c, new Int8Array(o), r), l = Q.attributes.map((h) => h.array.buffer);
|
|
1991
|
+
Q.index && l.push(Q.index.array.buffer), self.postMessage({ type: "decode", id: B.id, geometry: Q }, l);
|
|
1992
1992
|
} catch (Q) {
|
|
1993
|
-
console.error(Q), self.postMessage({ type: "error", id:
|
|
1993
|
+
console.error(Q), self.postMessage({ type: "error", id: B.id, error: Q.message });
|
|
1994
1994
|
} finally {
|
|
1995
|
-
|
|
1995
|
+
C.destroy(c);
|
|
1996
1996
|
}
|
|
1997
1997
|
});
|
|
1998
1998
|
break;
|
|
1999
1999
|
}
|
|
2000
2000
|
};
|
|
2001
|
-
function e(n,
|
|
2002
|
-
const I =
|
|
2001
|
+
function e(n, B, o, r) {
|
|
2002
|
+
const I = r.attributeIDs, C = r.attributeTypes;
|
|
2003
2003
|
let c, Q;
|
|
2004
|
-
const l =
|
|
2004
|
+
const l = B.GetEncodedGeometryType(o);
|
|
2005
2005
|
if (l === n.TRIANGULAR_MESH)
|
|
2006
|
-
c = new n.Mesh(), Q =
|
|
2006
|
+
c = new n.Mesh(), Q = B.DecodeArrayToMesh(o, o.byteLength, c);
|
|
2007
2007
|
else if (l === n.POINT_CLOUD)
|
|
2008
|
-
c = new n.PointCloud(), Q =
|
|
2008
|
+
c = new n.PointCloud(), Q = B.DecodeArrayToPointCloud(o, o.byteLength, c);
|
|
2009
2009
|
else
|
|
2010
2010
|
throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
|
|
2011
2011
|
if (!Q.ok() || c.ptr === 0)
|
|
2012
2012
|
throw new Error("THREE.DRACOLoader: Decoding failed: " + Q.error_msg());
|
|
2013
2013
|
const h = { index: null, attributes: [] };
|
|
2014
2014
|
for (const E in I) {
|
|
2015
|
-
const d = self[
|
|
2015
|
+
const d = self[C[E]];
|
|
2016
2016
|
let f, D;
|
|
2017
|
-
if (
|
|
2018
|
-
D = I[E], f =
|
|
2017
|
+
if (r.useUniqueIDs)
|
|
2018
|
+
D = I[E], f = B.GetAttributeByUniqueId(c, D);
|
|
2019
2019
|
else {
|
|
2020
|
-
if (D =
|
|
2020
|
+
if (D = B.GetAttributeId(c, n[I[E]]), D === -1)
|
|
2021
2021
|
continue;
|
|
2022
|
-
f =
|
|
2022
|
+
f = B.GetAttribute(c, D);
|
|
2023
2023
|
}
|
|
2024
|
-
const F = t(n,
|
|
2025
|
-
E === "color" && (F.vertexColorSpace =
|
|
2024
|
+
const F = t(n, B, c, E, d, f);
|
|
2025
|
+
E === "color" && (F.vertexColorSpace = r.vertexColorSpace), h.attributes.push(F);
|
|
2026
2026
|
}
|
|
2027
|
-
return l === n.TRIANGULAR_MESH && (h.index = s(n,
|
|
2027
|
+
return l === n.TRIANGULAR_MESH && (h.index = s(n, B, c)), n.destroy(c), h;
|
|
2028
2028
|
}
|
|
2029
|
-
function s(n,
|
|
2030
|
-
const I =
|
|
2031
|
-
|
|
2029
|
+
function s(n, B, o) {
|
|
2030
|
+
const I = o.num_faces() * 3, C = I * 4, c = n._malloc(C);
|
|
2031
|
+
B.GetTrianglesUInt32Array(o, C, c);
|
|
2032
2032
|
const Q = new Uint32Array(n.HEAPF32.buffer, c, I).slice();
|
|
2033
2033
|
return n._free(c), { array: Q, itemSize: 1 };
|
|
2034
2034
|
}
|
|
2035
|
-
function t(n,
|
|
2036
|
-
const c =
|
|
2037
|
-
|
|
2035
|
+
function t(n, B, o, r, I, C) {
|
|
2036
|
+
const c = C.num_components(), l = o.num_points() * c, h = l * I.BYTES_PER_ELEMENT, E = i(n, I), d = n._malloc(h);
|
|
2037
|
+
B.GetAttributeDataArrayForAllPoints(o, C, E, h, d);
|
|
2038
2038
|
const f = new I(n.HEAPF32.buffer, d, l).slice();
|
|
2039
2039
|
return n._free(d), {
|
|
2040
|
-
name:
|
|
2040
|
+
name: r,
|
|
2041
2041
|
array: f,
|
|
2042
2042
|
itemSize: c
|
|
2043
2043
|
};
|
|
2044
2044
|
}
|
|
2045
|
-
function i(n,
|
|
2046
|
-
switch (
|
|
2045
|
+
function i(n, B) {
|
|
2046
|
+
switch (B) {
|
|
2047
2047
|
case Float32Array:
|
|
2048
2048
|
return n.DT_FLOAT32;
|
|
2049
2049
|
case Int8Array:
|
|
@@ -2154,23 +2154,23 @@ function En(a) {
|
|
|
2154
2154
|
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();
|
|
2155
2155
|
const i = t._nextUint32();
|
|
2156
2156
|
e.supercompressionScheme = t._nextUint32();
|
|
2157
|
-
const n = t._nextUint32(),
|
|
2157
|
+
const n = t._nextUint32(), B = t._nextUint32(), o = t._nextUint32(), r = t._nextUint32(), I = t._nextUint64(), C = t._nextUint64(), c = new YA(a, L.length + s, 3 * i * 8, !0);
|
|
2158
2158
|
for (let S = 0; S < i; S++)
|
|
2159
2159
|
e.levels.push({ levelData: new Uint8Array(a.buffer, a.byteOffset + c._nextUint64(), c._nextUint64()), uncompressedByteLength: c._nextUint64() });
|
|
2160
|
-
const Q = new YA(a, n,
|
|
2160
|
+
const Q = new YA(a, n, B, !0), l = { vendorId: Q._skip(4)._nextUint16(), descriptorType: Q._nextUint16(), versionNumber: Q._nextUint16(), descriptorBlockSize: Q._nextUint16(), colorModel: Q._nextUint8(), colorPrimaries: Q._nextUint8(), transferFunction: Q._nextUint8(), flags: Q._nextUint8(), texelBlockDimension: [Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8()], bytesPlane: [Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8()], samples: [] }, h = (l.descriptorBlockSize / 4 - 6) / 4;
|
|
2161
2161
|
for (let S = 0; S < h; S++) {
|
|
2162
|
-
const
|
|
2163
|
-
64 &
|
|
2162
|
+
const J = { bitOffset: Q._nextUint16(), bitLength: Q._nextUint8(), channelType: Q._nextUint8(), samplePosition: [Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2163
|
+
64 & J.channelType ? (J.sampleLower = Q._nextInt32(), J.sampleUpper = Q._nextInt32()) : (J.sampleLower = Q._nextUint32(), J.sampleUpper = Q._nextUint32()), l.samples[S] = J;
|
|
2164
2164
|
}
|
|
2165
2165
|
e.dataFormatDescriptor.length = 0, e.dataFormatDescriptor.push(l);
|
|
2166
|
-
const E = new YA(a,
|
|
2167
|
-
for (; E._offset <
|
|
2168
|
-
const S = E._nextUint32(),
|
|
2166
|
+
const E = new YA(a, o, r, !0);
|
|
2167
|
+
for (; E._offset < r; ) {
|
|
2168
|
+
const S = E._nextUint32(), J = E._scan(S), OA = yt(J), V = E._scan(S - J.byteLength);
|
|
2169
2169
|
e.keyValue[OA] = OA.match(/^ktx/i) ? yt(V) : V, E._offset % 4 && E._skip(4 - E._offset % 4);
|
|
2170
2170
|
}
|
|
2171
|
-
if (
|
|
2171
|
+
if (C <= 0)
|
|
2172
2172
|
return e;
|
|
2173
|
-
const d = new YA(a, I,
|
|
2173
|
+
const d = new YA(a, I, C, !0), f = d._nextUint16(), D = d._nextUint16(), F = d._nextUint32(), p = d._nextUint32(), m = d._nextUint32(), M = d._nextUint32(), _ = [];
|
|
2174
2174
|
for (let S = 0; S < i; S++)
|
|
2175
2175
|
_.push({ imageFlags: d._nextUint32(), rgbSliceByteOffset: d._nextUint32(), rgbSliceByteLength: d._nextUint32(), alphaSliceByteOffset: d._nextUint32(), alphaSliceByteLength: d._nextUint32() });
|
|
2176
2176
|
const y = I + d._offset, W = y + F, KA = W + p, Ge = KA + m, cA = new Uint8Array(a.buffer, a.byteOffset + y, F), Re = new Uint8Array(a.buffer, a.byteOffset + W, p), eA = new Uint8Array(a.buffer, a.byteOffset + KA, m), pe = new Uint8Array(a.buffer, a.byteOffset + Ge, M);
|
|
@@ -2182,7 +2182,7 @@ const Ye = { env: { emscripten_notify_memory_growth: function(a) {
|
|
|
2182
2182
|
} } };
|
|
2183
2183
|
class cn {
|
|
2184
2184
|
init() {
|
|
2185
|
-
return Pe || (Pe = typeof fetch != "undefined" ? fetch("data:application/wasm;base64," +
|
|
2185
|
+
return Pe || (Pe = typeof fetch != "undefined" ? fetch("data:application/wasm;base64," + Ht).then((A) => A.arrayBuffer()).then((A) => WebAssembly.instantiate(A, Ye)).then(this._init) : WebAssembly.instantiate(Buffer.from(Ht, "base64"), Ye).then(this._init), Pe);
|
|
2186
2186
|
}
|
|
2187
2187
|
_init(A) {
|
|
2188
2188
|
j = A.instance, Ye.env.emscripten_notify_memory_growth(0);
|
|
@@ -2192,11 +2192,11 @@ class cn {
|
|
|
2192
2192
|
throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
2193
2193
|
const s = A.byteLength, t = j.exports.malloc(s);
|
|
2194
2194
|
st.set(A, t), e = e || Number(j.exports.ZSTD_findDecompressedSize(t, s));
|
|
2195
|
-
const i = j.exports.malloc(e), n = j.exports.ZSTD_decompress(i, e, t, s),
|
|
2196
|
-
return j.exports.free(t), j.exports.free(i),
|
|
2195
|
+
const i = j.exports.malloc(e), n = j.exports.ZSTD_decompress(i, e, t, s), B = st.slice(i, i + n);
|
|
2196
|
+
return j.exports.free(t), j.exports.free(i), B;
|
|
2197
2197
|
}
|
|
2198
2198
|
}
|
|
2199
|
-
const Jt = "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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+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", qe = /* @__PURE__ */ new WeakMap();
|
|
2199
|
+
const Ht = "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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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", qe = /* @__PURE__ */ new WeakMap();
|
|
2200
2200
|
let Xe = 0, ve;
|
|
2201
2201
|
class v extends ot {
|
|
2202
2202
|
constructor(A) {
|
|
@@ -2247,7 +2247,7 @@ class v extends ot {
|
|
|
2247
2247
|
s.setPath(this.transcoderPath), s.setResponseType("arraybuffer"), s.setWithCredentials(this.withCredentials);
|
|
2248
2248
|
const t = s.loadAsync("basis_transcoder.wasm");
|
|
2249
2249
|
this.transcoderPending = Promise.all([e, t]).then(([i, n]) => {
|
|
2250
|
-
const
|
|
2250
|
+
const B = v.BasisWorker.toString(), o = [
|
|
2251
2251
|
"/* constants */",
|
|
2252
2252
|
"let _EngineFormat = " + JSON.stringify(v.EngineFormat),
|
|
2253
2253
|
"let _TranscoderFormat = " + JSON.stringify(v.TranscoderFormat),
|
|
@@ -2255,12 +2255,12 @@ class v extends ot {
|
|
|
2255
2255
|
"/* basis_transcoder.js */",
|
|
2256
2256
|
i,
|
|
2257
2257
|
"/* worker */",
|
|
2258
|
-
|
|
2258
|
+
B.substring(B.indexOf("{") + 1, B.lastIndexOf("}"))
|
|
2259
2259
|
].join(`
|
|
2260
2260
|
`);
|
|
2261
|
-
this.workerSourceURL = URL.createObjectURL(new Blob([
|
|
2262
|
-
const
|
|
2263
|
-
return
|
|
2261
|
+
this.workerSourceURL = URL.createObjectURL(new Blob([o])), this.transcoderBinary = n, this.workerPool.setWorkerCreator(() => {
|
|
2262
|
+
const r = new Worker(this.workerSourceURL), I = this.transcoderBinary.slice(0);
|
|
2263
|
+
return r.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: I }, [I]), r;
|
|
2264
2264
|
});
|
|
2265
2265
|
}), Xe > 0 && console.warn(
|
|
2266
2266
|
"THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
|
|
@@ -2275,21 +2275,21 @@ class v extends ot {
|
|
|
2275
2275
|
i.setResponseType("arraybuffer"), i.setWithCredentials(this.withCredentials), i.load(A, (n) => {
|
|
2276
2276
|
if (qe.has(n))
|
|
2277
2277
|
return qe.get(n).promise.then(e).catch(t);
|
|
2278
|
-
this._createTexture(n).then((
|
|
2278
|
+
this._createTexture(n).then((B) => e ? e(B) : null).catch(t);
|
|
2279
2279
|
}, s, t);
|
|
2280
2280
|
}
|
|
2281
2281
|
_createTextureFrom(A, e) {
|
|
2282
|
-
const { faces: s, width: t, height: i, format: n, type:
|
|
2283
|
-
if (
|
|
2284
|
-
return Promise.reject(
|
|
2282
|
+
const { faces: s, width: t, height: i, format: n, type: B, error: o, dfdFlags: r } = A;
|
|
2283
|
+
if (B === "error")
|
|
2284
|
+
return Promise.reject(o);
|
|
2285
2285
|
let I;
|
|
2286
2286
|
if (e.faceCount === 6)
|
|
2287
2287
|
I = new Ai(s, n, K);
|
|
2288
2288
|
else {
|
|
2289
|
-
const
|
|
2290
|
-
I = e.layerCount > 1 ? new ei(
|
|
2289
|
+
const C = s[0].mipmaps;
|
|
2290
|
+
I = e.layerCount > 1 ? new ei(C, t, i, e.layerCount, n, K) : new Pt(C, t, i, n, K);
|
|
2291
2291
|
}
|
|
2292
|
-
return I.minFilter = s[0].mipmaps.length === 1 ?
|
|
2292
|
+
return I.minFilter = s[0].mipmaps.length === 1 ? He : at, I.magFilter = He, I.generateMipmaps = !1, I.needsUpdate = !0, I.colorSpace = rs(e), I.premultiplyAlpha = !!(r & Bn), I;
|
|
2293
2293
|
}
|
|
2294
2294
|
/**
|
|
2295
2295
|
* @param {ArrayBuffer} buffer
|
|
@@ -2301,7 +2301,7 @@ class v extends ot {
|
|
|
2301
2301
|
const t = En(new Uint8Array(A));
|
|
2302
2302
|
if (t.vkFormat !== In)
|
|
2303
2303
|
return hn(t);
|
|
2304
|
-
const i = e, n = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: A, taskConfig: i }, [A])).then((
|
|
2304
|
+
const i = e, n = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: A, taskConfig: i }, [A])).then((B) => this._createTextureFrom(B.data, t));
|
|
2305
2305
|
return qe.set(A, { promise: n }), n;
|
|
2306
2306
|
});
|
|
2307
2307
|
}
|
|
@@ -2356,7 +2356,7 @@ v.BasisWorker = function() {
|
|
|
2356
2356
|
case "transcode":
|
|
2357
2357
|
A.then(() => {
|
|
2358
2358
|
try {
|
|
2359
|
-
const { faces: E, buffers: d, width: f, height: D, hasAlpha: F, format: p, dfdFlags: m } =
|
|
2359
|
+
const { faces: E, buffers: d, width: f, height: D, hasAlpha: F, format: p, dfdFlags: m } = B(h.buffer);
|
|
2360
2360
|
self.postMessage({ type: "transcode", id: h.id, faces: E, width: f, height: D, hasAlpha: F, format: p, dfdFlags: m }, d);
|
|
2361
2361
|
} catch (E) {
|
|
2362
2362
|
console.error(E), self.postMessage({ type: "error", id: h.id, error: E.message });
|
|
@@ -2372,14 +2372,14 @@ v.BasisWorker = function() {
|
|
|
2372
2372
|
e.initializeBasis(), e.KTX2File === void 0 && console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
|
|
2373
2373
|
});
|
|
2374
2374
|
}
|
|
2375
|
-
function
|
|
2375
|
+
function B(l) {
|
|
2376
2376
|
const h = new e.KTX2File(new Uint8Array(l));
|
|
2377
2377
|
function E() {
|
|
2378
2378
|
h.close(), h.delete();
|
|
2379
2379
|
}
|
|
2380
2380
|
if (!h.isValid())
|
|
2381
2381
|
throw E(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
|
|
2382
|
-
const d = h.isUASTC() ? i.UASTC_4x4 : i.ETC1S, f = h.getWidth(), D = h.getHeight(), F = h.getLayers() || 1, p = h.getLevels(), m = h.getFaces(), M = h.getHasAlpha(), _ = h.getDFDFlags(), { transcoderFormat: y, engineFormat: W } =
|
|
2382
|
+
const d = h.isUASTC() ? i.UASTC_4x4 : i.ETC1S, f = h.getWidth(), D = h.getHeight(), F = h.getLayers() || 1, p = h.getLevels(), m = h.getFaces(), M = h.getHasAlpha(), _ = h.getDFDFlags(), { transcoderFormat: y, engineFormat: W } = C(d, f, D, M);
|
|
2383
2383
|
if (!f || !D || !p)
|
|
2384
2384
|
throw E(), new Error("THREE.KTX2Loader: Invalid texture");
|
|
2385
2385
|
if (!h.startTranscoding())
|
|
@@ -2389,23 +2389,23 @@ v.BasisWorker = function() {
|
|
|
2389
2389
|
const Re = [];
|
|
2390
2390
|
for (let eA = 0; eA < p; eA++) {
|
|
2391
2391
|
const pe = [];
|
|
2392
|
-
let S,
|
|
2392
|
+
let S, J;
|
|
2393
2393
|
for (let V = 0; V < F; V++) {
|
|
2394
2394
|
const DA = h.getImageLevelInfo(eA, V, cA);
|
|
2395
|
-
cA === 0 && eA === 0 && V === 0 && (DA.origWidth % 4 !== 0 || DA.origHeight % 4 !== 0) && console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), p > 1 ? (S = DA.origWidth,
|
|
2395
|
+
cA === 0 && eA === 0 && V === 0 && (DA.origWidth % 4 !== 0 || DA.origHeight % 4 !== 0) && console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), p > 1 ? (S = DA.origWidth, J = DA.origHeight) : (S = DA.width, J = DA.height);
|
|
2396
2396
|
const It = new Uint8Array(h.getImageTranscodedSizeInBytes(eA, V, 0, y));
|
|
2397
2397
|
if (!h.transcodeImage(It, eA, V, cA, y, 0, -1, -1))
|
|
2398
2398
|
throw E(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
|
|
2399
2399
|
pe.push(It);
|
|
2400
2400
|
}
|
|
2401
2401
|
const OA = Q(pe);
|
|
2402
|
-
Re.push({ data: OA, width: S, height:
|
|
2402
|
+
Re.push({ data: OA, width: S, height: J }), Ge.push(OA.buffer);
|
|
2403
2403
|
}
|
|
2404
2404
|
KA.push({ mipmaps: Re, width: f, height: D, format: W });
|
|
2405
2405
|
}
|
|
2406
2406
|
return E(), { faces: KA, buffers: Ge, width: f, height: D, hasAlpha: M, format: W, dfdFlags: _ };
|
|
2407
2407
|
}
|
|
2408
|
-
const
|
|
2408
|
+
const o = [
|
|
2409
2409
|
{
|
|
2410
2410
|
if: "astcSupported",
|
|
2411
2411
|
basisFormat: [i.UASTC_4x4],
|
|
@@ -2460,14 +2460,14 @@ v.BasisWorker = function() {
|
|
|
2460
2460
|
priorityUASTC: 6,
|
|
2461
2461
|
needsPowerOfTwo: !0
|
|
2462
2462
|
}
|
|
2463
|
-
],
|
|
2463
|
+
], r = o.sort(function(l, h) {
|
|
2464
2464
|
return l.priorityETC1S - h.priorityETC1S;
|
|
2465
|
-
}), I =
|
|
2465
|
+
}), I = o.sort(function(l, h) {
|
|
2466
2466
|
return l.priorityUASTC - h.priorityUASTC;
|
|
2467
2467
|
});
|
|
2468
|
-
function
|
|
2468
|
+
function C(l, h, E, d) {
|
|
2469
2469
|
let f, D;
|
|
2470
|
-
const F = l === i.ETC1S ?
|
|
2470
|
+
const F = l === i.ETC1S ? r : I;
|
|
2471
2471
|
for (let p = 0; p < F.length; p++) {
|
|
2472
2472
|
const m = F[p];
|
|
2473
2473
|
if (a[m.if] && m.basisFormat.includes(l) && !(d && m.transcoderFormat.length < 2) && !(m.needsPowerOfTwo && !(c(h) && c(E))))
|
|
@@ -2538,28 +2538,28 @@ function hn(a) {
|
|
|
2538
2538
|
}))), e = yield ve);
|
|
2539
2539
|
const s = [];
|
|
2540
2540
|
for (let i = 0; i < a.levels.length; i++) {
|
|
2541
|
-
const n = Math.max(1, a.pixelWidth >> i),
|
|
2541
|
+
const n = Math.max(1, a.pixelWidth >> i), B = Math.max(1, a.pixelHeight >> i), o = a.pixelDepth ? Math.max(1, a.pixelDepth >> i) : 0, r = a.levels[i];
|
|
2542
2542
|
let I;
|
|
2543
2543
|
if (a.supercompressionScheme === on)
|
|
2544
|
-
I =
|
|
2544
|
+
I = r.levelData;
|
|
2545
2545
|
else if (a.supercompressionScheme === St)
|
|
2546
|
-
I = e.decode(
|
|
2546
|
+
I = e.decode(r.levelData, r.uncompressedByteLength);
|
|
2547
2547
|
else
|
|
2548
2548
|
throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
2549
|
-
let
|
|
2550
|
-
Ve[A] === Le ?
|
|
2549
|
+
let C;
|
|
2550
|
+
Ve[A] === Le ? C = new Float32Array(
|
|
2551
2551
|
I.buffer,
|
|
2552
2552
|
I.byteOffset,
|
|
2553
2553
|
I.byteLength / Float32Array.BYTES_PER_ELEMENT
|
|
2554
|
-
) : Ve[A] === ye ?
|
|
2554
|
+
) : Ve[A] === ye ? C = new Uint16Array(
|
|
2555
2555
|
I.buffer,
|
|
2556
2556
|
I.byteOffset,
|
|
2557
2557
|
I.byteLength / Uint16Array.BYTES_PER_ELEMENT
|
|
2558
|
-
) :
|
|
2559
|
-
data:
|
|
2558
|
+
) : C = I, s.push({
|
|
2559
|
+
data: C,
|
|
2560
2560
|
width: n,
|
|
2561
|
-
height:
|
|
2562
|
-
depth:
|
|
2561
|
+
height: B,
|
|
2562
|
+
depth: o
|
|
2563
2563
|
});
|
|
2564
2564
|
}
|
|
2565
2565
|
let t;
|
|
@@ -2702,28 +2702,28 @@ const ln = () => {
|
|
|
2702
2702
|
let t = a;
|
|
2703
2703
|
WebAssembly.validate(e) && (t = A);
|
|
2704
2704
|
let i;
|
|
2705
|
-
const n = WebAssembly.instantiate(
|
|
2706
|
-
i =
|
|
2705
|
+
const n = WebAssembly.instantiate(B(t), {}).then((C) => {
|
|
2706
|
+
i = C.instance, i.exports.__wasm_call_ctors();
|
|
2707
2707
|
});
|
|
2708
|
-
function
|
|
2709
|
-
const c = new Uint8Array(
|
|
2710
|
-
for (let l = 0; l <
|
|
2711
|
-
const h =
|
|
2708
|
+
function B(C) {
|
|
2709
|
+
const c = new Uint8Array(C.length);
|
|
2710
|
+
for (let l = 0; l < C.length; ++l) {
|
|
2711
|
+
const h = C.charCodeAt(l);
|
|
2712
2712
|
c[l] = h > 96 ? h - 71 : h > 64 ? h - 65 : h > 47 ? h + 4 : h > 46 ? 63 : 62;
|
|
2713
2713
|
}
|
|
2714
2714
|
let Q = 0;
|
|
2715
|
-
for (let l = 0; l <
|
|
2715
|
+
for (let l = 0; l < C.length; ++l)
|
|
2716
2716
|
c[Q++] = c[l] < 60 ? s[c[l]] : (c[l] - 60) * 64 + c[++l];
|
|
2717
2717
|
return c.buffer.slice(0, Q);
|
|
2718
2718
|
}
|
|
2719
|
-
function
|
|
2719
|
+
function o(C, c, Q, l, h, E) {
|
|
2720
2720
|
const d = i.exports.sbrk, f = Q + 3 & -4, D = d(f * l), F = d(h.length), p = new Uint8Array(i.exports.memory.buffer);
|
|
2721
2721
|
p.set(h, F);
|
|
2722
|
-
const m =
|
|
2722
|
+
const m = C(D, Q, l, F, h.length);
|
|
2723
2723
|
if (m === 0 && E && E(D, f, l), c.set(p.subarray(D, D + Q * l)), d(D - d(0)), m !== 0)
|
|
2724
2724
|
throw new Error(`Malformed buffer data: ${m}`);
|
|
2725
2725
|
}
|
|
2726
|
-
const
|
|
2726
|
+
const r = {
|
|
2727
2727
|
// legacy index-based enums for glTF
|
|
2728
2728
|
0: "",
|
|
2729
2729
|
1: "meshopt_decodeFilterOct",
|
|
@@ -2747,30 +2747,30 @@ const ln = () => {
|
|
|
2747
2747
|
return Se = {
|
|
2748
2748
|
ready: n,
|
|
2749
2749
|
supported: !0,
|
|
2750
|
-
decodeVertexBuffer(
|
|
2751
|
-
|
|
2750
|
+
decodeVertexBuffer(C, c, Q, l, h) {
|
|
2751
|
+
o(
|
|
2752
2752
|
i.exports.meshopt_decodeVertexBuffer,
|
|
2753
|
-
|
|
2753
|
+
C,
|
|
2754
2754
|
c,
|
|
2755
2755
|
Q,
|
|
2756
2756
|
l,
|
|
2757
|
-
i.exports[
|
|
2757
|
+
i.exports[r[h]]
|
|
2758
2758
|
);
|
|
2759
2759
|
},
|
|
2760
|
-
decodeIndexBuffer(
|
|
2761
|
-
|
|
2760
|
+
decodeIndexBuffer(C, c, Q, l) {
|
|
2761
|
+
o(i.exports.meshopt_decodeIndexBuffer, C, c, Q, l);
|
|
2762
2762
|
},
|
|
2763
|
-
decodeIndexSequence(
|
|
2764
|
-
|
|
2763
|
+
decodeIndexSequence(C, c, Q, l) {
|
|
2764
|
+
o(i.exports.meshopt_decodeIndexSequence, C, c, Q, l);
|
|
2765
2765
|
},
|
|
2766
|
-
decodeGltfBuffer(
|
|
2767
|
-
|
|
2766
|
+
decodeGltfBuffer(C, c, Q, l, h, E) {
|
|
2767
|
+
o(
|
|
2768
2768
|
i.exports[I[h]],
|
|
2769
|
-
|
|
2769
|
+
C,
|
|
2770
2770
|
c,
|
|
2771
2771
|
Q,
|
|
2772
2772
|
l,
|
|
2773
|
-
i.exports[
|
|
2773
|
+
i.exports[r[E]]
|
|
2774
2774
|
);
|
|
2775
2775
|
}
|
|
2776
2776
|
}, Se;
|
|
@@ -2835,7 +2835,7 @@ class Pn extends jA {
|
|
|
2835
2835
|
super(), this.add(new we(A.planes[0], e, 16711680)), this.add(new we(A.planes[1], e, 16711680)), this.add(new we(A.planes[2], e, 16711680)), this.add(new we(A.planes[3], e, 16711680));
|
|
2836
2836
|
}
|
|
2837
2837
|
}
|
|
2838
|
-
var LA, dA, yA, oe, Be, BA,
|
|
2838
|
+
var LA, dA, yA, oe, Be, BA, HA, re;
|
|
2839
2839
|
class Cs extends ui {
|
|
2840
2840
|
constructor(e) {
|
|
2841
2841
|
super(e);
|
|
@@ -2845,9 +2845,9 @@ class Cs extends ui {
|
|
|
2845
2845
|
u(this, oe, void 0);
|
|
2846
2846
|
u(this, Be, void 0);
|
|
2847
2847
|
u(this, BA, void 0);
|
|
2848
|
-
u(this,
|
|
2848
|
+
u(this, HA, !1);
|
|
2849
2849
|
u(this, re, () => {
|
|
2850
|
-
if (!(g(this, BA) && !g(this,
|
|
2850
|
+
if (!(g(this, BA) && !g(this, HA)) && (this.current !== this.previous && (g(this, LA).current = null), this.current)) {
|
|
2851
2851
|
const e = g(this, Be) ? this.current.url : this.current.name + this.current.extension;
|
|
2852
2852
|
g(this, BA) || ke.setTotal(e, 1), g(this, dA).current = "start", g(this, oe).load(
|
|
2853
2853
|
e,
|
|
@@ -2883,33 +2883,33 @@ class Cs extends ui {
|
|
|
2883
2883
|
* Calling this method will start loading the resource.
|
|
2884
2884
|
*/
|
|
2885
2885
|
lazyLoad() {
|
|
2886
|
-
g(this,
|
|
2886
|
+
g(this, HA) || (G(this, HA, !0), g(this, re).call(this));
|
|
2887
2887
|
}
|
|
2888
2888
|
}
|
|
2889
|
-
LA = new WeakMap(), dA = new WeakMap(), yA = new WeakMap(), oe = new WeakMap(), Be = new WeakMap(), BA = new WeakMap(),
|
|
2890
|
-
var
|
|
2889
|
+
LA = new WeakMap(), dA = new WeakMap(), yA = new WeakMap(), oe = new WeakMap(), Be = new WeakMap(), BA = new WeakMap(), HA = new WeakMap(), re = new WeakMap();
|
|
2890
|
+
var JA;
|
|
2891
2891
|
class Yn extends jA {
|
|
2892
2892
|
constructor(e) {
|
|
2893
2893
|
super();
|
|
2894
|
-
u(this,
|
|
2895
|
-
G(this,
|
|
2894
|
+
u(this, JA, void 0);
|
|
2895
|
+
G(this, JA, new Cs(tA({
|
|
2896
2896
|
loader: un,
|
|
2897
2897
|
consumer: this
|
|
2898
|
-
}, e))), g(this,
|
|
2898
|
+
}, e))), g(this, JA).data.subscribe((s) => {
|
|
2899
2899
|
s.current ? this.add(...s.current.scene.children) : this.children.forEach((t) => {
|
|
2900
2900
|
this.remove(t), Yt(t);
|
|
2901
2901
|
});
|
|
2902
2902
|
});
|
|
2903
2903
|
}
|
|
2904
2904
|
get sourceManager() {
|
|
2905
|
-
return g(this,
|
|
2905
|
+
return g(this, JA);
|
|
2906
2906
|
}
|
|
2907
2907
|
}
|
|
2908
|
-
|
|
2908
|
+
JA = new WeakMap();
|
|
2909
2909
|
function as(a, A, e) {
|
|
2910
2910
|
const s = A.x, t = A.y, i = e || a.image.width / a.image.height;
|
|
2911
|
-
let n = 0,
|
|
2912
|
-
s / t > i ? (n = 1,
|
|
2911
|
+
let n = 0, B = 0, o = a.offset.x, r = a.offset.y, I = a.rotation, C = a.center.x, c = a.center.y;
|
|
2912
|
+
s / t > i ? (n = 1, B = t / s * i) : (B = 1, n = s / t / i), a.matrix.setUvTransform(o, r, n, B, I, C, c);
|
|
2913
2913
|
}
|
|
2914
2914
|
var rA, UA, uA;
|
|
2915
2915
|
class Is extends Fe {
|
|
@@ -3009,7 +3009,7 @@ function Wn(a, A) {
|
|
|
3009
3009
|
e instanceof Fe && e.material && (Array.isArray(e.material) ? e.material : [e.material]).forEach(A);
|
|
3010
3010
|
});
|
|
3011
3011
|
}
|
|
3012
|
-
const
|
|
3012
|
+
const Jt = new b(), Fn = new rt(), Ut = new b();
|
|
3013
3013
|
class Gn extends Ct {
|
|
3014
3014
|
constructor(A = document.createElement("div")) {
|
|
3015
3015
|
super(), this.isCSS3DObject = !0, this.element = A, this.element.style.position = "absolute", this.element.style.pointerEvents = "auto", this.element.style.userSelect = "none", this.element.setAttribute("draggable", !1), this.addEventListener("removed", function() {
|
|
@@ -3027,39 +3027,39 @@ class pn {
|
|
|
3027
3027
|
constructor(A = {}) {
|
|
3028
3028
|
const e = this;
|
|
3029
3029
|
let s, t, i, n;
|
|
3030
|
-
const
|
|
3030
|
+
const B = {
|
|
3031
3031
|
camera: { style: "" },
|
|
3032
3032
|
objects: /* @__PURE__ */ new WeakMap()
|
|
3033
|
-
},
|
|
3034
|
-
|
|
3035
|
-
const
|
|
3036
|
-
|
|
3033
|
+
}, o = A.element !== void 0 ? A.element : document.createElement("div");
|
|
3034
|
+
o.style.overflow = "hidden", this.domElement = o;
|
|
3035
|
+
const r = document.createElement("div");
|
|
3036
|
+
r.style.transformOrigin = "0 0", r.style.pointerEvents = "none", o.appendChild(r);
|
|
3037
3037
|
const I = document.createElement("div");
|
|
3038
|
-
I.style.transformStyle = "preserve-3d",
|
|
3038
|
+
I.style.transformStyle = "preserve-3d", r.appendChild(I), this.getSize = function() {
|
|
3039
3039
|
return {
|
|
3040
3040
|
width: s,
|
|
3041
3041
|
height: t
|
|
3042
3042
|
};
|
|
3043
3043
|
}, this.render = function(h, E) {
|
|
3044
3044
|
const d = E.projectionMatrix.elements[5] * n;
|
|
3045
|
-
E.view && E.view.enabled ? (
|
|
3045
|
+
E.view && E.view.enabled ? (r.style.transform = `translate( ${-E.view.offsetX * (s / E.view.width)}px, ${-E.view.offsetY * (t / E.view.height)}px )`, r.style.transform += `scale( ${E.view.fullWidth / E.view.width}, ${E.view.fullHeight / E.view.height} )`) : r.style.transform = "", h.matrixWorldAutoUpdate === !0 && h.updateMatrixWorld(), E.parent === null && E.matrixWorldAutoUpdate === !0 && E.updateMatrixWorld();
|
|
3046
3046
|
let f, D;
|
|
3047
3047
|
E.isOrthographicCamera && (f = -(E.right + E.left) / 2, D = (E.top + E.bottom) / 2);
|
|
3048
|
-
const F = E.view && E.view.enabled ? E.view.height / E.view.fullHeight : 1, p = E.isOrthographicCamera ? `scale( ${F} )scale(` + d + ")translate(" +
|
|
3049
|
-
|
|
3048
|
+
const F = E.view && E.view.enabled ? E.view.height / E.view.fullHeight : 1, p = E.isOrthographicCamera ? `scale( ${F} )scale(` + d + ")translate(" + C(f) + "px," + C(D) + "px)" + c(E.matrixWorldInverse) : `scale( ${F} )translateZ(` + d + "px)" + c(E.matrixWorldInverse), M = (E.isPerspectiveCamera ? "perspective(" + d + "px) " : "") + p + "translate(" + i + "px," + n + "px)";
|
|
3049
|
+
B.camera.style !== M && (I.style.transform = M, B.camera.style = M), l(h, h, E);
|
|
3050
3050
|
}, this.setSize = function(h, E) {
|
|
3051
|
-
s = h, t = E, i = s / 2, n = t / 2,
|
|
3051
|
+
s = h, t = E, i = s / 2, n = t / 2, o.style.width = h + "px", o.style.height = E + "px", r.style.width = h + "px", r.style.height = E + "px", I.style.width = h + "px", I.style.height = E + "px";
|
|
3052
3052
|
};
|
|
3053
|
-
function
|
|
3053
|
+
function C(h) {
|
|
3054
3054
|
return Math.abs(h) < 1e-10 ? 0 : h;
|
|
3055
3055
|
}
|
|
3056
3056
|
function c(h) {
|
|
3057
3057
|
const E = h.elements;
|
|
3058
|
-
return "matrix3d(" +
|
|
3058
|
+
return "matrix3d(" + C(E[0]) + "," + C(-E[1]) + "," + C(E[2]) + "," + C(E[3]) + "," + C(E[4]) + "," + C(-E[5]) + "," + C(E[6]) + "," + C(E[7]) + "," + C(E[8]) + "," + C(-E[9]) + "," + C(E[10]) + "," + C(E[11]) + "," + C(E[12]) + "," + C(-E[13]) + "," + C(E[14]) + "," + C(E[15]) + ")";
|
|
3059
3059
|
}
|
|
3060
3060
|
function Q(h) {
|
|
3061
3061
|
const E = h.elements;
|
|
3062
|
-
return "translate(-50%,-50%)" + ("matrix3d(" +
|
|
3062
|
+
return "translate(-50%,-50%)" + ("matrix3d(" + C(E[0]) + "," + C(E[1]) + "," + C(E[2]) + "," + C(E[3]) + "," + C(-E[4]) + "," + C(-E[5]) + "," + C(-E[6]) + "," + C(-E[7]) + "," + C(E[8]) + "," + C(E[9]) + "," + C(E[10]) + "," + C(E[11]) + "," + C(E[12]) + "," + C(E[13]) + "," + C(E[14]) + "," + C(E[15]) + ")");
|
|
3063
3063
|
}
|
|
3064
3064
|
function l(h, E, d, f) {
|
|
3065
3065
|
if (h.isCSS3DObject) {
|
|
@@ -3067,12 +3067,12 @@ class pn {
|
|
|
3067
3067
|
if (h.element.style.display = D === !0 ? "" : "none", D === !0) {
|
|
3068
3068
|
h.onBeforeRender(e, E, d);
|
|
3069
3069
|
let F;
|
|
3070
|
-
h.isCSS3DSprite ? (P.copy(d.matrixWorldInverse), P.transpose(), h.rotation2D !== 0 && P.multiply(Rn.makeRotationZ(h.rotation2D)), h.matrixWorld.decompose(
|
|
3071
|
-
const p = h.element, m =
|
|
3070
|
+
h.isCSS3DSprite ? (P.copy(d.matrixWorldInverse), P.transpose(), h.rotation2D !== 0 && P.multiply(Rn.makeRotationZ(h.rotation2D)), h.matrixWorld.decompose(Jt, Fn, Ut), P.setPosition(Jt), P.scale(Ut), P.elements[3] = 0, P.elements[7] = 0, P.elements[11] = 0, P.elements[15] = 1, F = Q(P)) : F = Q(h.matrixWorld);
|
|
3071
|
+
const p = h.element, m = B.objects.get(h);
|
|
3072
3072
|
if (m === void 0 || m.style !== F) {
|
|
3073
3073
|
p.style.transform = F;
|
|
3074
3074
|
const M = { style: F };
|
|
3075
|
-
|
|
3075
|
+
B.objects.set(h, M);
|
|
3076
3076
|
}
|
|
3077
3077
|
p.parentNode !== I && I.appendChild(p), h.onAfterRender(e, E, d);
|
|
3078
3078
|
}
|
|
@@ -3139,41 +3139,43 @@ class mn {
|
|
|
3139
3139
|
}
|
|
3140
3140
|
}
|
|
3141
3141
|
TA = new WeakMap(), ce = new WeakMap(), Qe = new WeakMap(), CA = new WeakMap(), he = new WeakMap();
|
|
3142
|
-
var aA,
|
|
3142
|
+
var aA, H, NA, le, de, ue, fe;
|
|
3143
3143
|
class Mn {
|
|
3144
3144
|
constructor() {
|
|
3145
3145
|
u(this, aA, []);
|
|
3146
|
-
u(this,
|
|
3146
|
+
u(this, H, []);
|
|
3147
3147
|
u(this, NA, new Bt());
|
|
3148
3148
|
u(this, le, new li());
|
|
3149
3149
|
u(this, de, (A) => {
|
|
3150
|
-
for (let e = 0; e < g(this,
|
|
3151
|
-
g(this,
|
|
3150
|
+
for (let e = 0; e < g(this, H).length; e++)
|
|
3151
|
+
g(this, H)[e].dispatch("en3PointerDown", A);
|
|
3152
3152
|
});
|
|
3153
3153
|
u(this, ue, (A) => {
|
|
3154
|
-
for (let e = 0; e < g(this,
|
|
3155
|
-
g(this,
|
|
3154
|
+
for (let e = 0; e < g(this, H).length; e++)
|
|
3155
|
+
g(this, H)[e].dispatch("en3PointerUp", A);
|
|
3156
3156
|
});
|
|
3157
3157
|
u(this, fe, (A) => {
|
|
3158
3158
|
g(this, NA).x = A.clientX / w.width * 2 - 1, g(this, NA).y = -(A.clientY / w.height) * 2 + 1, w.camera && g(this, le).setFromCamera(g(this, NA), w.camera);
|
|
3159
3159
|
const e = [];
|
|
3160
3160
|
for (const o of g(this, aA)) {
|
|
3161
|
-
const
|
|
3162
|
-
|
|
3161
|
+
const r = g(this, le).intersectObject(o.target);
|
|
3162
|
+
r.length && (o.intersection = r[0], e.push(o));
|
|
3163
3163
|
}
|
|
3164
3164
|
let s = !1;
|
|
3165
|
-
const t = g(this,
|
|
3166
|
-
(o) => !e.find((
|
|
3167
|
-
),
|
|
3168
|
-
(o
|
|
3165
|
+
const t = g(this, H).filter(
|
|
3166
|
+
(o) => !e.find((r) => r.object3D.uuid === o.object3D.uuid)
|
|
3167
|
+
), n = e.sort(
|
|
3168
|
+
(o, r) => r.object3D.position.z - o.object3D.position.z
|
|
3169
|
+
).filter((o, r) => s ? (t.push(o), !1) : (s = !o.propagation, !0)), B = n.filter(
|
|
3170
|
+
(o) => !g(this, H).find((r) => r.object3D.uuid === o.object3D.uuid)
|
|
3169
3171
|
);
|
|
3170
3172
|
for (let o = 0; o < t.length; o++)
|
|
3171
3173
|
t[o].dispatch("en3PointerLeave", A);
|
|
3172
|
-
for (let o = 0; o <
|
|
3173
|
-
|
|
3174
|
-
G(this,
|
|
3175
|
-
for (let o = 0; o < g(this,
|
|
3176
|
-
g(this,
|
|
3174
|
+
for (let o = 0; o < B.length; o++)
|
|
3175
|
+
B[o].dispatch("en3PointerEnter", A);
|
|
3176
|
+
G(this, H, n);
|
|
3177
|
+
for (let o = 0; o < g(this, H).length; o++)
|
|
3178
|
+
g(this, H)[o].dispatch("en3PointerMove", A);
|
|
3177
3179
|
});
|
|
3178
3180
|
w.containerElement.addEventListener(
|
|
3179
3181
|
"pointerdown",
|
|
@@ -3206,10 +3208,10 @@ class Mn {
|
|
|
3206
3208
|
remove(A) {
|
|
3207
3209
|
G(this, aA, g(this, aA).filter(
|
|
3208
3210
|
(e) => e.object3D.uuid !== A.uuid
|
|
3209
|
-
)), G(this,
|
|
3211
|
+
)), G(this, H, g(this, H).filter((e) => e.object3D.uuid !== A.uuid));
|
|
3210
3212
|
}
|
|
3211
3213
|
}
|
|
3212
|
-
aA = new WeakMap(),
|
|
3214
|
+
aA = new WeakMap(), H = new WeakMap(), NA = new WeakMap(), le = new WeakMap(), de = new WeakMap(), ue = new WeakMap(), fe = new WeakMap();
|
|
3213
3215
|
var IA, gA, De, it;
|
|
3214
3216
|
class Vn {
|
|
3215
3217
|
constructor(A) {
|