@needle-tools/engine 4.2.5 → 4.3.0-alpha
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/CHANGELOG.md +6 -0
- package/components.needle.json +1 -1
- package/dist/needle-engine.bundle.js +2783 -2760
- package/dist/needle-engine.bundle.light.js +2774 -2751
- package/dist/needle-engine.bundle.light.min.js +62 -62
- package/dist/needle-engine.bundle.light.umd.cjs +61 -61
- package/dist/needle-engine.bundle.min.js +62 -62
- package/dist/needle-engine.bundle.umd.cjs +61 -61
- package/dist/three-examples.js +825 -794
- package/dist/three-examples.light.js +825 -794
- package/dist/three-examples.light.min.js +12 -12
- package/dist/three-examples.light.umd.cjs +10 -10
- package/dist/three-examples.min.js +12 -12
- package/dist/three-examples.umd.cjs +10 -10
- package/lib/engine/engine_addressables.d.ts +3 -0
- package/lib/engine/engine_addressables.js +18 -0
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_input.d.ts +20 -1
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.d.ts +8 -0
- package/lib/engine-components/SceneSwitcher.js +28 -8
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.d.ts +1 -0
- package/lib/engine-components/ui/EventSystem.js +8 -5
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/alias.js +6 -3
- package/src/engine/engine_addressables.ts +21 -0
- package/src/engine/engine_input.ts +20 -1
- package/src/engine-components/SceneSwitcher.ts +30 -8
- package/src/engine-components/ui/EventSystem.ts +9 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as z, s as ci, V as P, q as Qt, bR as ar, h as
|
|
1
|
+
import { M as z, s as ci, V as P, q as Qt, bR as ar, h as ds, bS as rr, bt as wt, bT as Ar, bU as cr, bs as li, aa as Un, bV as lr, bW as Kn, a9 as hr, n as tn, bX as ur, bY as Js, bZ as So, b as ue, bM as Nt, b_ as nn, ab as ft, k as Se, a8 as We, b8 as To, z as Vs, y as vo, af as ge, b1 as vt, f as Le, b$ as gr, c0 as dr, O as xt, a as hi, c1 as pr, I as nt, c2 as fr, b3 as mt, bL as ps, bF as an, c3 as Dn, X as Lt, d as ui, D as gi, a7 as It, B as ut, $ as di, N as As, H as dt, c4 as mr, c5 as is, r as sn, p as ye, as as Ro, a1 as _o, a6 as pi, a2 as Ws, c6 as jn, c7 as Ve, Q as Te, al as Do, c8 as Mo, c9 as ko, ca as Fo, bI as cs, br as Lo, cb as fi, aq as No, a0 as en, T as Xs, bo as ls, cc as hs, bp as us, c as fs, S as mi, cd as Ir, bm as br, b2 as pt, ce as Er, ap as Gn, ad as Kt, cf as Uo, cg as Cr, ch as Br, ci as wr, cj as yr, ck as Qr, cl as xr, cm as Sr, cn as Tr, bG as St, bj as st, ac as vr, bH as Rr, co as _r, cp as Dr, bD as gs, bP as Mn, bO as dn, cq as Ri, x as Mr, cr as kr, Z as Ii, E as zt, J as Ke, t as je, cs as ke, ct as Yn, cu as Cn, cv as Go, P as bi, cw as Po, cx as pn, g as Ut, cy as Fr, cz as Pn, cA as Lr, ae as Nr, aB as Ur, cB as Gr, o as Oo, cC as Pr, cD as Or, R as Hr, Y as jr, cE as mn, cF as fn, cG as _i, j as Ho, U as qr, i as Zs, W as zr, cH as jo, bC as Kr, a3 as Yr, cI as Jr, cJ as $s, cK as Vr, b5 as Wr, cL as Xr } from "./three.light.js";
|
|
2
2
|
class th extends z {
|
|
3
3
|
constructor(e, t, s, n = 128) {
|
|
4
4
|
if (t <= 0 || s <= 0 || n <= 0)
|
|
@@ -23,8 +23,8 @@ class Zr extends ar {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
const Ce = Zr, tt = new rr();
|
|
26
|
-
tt.camera = new
|
|
27
|
-
const
|
|
26
|
+
tt.camera = new ds();
|
|
27
|
+
const Di = {
|
|
28
28
|
LineBasicNodeMaterial: wt.basic,
|
|
29
29
|
MeshBasicNodeMaterial: wt.basic,
|
|
30
30
|
PointsNodeMaterial: wt.points,
|
|
@@ -57,8 +57,8 @@ class tA extends Ar {
|
|
|
57
57
|
_parseShaderLib() {
|
|
58
58
|
const e = this.material;
|
|
59
59
|
let t = e.type;
|
|
60
|
-
if (e.isMeshPhysicalNodeMaterial ? t = "MeshPhysicalNodeMaterial" : e.isMeshStandardNodeMaterial ? t = "MeshStandardNodeMaterial" : e.isMeshPhongNodeMaterial ? t = "MeshPhongNodeMaterial" : e.isMeshBasicNodeMaterial ? t = "MeshBasicNodeMaterial" : e.isPointsNodeMaterial ? t = "PointsNodeMaterial" : e.isLineBasicNodeMaterial && (t = "LineBasicNodeMaterial"),
|
|
61
|
-
const s =
|
|
60
|
+
if (e.isMeshPhysicalNodeMaterial ? t = "MeshPhysicalNodeMaterial" : e.isMeshStandardNodeMaterial ? t = "MeshStandardNodeMaterial" : e.isMeshPhongNodeMaterial ? t = "MeshPhongNodeMaterial" : e.isMeshBasicNodeMaterial ? t = "MeshBasicNodeMaterial" : e.isPointsNodeMaterial ? t = "PointsNodeMaterial" : e.isLineBasicNodeMaterial && (t = "LineBasicNodeMaterial"), Di[t] !== void 0) {
|
|
61
|
+
const s = Di[t], n = this.shader;
|
|
62
62
|
n.vertexShader = s.vertexShader, n.fragmentShader = s.fragmentShader, n.uniforms = li.merge([s.uniforms, Un.lights]);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -418,13 +418,13 @@ var os = function() {
|
|
|
418
418
|
};
|
|
419
419
|
};
|
|
420
420
|
os.Panel = function(A, e, t) {
|
|
421
|
-
var s = 1 / 0, n = 0, i = Math.round, o = i(window.devicePixelRatio || 1), a = 80 * o, r = 48 * o, c = 3 * o, l = 2 * o, h = 3 * o,
|
|
421
|
+
var s = 1 / 0, n = 0, i = Math.round, o = i(window.devicePixelRatio || 1), a = 80 * o, r = 48 * o, c = 3 * o, l = 2 * o, h = 3 * o, g = 15 * o, d = 74 * o, p = 30 * o, m = document.createElement("canvas");
|
|
422
422
|
m.width = a, m.height = r, m.style.cssText = "width:80px;height:48px";
|
|
423
423
|
var I = m.getContext("2d");
|
|
424
|
-
return I.font = "bold " + 9 * o + "px Helvetica,Arial,sans-serif", I.textBaseline = "top", I.fillStyle = t, I.fillRect(0, 0, a, r), I.fillStyle = e, I.fillText(A, c, l), I.fillRect(h,
|
|
424
|
+
return I.font = "bold " + 9 * o + "px Helvetica,Arial,sans-serif", I.textBaseline = "top", I.fillStyle = t, I.fillRect(0, 0, a, r), I.fillStyle = e, I.fillText(A, c, l), I.fillRect(h, g, d, p), I.fillStyle = t, I.globalAlpha = 0.9, I.fillRect(h, g, d, p), {
|
|
425
425
|
dom: m,
|
|
426
426
|
update: function(b, B) {
|
|
427
|
-
s = Math.min(s, b), n = Math.max(n, b), I.fillStyle = t, I.globalAlpha = 1, I.fillRect(0, 0, a,
|
|
427
|
+
s = Math.min(s, b), n = Math.max(n, b), I.fillStyle = t, I.globalAlpha = 1, I.fillRect(0, 0, a, g), I.fillStyle = e, I.fillText(i(b) + " " + A + " (" + i(s) + "-" + i(n) + ")", c, l), I.drawImage(m, h + o, g, d - o, p, h, g, d - o, p), I.fillRect(h + d - o, g, o, p), I.fillStyle = t, I.globalAlpha = 0.9, I.fillRect(h + d - o, g, o, i((1 - b / B) * p));
|
|
428
428
|
}
|
|
429
429
|
};
|
|
430
430
|
};
|
|
@@ -432,7 +432,7 @@ function nh(A, e = 1e-4) {
|
|
|
432
432
|
e = Math.max(e, Number.EPSILON);
|
|
433
433
|
const t = {}, s = A.getIndex(), n = A.getAttribute("position"), i = s ? s.count : n.count;
|
|
434
434
|
let o = 0;
|
|
435
|
-
const a = Object.keys(A.attributes), r = {}, c = {}, l = [], h = ["getX", "getY", "getZ", "getW"],
|
|
435
|
+
const a = Object.keys(A.attributes), r = {}, c = {}, l = [], h = ["getX", "getY", "getZ", "getW"], g = ["setX", "setY", "setZ", "setW"];
|
|
436
436
|
for (let B = 0, E = a.length; B < E; B++) {
|
|
437
437
|
const w = a[B], Q = A.attributes[w];
|
|
438
438
|
r[w] = new Q.constructor(
|
|
@@ -446,7 +446,7 @@ function nh(A, e = 1e-4) {
|
|
|
446
446
|
c[w][x] = new _.constructor(T, _.itemSize, _.normalized);
|
|
447
447
|
}));
|
|
448
448
|
}
|
|
449
|
-
const
|
|
449
|
+
const d = e * 0.5, p = Math.log10(1 / e), m = Math.pow(10, p), I = d * m;
|
|
450
450
|
for (let B = 0; B < i; B++) {
|
|
451
451
|
const E = s ? s.getX(B) : B;
|
|
452
452
|
let w = "";
|
|
@@ -461,7 +461,7 @@ function nh(A, e = 1e-4) {
|
|
|
461
461
|
for (let Q = 0, R = a.length; Q < R; Q++) {
|
|
462
462
|
const _ = a[Q], x = A.getAttribute(_), T = A.morphAttributes[_], L = x.itemSize, N = r[_], O = c[_];
|
|
463
463
|
for (let Z = 0; Z < L; Z++) {
|
|
464
|
-
const U = h[Z], q =
|
|
464
|
+
const U = h[Z], q = g[Z];
|
|
465
465
|
if (N[q](o, x[U](E)), T)
|
|
466
466
|
for (let H = 0, K = T.length; H < K; H++)
|
|
467
467
|
O[H][q](o, T[H][U](E));
|
|
@@ -489,10 +489,10 @@ function nh(A, e = 1e-4) {
|
|
|
489
489
|
}
|
|
490
490
|
return b.setIndex(l), b;
|
|
491
491
|
}
|
|
492
|
-
function
|
|
492
|
+
function Mi(A, e) {
|
|
493
493
|
if (e === ur)
|
|
494
494
|
return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), A;
|
|
495
|
-
if (e === Js || e ===
|
|
495
|
+
if (e === Js || e === So) {
|
|
496
496
|
let t = A.getIndex();
|
|
497
497
|
if (t === null) {
|
|
498
498
|
const o = [], a = A.getAttribute("position");
|
|
@@ -539,13 +539,13 @@ class zo extends Nt {
|
|
|
539
539
|
}), this.register(function(t) {
|
|
540
540
|
return new oA(t);
|
|
541
541
|
}), this.register(function(t) {
|
|
542
|
-
return new
|
|
542
|
+
return new gA(t);
|
|
543
543
|
}), this.register(function(t) {
|
|
544
544
|
return new AA(t);
|
|
545
545
|
}), this.register(function(t) {
|
|
546
546
|
return new pA(t);
|
|
547
547
|
}), this.register(function(t) {
|
|
548
|
-
return new
|
|
548
|
+
return new dA(t);
|
|
549
549
|
}), this.register(function(t) {
|
|
550
550
|
return new sA(t);
|
|
551
551
|
}), this.register(function(t) {
|
|
@@ -594,28 +594,44 @@ class zo extends Nt {
|
|
|
594
594
|
return this.pluginCallbacks.indexOf(e) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e), 1), this;
|
|
595
595
|
}
|
|
596
596
|
parse(e, t, s, n) {
|
|
597
|
-
let i;
|
|
598
|
-
const
|
|
597
|
+
let i, o;
|
|
598
|
+
const a = {}, r = {}, c = new TextDecoder();
|
|
599
599
|
if (typeof e == "string")
|
|
600
|
-
|
|
600
|
+
try {
|
|
601
|
+
i = JSON.parse(e);
|
|
602
|
+
} catch (h) {
|
|
603
|
+
o = e, n && n(h);
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
601
606
|
else if (e instanceof ArrayBuffer)
|
|
602
|
-
if (
|
|
607
|
+
if (c.decode(new Uint8Array(e, 0, 4)) === Ko) {
|
|
608
|
+
try {
|
|
609
|
+
a[oe.KHR_BINARY_GLTF] = new CA(e);
|
|
610
|
+
} catch (g) {
|
|
611
|
+
n && n(g);
|
|
612
|
+
return;
|
|
613
|
+
}
|
|
603
614
|
try {
|
|
604
|
-
|
|
605
|
-
} catch (
|
|
606
|
-
n && n(
|
|
615
|
+
i = JSON.parse(a[oe.KHR_BINARY_GLTF].content);
|
|
616
|
+
} catch (g) {
|
|
617
|
+
o = a[oe.KHR_BINARY_GLTF].content, n && n(g);
|
|
607
618
|
return;
|
|
608
619
|
}
|
|
609
|
-
i = JSON.parse(o[ae.KHR_BINARY_GLTF].content);
|
|
610
620
|
} else
|
|
611
|
-
|
|
621
|
+
try {
|
|
622
|
+
i = JSON.parse(c.decode(e));
|
|
623
|
+
} catch (g) {
|
|
624
|
+
o = c.decode(e), n && n(g);
|
|
625
|
+
return;
|
|
626
|
+
}
|
|
612
627
|
else
|
|
613
628
|
i = e;
|
|
614
629
|
if (i.asset === void 0 || i.asset.version[0] < 2) {
|
|
615
630
|
n && n(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
616
631
|
return;
|
|
617
632
|
}
|
|
618
|
-
|
|
633
|
+
this.json = i, this.jsonErrorData = o;
|
|
634
|
+
const l = new kA(i, {
|
|
619
635
|
path: t || this.resourcePath || "",
|
|
620
636
|
crossOrigin: this.crossOrigin,
|
|
621
637
|
requestHeader: this.requestHeader,
|
|
@@ -623,32 +639,32 @@ class zo extends Nt {
|
|
|
623
639
|
ktx2Loader: this.ktx2Loader,
|
|
624
640
|
meshoptDecoder: this.meshoptDecoder
|
|
625
641
|
});
|
|
626
|
-
|
|
627
|
-
for (let
|
|
628
|
-
const
|
|
629
|
-
|
|
642
|
+
l.fileLoader.setRequestHeader(this.requestHeader);
|
|
643
|
+
for (let h = 0; h < this.pluginCallbacks.length; h++) {
|
|
644
|
+
const g = this.pluginCallbacks[h](l);
|
|
645
|
+
g.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[g.name] = g, a[g.name] = !0;
|
|
630
646
|
}
|
|
631
647
|
if (i.extensionsUsed)
|
|
632
|
-
for (let
|
|
633
|
-
const
|
|
634
|
-
switch (
|
|
635
|
-
case
|
|
636
|
-
|
|
648
|
+
for (let h = 0; h < i.extensionsUsed.length; ++h) {
|
|
649
|
+
const g = i.extensionsUsed[h], d = i.extensionsRequired || [];
|
|
650
|
+
switch (g) {
|
|
651
|
+
case oe.KHR_MATERIALS_UNLIT:
|
|
652
|
+
a[g] = new iA();
|
|
637
653
|
break;
|
|
638
|
-
case
|
|
639
|
-
|
|
654
|
+
case oe.KHR_DRACO_MESH_COMPRESSION:
|
|
655
|
+
a[g] = new BA(i, this.dracoLoader);
|
|
640
656
|
break;
|
|
641
|
-
case
|
|
642
|
-
|
|
657
|
+
case oe.KHR_TEXTURE_TRANSFORM:
|
|
658
|
+
a[g] = new wA();
|
|
643
659
|
break;
|
|
644
|
-
case
|
|
645
|
-
|
|
660
|
+
case oe.KHR_MESH_QUANTIZATION:
|
|
661
|
+
a[g] = new yA();
|
|
646
662
|
break;
|
|
647
663
|
default:
|
|
648
|
-
d.indexOf(
|
|
664
|
+
d.indexOf(g) >= 0 && r[g] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + g + '".');
|
|
649
665
|
}
|
|
650
666
|
}
|
|
651
|
-
|
|
667
|
+
l.setExtensions(a), l.setPlugins(r), l.parse(s, n);
|
|
652
668
|
}
|
|
653
669
|
parseAsync(e, t) {
|
|
654
670
|
const s = this;
|
|
@@ -674,7 +690,7 @@ function nA() {
|
|
|
674
690
|
}
|
|
675
691
|
};
|
|
676
692
|
}
|
|
677
|
-
const
|
|
693
|
+
const oe = {
|
|
678
694
|
KHR_BINARY_GLTF: "KHR_binary_glTF",
|
|
679
695
|
KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression",
|
|
680
696
|
KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual",
|
|
@@ -700,7 +716,7 @@ const ae = {
|
|
|
700
716
|
};
|
|
701
717
|
class sA {
|
|
702
718
|
constructor(e) {
|
|
703
|
-
this.parser = e, this.name =
|
|
719
|
+
this.parser = e, this.name = oe.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
704
720
|
}
|
|
705
721
|
_markDefs() {
|
|
706
722
|
const e = this.parser, t = this.parser.json.nodes || [];
|
|
@@ -721,13 +737,13 @@ class sA {
|
|
|
721
737
|
const h = r.range !== void 0 ? r.range : 0;
|
|
722
738
|
switch (r.type) {
|
|
723
739
|
case "directional":
|
|
724
|
-
c = new
|
|
740
|
+
c = new vo(l), c.target.position.set(0, 0, -1), c.add(c.target);
|
|
725
741
|
break;
|
|
726
742
|
case "point":
|
|
727
743
|
c = new Vs(l), c.distance = h;
|
|
728
744
|
break;
|
|
729
745
|
case "spot":
|
|
730
|
-
c = new
|
|
746
|
+
c = new To(l), c.distance = h, r.spot = r.spot || {}, r.spot.innerConeAngle = r.spot.innerConeAngle !== void 0 ? r.spot.innerConeAngle : 0, r.spot.outerConeAngle = r.spot.outerConeAngle !== void 0 ? r.spot.outerConeAngle : Math.PI / 4, c.angle = r.spot.outerConeAngle, c.penumbra = 1 - r.spot.innerConeAngle / r.spot.outerConeAngle, c.target.position.set(0, 0, -1), c.add(c.target);
|
|
731
747
|
break;
|
|
732
748
|
default:
|
|
733
749
|
throw new Error("THREE.GLTFLoader: Unexpected light type: " + r.type);
|
|
@@ -747,7 +763,7 @@ class sA {
|
|
|
747
763
|
}
|
|
748
764
|
let iA = class {
|
|
749
765
|
constructor() {
|
|
750
|
-
this.name =
|
|
766
|
+
this.name = oe.KHR_MATERIALS_UNLIT;
|
|
751
767
|
}
|
|
752
768
|
getMaterialType() {
|
|
753
769
|
return Qt;
|
|
@@ -761,13 +777,13 @@ let iA = class {
|
|
|
761
777
|
const o = i.baseColorFactor;
|
|
762
778
|
e.color.setRGB(o[0], o[1], o[2], We), e.opacity = o[3];
|
|
763
779
|
}
|
|
764
|
-
i.baseColorTexture !== void 0 && n.push(s.assignTexture(e, "map", i.baseColorTexture,
|
|
780
|
+
i.baseColorTexture !== void 0 && n.push(s.assignTexture(e, "map", i.baseColorTexture, ge));
|
|
765
781
|
}
|
|
766
782
|
return Promise.all(n);
|
|
767
783
|
}
|
|
768
784
|
}, oA = class {
|
|
769
785
|
constructor(e) {
|
|
770
|
-
this.parser = e, this.name =
|
|
786
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
771
787
|
}
|
|
772
788
|
extendMaterialParams(e, t) {
|
|
773
789
|
const n = this.parser.json.materials[e];
|
|
@@ -778,7 +794,7 @@ let iA = class {
|
|
|
778
794
|
}
|
|
779
795
|
}, aA = class {
|
|
780
796
|
constructor(e) {
|
|
781
|
-
this.parser = e, this.name =
|
|
797
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_CLEARCOAT;
|
|
782
798
|
}
|
|
783
799
|
getMaterialType(e) {
|
|
784
800
|
const s = this.parser.json.materials[e];
|
|
@@ -797,7 +813,7 @@ let iA = class {
|
|
|
797
813
|
}
|
|
798
814
|
}, rA = class {
|
|
799
815
|
constructor(e) {
|
|
800
|
-
this.parser = e, this.name =
|
|
816
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_DISPERSION;
|
|
801
817
|
}
|
|
802
818
|
getMaterialType(e) {
|
|
803
819
|
const s = this.parser.json.materials[e];
|
|
@@ -812,7 +828,7 @@ let iA = class {
|
|
|
812
828
|
}
|
|
813
829
|
}, AA = class {
|
|
814
830
|
constructor(e) {
|
|
815
|
-
this.parser = e, this.name =
|
|
831
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_IRIDESCENCE;
|
|
816
832
|
}
|
|
817
833
|
getMaterialType(e) {
|
|
818
834
|
const s = this.parser.json.materials[e];
|
|
@@ -827,7 +843,7 @@ let iA = class {
|
|
|
827
843
|
}
|
|
828
844
|
}, cA = class {
|
|
829
845
|
constructor(e) {
|
|
830
|
-
this.parser = e, this.name =
|
|
846
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_SHEEN;
|
|
831
847
|
}
|
|
832
848
|
getMaterialType(e) {
|
|
833
849
|
const s = this.parser.json.materials[e];
|
|
@@ -844,11 +860,11 @@ let iA = class {
|
|
|
844
860
|
const a = o.sheenColorFactor;
|
|
845
861
|
t.sheenColor.setRGB(a[0], a[1], a[2], We);
|
|
846
862
|
}
|
|
847
|
-
return o.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = o.sheenRoughnessFactor), o.sheenColorTexture !== void 0 && i.push(s.assignTexture(t, "sheenColorMap", o.sheenColorTexture,
|
|
863
|
+
return o.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = o.sheenRoughnessFactor), o.sheenColorTexture !== void 0 && i.push(s.assignTexture(t, "sheenColorMap", o.sheenColorTexture, ge)), o.sheenRoughnessTexture !== void 0 && i.push(s.assignTexture(t, "sheenRoughnessMap", o.sheenRoughnessTexture)), Promise.all(i);
|
|
848
864
|
}
|
|
849
865
|
}, lA = class {
|
|
850
866
|
constructor(e) {
|
|
851
|
-
this.parser = e, this.name =
|
|
867
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_TRANSMISSION;
|
|
852
868
|
}
|
|
853
869
|
getMaterialType(e) {
|
|
854
870
|
const s = this.parser.json.materials[e];
|
|
@@ -863,7 +879,7 @@ let iA = class {
|
|
|
863
879
|
}
|
|
864
880
|
}, hA = class {
|
|
865
881
|
constructor(e) {
|
|
866
|
-
this.parser = e, this.name =
|
|
882
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_VOLUME;
|
|
867
883
|
}
|
|
868
884
|
getMaterialType(e) {
|
|
869
885
|
const s = this.parser.json.materials[e];
|
|
@@ -880,7 +896,7 @@ let iA = class {
|
|
|
880
896
|
}
|
|
881
897
|
}, uA = class {
|
|
882
898
|
constructor(e) {
|
|
883
|
-
this.parser = e, this.name =
|
|
899
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_IOR;
|
|
884
900
|
}
|
|
885
901
|
getMaterialType(e) {
|
|
886
902
|
const s = this.parser.json.materials[e];
|
|
@@ -893,9 +909,9 @@ let iA = class {
|
|
|
893
909
|
const i = n.extensions[this.name];
|
|
894
910
|
return t.ior = i.ior !== void 0 ? i.ior : 1.5, Promise.resolve();
|
|
895
911
|
}
|
|
896
|
-
},
|
|
912
|
+
}, gA = class {
|
|
897
913
|
constructor(e) {
|
|
898
|
-
this.parser = e, this.name =
|
|
914
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_SPECULAR;
|
|
899
915
|
}
|
|
900
916
|
getMaterialType(e) {
|
|
901
917
|
const s = this.parser.json.materials[e];
|
|
@@ -908,11 +924,11 @@ let iA = class {
|
|
|
908
924
|
const i = [], o = n.extensions[this.name];
|
|
909
925
|
t.specularIntensity = o.specularFactor !== void 0 ? o.specularFactor : 1, o.specularTexture !== void 0 && i.push(s.assignTexture(t, "specularIntensityMap", o.specularTexture));
|
|
910
926
|
const a = o.specularColorFactor || [1, 1, 1];
|
|
911
|
-
return t.specularColor = new Se().setRGB(a[0], a[1], a[2], We), o.specularColorTexture !== void 0 && i.push(s.assignTexture(t, "specularColorMap", o.specularColorTexture,
|
|
927
|
+
return t.specularColor = new Se().setRGB(a[0], a[1], a[2], We), o.specularColorTexture !== void 0 && i.push(s.assignTexture(t, "specularColorMap", o.specularColorTexture, ge)), Promise.all(i);
|
|
912
928
|
}
|
|
913
|
-
},
|
|
929
|
+
}, dA = class {
|
|
914
930
|
constructor(e) {
|
|
915
|
-
this.parser = e, this.name =
|
|
931
|
+
this.parser = e, this.name = oe.EXT_MATERIALS_BUMP;
|
|
916
932
|
}
|
|
917
933
|
getMaterialType(e) {
|
|
918
934
|
const s = this.parser.json.materials[e];
|
|
@@ -927,7 +943,7 @@ let iA = class {
|
|
|
927
943
|
}
|
|
928
944
|
}, pA = class {
|
|
929
945
|
constructor(e) {
|
|
930
|
-
this.parser = e, this.name =
|
|
946
|
+
this.parser = e, this.name = oe.KHR_MATERIALS_ANISOTROPY;
|
|
931
947
|
}
|
|
932
948
|
getMaterialType(e) {
|
|
933
949
|
const s = this.parser.json.materials[e];
|
|
@@ -943,7 +959,7 @@ let iA = class {
|
|
|
943
959
|
};
|
|
944
960
|
class fA {
|
|
945
961
|
constructor(e) {
|
|
946
|
-
this.parser = e, this.name =
|
|
962
|
+
this.parser = e, this.name = oe.KHR_TEXTURE_BASISU;
|
|
947
963
|
}
|
|
948
964
|
loadTexture(e) {
|
|
949
965
|
const t = this.parser, s = t.json, n = s.textures[e];
|
|
@@ -960,7 +976,7 @@ class fA {
|
|
|
960
976
|
}
|
|
961
977
|
class mA {
|
|
962
978
|
constructor(e) {
|
|
963
|
-
this.parser = e, this.name =
|
|
979
|
+
this.parser = e, this.name = oe.EXT_TEXTURE_WEBP, this.isSupported = null;
|
|
964
980
|
}
|
|
965
981
|
loadTexture(e) {
|
|
966
982
|
const t = this.name, s = this.parser, n = s.json, i = n.textures[e];
|
|
@@ -991,7 +1007,7 @@ class mA {
|
|
|
991
1007
|
}
|
|
992
1008
|
class IA {
|
|
993
1009
|
constructor(e) {
|
|
994
|
-
this.parser = e, this.name =
|
|
1010
|
+
this.parser = e, this.name = oe.EXT_TEXTURE_AVIF, this.isSupported = null;
|
|
995
1011
|
}
|
|
996
1012
|
loadTexture(e) {
|
|
997
1013
|
const t = this.name, s = this.parser, n = s.json, i = n.textures[e];
|
|
@@ -1022,7 +1038,7 @@ class IA {
|
|
|
1022
1038
|
}
|
|
1023
1039
|
class bA {
|
|
1024
1040
|
constructor(e) {
|
|
1025
|
-
this.name =
|
|
1041
|
+
this.name = oe.EXT_MESHOPT_COMPRESSION, this.parser = e;
|
|
1026
1042
|
}
|
|
1027
1043
|
loadBufferView(e) {
|
|
1028
1044
|
const t = this.parser.json, s = t.bufferViews[e];
|
|
@@ -1034,12 +1050,12 @@ class bA {
|
|
|
1034
1050
|
return null;
|
|
1035
1051
|
}
|
|
1036
1052
|
return i.then(function(a) {
|
|
1037
|
-
const r = n.byteOffset || 0, c = n.byteLength || 0, l = n.count, h = n.byteStride,
|
|
1038
|
-
return o.decodeGltfBufferAsync ? o.decodeGltfBufferAsync(l, h,
|
|
1039
|
-
return
|
|
1053
|
+
const r = n.byteOffset || 0, c = n.byteLength || 0, l = n.count, h = n.byteStride, g = new Uint8Array(a, r, c);
|
|
1054
|
+
return o.decodeGltfBufferAsync ? o.decodeGltfBufferAsync(l, h, g, n.mode, n.filter).then(function(d) {
|
|
1055
|
+
return d.buffer;
|
|
1040
1056
|
}) : o.ready.then(function() {
|
|
1041
|
-
const
|
|
1042
|
-
return o.decodeGltfBuffer(new Uint8Array(
|
|
1057
|
+
const d = new ArrayBuffer(l * h);
|
|
1058
|
+
return o.decodeGltfBuffer(new Uint8Array(d), l, h, g, n.mode, n.filter), d;
|
|
1043
1059
|
});
|
|
1044
1060
|
});
|
|
1045
1061
|
} else
|
|
@@ -1048,7 +1064,7 @@ class bA {
|
|
|
1048
1064
|
}
|
|
1049
1065
|
let EA = class {
|
|
1050
1066
|
constructor(e) {
|
|
1051
|
-
this.name =
|
|
1067
|
+
this.name = oe.EXT_MESH_GPU_INSTANCING, this.parser = e;
|
|
1052
1068
|
}
|
|
1053
1069
|
createNodeMesh(e) {
|
|
1054
1070
|
const t = this.parser.json, s = t.nodes[e];
|
|
@@ -1062,27 +1078,27 @@ let EA = class {
|
|
|
1062
1078
|
for (const c in o)
|
|
1063
1079
|
a.push(this.parser.getDependency("accessor", o[c]).then((l) => (r[c] = l, r[c])));
|
|
1064
1080
|
return a.length < 1 ? null : (a.push(this.parser.createNodeMesh(e)), Promise.all(a).then((c) => {
|
|
1065
|
-
const l = c.pop(), h = l.isGroup ? l.children : [l],
|
|
1081
|
+
const l = c.pop(), h = l.isGroup ? l.children : [l], g = c[0].count, d = [];
|
|
1066
1082
|
for (const p of h) {
|
|
1067
|
-
const m = new ue(), I = new P(), b = new Te(), B = new P(1, 1, 1), E = new
|
|
1068
|
-
for (let w = 0; w <
|
|
1083
|
+
const m = new ue(), I = new P(), b = new Te(), B = new P(1, 1, 1), E = new gr(p.geometry, p.material, g);
|
|
1084
|
+
for (let w = 0; w < g; w++)
|
|
1069
1085
|
r.TRANSLATION && I.fromBufferAttribute(r.TRANSLATION, w), r.ROTATION && b.fromBufferAttribute(r.ROTATION, w), r.SCALE && B.fromBufferAttribute(r.SCALE, w), E.setMatrixAt(w, m.compose(I, b, B));
|
|
1070
1086
|
for (const w in r)
|
|
1071
1087
|
if (w === "_COLOR_0") {
|
|
1072
1088
|
const Q = r[w];
|
|
1073
|
-
E.instanceColor = new
|
|
1089
|
+
E.instanceColor = new dr(Q.array, Q.itemSize, Q.normalized);
|
|
1074
1090
|
} else
|
|
1075
1091
|
w !== "TRANSLATION" && w !== "ROTATION" && w !== "SCALE" && p.geometry.setAttribute(w, r[w]);
|
|
1076
|
-
xt.prototype.copy.call(E, p), this.parser.assignFinalMaterial(E),
|
|
1092
|
+
xt.prototype.copy.call(E, p), this.parser.assignFinalMaterial(E), d.push(E);
|
|
1077
1093
|
}
|
|
1078
|
-
return l.isGroup ? (l.clear(), l.add(...
|
|
1094
|
+
return l.isGroup ? (l.clear(), l.add(...d), l) : d[0];
|
|
1079
1095
|
}));
|
|
1080
1096
|
}
|
|
1081
1097
|
};
|
|
1082
|
-
const Ko = "glTF", wn = 12,
|
|
1098
|
+
const Ko = "glTF", wn = 12, ki = { JSON: 1313821514, BIN: 5130562 };
|
|
1083
1099
|
class CA {
|
|
1084
1100
|
constructor(e) {
|
|
1085
|
-
this.name =
|
|
1101
|
+
this.name = oe.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
1086
1102
|
const t = new DataView(e, 0, wn), s = new TextDecoder();
|
|
1087
1103
|
if (this.header = {
|
|
1088
1104
|
magic: s.decode(new Uint8Array(e.slice(0, 4))),
|
|
@@ -1098,10 +1114,10 @@ class CA {
|
|
|
1098
1114
|
const a = i.getUint32(o, !0);
|
|
1099
1115
|
o += 4;
|
|
1100
1116
|
const r = i.getUint32(o, !0);
|
|
1101
|
-
if (o += 4, r ===
|
|
1117
|
+
if (o += 4, r === ki.JSON) {
|
|
1102
1118
|
const c = new Uint8Array(e, wn + o, a);
|
|
1103
1119
|
this.content = s.decode(c);
|
|
1104
|
-
} else if (r ===
|
|
1120
|
+
} else if (r === ki.BIN) {
|
|
1105
1121
|
const c = wn + o;
|
|
1106
1122
|
this.body = e.slice(c, c + a);
|
|
1107
1123
|
}
|
|
@@ -1115,7 +1131,7 @@ class BA {
|
|
|
1115
1131
|
constructor(e, t) {
|
|
1116
1132
|
if (!t)
|
|
1117
1133
|
throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
1118
|
-
this.name =
|
|
1134
|
+
this.name = oe.KHR_DRACO_MESH_COMPRESSION, this.json = e, this.dracoLoader = t, this.dracoLoader.preload();
|
|
1119
1135
|
}
|
|
1120
1136
|
decodePrimitive(e, t) {
|
|
1121
1137
|
const s = this.json, n = this.dracoLoader, i = e.extensions[this.name].bufferView, o = e.extensions[this.name].attributes, a = {}, r = {}, c = {};
|
|
@@ -1126,26 +1142,26 @@ class BA {
|
|
|
1126
1142
|
for (const l in e.attributes) {
|
|
1127
1143
|
const h = ei[l] || l.toLowerCase();
|
|
1128
1144
|
if (o[l] !== void 0) {
|
|
1129
|
-
const
|
|
1130
|
-
c[h] =
|
|
1145
|
+
const g = s.accessors[e.attributes[l]], d = In[g.componentType];
|
|
1146
|
+
c[h] = d.name, r[h] = g.normalized === !0;
|
|
1131
1147
|
}
|
|
1132
1148
|
}
|
|
1133
1149
|
return t.getDependency("bufferView", i).then(function(l) {
|
|
1134
|
-
return new Promise(function(h,
|
|
1135
|
-
n.decodeDracoFile(l, function(
|
|
1136
|
-
for (const p in
|
|
1137
|
-
const m =
|
|
1150
|
+
return new Promise(function(h, g) {
|
|
1151
|
+
n.decodeDracoFile(l, function(d) {
|
|
1152
|
+
for (const p in d.attributes) {
|
|
1153
|
+
const m = d.attributes[p], I = r[p];
|
|
1138
1154
|
I !== void 0 && (m.normalized = I);
|
|
1139
1155
|
}
|
|
1140
|
-
h(
|
|
1141
|
-
}, a, c, We,
|
|
1156
|
+
h(d);
|
|
1157
|
+
}, a, c, We, g);
|
|
1142
1158
|
});
|
|
1143
1159
|
});
|
|
1144
1160
|
}
|
|
1145
1161
|
}
|
|
1146
1162
|
class wA {
|
|
1147
1163
|
constructor() {
|
|
1148
|
-
this.name =
|
|
1164
|
+
this.name = oe.KHR_TEXTURE_TRANSFORM;
|
|
1149
1165
|
}
|
|
1150
1166
|
extendTexture(e, t) {
|
|
1151
1167
|
return (t.texCoord === void 0 || t.texCoord === e.channel) && t.offset === void 0 && t.rotation === void 0 && t.scale === void 0 || (e = e.clone(), t.texCoord !== void 0 && (e.channel = t.texCoord), t.offset !== void 0 && e.offset.fromArray(t.offset), t.rotation !== void 0 && (e.rotation = t.rotation), t.scale !== void 0 && e.repeat.fromArray(t.scale), e.needsUpdate = !0), e;
|
|
@@ -1153,7 +1169,7 @@ class wA {
|
|
|
1153
1169
|
}
|
|
1154
1170
|
class yA {
|
|
1155
1171
|
constructor() {
|
|
1156
|
-
this.name =
|
|
1172
|
+
this.name = oe.KHR_MESH_QUANTIZATION;
|
|
1157
1173
|
}
|
|
1158
1174
|
}
|
|
1159
1175
|
class Yo extends Ir {
|
|
@@ -1167,7 +1183,7 @@ class Yo extends Ir {
|
|
|
1167
1183
|
return t;
|
|
1168
1184
|
}
|
|
1169
1185
|
interpolate_(e, t, s, n) {
|
|
1170
|
-
const i = this.resultBuffer, o = this.sampleValues, a = this.valueSize, r = a * 2, c = a * 3, l = n - t, h = (s - t) / l,
|
|
1186
|
+
const i = this.resultBuffer, o = this.sampleValues, a = this.valueSize, r = a * 2, c = a * 3, l = n - t, h = (s - t) / l, g = h * h, d = g * h, p = e * c, m = p - c, I = -2 * d + 3 * g, b = d - g, B = 1 - I, E = b - g + h;
|
|
1171
1187
|
for (let w = 0; w !== a; w++) {
|
|
1172
1188
|
const Q = o[m + w + a], R = o[m + w + r] * l, _ = o[p + w + a], x = o[p + w] * l;
|
|
1173
1189
|
i[w] = B * Q + E * R + I * _ + b * x;
|
|
@@ -1209,14 +1225,14 @@ const ht = {
|
|
|
1209
1225
|
5123: Uint16Array,
|
|
1210
1226
|
5125: Uint32Array,
|
|
1211
1227
|
5126: Float32Array
|
|
1212
|
-
},
|
|
1228
|
+
}, Fi = {
|
|
1213
1229
|
9728: Do,
|
|
1214
1230
|
9729: mt,
|
|
1215
1231
|
9984: Mo,
|
|
1216
1232
|
9985: ko,
|
|
1217
1233
|
9986: Fo,
|
|
1218
1234
|
9987: ps
|
|
1219
|
-
},
|
|
1235
|
+
}, Li = {
|
|
1220
1236
|
33071: cs,
|
|
1221
1237
|
33648: Lo,
|
|
1222
1238
|
10497: an
|
|
@@ -1249,14 +1265,14 @@ const ht = {
|
|
|
1249
1265
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
1250
1266
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
1251
1267
|
LINEAR: jn,
|
|
1252
|
-
STEP:
|
|
1268
|
+
STEP: fi
|
|
1253
1269
|
}, Bs = {
|
|
1254
1270
|
OPAQUE: "OPAQUE",
|
|
1255
1271
|
MASK: "MASK",
|
|
1256
1272
|
BLEND: "BLEND"
|
|
1257
1273
|
};
|
|
1258
1274
|
function TA(A) {
|
|
1259
|
-
return A.DefaultMaterial === void 0 && (A.DefaultMaterial = new
|
|
1275
|
+
return A.DefaultMaterial === void 0 && (A.DefaultMaterial = new ui({
|
|
1260
1276
|
color: 16777215,
|
|
1261
1277
|
emissive: 0,
|
|
1262
1278
|
metalness: 1,
|
|
@@ -1286,16 +1302,16 @@ function vA(A, e, t) {
|
|
|
1286
1302
|
for (let c = 0, l = e.length; c < l; c++) {
|
|
1287
1303
|
const h = e[c];
|
|
1288
1304
|
if (s) {
|
|
1289
|
-
const
|
|
1290
|
-
o.push(
|
|
1305
|
+
const g = h.POSITION !== void 0 ? t.getDependency("accessor", h.POSITION) : A.attributes.position;
|
|
1306
|
+
o.push(g);
|
|
1291
1307
|
}
|
|
1292
1308
|
if (n) {
|
|
1293
|
-
const
|
|
1294
|
-
a.push(
|
|
1309
|
+
const g = h.NORMAL !== void 0 ? t.getDependency("accessor", h.NORMAL) : A.attributes.normal;
|
|
1310
|
+
a.push(g);
|
|
1295
1311
|
}
|
|
1296
1312
|
if (i) {
|
|
1297
|
-
const
|
|
1298
|
-
r.push(
|
|
1313
|
+
const g = h.COLOR_0 !== void 0 ? t.getDependency("accessor", h.COLOR_0) : A.attributes.color;
|
|
1314
|
+
r.push(g);
|
|
1299
1315
|
}
|
|
1300
1316
|
}
|
|
1301
1317
|
return Promise.all([
|
|
@@ -1303,8 +1319,8 @@ function vA(A, e, t) {
|
|
|
1303
1319
|
Promise.all(a),
|
|
1304
1320
|
Promise.all(r)
|
|
1305
1321
|
]).then(function(c) {
|
|
1306
|
-
const l = c[0], h = c[1],
|
|
1307
|
-
return s && (A.morphAttributes.position = l), n && (A.morphAttributes.normal = h), i && (A.morphAttributes.color =
|
|
1322
|
+
const l = c[0], h = c[1], g = c[2];
|
|
1323
|
+
return s && (A.morphAttributes.position = l), n && (A.morphAttributes.normal = h), i && (A.morphAttributes.color = g), A.morphTargetsRelative = !0, A;
|
|
1308
1324
|
});
|
|
1309
1325
|
}
|
|
1310
1326
|
function RA(A, e) {
|
|
@@ -1323,7 +1339,7 @@ function RA(A, e) {
|
|
|
1323
1339
|
}
|
|
1324
1340
|
function _A(A) {
|
|
1325
1341
|
let e;
|
|
1326
|
-
const t = A.extensions && A.extensions[
|
|
1342
|
+
const t = A.extensions && A.extensions[oe.KHR_DRACO_MESH_COMPRESSION];
|
|
1327
1343
|
if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" + ws(t.attributes) : e = A.indices + ":" + ws(A.attributes) + ":" + A.mode, A.targets !== void 0)
|
|
1328
1344
|
for (let s = 0, n = A.targets.length; s < n; s++)
|
|
1329
1345
|
e += ":" + ws(A.targets[s]);
|
|
@@ -1554,7 +1570,7 @@ class kA {
|
|
|
1554
1570
|
if (t.type && t.type !== "arraybuffer")
|
|
1555
1571
|
throw new Error("THREE.GLTFLoader: " + t.type + " buffer type is not supported.");
|
|
1556
1572
|
if (t.uri === void 0 && e === 0)
|
|
1557
|
-
return Promise.resolve(this.extensions[
|
|
1573
|
+
return Promise.resolve(this.extensions[oe.KHR_BINARY_GLTF].body);
|
|
1558
1574
|
const n = this.options;
|
|
1559
1575
|
return new Promise(function(i, o) {
|
|
1560
1576
|
s.load(nn.resolveURL(t.uri, n.path), i, void 0, function() {
|
|
@@ -1587,14 +1603,14 @@ class kA {
|
|
|
1587
1603
|
}
|
|
1588
1604
|
const i = [];
|
|
1589
1605
|
return n.bufferView !== void 0 ? i.push(this.getDependency("bufferView", n.bufferView)) : i.push(null), n.sparse !== void 0 && (i.push(this.getDependency("bufferView", n.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", n.sparse.values.bufferView))), Promise.all(i).then(function(o) {
|
|
1590
|
-
const a = o[0], r = Cs[n.type], c = In[n.componentType], l = c.BYTES_PER_ELEMENT, h = l * r,
|
|
1606
|
+
const a = o[0], r = Cs[n.type], c = In[n.componentType], l = c.BYTES_PER_ELEMENT, h = l * r, g = n.byteOffset || 0, d = n.bufferView !== void 0 ? s.bufferViews[n.bufferView].byteStride : void 0, p = n.normalized === !0;
|
|
1591
1607
|
let m, I;
|
|
1592
|
-
if (
|
|
1593
|
-
const b = Math.floor(
|
|
1608
|
+
if (d && d !== h) {
|
|
1609
|
+
const b = Math.floor(g / d), B = "InterleavedBuffer:" + n.bufferView + ":" + n.componentType + ":" + b + ":" + n.count;
|
|
1594
1610
|
let E = t.cache.get(B);
|
|
1595
|
-
E || (m = new c(a, b *
|
|
1611
|
+
E || (m = new c(a, b * d, n.count * d / l), E = new fr(m, d / l), t.cache.add(B, E)), I = new en(E, r, g % d / l, p);
|
|
1596
1612
|
} else
|
|
1597
|
-
a === null ? m = new c(n.count * r) : m = new c(a,
|
|
1613
|
+
a === null ? m = new c(n.count * r) : m = new c(a, g, n.count * r), I = new nt(m, r, p);
|
|
1598
1614
|
if (n.sparse !== void 0) {
|
|
1599
1615
|
const b = Cs.SCALAR, B = In[n.sparse.indices.componentType], E = n.sparse.indices.byteOffset || 0, w = n.sparse.values.byteOffset || 0, Q = new B(o[1], E, n.sparse.count * b), R = new c(o[2], w, n.sparse.count * r);
|
|
1600
1616
|
a !== null && (I = new nt(I.array.slice(), I.itemSize, I.normalized)), I.normalized = !1;
|
|
@@ -1628,8 +1644,8 @@ class kA {
|
|
|
1628
1644
|
return this.textureCache[r];
|
|
1629
1645
|
const c = this.loadImageSource(t, s).then(function(l) {
|
|
1630
1646
|
l.flipY = !1, l.name = o.name || a.name || "", l.name === "" && typeof a.uri == "string" && a.uri.startsWith("data:image/") === !1 && (l.name = a.uri);
|
|
1631
|
-
const
|
|
1632
|
-
return l.magFilter =
|
|
1647
|
+
const g = (i.samplers || {})[o.sampler] || {};
|
|
1648
|
+
return l.magFilter = Fi[g.magFilter] || mt, l.minFilter = Fi[g.minFilter] || ps, l.wrapS = Li[g.wrapS] || an, l.wrapT = Li[g.wrapT] || an, l.anisotropy = 4, n.associations.set(l, { textures: e }), l;
|
|
1633
1649
|
}).catch(function() {
|
|
1634
1650
|
return null;
|
|
1635
1651
|
});
|
|
@@ -1644,18 +1660,18 @@ class kA {
|
|
|
1644
1660
|
if (o.bufferView !== void 0)
|
|
1645
1661
|
r = s.getDependency("bufferView", o.bufferView).then(function(h) {
|
|
1646
1662
|
c = !0;
|
|
1647
|
-
const
|
|
1648
|
-
return r = a.createObjectURL(
|
|
1663
|
+
const g = new Blob([h], { type: o.mimeType });
|
|
1664
|
+
return r = a.createObjectURL(g), r;
|
|
1649
1665
|
});
|
|
1650
1666
|
else if (o.uri === void 0)
|
|
1651
1667
|
throw new Error("THREE.GLTFLoader: Image " + e + " is missing URI and bufferView");
|
|
1652
1668
|
const l = Promise.resolve(r).then(function(h) {
|
|
1653
|
-
return new Promise(function(
|
|
1654
|
-
let p =
|
|
1669
|
+
return new Promise(function(g, d) {
|
|
1670
|
+
let p = g;
|
|
1655
1671
|
t.isImageBitmapLoader === !0 && (p = function(m) {
|
|
1656
1672
|
const I = new Xs(m);
|
|
1657
|
-
I.needsUpdate = !0,
|
|
1658
|
-
}), t.load(nn.resolveURL(h, i.path), p, void 0,
|
|
1673
|
+
I.needsUpdate = !0, g(I);
|
|
1674
|
+
}), t.load(nn.resolveURL(h, i.path), p, void 0, d);
|
|
1659
1675
|
});
|
|
1660
1676
|
}).then(function(h) {
|
|
1661
1677
|
return c === !0 && a.revokeObjectURL(r), kt(h, o), h.userData.mimeType = o.mimeType || DA(o.uri), h;
|
|
@@ -1676,11 +1692,11 @@ class kA {
|
|
|
1676
1692
|
return this.getDependency("texture", s.index).then(function(o) {
|
|
1677
1693
|
if (!o)
|
|
1678
1694
|
return null;
|
|
1679
|
-
if (s.texCoord !== void 0 && s.texCoord > 0 && (o = o.clone(), o.channel = s.texCoord), i.extensions[
|
|
1680
|
-
const a = s.extensions !== void 0 ? s.extensions[
|
|
1695
|
+
if (s.texCoord !== void 0 && s.texCoord > 0 && (o = o.clone(), o.channel = s.texCoord), i.extensions[oe.KHR_TEXTURE_TRANSFORM]) {
|
|
1696
|
+
const a = s.extensions !== void 0 ? s.extensions[oe.KHR_TEXTURE_TRANSFORM] : void 0;
|
|
1681
1697
|
if (a) {
|
|
1682
1698
|
const r = i.associations.get(o);
|
|
1683
|
-
o = i.extensions[
|
|
1699
|
+
o = i.extensions[oe.KHR_TEXTURE_TRANSFORM].extendTexture(o, a), i.associations.set(o, r);
|
|
1684
1700
|
}
|
|
1685
1701
|
}
|
|
1686
1702
|
return n !== void 0 && (o.colorSpace = n), e[t] = o, o;
|
|
@@ -1716,7 +1732,7 @@ class kA {
|
|
|
1716
1732
|
e.material = s;
|
|
1717
1733
|
}
|
|
1718
1734
|
getMaterialType() {
|
|
1719
|
-
return
|
|
1735
|
+
return ui;
|
|
1720
1736
|
}
|
|
1721
1737
|
/**
|
|
1722
1738
|
* Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials
|
|
@@ -1727,22 +1743,22 @@ class kA {
|
|
|
1727
1743
|
const t = this, s = this.json, n = this.extensions, i = s.materials[e];
|
|
1728
1744
|
let o;
|
|
1729
1745
|
const a = {}, r = i.extensions || {}, c = [];
|
|
1730
|
-
if (r[
|
|
1731
|
-
const h = n[
|
|
1746
|
+
if (r[oe.KHR_MATERIALS_UNLIT]) {
|
|
1747
|
+
const h = n[oe.KHR_MATERIALS_UNLIT];
|
|
1732
1748
|
o = h.getMaterialType(), c.push(h.extendParams(a, i, t));
|
|
1733
1749
|
} else {
|
|
1734
1750
|
const h = i.pbrMetallicRoughness || {};
|
|
1735
1751
|
if (a.color = new Se(1, 1, 1), a.opacity = 1, Array.isArray(h.baseColorFactor)) {
|
|
1736
|
-
const
|
|
1737
|
-
a.color.setRGB(
|
|
1752
|
+
const g = h.baseColorFactor;
|
|
1753
|
+
a.color.setRGB(g[0], g[1], g[2], We), a.opacity = g[3];
|
|
1738
1754
|
}
|
|
1739
|
-
h.baseColorTexture !== void 0 && c.push(t.assignTexture(a, "map", h.baseColorTexture,
|
|
1740
|
-
return
|
|
1741
|
-
}), c.push(Promise.all(this._invokeAll(function(
|
|
1742
|
-
return
|
|
1755
|
+
h.baseColorTexture !== void 0 && c.push(t.assignTexture(a, "map", h.baseColorTexture, ge)), a.metalness = h.metallicFactor !== void 0 ? h.metallicFactor : 1, a.roughness = h.roughnessFactor !== void 0 ? h.roughnessFactor : 1, h.metallicRoughnessTexture !== void 0 && (c.push(t.assignTexture(a, "metalnessMap", h.metallicRoughnessTexture)), c.push(t.assignTexture(a, "roughnessMap", h.metallicRoughnessTexture))), o = this._invokeOne(function(g) {
|
|
1756
|
+
return g.getMaterialType && g.getMaterialType(e);
|
|
1757
|
+
}), c.push(Promise.all(this._invokeAll(function(g) {
|
|
1758
|
+
return g.extendMaterialParams && g.extendMaterialParams(e, a);
|
|
1743
1759
|
})));
|
|
1744
1760
|
}
|
|
1745
|
-
i.doubleSided === !0 && (a.side =
|
|
1761
|
+
i.doubleSided === !0 && (a.side = gi);
|
|
1746
1762
|
const l = i.alphaMode || Bs.OPAQUE;
|
|
1747
1763
|
if (l === Bs.BLEND ? (a.transparent = !0, a.depthWrite = !1) : (a.transparent = !1, l === Bs.MASK && (a.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && o !== Qt && (c.push(t.assignTexture(a, "normalMap", i.normalTexture)), a.normalScale = new Le(1, 1), i.normalTexture.scale !== void 0)) {
|
|
1748
1764
|
const h = i.normalTexture.scale;
|
|
@@ -1752,7 +1768,7 @@ class kA {
|
|
|
1752
1768
|
const h = i.emissiveFactor;
|
|
1753
1769
|
a.emissive = new Se().setRGB(h[0], h[1], h[2], We);
|
|
1754
1770
|
}
|
|
1755
|
-
return i.emissiveTexture !== void 0 && o !== Qt && c.push(t.assignTexture(a, "emissiveMap", i.emissiveTexture,
|
|
1771
|
+
return i.emissiveTexture !== void 0 && o !== Qt && c.push(t.assignTexture(a, "emissiveMap", i.emissiveTexture, ge)), Promise.all(c).then(function() {
|
|
1756
1772
|
const h = new o(a);
|
|
1757
1773
|
return i.name && (h.name = i.name), kt(h, i), t.associations.set(h, { materials: e }), i.extensions && Wt(n, h, i), h;
|
|
1758
1774
|
});
|
|
@@ -1773,8 +1789,8 @@ class kA {
|
|
|
1773
1789
|
loadGeometries(e) {
|
|
1774
1790
|
const t = this, s = this.extensions, n = this.primitiveCache;
|
|
1775
1791
|
function i(a) {
|
|
1776
|
-
return s[
|
|
1777
|
-
return
|
|
1792
|
+
return s[oe.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a, t).then(function(r) {
|
|
1793
|
+
return Ni(r, a, t);
|
|
1778
1794
|
});
|
|
1779
1795
|
}
|
|
1780
1796
|
const o = [];
|
|
@@ -1783,8 +1799,8 @@ class kA {
|
|
|
1783
1799
|
if (h)
|
|
1784
1800
|
o.push(h.promise);
|
|
1785
1801
|
else {
|
|
1786
|
-
let
|
|
1787
|
-
c.extensions && c.extensions[
|
|
1802
|
+
let g;
|
|
1803
|
+
c.extensions && c.extensions[oe.KHR_DRACO_MESH_COMPRESSION] ? g = i(c) : g = Ni(new ut(), c, t), n[l] = { primitive: c, promise: g }, o.push(g);
|
|
1788
1804
|
}
|
|
1789
1805
|
}
|
|
1790
1806
|
return Promise.all(o);
|
|
@@ -1802,16 +1818,16 @@ class kA {
|
|
|
1802
1818
|
}
|
|
1803
1819
|
return a.push(t.loadGeometries(o)), Promise.all(a).then(function(r) {
|
|
1804
1820
|
const c = r.slice(0, r.length - 1), l = r[r.length - 1], h = [];
|
|
1805
|
-
for (let
|
|
1806
|
-
const m = l[
|
|
1821
|
+
for (let d = 0, p = l.length; d < p; d++) {
|
|
1822
|
+
const m = l[d], I = o[d];
|
|
1807
1823
|
let b;
|
|
1808
|
-
const B = c[
|
|
1824
|
+
const B = c[d];
|
|
1809
1825
|
if (I.mode === ht.TRIANGLES || I.mode === ht.TRIANGLE_STRIP || I.mode === ht.TRIANGLE_FAN || I.mode === void 0)
|
|
1810
|
-
b = i.isSkinnedMesh === !0 ? new di(m, B) : new z(m, B), b.isSkinnedMesh === !0 && b.normalizeSkinWeights(), I.mode === ht.TRIANGLE_STRIP ? b.geometry =
|
|
1826
|
+
b = i.isSkinnedMesh === !0 ? new di(m, B) : new z(m, B), b.isSkinnedMesh === !0 && b.normalizeSkinWeights(), I.mode === ht.TRIANGLE_STRIP ? b.geometry = Mi(b.geometry, So) : I.mode === ht.TRIANGLE_FAN && (b.geometry = Mi(b.geometry, Js));
|
|
1811
1827
|
else if (I.mode === ht.LINES)
|
|
1812
1828
|
b = new As(m, B);
|
|
1813
1829
|
else if (I.mode === ht.LINE_STRIP)
|
|
1814
|
-
b = new
|
|
1830
|
+
b = new dt(m, B);
|
|
1815
1831
|
else if (I.mode === ht.LINE_LOOP)
|
|
1816
1832
|
b = new mr(m, B);
|
|
1817
1833
|
else if (I.mode === ht.POINTS)
|
|
@@ -1820,18 +1836,18 @@ class kA {
|
|
|
1820
1836
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + I.mode);
|
|
1821
1837
|
Object.keys(b.geometry.morphAttributes).length > 0 && RA(b, i), b.name = t.createUniqueName(i.name || "mesh_" + e), kt(b, i), I.extensions && Wt(n, b, I), t.assignFinalMaterial(b), h.push(b);
|
|
1822
1838
|
}
|
|
1823
|
-
for (let
|
|
1824
|
-
t.associations.set(h[
|
|
1839
|
+
for (let d = 0, p = h.length; d < p; d++)
|
|
1840
|
+
t.associations.set(h[d], {
|
|
1825
1841
|
meshes: e,
|
|
1826
|
-
primitives:
|
|
1842
|
+
primitives: d
|
|
1827
1843
|
});
|
|
1828
1844
|
if (h.length === 1)
|
|
1829
1845
|
return i.extensions && Wt(n, h[0], i), h[0];
|
|
1830
|
-
const
|
|
1831
|
-
i.extensions && Wt(n,
|
|
1832
|
-
for (let
|
|
1833
|
-
|
|
1834
|
-
return
|
|
1846
|
+
const g = new sn();
|
|
1847
|
+
i.extensions && Wt(n, g, i), t.associations.set(g, { meshes: e });
|
|
1848
|
+
for (let d = 0, p = h.length; d < p; d++)
|
|
1849
|
+
g.add(h[d]);
|
|
1850
|
+
return g;
|
|
1835
1851
|
});
|
|
1836
1852
|
}
|
|
1837
1853
|
/**
|
|
@@ -1846,7 +1862,7 @@ class kA {
|
|
|
1846
1862
|
console.warn("THREE.GLTFLoader: Missing camera parameters.");
|
|
1847
1863
|
return;
|
|
1848
1864
|
}
|
|
1849
|
-
return s.type === "perspective" ? t = new
|
|
1865
|
+
return s.type === "perspective" ? t = new ds(ye.radToDeg(n.yfov), n.aspectRatio || 1, n.znear || 1, n.zfar || 2e6) : s.type === "orthographic" && (t = new Ro(-n.xmag, n.xmag, n.ymag, -n.ymag, n.znear, n.zfar)), s.name && (t.name = this.createUniqueName(s.name)), kt(t, s), Promise.resolve(t);
|
|
1850
1866
|
}
|
|
1851
1867
|
/**
|
|
1852
1868
|
* Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins
|
|
@@ -1863,8 +1879,8 @@ class kA {
|
|
|
1863
1879
|
const h = o[c];
|
|
1864
1880
|
if (h) {
|
|
1865
1881
|
a.push(h);
|
|
1866
|
-
const
|
|
1867
|
-
i !== null &&
|
|
1882
|
+
const g = new ue();
|
|
1883
|
+
i !== null && g.fromArray(i.array, c * 16), r.push(g);
|
|
1868
1884
|
} else
|
|
1869
1885
|
console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', t.joints[c]);
|
|
1870
1886
|
}
|
|
@@ -1878,9 +1894,9 @@ class kA {
|
|
|
1878
1894
|
*/
|
|
1879
1895
|
loadAnimation(e) {
|
|
1880
1896
|
const t = this.json, s = this, n = t.animations[e], i = n.name ? n.name : "animation_" + e, o = [], a = [], r = [], c = [], l = [];
|
|
1881
|
-
let h = 0,
|
|
1882
|
-
for (h = 0,
|
|
1883
|
-
const
|
|
1897
|
+
let h = 0, g = n.channels.length;
|
|
1898
|
+
for (h = 0, g = n.channels.length; h < g; h++) {
|
|
1899
|
+
const d = n.channels[h], p = n.samplers[d.sampler], m = d.target, I = m.node, b = n.parameters !== void 0 ? n.parameters[p.input] : p.input, B = n.parameters !== void 0 ? n.parameters[p.output] : p.output;
|
|
1884
1900
|
m.node !== void 0 && (o.push(this.getDependency("node", I)), a.push(this.getDependency("accessor", b)), r.push(this.getDependency("accessor", B)), c.push(p), l.push(m));
|
|
1885
1901
|
}
|
|
1886
1902
|
return Promise.all([
|
|
@@ -1889,9 +1905,9 @@ class kA {
|
|
|
1889
1905
|
Promise.all(r),
|
|
1890
1906
|
Promise.all(c),
|
|
1891
1907
|
Promise.all(l)
|
|
1892
|
-
]).then(function(
|
|
1893
|
-
const p =
|
|
1894
|
-
for (h = 0,
|
|
1908
|
+
]).then(function(d) {
|
|
1909
|
+
const p = d[0], m = d[1], I = d[2], b = d[3], B = d[4], E = [];
|
|
1910
|
+
for (h = 0, g = p.length; h < g; h++) {
|
|
1895
1911
|
const w = p[h], Q = m[h], R = I[h], _ = b[h], x = B[h];
|
|
1896
1912
|
if (w === void 0)
|
|
1897
1913
|
continue;
|
|
@@ -1901,7 +1917,7 @@ class kA {
|
|
|
1901
1917
|
for (let L = 0; L < T.length; L++)
|
|
1902
1918
|
E.push(T[L]);
|
|
1903
1919
|
}
|
|
1904
|
-
return new
|
|
1920
|
+
return new pi(i, void 0, E);
|
|
1905
1921
|
});
|
|
1906
1922
|
}
|
|
1907
1923
|
createNodeMesh(e) {
|
|
@@ -1930,12 +1946,12 @@ class kA {
|
|
|
1930
1946
|
Promise.all(o),
|
|
1931
1947
|
r
|
|
1932
1948
|
]).then(function(c) {
|
|
1933
|
-
const l = c[0], h = c[1],
|
|
1934
|
-
|
|
1935
|
-
|
|
1949
|
+
const l = c[0], h = c[1], g = c[2];
|
|
1950
|
+
g !== null && l.traverse(function(d) {
|
|
1951
|
+
d.isSkinnedMesh && d.bind(g, MA);
|
|
1936
1952
|
});
|
|
1937
|
-
for (let
|
|
1938
|
-
l.add(h[
|
|
1953
|
+
for (let d = 0, p = h.length; d < p; d++)
|
|
1954
|
+
l.add(h[d]);
|
|
1939
1955
|
return l;
|
|
1940
1956
|
});
|
|
1941
1957
|
}
|
|
@@ -1957,7 +1973,7 @@ class kA {
|
|
|
1957
1973
|
}), this.nodeCache[e] = Promise.all(a).then(function(c) {
|
|
1958
1974
|
let l;
|
|
1959
1975
|
if (i.isBone === !0 ? l = new Ws() : c.length > 1 ? l = new sn() : c.length === 1 ? l = c[0] : l = new xt(), l !== c[0])
|
|
1960
|
-
for (let h = 0,
|
|
1976
|
+
for (let h = 0, g = c.length; h < g; h++)
|
|
1961
1977
|
l.add(c[h]);
|
|
1962
1978
|
if (i.name && (l.userData.name = i.name, l.name = o), kt(l, i), i.extensions && Wt(s, l, i), i.matrix !== void 0) {
|
|
1963
1979
|
const h = new ue();
|
|
@@ -1983,11 +1999,11 @@ class kA {
|
|
|
1983
1999
|
i.add(r[l]);
|
|
1984
2000
|
const c = (l) => {
|
|
1985
2001
|
const h = /* @__PURE__ */ new Map();
|
|
1986
|
-
for (const [
|
|
1987
|
-
(
|
|
1988
|
-
return l.traverse((
|
|
1989
|
-
const
|
|
1990
|
-
|
|
2002
|
+
for (const [g, d] of n.associations)
|
|
2003
|
+
(g instanceof tn || g instanceof Xs) && h.set(g, d);
|
|
2004
|
+
return l.traverse((g) => {
|
|
2005
|
+
const d = n.associations.get(g);
|
|
2006
|
+
d != null && h.set(g, d);
|
|
1991
2007
|
}), h;
|
|
1992
2008
|
};
|
|
1993
2009
|
return n.associations = c(i), i;
|
|
@@ -1995,8 +2011,8 @@ class kA {
|
|
|
1995
2011
|
}
|
|
1996
2012
|
_createAnimationTracks(e, t, s, n, i) {
|
|
1997
2013
|
const o = [], a = e.name ? e.name : e.uuid, r = [];
|
|
1998
|
-
Ht[i.path] === Ht.weights ? e.traverse(function(
|
|
1999
|
-
|
|
2014
|
+
Ht[i.path] === Ht.weights ? e.traverse(function(g) {
|
|
2015
|
+
g.morphTargetInfluences && r.push(g.name ? g.name : g.uuid);
|
|
2000
2016
|
}) : r.push(a);
|
|
2001
2017
|
let c;
|
|
2002
2018
|
switch (Ht[i.path]) {
|
|
@@ -2024,9 +2040,9 @@ class kA {
|
|
|
2024
2040
|
break;
|
|
2025
2041
|
}
|
|
2026
2042
|
const l = n.interpolation !== void 0 ? SA[n.interpolation] : jn, h = this._getArrayFromAccessor(s);
|
|
2027
|
-
for (let
|
|
2043
|
+
for (let g = 0, d = r.length; g < d; g++) {
|
|
2028
2044
|
const p = new c(
|
|
2029
|
-
r[
|
|
2045
|
+
r[g] + "." + Ht[i.path],
|
|
2030
2046
|
t.array,
|
|
2031
2047
|
h,
|
|
2032
2048
|
l
|
|
@@ -2076,10 +2092,10 @@ function FA(A, e, t) {
|
|
|
2076
2092
|
for (let c = 0, l = i.length; c < l; c++) {
|
|
2077
2093
|
const h = i[c];
|
|
2078
2094
|
if (h.POSITION !== void 0) {
|
|
2079
|
-
const
|
|
2080
|
-
if (
|
|
2081
|
-
if (r.setX(Math.max(Math.abs(
|
|
2082
|
-
const m = ti(In[
|
|
2095
|
+
const g = t.json.accessors[h.POSITION], d = g.min, p = g.max;
|
|
2096
|
+
if (d !== void 0 && p !== void 0) {
|
|
2097
|
+
if (r.setX(Math.max(Math.abs(d[0]), Math.abs(p[0]))), r.setY(Math.max(Math.abs(d[1]), Math.abs(p[1]))), r.setZ(Math.max(Math.abs(d[2]), Math.abs(p[2]))), g.normalized) {
|
|
2098
|
+
const m = ti(In[g.componentType]);
|
|
2083
2099
|
r.multiplyScalar(m);
|
|
2084
2100
|
}
|
|
2085
2101
|
a.max(r);
|
|
@@ -2090,10 +2106,10 @@ function FA(A, e, t) {
|
|
|
2090
2106
|
n.expandByVector(a);
|
|
2091
2107
|
}
|
|
2092
2108
|
A.boundingBox = n;
|
|
2093
|
-
const o = new
|
|
2109
|
+
const o = new mi();
|
|
2094
2110
|
n.getCenter(o.center), o.radius = n.min.distanceTo(n.max) / 2, A.boundingSphere = o;
|
|
2095
2111
|
}
|
|
2096
|
-
function
|
|
2112
|
+
function Ni(A, e, t) {
|
|
2097
2113
|
const s = e.attributes, n = [];
|
|
2098
2114
|
function i(o, a) {
|
|
2099
2115
|
return t.getDependency("accessor", o).then(function(r) {
|
|
@@ -2148,8 +2164,8 @@ var fh = function() {
|
|
|
2148
2164
|
ATTRIBUTES: "meshopt_decodeVertexBuffer",
|
|
2149
2165
|
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
2150
2166
|
INDICES: "meshopt_decodeIndexSequence"
|
|
2151
|
-
}, h = [],
|
|
2152
|
-
function
|
|
2167
|
+
}, h = [], g = 0;
|
|
2168
|
+
function d(b) {
|
|
2153
2169
|
var B = {
|
|
2154
2170
|
object: new Worker(b),
|
|
2155
2171
|
pending: 0,
|
|
@@ -2162,14 +2178,14 @@ var fh = function() {
|
|
|
2162
2178
|
}
|
|
2163
2179
|
function p(b) {
|
|
2164
2180
|
for (var B = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(a(n)) + "]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;" + r.toString() + I.toString(), E = new Blob([B], { type: "text/javascript" }), w = URL.createObjectURL(E), Q = 0; Q < b; ++Q)
|
|
2165
|
-
h[Q] =
|
|
2181
|
+
h[Q] = d(w);
|
|
2166
2182
|
URL.revokeObjectURL(w);
|
|
2167
2183
|
}
|
|
2168
2184
|
function m(b, B, E, w, Q) {
|
|
2169
2185
|
for (var R = h[0], _ = 1; _ < h.length; ++_)
|
|
2170
2186
|
h[_].pending < R.pending && (R = h[_]);
|
|
2171
2187
|
return new Promise(function(x, T) {
|
|
2172
|
-
var L = new Uint8Array(E), N =
|
|
2188
|
+
var L = new Uint8Array(E), N = g++;
|
|
2173
2189
|
R.pending += b, R.requests[N] = { resolve: x, reject: T }, R.object.postMessage({ id: N, count: b, size: B, source: L, mode: w, filter: Q }, [L.buffer]);
|
|
2174
2190
|
});
|
|
2175
2191
|
}
|
|
@@ -2242,7 +2258,7 @@ class mh extends Nt {
|
|
|
2242
2258
|
}
|
|
2243
2259
|
parse(e, t, s = () => {
|
|
2244
2260
|
}) {
|
|
2245
|
-
this.decodeDracoFile(e, t, null, null,
|
|
2261
|
+
this.decodeDracoFile(e, t, null, null, ge, s).catch(s);
|
|
2246
2262
|
}
|
|
2247
2263
|
decodeDracoFile(e, t, s, n, i = We, o = () => {
|
|
2248
2264
|
}) {
|
|
@@ -2286,11 +2302,11 @@ class mh extends Nt {
|
|
|
2286
2302
|
return t;
|
|
2287
2303
|
}
|
|
2288
2304
|
_assignVertexColorSpace(e, t) {
|
|
2289
|
-
if (t !==
|
|
2305
|
+
if (t !== ge)
|
|
2290
2306
|
return;
|
|
2291
2307
|
const s = new Se();
|
|
2292
2308
|
for (let n = 0, i = e.count; n < i; n++)
|
|
2293
|
-
s.fromBufferAttribute(e, n), Ve.toWorkingColorSpace(s,
|
|
2309
|
+
s.fromBufferAttribute(e, n), Ve.toWorkingColorSpace(s, ge), e.setXYZ(n, s.r, s.g, s.b);
|
|
2294
2310
|
}
|
|
2295
2311
|
_loadLibrary(e, t) {
|
|
2296
2312
|
const s = new ft(this.manager);
|
|
@@ -2371,14 +2387,14 @@ function LA() {
|
|
|
2371
2387
|
case "decode":
|
|
2372
2388
|
const r = a.buffer, c = a.taskConfig;
|
|
2373
2389
|
e.then((l) => {
|
|
2374
|
-
const h = l.draco,
|
|
2390
|
+
const h = l.draco, g = new h.Decoder();
|
|
2375
2391
|
try {
|
|
2376
|
-
const
|
|
2377
|
-
|
|
2378
|
-
} catch (
|
|
2379
|
-
console.error(
|
|
2392
|
+
const d = t(h, g, new Int8Array(r), c), p = d.attributes.map((m) => m.array.buffer);
|
|
2393
|
+
d.index && p.push(d.index.array.buffer), self.postMessage({ type: "decode", id: a.id, geometry: d }, p);
|
|
2394
|
+
} catch (d) {
|
|
2395
|
+
console.error(d), self.postMessage({ type: "error", id: a.id, error: d.message });
|
|
2380
2396
|
} finally {
|
|
2381
|
-
h.destroy(
|
|
2397
|
+
h.destroy(g);
|
|
2382
2398
|
}
|
|
2383
2399
|
});
|
|
2384
2400
|
break;
|
|
@@ -2386,46 +2402,46 @@ function LA() {
|
|
|
2386
2402
|
};
|
|
2387
2403
|
function t(o, a, r, c) {
|
|
2388
2404
|
const l = c.attributeIDs, h = c.attributeTypes;
|
|
2389
|
-
let
|
|
2405
|
+
let g, d;
|
|
2390
2406
|
const p = a.GetEncodedGeometryType(r);
|
|
2391
2407
|
if (p === o.TRIANGULAR_MESH)
|
|
2392
|
-
|
|
2408
|
+
g = new o.Mesh(), d = a.DecodeArrayToMesh(r, r.byteLength, g);
|
|
2393
2409
|
else if (p === o.POINT_CLOUD)
|
|
2394
|
-
|
|
2410
|
+
g = new o.PointCloud(), d = a.DecodeArrayToPointCloud(r, r.byteLength, g);
|
|
2395
2411
|
else
|
|
2396
2412
|
throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
|
|
2397
|
-
if (!
|
|
2398
|
-
throw new Error("THREE.DRACOLoader: Decoding failed: " +
|
|
2413
|
+
if (!d.ok() || g.ptr === 0)
|
|
2414
|
+
throw new Error("THREE.DRACOLoader: Decoding failed: " + d.error_msg());
|
|
2399
2415
|
const m = { index: null, attributes: [] };
|
|
2400
2416
|
for (const I in l) {
|
|
2401
2417
|
const b = self[h[I]];
|
|
2402
2418
|
let B, E;
|
|
2403
2419
|
if (c.useUniqueIDs)
|
|
2404
|
-
E = l[I], B = a.GetAttributeByUniqueId(
|
|
2420
|
+
E = l[I], B = a.GetAttributeByUniqueId(g, E);
|
|
2405
2421
|
else {
|
|
2406
|
-
if (E = a.GetAttributeId(
|
|
2422
|
+
if (E = a.GetAttributeId(g, o[l[I]]), E === -1)
|
|
2407
2423
|
continue;
|
|
2408
|
-
B = a.GetAttribute(
|
|
2424
|
+
B = a.GetAttribute(g, E);
|
|
2409
2425
|
}
|
|
2410
|
-
const w = n(o, a,
|
|
2426
|
+
const w = n(o, a, g, I, b, B);
|
|
2411
2427
|
I === "color" && (w.vertexColorSpace = c.vertexColorSpace), m.attributes.push(w);
|
|
2412
2428
|
}
|
|
2413
|
-
return p === o.TRIANGULAR_MESH && (m.index = s(o, a,
|
|
2429
|
+
return p === o.TRIANGULAR_MESH && (m.index = s(o, a, g)), o.destroy(g), m;
|
|
2414
2430
|
}
|
|
2415
2431
|
function s(o, a, r) {
|
|
2416
|
-
const l = r.num_faces() * 3, h = l * 4,
|
|
2417
|
-
a.GetTrianglesUInt32Array(r, h,
|
|
2418
|
-
const
|
|
2419
|
-
return o._free(
|
|
2432
|
+
const l = r.num_faces() * 3, h = l * 4, g = o._malloc(h);
|
|
2433
|
+
a.GetTrianglesUInt32Array(r, h, g);
|
|
2434
|
+
const d = new Uint32Array(o.HEAPF32.buffer, g, l).slice();
|
|
2435
|
+
return o._free(g), { array: d, itemSize: 1 };
|
|
2420
2436
|
}
|
|
2421
2437
|
function n(o, a, r, c, l, h) {
|
|
2422
|
-
const
|
|
2438
|
+
const g = h.num_components(), p = r.num_points() * g, m = p * l.BYTES_PER_ELEMENT, I = i(o, l), b = o._malloc(m);
|
|
2423
2439
|
a.GetAttributeDataArrayForAllPoints(r, h, I, m, b);
|
|
2424
2440
|
const B = new l(o.HEAPF32.buffer, b, p).slice();
|
|
2425
2441
|
return o._free(b), {
|
|
2426
2442
|
name: c,
|
|
2427
2443
|
array: B,
|
|
2428
|
-
itemSize:
|
|
2444
|
+
itemSize: g
|
|
2429
2445
|
};
|
|
2430
2446
|
}
|
|
2431
2447
|
function i(o, a) {
|
|
@@ -2487,7 +2503,7 @@ class NA {
|
|
|
2487
2503
|
this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
2488
2504
|
}
|
|
2489
2505
|
}
|
|
2490
|
-
const UA = 0,
|
|
2506
|
+
const UA = 0, Ui = 2, GA = 1, Gi = 2, PA = 0, OA = 1, HA = 10, jA = 0, Jo = 9, Vo = 15, Wo = 16, Xo = 22, Zo = 37, $o = 43, ea = 76, ta = 83, na = 97, sa = 100, ia = 103, oa = 109, aa = 165, ra = 166, Aa = 1000066e3;
|
|
2491
2507
|
class qA {
|
|
2492
2508
|
constructor() {
|
|
2493
2509
|
this.vkFormat = 0, this.typeSize = 1, this.pixelWidth = 0, this.pixelHeight = 0, this.pixelDepth = 0, this.layerCount = 0, this.faceCount = 1, this.supercompressionScheme = 0, this.levels = [], this.dataFormatDescriptor = [{ vendorId: 0, descriptorType: 0, descriptorBlockSize: 0, versionNumber: 2, colorModel: 0, colorPrimaries: 1, transferFunction: 2, flags: 0, texelBlockDimension: [0, 0, 0, 0], bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0], samples: [] }], this.keyValue = {}, this.globalData = null;
|
|
@@ -2534,7 +2550,7 @@ class yn {
|
|
|
2534
2550
|
}
|
|
2535
2551
|
}
|
|
2536
2552
|
const qe = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
2537
|
-
function
|
|
2553
|
+
function Pi(A) {
|
|
2538
2554
|
return new TextDecoder().decode(A);
|
|
2539
2555
|
}
|
|
2540
2556
|
function zA(A) {
|
|
@@ -2545,21 +2561,21 @@ function zA(A) {
|
|
|
2545
2561
|
t.vkFormat = n._nextUint32(), t.typeSize = n._nextUint32(), t.pixelWidth = n._nextUint32(), t.pixelHeight = n._nextUint32(), t.pixelDepth = n._nextUint32(), t.layerCount = n._nextUint32(), t.faceCount = n._nextUint32();
|
|
2546
2562
|
const i = n._nextUint32();
|
|
2547
2563
|
t.supercompressionScheme = n._nextUint32();
|
|
2548
|
-
const o = n._nextUint32(), a = n._nextUint32(), r = n._nextUint32(), c = n._nextUint32(), l = n._nextUint64(), h = n._nextUint64(),
|
|
2564
|
+
const o = n._nextUint32(), a = n._nextUint32(), r = n._nextUint32(), c = n._nextUint32(), l = n._nextUint64(), h = n._nextUint64(), g = new yn(A, qe.length + s, 3 * i * 8, !0);
|
|
2549
2565
|
for (let K = 0; K < i; K++)
|
|
2550
|
-
t.levels.push({ levelData: new Uint8Array(A.buffer, A.byteOffset +
|
|
2551
|
-
const
|
|
2566
|
+
t.levels.push({ levelData: new Uint8Array(A.buffer, A.byteOffset + g._nextUint64(), g._nextUint64()), uncompressedByteLength: g._nextUint64() });
|
|
2567
|
+
const d = new yn(A, o, a, !0), p = { vendorId: d._skip(4)._nextUint16(), descriptorType: d._nextUint16(), versionNumber: d._nextUint16(), descriptorBlockSize: d._nextUint16(), colorModel: d._nextUint8(), colorPrimaries: d._nextUint8(), transferFunction: d._nextUint8(), flags: d._nextUint8(), texelBlockDimension: [d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8()], bytesPlane: [d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8()], samples: [] }, m = (p.descriptorBlockSize / 4 - 6) / 4;
|
|
2552
2568
|
for (let K = 0; K < m; K++) {
|
|
2553
|
-
const ee = { bitOffset:
|
|
2554
|
-
64 & ee.channelType ? (ee.sampleLower =
|
|
2569
|
+
const ee = { bitOffset: d._nextUint16(), bitLength: d._nextUint8(), channelType: d._nextUint8(), samplePosition: [d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2570
|
+
64 & ee.channelType ? (ee.sampleLower = d._nextInt32(), ee.sampleUpper = d._nextInt32()) : (ee.sampleLower = d._nextUint32(), ee.sampleUpper = d._nextUint32()), p.samples[K] = ee;
|
|
2555
2571
|
}
|
|
2556
2572
|
t.dataFormatDescriptor.length = 0, t.dataFormatDescriptor.push(p);
|
|
2557
2573
|
const I = new yn(A, r, c, !0);
|
|
2558
2574
|
for (; I._offset < c; ) {
|
|
2559
|
-
const K = I._nextUint32(), ee = I._scan(K), te =
|
|
2575
|
+
const K = I._nextUint32(), ee = I._scan(K), te = Pi(ee);
|
|
2560
2576
|
if (t.keyValue[te] = I._nextUint8Array(K - ee.byteLength - 1), te.match(/^ktx/i)) {
|
|
2561
|
-
const
|
|
2562
|
-
t.keyValue[te] =
|
|
2577
|
+
const ie = Pi(t.keyValue[te]);
|
|
2578
|
+
t.keyValue[te] = ie.substring(0, ie.lastIndexOf("\0"));
|
|
2563
2579
|
}
|
|
2564
2580
|
I._skip(K % 4 ? 4 - K % 4 : 0);
|
|
2565
2581
|
}
|
|
@@ -2577,7 +2593,7 @@ const xs = { env: { emscripten_notify_memory_growth: function(A) {
|
|
|
2577
2593
|
} } };
|
|
2578
2594
|
class KA {
|
|
2579
2595
|
init() {
|
|
2580
|
-
return Qs || (Qs = typeof fetch < "u" ? fetch("data:application/wasm;base64," +
|
|
2596
|
+
return Qs || (Qs = typeof fetch < "u" ? fetch("data:application/wasm;base64," + Oi).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, xs)).then(this._init) : WebAssembly.instantiate(Buffer.from(Oi, "base64"), xs).then(this._init), Qs);
|
|
2581
2597
|
}
|
|
2582
2598
|
_init(e) {
|
|
2583
2599
|
Mt = e.instance, xs.env.emscripten_notify_memory_growth(0);
|
|
@@ -2591,7 +2607,7 @@ class KA {
|
|
|
2591
2607
|
return Mt.exports.free(n), Mt.exports.free(i), a;
|
|
2592
2608
|
}
|
|
2593
2609
|
}
|
|
2594
|
-
const Pi = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+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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", Ss = /* @__PURE__ */ new WeakMap();
|
|
2610
|
+
const Oi = "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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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", Ss = /* @__PURE__ */ new WeakMap();
|
|
2595
2611
|
let Ts = 0, vs;
|
|
2596
2612
|
class Ft extends Nt {
|
|
2597
2613
|
constructor(e) {
|
|
@@ -2786,15 +2802,15 @@ Ft.BasisWorker = function() {
|
|
|
2786
2802
|
for (let q = 0; q < Q; q++) {
|
|
2787
2803
|
const H = [];
|
|
2788
2804
|
let K, ee;
|
|
2789
|
-
for (let
|
|
2790
|
-
const le = m.getImageLevelInfo(q,
|
|
2791
|
-
Z === 0 && q === 0 &&
|
|
2792
|
-
const re = new Uint8Array(m.getImageTranscodedSizeInBytes(q,
|
|
2793
|
-
if (!m.transcodeImage(re, q,
|
|
2805
|
+
for (let ie = 0; ie < w; ie++) {
|
|
2806
|
+
const le = m.getImageLevelInfo(q, ie, Z);
|
|
2807
|
+
Z === 0 && q === 0 && ie === 0 && (le.origWidth % 4 !== 0 || le.origHeight % 4 !== 0) && console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), Q > 1 ? (K = le.origWidth, ee = le.origHeight) : (K = le.width, ee = le.height);
|
|
2808
|
+
const re = new Uint8Array(m.getImageTranscodedSizeInBytes(q, ie, 0, T));
|
|
2809
|
+
if (!m.transcodeImage(re, q, ie, Z, T, 0, -1, -1))
|
|
2794
2810
|
throw I(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
|
|
2795
2811
|
H.push(re);
|
|
2796
2812
|
}
|
|
2797
|
-
const te =
|
|
2813
|
+
const te = d(H);
|
|
2798
2814
|
U.push({ data: te, width: K, height: ee }), O.push(te.buffer);
|
|
2799
2815
|
}
|
|
2800
2816
|
N.push({ mipmaps: U, width: B, height: E, format: L });
|
|
@@ -2866,15 +2882,15 @@ Ft.BasisWorker = function() {
|
|
|
2866
2882
|
const w = p === i.ETC1S ? c : l;
|
|
2867
2883
|
for (let Q = 0; Q < w.length; Q++) {
|
|
2868
2884
|
const R = w[Q];
|
|
2869
|
-
if (A[R.if] && R.basisFormat.includes(p) && !(b && R.transcoderFormat.length < 2) && !(R.needsPowerOfTwo && !(
|
|
2885
|
+
if (A[R.if] && R.basisFormat.includes(p) && !(b && R.transcoderFormat.length < 2) && !(R.needsPowerOfTwo && !(g(m) && g(I))))
|
|
2870
2886
|
return B = R.transcoderFormat[b ? 1 : 0], E = R.engineFormat[b ? 1 : 0], { transcoderFormat: B, engineFormat: E };
|
|
2871
2887
|
}
|
|
2872
2888
|
return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."), B = n.RGBA32, E = s.RGBAFormat, { transcoderFormat: B, engineFormat: E };
|
|
2873
2889
|
}
|
|
2874
|
-
function
|
|
2890
|
+
function g(p) {
|
|
2875
2891
|
return p <= 2 ? !0 : (p & p - 1) === 0 && p !== 0;
|
|
2876
2892
|
}
|
|
2877
|
-
function
|
|
2893
|
+
function d(p) {
|
|
2878
2894
|
if (p.length === 1)
|
|
2879
2895
|
return p[0];
|
|
2880
2896
|
let m = 0;
|
|
@@ -2891,7 +2907,7 @@ Ft.BasisWorker = function() {
|
|
|
2891
2907
|
return I;
|
|
2892
2908
|
}
|
|
2893
2909
|
};
|
|
2894
|
-
const YA = /* @__PURE__ */ new Set([Kt, Mn,
|
|
2910
|
+
const YA = /* @__PURE__ */ new Set([Kt, Mn, dn]), Rs = {
|
|
2895
2911
|
[oa]: Kt,
|
|
2896
2912
|
[na]: Kt,
|
|
2897
2913
|
[Zo]: Kt,
|
|
@@ -2900,13 +2916,13 @@ const YA = /* @__PURE__ */ new Set([Kt, Mn, gn]), Rs = {
|
|
|
2900
2916
|
[ta]: Mn,
|
|
2901
2917
|
[Wo]: Mn,
|
|
2902
2918
|
[Xo]: Mn,
|
|
2903
|
-
[sa]:
|
|
2904
|
-
[ea]:
|
|
2905
|
-
[Vo]:
|
|
2906
|
-
[Jo]:
|
|
2919
|
+
[sa]: dn,
|
|
2920
|
+
[ea]: dn,
|
|
2921
|
+
[Vo]: dn,
|
|
2922
|
+
[Jo]: dn,
|
|
2907
2923
|
[Aa]: Uo,
|
|
2908
|
-
[ra]:
|
|
2909
|
-
[aa]:
|
|
2924
|
+
[ra]: Ri,
|
|
2925
|
+
[aa]: Ri
|
|
2910
2926
|
}, _s = {
|
|
2911
2927
|
[oa]: St,
|
|
2912
2928
|
[na]: st,
|
|
@@ -2929,7 +2945,7 @@ async function JA(A) {
|
|
|
2929
2945
|
if (Rs[e] === void 0)
|
|
2930
2946
|
throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
|
|
2931
2947
|
let t;
|
|
2932
|
-
A.supercompressionScheme ===
|
|
2948
|
+
A.supercompressionScheme === Ui && (vs || (vs = new Promise(async (i) => {
|
|
2933
2949
|
const o = new KA();
|
|
2934
2950
|
await o.init(), i(o);
|
|
2935
2951
|
})), t = await vs);
|
|
@@ -2939,7 +2955,7 @@ async function JA(A) {
|
|
|
2939
2955
|
let l;
|
|
2940
2956
|
if (A.supercompressionScheme === UA)
|
|
2941
2957
|
l = c.levelData;
|
|
2942
|
-
else if (A.supercompressionScheme ===
|
|
2958
|
+
else if (A.supercompressionScheme === Ui)
|
|
2943
2959
|
l = t.decode(c.levelData, c.uncompressedByteLength);
|
|
2944
2960
|
else
|
|
2945
2961
|
throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
@@ -2971,7 +2987,7 @@ async function JA(A) {
|
|
|
2971
2987
|
}
|
|
2972
2988
|
function ca(A) {
|
|
2973
2989
|
const e = A.dataFormatDescriptor[0];
|
|
2974
|
-
return e.colorPrimaries === OA ? e.transferFunction ===
|
|
2990
|
+
return e.colorPrimaries === OA ? e.transferFunction === Gi ? ge : We : e.colorPrimaries === HA ? e.transferFunction === Gi ? _r : Dr : e.colorPrimaries === PA ? gs : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), gs);
|
|
2975
2991
|
}
|
|
2976
2992
|
class Ih extends Mr {
|
|
2977
2993
|
constructor(e, t = {}) {
|
|
@@ -3033,7 +3049,7 @@ function XA(A, e, t, s, n) {
|
|
|
3033
3049
|
return;
|
|
3034
3050
|
}
|
|
3035
3051
|
const o = new kr();
|
|
3036
|
-
let a, r, c, l, h,
|
|
3052
|
+
let a, r, c, l, h, g, d, p;
|
|
3037
3053
|
if (i.o) {
|
|
3038
3054
|
const m = i._cachedOutline || (i._cachedOutline = i.o.split(" "));
|
|
3039
3055
|
for (let I = 0, b = m.length; I < b; )
|
|
@@ -3045,20 +3061,20 @@ function XA(A, e, t, s, n) {
|
|
|
3045
3061
|
a = m[I++] * e + t, r = m[I++] * e + s, o.lineTo(a, r);
|
|
3046
3062
|
break;
|
|
3047
3063
|
case "q":
|
|
3048
|
-
c = m[I++] * e + t, l = m[I++] * e + s, h = m[I++] * e + t,
|
|
3064
|
+
c = m[I++] * e + t, l = m[I++] * e + s, h = m[I++] * e + t, g = m[I++] * e + s, o.quadraticCurveTo(h, g, c, l);
|
|
3049
3065
|
break;
|
|
3050
3066
|
case "b":
|
|
3051
|
-
c = m[I++] * e + t, l = m[I++] * e + s, h = m[I++] * e + t,
|
|
3067
|
+
c = m[I++] * e + t, l = m[I++] * e + s, h = m[I++] * e + t, g = m[I++] * e + s, d = m[I++] * e + t, p = m[I++] * e + s, o.bezierCurveTo(h, g, d, p, c, l);
|
|
3052
3068
|
break;
|
|
3053
3069
|
}
|
|
3054
3070
|
}
|
|
3055
3071
|
return { offsetX: i.ha * e, path: o };
|
|
3056
3072
|
}
|
|
3057
|
-
const Xt = new
|
|
3073
|
+
const Xt = new Ii(), He = new P(), jt = new P(), we = new Te(), Hi = {
|
|
3058
3074
|
X: new P(1, 0, 0),
|
|
3059
3075
|
Y: new P(0, 1, 0),
|
|
3060
3076
|
Z: new P(0, 0, 1)
|
|
3061
|
-
}, Ds = { type: "change" },
|
|
3077
|
+
}, Ds = { type: "change" }, ji = { type: "mouseDown", mode: null }, qi = { type: "mouseUp", mode: null }, zi = { type: "objectChange" };
|
|
3062
3078
|
class Eh extends Go {
|
|
3063
3079
|
constructor(e, t = null) {
|
|
3064
3080
|
super(void 0, t);
|
|
@@ -3081,8 +3097,8 @@ class Eh extends Go {
|
|
|
3081
3097
|
}), o[E] = w, i[E] = w, n[E] = w;
|
|
3082
3098
|
}
|
|
3083
3099
|
a("camera", e), a("object", void 0), a("enabled", !0), a("axis", null), a("mode", "translate"), a("translationSnap", null), a("rotationSnap", null), a("scaleSnap", null), a("space", "world"), a("size", 1), a("dragging", !1), a("showX", !0), a("showY", !0), a("showZ", !0);
|
|
3084
|
-
const r = new P(), c = new P(), l = new Te(), h = new Te(),
|
|
3085
|
-
a("worldPosition", r), a("worldPositionStart", c), a("worldQuaternion", l), a("worldQuaternionStart", h), a("cameraPosition",
|
|
3100
|
+
const r = new P(), c = new P(), l = new Te(), h = new Te(), g = new P(), d = new Te(), p = new P(), m = new P(), I = new P(), b = 0, B = new P();
|
|
3101
|
+
a("worldPosition", r), a("worldPositionStart", c), a("worldQuaternion", l), a("worldQuaternionStart", h), a("cameraPosition", g), a("cameraQuaternion", d), a("pointStart", p), a("pointEnd", m), a("rotationAxis", I), a("rotationAngle", b), a("eye", B), this._offset = new P(), this._startNorm = new P(), this._endNorm = new P(), this._cameraScale = new P(), this._parentPosition = new P(), this._parentQuaternion = new Te(), this._parentQuaternionInv = new Te(), this._parentScale = new P(), this._worldScaleStart = new P(), this._worldQuaternionInv = new Te(), this._worldScale = new P(), this._positionStart = new P(), this._quaternionStart = new Te(), this._scaleStart = new P(), this._getPointer = ZA.bind(this), this._onPointerDown = ec.bind(this), this._onPointerHover = $A.bind(this), this._onPointerMove = tc.bind(this), this._onPointerUp = nc.bind(this), t !== null && this.connect();
|
|
3086
3102
|
}
|
|
3087
3103
|
connect() {
|
|
3088
3104
|
this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointermove", this._onPointerHover), this.domElement.addEventListener("pointerup", this._onPointerUp), this.domElement.style.touchAction = "none";
|
|
@@ -3104,7 +3120,7 @@ class Eh extends Go {
|
|
|
3104
3120
|
if (!(this.object === void 0 || this.dragging === !0 || e != null && e.button !== 0) && this.axis !== null) {
|
|
3105
3121
|
e !== null && Xt.setFromCamera(e, this.camera);
|
|
3106
3122
|
const t = Ms(this._plane, Xt, !0);
|
|
3107
|
-
t && (this.object.updateMatrixWorld(), this.object.parent.updateMatrixWorld(), this._positionStart.copy(this.object.position), this._quaternionStart.copy(this.object.quaternion), this._scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart), this.pointStart.copy(t.point).sub(this.worldPositionStart)), this.dragging = !0,
|
|
3123
|
+
t && (this.object.updateMatrixWorld(), this.object.parent.updateMatrixWorld(), this._positionStart.copy(this.object.position), this._quaternionStart.copy(this.object.quaternion), this._scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart), this.pointStart.copy(t.point).sub(this.worldPositionStart)), this.dragging = !0, ji.mode = this.mode, this.dispatchEvent(ji);
|
|
3108
3124
|
}
|
|
3109
3125
|
}
|
|
3110
3126
|
pointerMove(e) {
|
|
@@ -3128,13 +3144,13 @@ class Eh extends Go {
|
|
|
3128
3144
|
this._offset.copy(this.pointEnd).sub(this.pointStart);
|
|
3129
3145
|
const a = 20 / this.worldPosition.distanceTo(He.setFromMatrixPosition(this.camera.matrixWorld));
|
|
3130
3146
|
let r = !1;
|
|
3131
|
-
t === "XYZE" ? (this.rotationAxis.copy(this._offset).cross(this.eye).normalize(), this.rotationAngle = this._offset.dot(He.copy(this.rotationAxis).cross(this.eye)) * a) : (t === "X" || t === "Y" || t === "Z") && (this.rotationAxis.copy(
|
|
3147
|
+
t === "XYZE" ? (this.rotationAxis.copy(this._offset).cross(this.eye).normalize(), this.rotationAngle = this._offset.dot(He.copy(this.rotationAxis).cross(this.eye)) * a) : (t === "X" || t === "Y" || t === "Z") && (this.rotationAxis.copy(Hi[t]), He.copy(Hi[t]), i === "local" && He.applyQuaternion(this.worldQuaternion), He.cross(this.eye), He.length() === 0 ? r = !0 : this.rotationAngle = this._offset.dot(He.normalize()) * a), (t === "E" || r) && (this.rotationAxis.copy(this.eye), this.rotationAngle = this.pointEnd.angleTo(this.pointStart), this._startNorm.copy(this.pointStart).normalize(), this._endNorm.copy(this.pointEnd).normalize(), this.rotationAngle *= this._endNorm.cross(this._startNorm).dot(this.eye) < 0 ? 1 : -1), this.rotationSnap && (this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap), i === "local" && t !== "E" && t !== "XYZE" ? (n.quaternion.copy(this._quaternionStart), n.quaternion.multiply(we.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize()) : (this.rotationAxis.applyQuaternion(this._parentQuaternionInv), n.quaternion.copy(we.setFromAxisAngle(this.rotationAxis, this.rotationAngle)), n.quaternion.multiply(this._quaternionStart).normalize());
|
|
3132
3148
|
}
|
|
3133
|
-
this.dispatchEvent(Ds), this.dispatchEvent(
|
|
3149
|
+
this.dispatchEvent(Ds), this.dispatchEvent(zi);
|
|
3134
3150
|
}
|
|
3135
3151
|
}
|
|
3136
3152
|
pointerUp(e) {
|
|
3137
|
-
e !== null && e.button !== 0 || (this.dragging && this.axis !== null && (
|
|
3153
|
+
e !== null && e.button !== 0 || (this.dragging && this.axis !== null && (qi.mode = this.mode, this.dispatchEvent(qi)), this.dragging = !1, this.axis = null);
|
|
3138
3154
|
}
|
|
3139
3155
|
dispose() {
|
|
3140
3156
|
this.disconnect(), this.traverse(function(e) {
|
|
@@ -3150,7 +3166,7 @@ class Eh extends Go {
|
|
|
3150
3166
|
return this.object = void 0, this.axis = null, this._root.visible = !1, this;
|
|
3151
3167
|
}
|
|
3152
3168
|
reset() {
|
|
3153
|
-
this.enabled && this.dragging && (this.object.position.copy(this._positionStart), this.object.quaternion.copy(this._quaternionStart), this.object.scale.copy(this._scaleStart), this.dispatchEvent(Ds), this.dispatchEvent(
|
|
3169
|
+
this.enabled && this.dragging && (this.object.position.copy(this._positionStart), this.object.quaternion.copy(this._quaternionStart), this.object.scale.copy(this._scaleStart), this.dispatchEvent(Ds), this.dispatchEvent(zi), this.pointStart.copy(this.pointEnd));
|
|
3154
3170
|
}
|
|
3155
3171
|
getRaycaster() {
|
|
3156
3172
|
return Xt;
|
|
@@ -3219,7 +3235,7 @@ function Ms(A, e, t) {
|
|
|
3219
3235
|
return s[n];
|
|
3220
3236
|
return !1;
|
|
3221
3237
|
}
|
|
3222
|
-
const Jn = new zt(), me = new P(0, 1, 0),
|
|
3238
|
+
const Jn = new zt(), me = new P(0, 1, 0), Ki = new P(0, 0, 0), Yi = new ue(), Vn = new Te(), as = new Te(), Et = new P(), Ji = new ue(), kn = new P(1, 0, 0), $t = new P(0, 1, 0), Fn = new P(0, 0, 1), Wn = new P(), Qn = new P(), xn = new P();
|
|
3223
3239
|
class sc extends xt {
|
|
3224
3240
|
constructor(e) {
|
|
3225
3241
|
super(), this.isTransformControlsRoot = !0, this.controls = e, this.visible = !1;
|
|
@@ -3263,8 +3279,8 @@ class ic extends xt {
|
|
|
3263
3279
|
l.color.setHex(255), l.opacity = 0.5;
|
|
3264
3280
|
const h = e.clone();
|
|
3265
3281
|
h.opacity = 0.25;
|
|
3266
|
-
const
|
|
3267
|
-
|
|
3282
|
+
const g = e.clone();
|
|
3283
|
+
g.color.setHex(16776960), g.opacity = 0.25, e.clone().color.setHex(16776960);
|
|
3268
3284
|
const p = e.clone();
|
|
3269
3285
|
p.color.setHex(7895160);
|
|
3270
3286
|
const m = new Ke(0, 0.04, 0.1, 12);
|
|
@@ -3344,16 +3360,16 @@ class ic extends xt {
|
|
|
3344
3360
|
[new z(new Yn(0.01, 2), n), null, null, null, "helper"]
|
|
3345
3361
|
],
|
|
3346
3362
|
DELTA: [
|
|
3347
|
-
[new
|
|
3363
|
+
[new dt(w(), n), null, null, null, "helper"]
|
|
3348
3364
|
],
|
|
3349
3365
|
X: [
|
|
3350
|
-
[new
|
|
3366
|
+
[new dt(b, n.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]
|
|
3351
3367
|
],
|
|
3352
3368
|
Y: [
|
|
3353
|
-
[new
|
|
3369
|
+
[new dt(b, n.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], "helper"]
|
|
3354
3370
|
],
|
|
3355
3371
|
Z: [
|
|
3356
|
-
[new
|
|
3372
|
+
[new dt(b, n.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]
|
|
3357
3373
|
]
|
|
3358
3374
|
}, x = {
|
|
3359
3375
|
XYZE: [
|
|
@@ -3369,11 +3385,11 @@ class ic extends xt {
|
|
|
3369
3385
|
[new z(E(0.5, 0.5), a), null, [0, Math.PI / 2, 0]]
|
|
3370
3386
|
],
|
|
3371
3387
|
E: [
|
|
3372
|
-
[new z(E(0.75, 1),
|
|
3388
|
+
[new z(E(0.75, 1), g), null, [0, Math.PI / 2, 0]]
|
|
3373
3389
|
]
|
|
3374
3390
|
}, T = {
|
|
3375
3391
|
AXIS: [
|
|
3376
|
-
[new
|
|
3392
|
+
[new dt(b, n.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]
|
|
3377
3393
|
]
|
|
3378
3394
|
}, L = {
|
|
3379
3395
|
XYZE: [
|
|
@@ -3446,21 +3462,21 @@ class ic extends xt {
|
|
|
3446
3462
|
]
|
|
3447
3463
|
}, Z = {
|
|
3448
3464
|
X: [
|
|
3449
|
-
[new
|
|
3465
|
+
[new dt(b, n.clone()), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]
|
|
3450
3466
|
],
|
|
3451
3467
|
Y: [
|
|
3452
|
-
[new
|
|
3468
|
+
[new dt(b, n.clone()), [0, -1e3, 0], [0, 0, Math.PI / 2], [1e6, 1, 1], "helper"]
|
|
3453
3469
|
],
|
|
3454
3470
|
Z: [
|
|
3455
|
-
[new
|
|
3471
|
+
[new dt(b, n.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]
|
|
3456
3472
|
]
|
|
3457
3473
|
};
|
|
3458
3474
|
function U(q) {
|
|
3459
3475
|
const H = new xt();
|
|
3460
3476
|
for (const K in q)
|
|
3461
3477
|
for (let ee = q[K].length; ee--; ) {
|
|
3462
|
-
const te = q[K][ee][0].clone(),
|
|
3463
|
-
te.name = K, te.tag = he,
|
|
3478
|
+
const te = q[K][ee][0].clone(), ie = q[K][ee][1], le = q[K][ee][2], re = q[K][ee][3], he = q[K][ee][4];
|
|
3479
|
+
te.name = K, te.tag = he, ie && te.position.set(ie[0], ie[1], ie[2]), le && te.rotation.set(le[0], le[1], le[2]), re && te.scale.set(re[0], re[1], re[2]), te.updateMatrix();
|
|
3464
3480
|
const Qe = te.geometry.clone();
|
|
3465
3481
|
Qe.applyMatrix4(te.matrix), te.geometry = Qe, te.renderOrder = 1 / 0, te.position.set(0, 0, 0), te.rotation.set(0, 0, 0), te.scale.set(1, 1, 1), H.add(te);
|
|
3466
3482
|
}
|
|
@@ -3479,10 +3495,10 @@ class ic extends xt {
|
|
|
3479
3495
|
o.visible = !0, o.rotation.set(0, 0, 0), o.position.copy(this.worldPosition);
|
|
3480
3496
|
let a;
|
|
3481
3497
|
if (this.camera.isOrthographicCamera ? a = (this.camera.top - this.camera.bottom) / this.camera.zoom : a = this.worldPosition.distanceTo(this.cameraPosition) * Math.min(1.9 * Math.tan(Math.PI * this.camera.fov / 360) / this.camera.zoom, 7), o.scale.set(1, 1, 1).multiplyScalar(a * this.size / 4), o.tag === "helper") {
|
|
3482
|
-
o.visible = !1, o.name === "AXIS" ? (o.visible = !!this.axis, this.axis === "X" && (we.setFromEuler(Jn.set(0, 0, 0)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(kn).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "Y" && (we.setFromEuler(Jn.set(0, 0, Math.PI / 2)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy($t).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "Z" && (we.setFromEuler(Jn.set(0, Math.PI / 2, 0)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "XYZE" && (we.setFromEuler(Jn.set(0, Math.PI / 2, 0)), me.copy(this.rotationAxis), o.quaternion.setFromRotationMatrix(
|
|
3498
|
+
o.visible = !1, o.name === "AXIS" ? (o.visible = !!this.axis, this.axis === "X" && (we.setFromEuler(Jn.set(0, 0, 0)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(kn).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "Y" && (we.setFromEuler(Jn.set(0, 0, Math.PI / 2)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy($t).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "Z" && (we.setFromEuler(Jn.set(0, Math.PI / 2, 0)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "XYZE" && (we.setFromEuler(Jn.set(0, Math.PI / 2, 0)), me.copy(this.rotationAxis), o.quaternion.setFromRotationMatrix(Yi.lookAt(Ki, me, $t)), o.quaternion.multiply(we), o.visible = this.dragging), this.axis === "E" && (o.visible = !1)) : o.name === "START" ? (o.position.copy(this.worldPositionStart), o.visible = this.dragging) : o.name === "END" ? (o.position.copy(this.worldPosition), o.visible = this.dragging) : o.name === "DELTA" ? (o.position.copy(this.worldPositionStart), o.quaternion.copy(this.worldQuaternionStart), He.set(1e-10, 1e-10, 1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1), He.applyQuaternion(this.worldQuaternionStart.clone().invert()), o.scale.copy(He), o.visible = this.dragging) : (o.quaternion.copy(s), this.dragging ? o.position.copy(this.worldPositionStart) : o.position.copy(this.worldPosition), this.axis && (o.visible = this.axis.search(o.name) !== -1));
|
|
3483
3499
|
continue;
|
|
3484
3500
|
}
|
|
3485
|
-
o.quaternion.copy(s), this.mode === "translate" || this.mode === "scale" ? (o.name === "X" && Math.abs(me.copy(kn).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "Y" && Math.abs(me.copy($t).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "Z" && Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "XY" && Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "YZ" && Math.abs(me.copy(kn).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "XZ" && Math.abs(me.copy($t).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1)) : this.mode === "rotate" && (Vn.copy(s), me.copy(this.eye).applyQuaternion(we.copy(s).invert()), o.name.search("E") !== -1 && o.quaternion.setFromRotationMatrix(
|
|
3501
|
+
o.quaternion.copy(s), this.mode === "translate" || this.mode === "scale" ? (o.name === "X" && Math.abs(me.copy(kn).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "Y" && Math.abs(me.copy($t).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "Z" && Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "XY" && Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "YZ" && Math.abs(me.copy(kn).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "XZ" && Math.abs(me.copy($t).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1)) : this.mode === "rotate" && (Vn.copy(s), me.copy(this.eye).applyQuaternion(we.copy(s).invert()), o.name.search("E") !== -1 && o.quaternion.setFromRotationMatrix(Yi.lookAt(this.eye, Ki, $t)), o.name === "X" && (we.setFromAxisAngle(kn, Math.atan2(-me.y, me.z)), we.multiplyQuaternions(Vn, we), o.quaternion.copy(we)), o.name === "Y" && (we.setFromAxisAngle($t, Math.atan2(me.x, me.z)), we.multiplyQuaternions(Vn, we), o.quaternion.copy(we)), o.name === "Z" && (we.setFromAxisAngle(Fn, Math.atan2(me.y, me.x)), we.multiplyQuaternions(Vn, we), o.quaternion.copy(we))), o.visible = o.visible && (o.name.indexOf("X") === -1 || this.showX), o.visible = o.visible && (o.name.indexOf("Y") === -1 || this.showY), o.visible = o.visible && (o.name.indexOf("Z") === -1 || this.showZ), o.visible = o.visible && (o.name.indexOf("E") === -1 || this.showX && this.showY && this.showZ), o.material._color = o.material._color || o.material.color.clone(), o.material._opacity = o.material._opacity || o.material.opacity, o.material.color.copy(o.material._color), o.material.opacity = o.material._opacity, this.enabled && this.axis && (o.name === this.axis || this.axis.split("").some(function(r) {
|
|
3486
3502
|
return o.name === r;
|
|
3487
3503
|
})) && (o.material.color.setHex(16776960), o.material.opacity = 1);
|
|
3488
3504
|
}
|
|
@@ -3492,8 +3508,8 @@ class ic extends xt {
|
|
|
3492
3508
|
class oc extends z {
|
|
3493
3509
|
constructor() {
|
|
3494
3510
|
super(
|
|
3495
|
-
new
|
|
3496
|
-
new Qt({ visible: !1, wireframe: !0, side:
|
|
3511
|
+
new bi(1e5, 1e5, 2, 2),
|
|
3512
|
+
new Qt({ visible: !1, wireframe: !0, side: gi, transparent: !0, opacity: 0.1, toneMapped: !1 })
|
|
3497
3513
|
), this.isTransformControlsPlane = !0, this.type = "TransformControlsPlane";
|
|
3498
3514
|
}
|
|
3499
3515
|
updateMatrixWorld(e) {
|
|
@@ -3530,7 +3546,7 @@ class oc extends z {
|
|
|
3530
3546
|
default:
|
|
3531
3547
|
Et.set(0, 0, 0);
|
|
3532
3548
|
}
|
|
3533
|
-
Et.length() === 0 ? this.quaternion.copy(this.cameraQuaternion) : (
|
|
3549
|
+
Et.length() === 0 ? this.quaternion.copy(this.cameraQuaternion) : (Ji.lookAt(He.set(0, 0, 0), Et, me), this.quaternion.setFromRotationMatrix(Ji)), super.updateMatrixWorld(e);
|
|
3534
3550
|
}
|
|
3535
3551
|
}
|
|
3536
3552
|
/*!
|
|
@@ -3539,7 +3555,7 @@ fflate - fast JavaScript compression/decompression
|
|
|
3539
3555
|
Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
|
|
3540
3556
|
version 0.8.2
|
|
3541
3557
|
*/
|
|
3542
|
-
var Re = Uint8Array, it = Uint16Array,
|
|
3558
|
+
var Re = Uint8Array, it = Uint16Array, Ei = Int32Array, ms = new Re([
|
|
3543
3559
|
0,
|
|
3544
3560
|
0,
|
|
3545
3561
|
0,
|
|
@@ -3611,13 +3627,13 @@ var Re = Uint8Array, it = Uint16Array, bi = Int32Array, ms = new Re([
|
|
|
3611
3627
|
]), si = new Re([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), la = function(A, e) {
|
|
3612
3628
|
for (var t = new it(31), s = 0; s < 31; ++s)
|
|
3613
3629
|
t[s] = e += 1 << A[s - 1];
|
|
3614
|
-
for (var n = new
|
|
3630
|
+
for (var n = new Ei(t[30]), s = 1; s < 30; ++s)
|
|
3615
3631
|
for (var i = t[s]; i < t[s + 1]; ++i)
|
|
3616
3632
|
n[i] = i - t[s] << 5 | s;
|
|
3617
3633
|
return { b: t, r: n };
|
|
3618
3634
|
}, ha = la(ms, 2), ua = ha.b, ii = ha.r;
|
|
3619
3635
|
ua[28] = 258, ii[258] = 28;
|
|
3620
|
-
var
|
|
3636
|
+
var ga = la(Is, 0), ac = ga.b, Vi = ga.r, oi = new it(32768);
|
|
3621
3637
|
for (var Be = 0; Be < 32768; ++Be) {
|
|
3622
3638
|
var qt = (Be & 43690) >> 1 | (Be & 21845) << 1;
|
|
3623
3639
|
qt = (qt & 52428) >> 2 | (qt & 13107) << 2, qt = (qt & 61680) >> 4 | (qt & 3855) << 4, oi[Be] = ((qt & 65280) >> 8 | (qt & 255) << 8) >> 1;
|
|
@@ -3634,7 +3650,7 @@ var Tt = function(A, e, t) {
|
|
|
3634
3650
|
var r = 15 - e;
|
|
3635
3651
|
for (n = 0; n < s; ++n)
|
|
3636
3652
|
if (A[n])
|
|
3637
|
-
for (var c = n << 4 | A[n], l = e - A[n], h = o[A[n] - 1]++ << l,
|
|
3653
|
+
for (var c = n << 4 | A[n], l = e - A[n], h = o[A[n] - 1]++ << l, g = h | (1 << l) - 1; h <= g; ++h)
|
|
3638
3654
|
a[oi[h] >> r] = c;
|
|
3639
3655
|
} else
|
|
3640
3656
|
for (a = new it(s), n = 0; n < s; ++n)
|
|
@@ -3656,15 +3672,15 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3656
3672
|
for (var e = A[0], t = 1; t < A.length; ++t)
|
|
3657
3673
|
A[t] > e && (e = A[t]);
|
|
3658
3674
|
return e;
|
|
3659
|
-
},
|
|
3675
|
+
}, gt = function(A, e, t) {
|
|
3660
3676
|
var s = e / 8 | 0;
|
|
3661
3677
|
return (A[s] | A[s + 1] << 8) >> (e & 7) & t;
|
|
3662
3678
|
}, Fs = function(A, e) {
|
|
3663
3679
|
var t = e / 8 | 0;
|
|
3664
3680
|
return (A[t] | A[t + 1] << 8 | A[t + 2] << 16) >> (e & 7);
|
|
3665
|
-
},
|
|
3681
|
+
}, Ci = function(A) {
|
|
3666
3682
|
return (A + 7) / 8 | 0;
|
|
3667
|
-
},
|
|
3683
|
+
}, Bi = function(A, e, t) {
|
|
3668
3684
|
return (e == null || e < 0) && (e = 0), (t == null || t > A.length) && (t = A.length), new Re(A.subarray(e, t));
|
|
3669
3685
|
}, hc = [
|
|
3670
3686
|
"unexpected EOF",
|
|
@@ -3699,43 +3715,43 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3699
3715
|
var Rt = new Re(Math.max(Jt * 2, Gt));
|
|
3700
3716
|
Rt.set(t), t = Rt;
|
|
3701
3717
|
}
|
|
3702
|
-
}, l = e.f || 0, h = e.p || 0,
|
|
3718
|
+
}, l = e.f || 0, h = e.p || 0, g = e.b || 0, d = e.l, p = e.d, m = e.m, I = e.n, b = n * 8;
|
|
3703
3719
|
do {
|
|
3704
|
-
if (!
|
|
3705
|
-
l =
|
|
3706
|
-
var B =
|
|
3720
|
+
if (!d) {
|
|
3721
|
+
l = gt(A, h, 1);
|
|
3722
|
+
var B = gt(A, h + 1, 3);
|
|
3707
3723
|
if (h += 3, B)
|
|
3708
3724
|
if (B == 1)
|
|
3709
|
-
|
|
3725
|
+
d = Ac, p = lc, m = 9, I = 5;
|
|
3710
3726
|
else if (B == 2) {
|
|
3711
|
-
var R =
|
|
3727
|
+
var R = gt(A, h, 31) + 257, _ = gt(A, h + 10, 15) + 4, x = R + gt(A, h + 5, 31) + 1;
|
|
3712
3728
|
h += 14;
|
|
3713
3729
|
for (var T = new Re(x), L = new Re(19), N = 0; N < _; ++N)
|
|
3714
|
-
L[si[N]] =
|
|
3730
|
+
L[si[N]] = gt(A, h + N * 3, 7);
|
|
3715
3731
|
h += _ * 3;
|
|
3716
3732
|
for (var O = ks(L), Z = (1 << O) - 1, U = Tt(L, O, 1), N = 0; N < x; ) {
|
|
3717
|
-
var q = U[
|
|
3733
|
+
var q = U[gt(A, h, Z)];
|
|
3718
3734
|
h += q & 15;
|
|
3719
3735
|
var E = q >> 4;
|
|
3720
3736
|
if (E < 16)
|
|
3721
3737
|
T[N++] = E;
|
|
3722
3738
|
else {
|
|
3723
3739
|
var H = 0, K = 0;
|
|
3724
|
-
for (E == 16 ? (K = 3 +
|
|
3740
|
+
for (E == 16 ? (K = 3 + gt(A, h, 3), h += 2, H = T[N - 1]) : E == 17 ? (K = 3 + gt(A, h, 7), h += 3) : E == 18 && (K = 11 + gt(A, h, 127), h += 7); K--; )
|
|
3725
3741
|
T[N++] = H;
|
|
3726
3742
|
}
|
|
3727
3743
|
}
|
|
3728
3744
|
var ee = T.subarray(0, R), te = T.subarray(R);
|
|
3729
|
-
m = ks(ee), I = ks(te),
|
|
3745
|
+
m = ks(ee), I = ks(te), d = Tt(ee, m, 1), p = Tt(te, I, 1);
|
|
3730
3746
|
} else
|
|
3731
3747
|
Je(1);
|
|
3732
3748
|
else {
|
|
3733
|
-
var E =
|
|
3749
|
+
var E = Ci(h) + 4, w = A[E - 4] | A[E - 3] << 8, Q = E + w;
|
|
3734
3750
|
if (Q > n) {
|
|
3735
3751
|
r && Je(0);
|
|
3736
3752
|
break;
|
|
3737
3753
|
}
|
|
3738
|
-
a && c(
|
|
3754
|
+
a && c(g + w), t.set(A.subarray(E, Q), g), e.b = g += w, e.p = h = Q * 8, e.f = l;
|
|
3739
3755
|
continue;
|
|
3740
3756
|
}
|
|
3741
3757
|
if (h > b) {
|
|
@@ -3743,23 +3759,23 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3743
3759
|
break;
|
|
3744
3760
|
}
|
|
3745
3761
|
}
|
|
3746
|
-
a && c(
|
|
3747
|
-
for (var
|
|
3748
|
-
var H =
|
|
3762
|
+
a && c(g + 131072);
|
|
3763
|
+
for (var ie = (1 << m) - 1, le = (1 << I) - 1, re = h; ; re = h) {
|
|
3764
|
+
var H = d[Fs(A, h) & ie], he = H >> 4;
|
|
3749
3765
|
if (h += H & 15, h > b) {
|
|
3750
3766
|
r && Je(0);
|
|
3751
3767
|
break;
|
|
3752
3768
|
}
|
|
3753
3769
|
if (H || Je(2), he < 256)
|
|
3754
|
-
t[
|
|
3770
|
+
t[g++] = he;
|
|
3755
3771
|
else if (he == 256) {
|
|
3756
|
-
re = h,
|
|
3772
|
+
re = h, d = null;
|
|
3757
3773
|
break;
|
|
3758
3774
|
} else {
|
|
3759
3775
|
var Qe = he - 254;
|
|
3760
3776
|
if (he > 264) {
|
|
3761
3777
|
var N = he - 257, be = ms[N];
|
|
3762
|
-
Qe =
|
|
3778
|
+
Qe = gt(A, h, (1 << be) - 1) + ua[N], h += be;
|
|
3763
3779
|
}
|
|
3764
3780
|
var Ae = p[Fs(A, h) & le], Xe = Ae >> 4;
|
|
3765
3781
|
Ae || Je(3), h += Ae & 15;
|
|
@@ -3772,20 +3788,20 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3772
3788
|
r && Je(0);
|
|
3773
3789
|
break;
|
|
3774
3790
|
}
|
|
3775
|
-
a && c(
|
|
3776
|
-
var Ze =
|
|
3777
|
-
if (
|
|
3791
|
+
a && c(g + 131072);
|
|
3792
|
+
var Ze = g + Qe;
|
|
3793
|
+
if (g < te) {
|
|
3778
3794
|
var rn = i - te, An = Math.min(te, Ze);
|
|
3779
|
-
for (rn +
|
|
3780
|
-
t[
|
|
3795
|
+
for (rn + g < 0 && Je(3); g < An; ++g)
|
|
3796
|
+
t[g] = s[rn + g];
|
|
3781
3797
|
}
|
|
3782
|
-
for (;
|
|
3783
|
-
t[
|
|
3798
|
+
for (; g < Ze; ++g)
|
|
3799
|
+
t[g] = t[g - te];
|
|
3784
3800
|
}
|
|
3785
3801
|
}
|
|
3786
|
-
e.l =
|
|
3802
|
+
e.l = d, e.p = re, e.b = g, e.f = l, d && (l = 1, e.m = m, e.d = p, e.n = I);
|
|
3787
3803
|
} while (!l);
|
|
3788
|
-
return
|
|
3804
|
+
return g != t.length && o ? Bi(t, 0, g) : t.subarray(0, g);
|
|
3789
3805
|
}, Dt = function(A, e, t) {
|
|
3790
3806
|
t <<= e & 7;
|
|
3791
3807
|
var s = e / 8 | 0;
|
|
@@ -3810,34 +3826,34 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3810
3826
|
var a = t[0], r = t[1], c = 0, l = 1, h = 2;
|
|
3811
3827
|
for (t[0] = { s: -1, f: a.f + r.f, l: a, r }; l != n - 1; )
|
|
3812
3828
|
a = t[t[c].f < t[h].f ? c++ : h++], r = t[c != l && t[c].f < t[h].f ? c++ : h++], t[l++] = { s: -1, f: a.f + r.f, l: a, r };
|
|
3813
|
-
for (var
|
|
3814
|
-
i[s].s >
|
|
3815
|
-
var
|
|
3829
|
+
for (var g = i[0].s, s = 1; s < n; ++s)
|
|
3830
|
+
i[s].s > g && (g = i[s].s);
|
|
3831
|
+
var d = new it(g + 1), p = ai(t[l - 1], d, 0);
|
|
3816
3832
|
if (p > e) {
|
|
3817
3833
|
var s = 0, m = 0, I = p - e, b = 1 << I;
|
|
3818
3834
|
for (i.sort(function(R, _) {
|
|
3819
|
-
return
|
|
3835
|
+
return d[_.s] - d[R.s] || R.f - _.f;
|
|
3820
3836
|
}); s < n; ++s) {
|
|
3821
3837
|
var B = i[s].s;
|
|
3822
|
-
if (
|
|
3823
|
-
m += b - (1 << p -
|
|
3838
|
+
if (d[B] > e)
|
|
3839
|
+
m += b - (1 << p - d[B]), d[B] = e;
|
|
3824
3840
|
else
|
|
3825
3841
|
break;
|
|
3826
3842
|
}
|
|
3827
3843
|
for (m >>= I; m > 0; ) {
|
|
3828
3844
|
var E = i[s].s;
|
|
3829
|
-
|
|
3845
|
+
d[E] < e ? m -= 1 << e - d[E]++ - 1 : ++s;
|
|
3830
3846
|
}
|
|
3831
3847
|
for (; s >= 0 && m; --s) {
|
|
3832
3848
|
var w = i[s].s;
|
|
3833
|
-
|
|
3849
|
+
d[w] == e && (--d[w], ++m);
|
|
3834
3850
|
}
|
|
3835
3851
|
p = e;
|
|
3836
3852
|
}
|
|
3837
|
-
return { t: new Re(
|
|
3853
|
+
return { t: new Re(d), l: p };
|
|
3838
3854
|
}, ai = function(A, e, t) {
|
|
3839
3855
|
return A.s == -1 ? Math.max(ai(A.l, e, t + 1), ai(A.r, e, t + 1)) : e[A.s] = t;
|
|
3840
|
-
},
|
|
3856
|
+
}, Wi = function(A) {
|
|
3841
3857
|
for (var e = A.length; e && !A[--e]; )
|
|
3842
3858
|
;
|
|
3843
3859
|
for (var t = new it(++e), s = 0, n = A[0], i = 1, o = function(r) {
|
|
@@ -3864,27 +3880,27 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3864
3880
|
for (var t = 0, s = 0; s < e.length; ++s)
|
|
3865
3881
|
t += A[s] * e[s];
|
|
3866
3882
|
return t;
|
|
3867
|
-
},
|
|
3868
|
-
var s = t.length, n =
|
|
3883
|
+
}, da = function(A, e, t) {
|
|
3884
|
+
var s = t.length, n = Ci(e + 2);
|
|
3869
3885
|
A[n] = s & 255, A[n + 1] = s >> 8, A[n + 2] = A[n] ^ 255, A[n + 3] = A[n + 1] ^ 255;
|
|
3870
3886
|
for (var i = 0; i < s; ++i)
|
|
3871
3887
|
A[n + i + 4] = t[i];
|
|
3872
3888
|
return (n + 4 + s) * 8;
|
|
3873
|
-
},
|
|
3889
|
+
}, Xi = function(A, e, t, s, n, i, o, a, r, c, l) {
|
|
3874
3890
|
Dt(e, l++, t), ++n[256];
|
|
3875
|
-
for (var h = Ls(n, 15),
|
|
3891
|
+
for (var h = Ls(n, 15), g = h.t, d = h.l, p = Ls(i, 15), m = p.t, I = p.l, b = Wi(g), B = b.c, E = b.n, w = Wi(m), Q = w.c, R = w.n, _ = new it(19), x = 0; x < B.length; ++x)
|
|
3876
3892
|
++_[B[x] & 31];
|
|
3877
3893
|
for (var x = 0; x < Q.length; ++x)
|
|
3878
3894
|
++_[Q[x] & 31];
|
|
3879
3895
|
for (var T = Ls(_, 7), L = T.t, N = T.l, O = 19; O > 4 && !L[si[O - 1]]; --O)
|
|
3880
3896
|
;
|
|
3881
|
-
var Z = c + 5 << 3, U = Tn(n, Yt) + Tn(i, On) + o, q = Tn(n,
|
|
3897
|
+
var Z = c + 5 << 3, U = Tn(n, Yt) + Tn(i, On) + o, q = Tn(n, g) + Tn(i, m) + o + 14 + 3 * O + Tn(_, L) + 2 * _[16] + 3 * _[17] + 7 * _[18];
|
|
3882
3898
|
if (r >= 0 && Z <= U && Z <= q)
|
|
3883
|
-
return
|
|
3899
|
+
return da(e, l, A.subarray(r, r + c));
|
|
3884
3900
|
var H, K, ee, te;
|
|
3885
3901
|
if (Dt(e, l, 1 + (q < U)), l += 2, q < U) {
|
|
3886
|
-
H = Tt(
|
|
3887
|
-
var
|
|
3902
|
+
H = Tt(g, d, 0), K = g, ee = Tt(m, I, 0), te = m;
|
|
3903
|
+
var ie = Tt(L, N, 0);
|
|
3888
3904
|
Dt(e, l, E - 257), Dt(e, l + 5, R - 1), Dt(e, l + 10, O - 4), l += 14;
|
|
3889
3905
|
for (var x = 0; x < O; ++x)
|
|
3890
3906
|
Dt(e, l + 3 * x, L[si[x]]);
|
|
@@ -3892,7 +3908,7 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3892
3908
|
for (var le = [B, Q], re = 0; re < 2; ++re)
|
|
3893
3909
|
for (var he = le[re], x = 0; x < he.length; ++x) {
|
|
3894
3910
|
var Qe = he[x] & 31;
|
|
3895
|
-
Dt(e, l,
|
|
3911
|
+
Dt(e, l, ie[Qe]), l += L[Qe], Qe > 15 && (Dt(e, l, he[x] >> 5 & 127), l += he[x] >> 12);
|
|
3896
3912
|
}
|
|
3897
3913
|
} else
|
|
3898
3914
|
H = rc, K = Yt, ee = cc, te = On;
|
|
@@ -3907,26 +3923,26 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3907
3923
|
Sn(e, l, H[be]), l += K[be];
|
|
3908
3924
|
}
|
|
3909
3925
|
return Sn(e, l, H[256]), l + K[256];
|
|
3910
|
-
},
|
|
3926
|
+
}, gc = /* @__PURE__ */ new Ei([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), pa = /* @__PURE__ */ new Re(0), dc = function(A, e, t, s, n, i) {
|
|
3911
3927
|
var o = i.z || A.length, a = new Re(s + o + 5 * (1 + Math.ceil(o / 7e3)) + n), r = a.subarray(s, a.length - n), c = i.l, l = (i.r || 0) & 7;
|
|
3912
3928
|
if (e) {
|
|
3913
3929
|
l && (r[0] = i.r >> 3);
|
|
3914
|
-
for (var h =
|
|
3930
|
+
for (var h = gc[e - 1], g = h >> 13, d = h & 8191, p = (1 << t) - 1, m = i.p || new it(32768), I = i.h || new it(p + 1), b = Math.ceil(t / 3), B = 2 * b, E = function(cn) {
|
|
3915
3931
|
return (A[cn] ^ A[cn + 1] << b ^ A[cn + 2] << B) & p;
|
|
3916
|
-
}, w = new
|
|
3932
|
+
}, w = new Ei(25e3), Q = new it(288), R = new it(32), _ = 0, x = 0, T = i.i || 0, L = 0, N = i.w || 0, O = 0; T + 2 < o; ++T) {
|
|
3917
3933
|
var Z = E(T), U = T & 32767, q = I[Z];
|
|
3918
3934
|
if (m[U] = q, I[Z] = U, N <= T) {
|
|
3919
3935
|
var H = o - T;
|
|
3920
3936
|
if ((_ > 7e3 || L > 24576) && (H > 423 || !c)) {
|
|
3921
|
-
l =
|
|
3937
|
+
l = Xi(A, r, 0, w, Q, R, x, L, O, T - O, l), L = _ = x = 0, O = T;
|
|
3922
3938
|
for (var K = 0; K < 286; ++K)
|
|
3923
3939
|
Q[K] = 0;
|
|
3924
3940
|
for (var K = 0; K < 30; ++K)
|
|
3925
3941
|
R[K] = 0;
|
|
3926
3942
|
}
|
|
3927
|
-
var ee = 2, te = 0,
|
|
3943
|
+
var ee = 2, te = 0, ie = d, le = U - q & 32767;
|
|
3928
3944
|
if (H > 2 && Z == E(T - le))
|
|
3929
|
-
for (var re = Math.min(
|
|
3945
|
+
for (var re = Math.min(g, H) - 1, he = Math.min(32767, T), Qe = Math.min(258, H); le <= he && --ie && U != q; ) {
|
|
3930
3946
|
if (A[T + ee] == A[T + ee - le]) {
|
|
3931
3947
|
for (var be = 0; be < Qe && A[T + be] == A[T + be - le]; ++be)
|
|
3932
3948
|
;
|
|
@@ -3942,8 +3958,8 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3942
3958
|
U = q, q = m[U], le += U - q & 32767;
|
|
3943
3959
|
}
|
|
3944
3960
|
if (te) {
|
|
3945
|
-
w[L++] = 268435456 | ii[ee] << 18 |
|
|
3946
|
-
var Gt = ii[ee] & 31, Jt =
|
|
3961
|
+
w[L++] = 268435456 | ii[ee] << 18 | Vi[te];
|
|
3962
|
+
var Gt = ii[ee] & 31, Jt = Vi[te] & 31;
|
|
3947
3963
|
x += ms[Gt] + Is[Jt], ++Q[257 + Gt], ++R[Jt], N = T + ee, ++_;
|
|
3948
3964
|
} else
|
|
3949
3965
|
w[L++] = A[T], ++Q[A[T]];
|
|
@@ -3951,15 +3967,15 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3951
3967
|
}
|
|
3952
3968
|
for (T = Math.max(T, N); T < o; ++T)
|
|
3953
3969
|
w[L++] = A[T], ++Q[A[T]];
|
|
3954
|
-
l =
|
|
3970
|
+
l = Xi(A, r, c, w, Q, R, x, L, O, T - O, l), c || (i.r = l & 7 | r[l / 8 | 0] << 3, l -= 7, i.h = I, i.p = m, i.i = T, i.w = N);
|
|
3955
3971
|
} else {
|
|
3956
3972
|
for (var T = i.w || 0; T < o + c; T += 65535) {
|
|
3957
3973
|
var Rt = T + 65535;
|
|
3958
|
-
Rt >= o && (r[l / 8 | 0] = c, Rt = o), l =
|
|
3974
|
+
Rt >= o && (r[l / 8 | 0] = c, Rt = o), l = da(r, l + 1, A.subarray(T, Rt));
|
|
3959
3975
|
}
|
|
3960
3976
|
i.i = o;
|
|
3961
3977
|
}
|
|
3962
|
-
return
|
|
3978
|
+
return Bi(a, 0, s + Ci(l) + n);
|
|
3963
3979
|
}, pc = /* @__PURE__ */ function() {
|
|
3964
3980
|
for (var A = new Int32Array(256), e = 0; e < 256; ++e) {
|
|
3965
3981
|
for (var t = e, s = 9; --s; )
|
|
@@ -3984,7 +4000,7 @@ var rc = /* @__PURE__ */ Tt(Yt, 9, 0), Ac = /* @__PURE__ */ Tt(Yt, 9, 1), cc = /
|
|
|
3984
4000
|
var i = e.dictionary.subarray(-32768), o = new Re(i.length + A.length);
|
|
3985
4001
|
o.set(i), o.set(A, i.length), A = o, n.w = i.length;
|
|
3986
4002
|
}
|
|
3987
|
-
return
|
|
4003
|
+
return dc(A, e.level == null ? 6 : e.level, e.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(A.length))) * 1.5) : 20 : 12 + e.mem, t, s, n);
|
|
3988
4004
|
}, fa = function(A, e) {
|
|
3989
4005
|
var t = {};
|
|
3990
4006
|
for (var s in A)
|
|
@@ -4009,19 +4025,19 @@ var ma = function(A, e, t, s) {
|
|
|
4009
4025
|
var i = A[n], o = e + n, a = s;
|
|
4010
4026
|
Array.isArray(i) && (a = fa(s, i[1]), i = i[0]), i instanceof Re ? t[o] = [i, a] : (t[o += "/"] = [new Re(0), a], ma(i, o, t, s));
|
|
4011
4027
|
}
|
|
4012
|
-
},
|
|
4028
|
+
}, Zi = typeof TextEncoder < "u" && /* @__PURE__ */ new TextEncoder(), Ec = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), Cc = 0;
|
|
4013
4029
|
try {
|
|
4014
4030
|
Ec.decode(pa, { stream: !0 }), Cc = 1;
|
|
4015
4031
|
} catch {
|
|
4016
4032
|
}
|
|
4017
|
-
function
|
|
4033
|
+
function $i(A, e) {
|
|
4018
4034
|
if (e) {
|
|
4019
4035
|
for (var t = new Re(A.length), s = 0; s < A.length; ++s)
|
|
4020
4036
|
t[s] = A.charCodeAt(s);
|
|
4021
4037
|
return t;
|
|
4022
4038
|
}
|
|
4023
|
-
if (
|
|
4024
|
-
return
|
|
4039
|
+
if (Zi)
|
|
4040
|
+
return Zi.encode(A);
|
|
4025
4041
|
for (var n = A.length, i = new Re(A.length + (A.length >> 1)), o = 0, a = function(l) {
|
|
4026
4042
|
i[o++] = l;
|
|
4027
4043
|
}, s = 0; s < n; ++s) {
|
|
@@ -4032,7 +4048,7 @@ function Zi(A, e) {
|
|
|
4032
4048
|
var c = A.charCodeAt(s);
|
|
4033
4049
|
c < 128 || e ? a(c) : c < 2048 ? (a(192 | c >> 6), a(128 | c & 63)) : c > 55295 && c < 57344 ? (c = 65536 + (c & 1047552) | A.charCodeAt(++s) & 1023, a(240 | c >> 18), a(128 | c >> 12 & 63), a(128 | c >> 6 & 63), a(128 | c & 63)) : (a(224 | c >> 12), a(128 | c >> 6 & 63), a(128 | c & 63));
|
|
4034
4050
|
}
|
|
4035
|
-
return
|
|
4051
|
+
return Bi(i, 0, o);
|
|
4036
4052
|
}
|
|
4037
4053
|
var ri = function(A) {
|
|
4038
4054
|
var e = 0;
|
|
@@ -4042,11 +4058,11 @@ var ri = function(A) {
|
|
|
4042
4058
|
s > 65535 && Je(9), e += s + 4;
|
|
4043
4059
|
}
|
|
4044
4060
|
return e;
|
|
4045
|
-
},
|
|
4061
|
+
}, eo = function(A, e, t, s, n, i, o, a) {
|
|
4046
4062
|
var r = s.length, c = t.extra, l = a && a.length, h = ri(c);
|
|
4047
4063
|
Ge(A, e, o != null ? 33639248 : 67324752), e += 4, o != null && (A[e++] = 20, A[e++] = t.os), A[e] = 20, e += 2, A[e++] = t.flag << 1 | (i < 0 && 8), A[e++] = n && 8, A[e++] = t.compression & 255, A[e++] = t.compression >> 8;
|
|
4048
|
-
var
|
|
4049
|
-
if ((
|
|
4064
|
+
var g = new Date(t.mtime == null ? Date.now() : t.mtime), d = g.getFullYear() - 1980;
|
|
4065
|
+
if ((d < 0 || d > 119) && Je(10), Ge(A, e, d << 25 | g.getMonth() + 1 << 21 | g.getDate() << 16 | g.getHours() << 11 | g.getMinutes() << 5 | g.getSeconds() >> 1), e += 4, i != -1 && (Ge(A, e, t.crc), Ge(A, e + 4, i < 0 ? -i - 2 : i), Ge(A, e + 8, t.size)), Ge(A, e + 12, r), Ge(A, e + 14, h), e += 16, o != null && (Ge(A, e, l), Ge(A, e + 6, t.attrs), Ge(A, e + 10, o), e += 14), A.set(s, e), e += r, h)
|
|
4050
4066
|
for (var p in c) {
|
|
4051
4067
|
var m = c[p], I = m.length;
|
|
4052
4068
|
Ge(A, e, +p), Ge(A, e + 2, I), A.set(m, e + 4), e += 4 + I;
|
|
@@ -4061,8 +4077,8 @@ function Ch(A, e) {
|
|
|
4061
4077
|
ma(A, "", t, e);
|
|
4062
4078
|
var n = 0, i = 0;
|
|
4063
4079
|
for (var o in t) {
|
|
4064
|
-
var a = t[o], r = a[0], c = a[1], l = c.level == 0 ? 0 : 8, h =
|
|
4065
|
-
|
|
4080
|
+
var a = t[o], r = a[0], c = a[1], l = c.level == 0 ? 0 : 8, h = $i(o), g = h.length, d = c.comment, p = d && $i(d), m = p && p.length, I = ri(c.extra);
|
|
4081
|
+
g > 65535 && Je(11);
|
|
4066
4082
|
var b = l ? bc(r, c) : r, B = b.length, E = fc();
|
|
4067
4083
|
E.p(r), s.push(fa(c, {
|
|
4068
4084
|
size: r.length,
|
|
@@ -4070,16 +4086,16 @@ function Ch(A, e) {
|
|
|
4070
4086
|
c: b,
|
|
4071
4087
|
f: h,
|
|
4072
4088
|
m: p,
|
|
4073
|
-
u:
|
|
4089
|
+
u: g != o.length || p && d.length != m,
|
|
4074
4090
|
o: n,
|
|
4075
4091
|
compression: l
|
|
4076
|
-
})), n += 30 +
|
|
4092
|
+
})), n += 30 + g + I + B, i += 76 + 2 * (g + I) + (m || 0) + B;
|
|
4077
4093
|
}
|
|
4078
4094
|
for (var w = new Re(i + 22), Q = n, R = i - n, _ = 0; _ < s.length; ++_) {
|
|
4079
4095
|
var h = s[_];
|
|
4080
|
-
|
|
4096
|
+
eo(w, h.o, h, h.f, h.u, h.c.length);
|
|
4081
4097
|
var x = 30 + h.f.length + ri(h.extra);
|
|
4082
|
-
w.set(h.c, h.o + x),
|
|
4098
|
+
w.set(h.c, h.o + x), eo(w, n, h, h.f, h.u, h.c.length, h.o, h.m), n += 16 + x + (h.m ? h.m.length : 0);
|
|
4083
4099
|
}
|
|
4084
4100
|
return Bc(w, n, s.length, R, Q), w;
|
|
4085
4101
|
}
|
|
@@ -4105,7 +4121,7 @@ class wc extends Po {
|
|
|
4105
4121
|
const O = { l: 0, c: 0, lc: 0 };
|
|
4106
4122
|
function Z(u, f, C, y, v) {
|
|
4107
4123
|
for (; C < u; )
|
|
4108
|
-
f = f << 8 |
|
|
4124
|
+
f = f << 8 | xi(y, v), C += 8;
|
|
4109
4125
|
C -= u, O.l = f >> C & (1 << u) - 1, O.c = f, O.lc = C;
|
|
4110
4126
|
}
|
|
4111
4127
|
const U = new Array(59);
|
|
@@ -4188,14 +4204,14 @@ class wc extends Po {
|
|
|
4188
4204
|
}
|
|
4189
4205
|
return !0;
|
|
4190
4206
|
}
|
|
4191
|
-
const
|
|
4207
|
+
const ie = { c: 0, lc: 0 };
|
|
4192
4208
|
function le(u, f, C, y) {
|
|
4193
|
-
u = u << 8 |
|
|
4209
|
+
u = u << 8 | xi(C, y), f += 8, ie.c = u, ie.lc = f;
|
|
4194
4210
|
}
|
|
4195
4211
|
const re = { c: 0, lc: 0 };
|
|
4196
4212
|
function he(u, f, C, y, v, S, k, G, F) {
|
|
4197
4213
|
if (u == f) {
|
|
4198
|
-
y < 8 && (le(C, y, v, S), C =
|
|
4214
|
+
y < 8 && (le(C, y, v, S), C = ie.c, y = ie.lc), y -= 8;
|
|
4199
4215
|
let M = C >> y;
|
|
4200
4216
|
if (M = new Uint8Array([M])[0], G.value + M > F)
|
|
4201
4217
|
return !1;
|
|
@@ -4261,7 +4277,7 @@ class wc extends Po {
|
|
|
4261
4277
|
let M = 0, D = 0;
|
|
4262
4278
|
const j = k, W = Math.trunc(y.value + (v + 7) / 8);
|
|
4263
4279
|
for (; y.value < W; )
|
|
4264
|
-
for (le(M, D, C, y), M =
|
|
4280
|
+
for (le(M, D, C, y), M = ie.c, D = ie.lc; D >= 14; ) {
|
|
4265
4281
|
const $ = M >> D - 14 & 16383, J = f[$];
|
|
4266
4282
|
if (J.len)
|
|
4267
4283
|
D -= J.len, he(J.lit, S, M, D, C, y, G, F, j), M = re.c, D = re.lc;
|
|
@@ -4272,7 +4288,7 @@ class wc extends Po {
|
|
|
4272
4288
|
for (X = 0; X < J.lit; X++) {
|
|
4273
4289
|
const ne = K(u[J.p[X]]);
|
|
4274
4290
|
for (; D < ne && y.value < W; )
|
|
4275
|
-
le(M, D, C, y), M =
|
|
4291
|
+
le(M, D, C, y), M = ie.c, D = ie.lc;
|
|
4276
4292
|
if (D >= ne && ee(u[J.p[X]]) == (M >> D - ne & (1 << ne) - 1)) {
|
|
4277
4293
|
D -= ne, he(J.p[X], S, M, D, C, y, G, F, j), M = re.c, D = re.lc;
|
|
4278
4294
|
break;
|
|
@@ -4321,7 +4337,7 @@ class wc extends Po {
|
|
|
4321
4337
|
for (; !(v > S || (f[v++] = u[C++], v > S)); )
|
|
4322
4338
|
f[v++] = u[y++];
|
|
4323
4339
|
}
|
|
4324
|
-
function
|
|
4340
|
+
function yi(u) {
|
|
4325
4341
|
let f = u.byteLength;
|
|
4326
4342
|
const C = new Array();
|
|
4327
4343
|
let y = 0;
|
|
@@ -4352,29 +4368,29 @@ class wc extends Po {
|
|
|
4352
4368
|
let De = 8;
|
|
4353
4369
|
ce == W - 1 && (De = $);
|
|
4354
4370
|
let At = 8;
|
|
4355
|
-
for (let
|
|
4356
|
-
|
|
4371
|
+
for (let de = 0; de < j; ++de) {
|
|
4372
|
+
de == j - 1 && (At = Y);
|
|
4357
4373
|
for (let Ie = 0; Ie < M; ++Ie)
|
|
4358
4374
|
pe[Ie].fill(0), pe[Ie][0] = v[X[Ie]++], va(J, y, pe[Ie]), Ra(pe[Ie], ne[Ie]), _a(ne[Ie]);
|
|
4359
4375
|
Da(ne);
|
|
4360
4376
|
for (let Ie = 0; Ie < M; ++Ie)
|
|
4361
|
-
Ma(ne[Ie], xe[Ie],
|
|
4377
|
+
Ma(ne[Ie], xe[Ie], de * 64);
|
|
4362
4378
|
}
|
|
4363
4379
|
let Fe = 0;
|
|
4364
|
-
for (let
|
|
4365
|
-
const Ie = C[u.idx[
|
|
4380
|
+
for (let de = 0; de < M; ++de) {
|
|
4381
|
+
const Ie = C[u.idx[de]].type;
|
|
4366
4382
|
for (let _t = 8 * ce; _t < 8 * ce + De; ++_t) {
|
|
4367
|
-
Fe = et[
|
|
4383
|
+
Fe = et[de][_t];
|
|
4368
4384
|
for (let En = 0; En < D; ++En) {
|
|
4369
4385
|
const bt = En * 64 + (_t & 7) * 8;
|
|
4370
|
-
k.setUint16(Fe + 0 * 2 * Ie, xe[
|
|
4386
|
+
k.setUint16(Fe + 0 * 2 * Ie, xe[de][bt + 0], !0), k.setUint16(Fe + 1 * 2 * Ie, xe[de][bt + 1], !0), k.setUint16(Fe + 2 * 2 * Ie, xe[de][bt + 2], !0), k.setUint16(Fe + 3 * 2 * Ie, xe[de][bt + 3], !0), k.setUint16(Fe + 4 * 2 * Ie, xe[de][bt + 4], !0), k.setUint16(Fe + 5 * 2 * Ie, xe[de][bt + 5], !0), k.setUint16(Fe + 6 * 2 * Ie, xe[de][bt + 6], !0), k.setUint16(Fe + 7 * 2 * Ie, xe[de][bt + 7], !0), Fe += 8 * 2 * Ie;
|
|
4371
4387
|
}
|
|
4372
4388
|
}
|
|
4373
4389
|
if (D != j)
|
|
4374
4390
|
for (let _t = 8 * ce; _t < 8 * ce + De; ++_t) {
|
|
4375
|
-
const En = et[
|
|
4391
|
+
const En = et[de][_t] + 8 * D * 2 * Ie, bt = D * 64 + (_t & 7) * 8;
|
|
4376
4392
|
for (let zn = 0; zn < At; ++zn)
|
|
4377
|
-
k.setUint16(En + zn * 2 * Ie, xe[
|
|
4393
|
+
k.setUint16(En + zn * 2 * Ie, xe[de][bt + zn], !0);
|
|
4378
4394
|
}
|
|
4379
4395
|
}
|
|
4380
4396
|
}
|
|
@@ -4386,10 +4402,10 @@ class wc extends Po {
|
|
|
4386
4402
|
if (C[ce].type == 2)
|
|
4387
4403
|
for (let At = 0; At < F; ++At) {
|
|
4388
4404
|
const Fe = et[ce][At];
|
|
4389
|
-
for (let
|
|
4390
|
-
Ee[
|
|
4391
|
-
for (let
|
|
4392
|
-
k.setFloat32(Fe +
|
|
4405
|
+
for (let de = 0; de < G; ++de)
|
|
4406
|
+
Ee[de] = k.getUint16(Fe + de * 2 * De, !0);
|
|
4407
|
+
for (let de = 0; de < G; ++de)
|
|
4408
|
+
k.setFloat32(Fe + de * 2 * De, V(Ee[de]), !0);
|
|
4393
4409
|
}
|
|
4394
4410
|
}
|
|
4395
4411
|
}
|
|
@@ -4427,7 +4443,7 @@ class wc extends Po {
|
|
|
4427
4443
|
return new DataView(u.array.buffer, u.offset.value, u.size);
|
|
4428
4444
|
}
|
|
4429
4445
|
function Fa(u) {
|
|
4430
|
-
const f = u.viewer.buffer.slice(u.offset.value, u.offset.value + u.size), C = new Uint8Array(
|
|
4446
|
+
const f = u.viewer.buffer.slice(u.offset.value, u.offset.value + u.size), C = new Uint8Array(yi(f)), y = new Uint8Array(C.length);
|
|
4431
4447
|
return Rt(C), cn(C, y), new DataView(y.buffer);
|
|
4432
4448
|
}
|
|
4433
4449
|
function Es(u) {
|
|
@@ -4497,7 +4513,7 @@ class wc extends Po {
|
|
|
4497
4513
|
}
|
|
4498
4514
|
return S;
|
|
4499
4515
|
}
|
|
4500
|
-
function
|
|
4516
|
+
function Qi(u) {
|
|
4501
4517
|
const f = u.viewer, C = { value: u.offset.value }, y = new Uint8Array(u.columns * u.lines * (u.inputChannels.length * u.type * 2)), v = {
|
|
4502
4518
|
version: $e(f, C),
|
|
4503
4519
|
unknownUncompressedSize: $e(f, C),
|
|
@@ -4560,7 +4576,7 @@ class wc extends Po {
|
|
|
4560
4576
|
}
|
|
4561
4577
|
if (v.rleRawSize > 0) {
|
|
4562
4578
|
const J = u.array.slice(C.value, C.value + v.rleCompressedSize), X = Ln(J);
|
|
4563
|
-
W =
|
|
4579
|
+
W = yi(X.buffer), C.value += v.rleCompressedSize;
|
|
4564
4580
|
}
|
|
4565
4581
|
let Y = 0;
|
|
4566
4582
|
const $ = new Array(F.length);
|
|
@@ -4625,7 +4641,7 @@ class wc extends Po {
|
|
|
4625
4641
|
const C = u.getUint32(f.value, !0);
|
|
4626
4642
|
return f.value = f.value + 4, C;
|
|
4627
4643
|
}
|
|
4628
|
-
function
|
|
4644
|
+
function xi(u, f) {
|
|
4629
4645
|
const C = u[f.value];
|
|
4630
4646
|
return f.value = f.value + 1, C;
|
|
4631
4647
|
}
|
|
@@ -4784,7 +4800,7 @@ class wc extends Po {
|
|
|
4784
4800
|
}
|
|
4785
4801
|
return y;
|
|
4786
4802
|
}
|
|
4787
|
-
function
|
|
4803
|
+
function Si(u, f, C, y) {
|
|
4788
4804
|
const v = new Array(u);
|
|
4789
4805
|
for (let S = 0; S < u; S++) {
|
|
4790
4806
|
const k = 1 << S;
|
|
@@ -4911,10 +4927,10 @@ class wc extends Po {
|
|
|
4911
4927
|
S.blockHeight = 16, S.uncompress = Na;
|
|
4912
4928
|
break;
|
|
4913
4929
|
case "DWAA_COMPRESSION":
|
|
4914
|
-
S.blockHeight = 32, S.uncompress =
|
|
4930
|
+
S.blockHeight = 32, S.uncompress = Qi;
|
|
4915
4931
|
break;
|
|
4916
4932
|
case "DWAB_COMPRESSION":
|
|
4917
|
-
S.blockHeight = 256, S.uncompress =
|
|
4933
|
+
S.blockHeight = 256, S.uncompress = Qi;
|
|
4918
4934
|
break;
|
|
4919
4935
|
default:
|
|
4920
4936
|
throw new Error("EXRLoader.parse: " + u.compression + " is unsupported");
|
|
@@ -4971,9 +4987,9 @@ class wc extends Po {
|
|
|
4971
4987
|
let M = 0;
|
|
4972
4988
|
for (const D of u.channels)
|
|
4973
4989
|
S.decodeChannels[D.name] !== void 0 && (S.channelByteOffsets[D.name] = M), M += D.pixelType * 2;
|
|
4974
|
-
if (S.totalBytes = M, S.outLineWidth = S.width * S.outputChannels, u.lineOrder === "INCREASING_Y" ? S.scanOrder = (D) => D : S.scanOrder = (D) => S.height - 1 - D, S.outputChannels == 4 ? (S.format = Kt, S.colorSpace = We) : (S.format =
|
|
4990
|
+
if (S.totalBytes = M, S.outLineWidth = S.width * S.outputChannels, u.lineOrder === "INCREASING_Y" ? S.scanOrder = (D) => D : S.scanOrder = (D) => S.height - 1 - D, S.outputChannels == 4 ? (S.format = Kt, S.colorSpace = We) : (S.format = dn, S.colorSpace = gs), u.spec.singleTile) {
|
|
4975
4991
|
S.blockHeight = u.tiles.ySize, S.blockWidth = u.tiles.xSize;
|
|
4976
|
-
const D = er(u.tiles, S.width, S.height), j =
|
|
4992
|
+
const D = er(u.tiles, S.width, S.height), j = Si(D, S.width, u.tiles.xSize, u.tiles.roundingMode), W = Si(D, S.height, u.tiles.ySize, u.tiles.roundingMode);
|
|
4977
4993
|
S.tileCount = j[0] * W[0];
|
|
4978
4994
|
for (let Y = 0; Y < D; Y++)
|
|
4979
4995
|
for (let $ = 0; $ < W[Y]; $++)
|
|
@@ -4989,7 +5005,7 @@ class wc extends Po {
|
|
|
4989
5005
|
}
|
|
4990
5006
|
return S;
|
|
4991
5007
|
}
|
|
4992
|
-
const
|
|
5008
|
+
const Ti = { value: 0 }, vi = new DataView(e), or = new Uint8Array(e), Vt = sr(vi, e, Ti), ln = ir(Vt, vi, or, Ti, this.type);
|
|
4993
5009
|
return ln.decode(), {
|
|
4994
5010
|
header: Vt,
|
|
4995
5011
|
width: ln.width,
|
|
@@ -5039,7 +5055,7 @@ class yc extends Po {
|
|
|
5039
5055
|
for (; 0 > (Z = H.indexOf(l)) && U < T && O < x.byteLength; )
|
|
5040
5056
|
q += H, U += H.length, O += 128, H += String.fromCharCode.apply(null, new Uint16Array(x.subarray(O, O + 128)));
|
|
5041
5057
|
return -1 < Z ? (L !== !1 && (x.pos += U + Z + 1), q + H.slice(0, Z)) : !1;
|
|
5042
|
-
},
|
|
5058
|
+
}, g = function(x) {
|
|
5043
5059
|
const T = /^#\?(\S+)/, L = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, N = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, O = /^\s*FORMAT=(\S+)\s*$/, Z = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/, U = {
|
|
5044
5060
|
valid: 0,
|
|
5045
5061
|
/* indicate which fields are valid */
|
|
@@ -5072,7 +5088,7 @@ class yc extends Po {
|
|
|
5072
5088
|
break;
|
|
5073
5089
|
}
|
|
5074
5090
|
return U.valid & 2 || o(3, "missing format specifier"), U.valid & 4 || o(3, "missing image size specifier"), U;
|
|
5075
|
-
},
|
|
5091
|
+
}, d = function(x, T, L) {
|
|
5076
5092
|
const N = T;
|
|
5077
5093
|
if (
|
|
5078
5094
|
// run length encoding is not allowed so read flat
|
|
@@ -5088,16 +5104,16 @@ class yc extends Po {
|
|
|
5088
5104
|
let ee = L;
|
|
5089
5105
|
for (; ee > 0 && U < x.byteLength; ) {
|
|
5090
5106
|
U + 4 > x.byteLength && o(1), H[0] = x[U++], H[1] = x[U++], H[2] = x[U++], H[3] = x[U++], (H[0] != 2 || H[1] != 2 || (H[2] << 8 | H[3]) != N) && o(3, "bad rgbe scanline format");
|
|
5091
|
-
let te = 0,
|
|
5107
|
+
let te = 0, ie;
|
|
5092
5108
|
for (; te < q && U < x.byteLength; ) {
|
|
5093
|
-
|
|
5094
|
-
const re =
|
|
5095
|
-
if (re && (
|
|
5109
|
+
ie = x[U++];
|
|
5110
|
+
const re = ie > 128;
|
|
5111
|
+
if (re && (ie -= 128), (ie === 0 || te + ie > q) && o(3, "bad scanline data"), re) {
|
|
5096
5112
|
const he = x[U++];
|
|
5097
|
-
for (let Qe = 0; Qe <
|
|
5113
|
+
for (let Qe = 0; Qe < ie; Qe++)
|
|
5098
5114
|
K[te++] = he;
|
|
5099
5115
|
} else
|
|
5100
|
-
K.set(x.subarray(U, U +
|
|
5116
|
+
K.set(x.subarray(U, U + ie), te), te += ie, U += ie;
|
|
5101
5117
|
}
|
|
5102
5118
|
const le = N;
|
|
5103
5119
|
for (let re = 0; re < le; re++) {
|
|
@@ -5115,7 +5131,7 @@ class yc extends Po {
|
|
|
5115
5131
|
L[N + 0] = pn.toHalfFloat(Math.min(x[T + 0] * Z, 65504)), L[N + 1] = pn.toHalfFloat(Math.min(x[T + 1] * Z, 65504)), L[N + 2] = pn.toHalfFloat(Math.min(x[T + 2] * Z, 65504)), L[N + 3] = pn.toHalfFloat(1);
|
|
5116
5132
|
}, I = new Uint8Array(e);
|
|
5117
5133
|
I.pos = 0;
|
|
5118
|
-
const b =
|
|
5134
|
+
const b = g(I), B = b.width, E = b.height, w = d(I.subarray(I.pos), B, E);
|
|
5119
5135
|
let Q, R, _;
|
|
5120
5136
|
switch (this.type) {
|
|
5121
5137
|
case St:
|
|
@@ -5183,8 +5199,8 @@ function Qc(A, e, t, s) {
|
|
|
5183
5199
|
i[a] = e - s[A + 1 - a], o[a] = s[A + a] - e;
|
|
5184
5200
|
let r = 0;
|
|
5185
5201
|
for (let c = 0; c < a; ++c) {
|
|
5186
|
-
const l = o[c + 1], h = i[a - c],
|
|
5187
|
-
n[c] = r + l *
|
|
5202
|
+
const l = o[c + 1], h = i[a - c], g = n[c] / (l + h);
|
|
5203
|
+
n[c] = r + l * g, r = h * g;
|
|
5188
5204
|
}
|
|
5189
5205
|
n[a] = r;
|
|
5190
5206
|
}
|
|
@@ -5212,19 +5228,19 @@ function Sc(A, e, t, s, n) {
|
|
|
5212
5228
|
const r = i.slice(0), c = i.slice(0);
|
|
5213
5229
|
for (let h = 1; h <= t; ++h) {
|
|
5214
5230
|
r[h] = e - n[A + 1 - h], c[h] = n[A + h] - e;
|
|
5215
|
-
let
|
|
5216
|
-
for (let
|
|
5217
|
-
const p = c[
|
|
5218
|
-
a[h][
|
|
5219
|
-
const I = a[
|
|
5220
|
-
a[
|
|
5231
|
+
let g = 0;
|
|
5232
|
+
for (let d = 0; d < h; ++d) {
|
|
5233
|
+
const p = c[d + 1], m = r[h - d];
|
|
5234
|
+
a[h][d] = p + m;
|
|
5235
|
+
const I = a[d][h - 1] / a[h][d];
|
|
5236
|
+
a[d][h] = g + p * I, g = m * I;
|
|
5221
5237
|
}
|
|
5222
|
-
a[h][h] =
|
|
5238
|
+
a[h][h] = g;
|
|
5223
5239
|
}
|
|
5224
5240
|
for (let h = 0; h <= t; ++h)
|
|
5225
5241
|
o[0][h] = a[h][t];
|
|
5226
5242
|
for (let h = 0; h <= t; ++h) {
|
|
5227
|
-
let
|
|
5243
|
+
let g = 0, d = 1;
|
|
5228
5244
|
const p = [];
|
|
5229
5245
|
for (let m = 0; m <= t; ++m)
|
|
5230
5246
|
p[m] = i.slice(0);
|
|
@@ -5232,19 +5248,19 @@ function Sc(A, e, t, s, n) {
|
|
|
5232
5248
|
for (let m = 1; m <= s; ++m) {
|
|
5233
5249
|
let I = 0;
|
|
5234
5250
|
const b = h - m, B = t - m;
|
|
5235
|
-
h >= m && (p[
|
|
5251
|
+
h >= m && (p[d][0] = p[g][0] / a[B + 1][b], I = p[d][0] * a[b][B]);
|
|
5236
5252
|
const E = b >= -1 ? 1 : -b, w = h - 1 <= B ? m - 1 : t - h;
|
|
5237
5253
|
for (let R = E; R <= w; ++R)
|
|
5238
|
-
p[
|
|
5239
|
-
h <= B && (p[
|
|
5240
|
-
const Q =
|
|
5241
|
-
|
|
5254
|
+
p[d][R] = (p[g][R] - p[g][R - 1]) / a[B + 1][b + R], I += p[d][R] * a[b + R][B];
|
|
5255
|
+
h <= B && (p[d][m] = -p[g][m - 1] / a[B + 1][h], I += p[d][m] * a[h][B]), o[m][h] = I;
|
|
5256
|
+
const Q = g;
|
|
5257
|
+
g = d, d = Q;
|
|
5242
5258
|
}
|
|
5243
5259
|
}
|
|
5244
5260
|
let l = t;
|
|
5245
5261
|
for (let h = 1; h <= s; ++h) {
|
|
5246
|
-
for (let
|
|
5247
|
-
o[h][
|
|
5262
|
+
for (let g = 0; g <= t; ++g)
|
|
5263
|
+
o[h][g] *= l;
|
|
5248
5264
|
l *= t - h;
|
|
5249
5265
|
}
|
|
5250
5266
|
return o;
|
|
@@ -5252,13 +5268,13 @@ function Sc(A, e, t, s, n) {
|
|
|
5252
5268
|
function Tc(A, e, t, s, n) {
|
|
5253
5269
|
const i = n < A ? n : A, o = [], a = Ia(A, s, e), r = Sc(a, s, A, i, e), c = [];
|
|
5254
5270
|
for (let l = 0; l < t.length; ++l) {
|
|
5255
|
-
const h = t[l].clone(),
|
|
5256
|
-
h.x *=
|
|
5271
|
+
const h = t[l].clone(), g = h.w;
|
|
5272
|
+
h.x *= g, h.y *= g, h.z *= g, c[l] = h;
|
|
5257
5273
|
}
|
|
5258
5274
|
for (let l = 0; l <= i; ++l) {
|
|
5259
5275
|
const h = c[a - A].clone().multiplyScalar(r[l][0]);
|
|
5260
|
-
for (let
|
|
5261
|
-
h.add(c[a - A +
|
|
5276
|
+
for (let g = 1; g <= A; ++g)
|
|
5277
|
+
h.add(c[a - A + g].clone().multiplyScalar(r[l][g]));
|
|
5262
5278
|
o[l] = h;
|
|
5263
5279
|
}
|
|
5264
5280
|
for (let l = i + 1; l <= n + 1; ++l)
|
|
@@ -5312,7 +5328,7 @@ class Dc extends Fr {
|
|
|
5312
5328
|
return s.copy(i[1]).normalize(), s;
|
|
5313
5329
|
}
|
|
5314
5330
|
}
|
|
5315
|
-
let
|
|
5331
|
+
let se, _e, ze;
|
|
5316
5332
|
class yh extends Nt {
|
|
5317
5333
|
constructor(e) {
|
|
5318
5334
|
super(e);
|
|
@@ -5329,17 +5345,20 @@ class yh extends Nt {
|
|
|
5329
5345
|
}
|
|
5330
5346
|
parse(e, t) {
|
|
5331
5347
|
if (Uc(e))
|
|
5332
|
-
|
|
5348
|
+
se = new Nc().parse(e);
|
|
5333
5349
|
else {
|
|
5334
5350
|
const n = Ca(e);
|
|
5335
5351
|
if (!Gc(n))
|
|
5336
5352
|
throw new Error("THREE.FBXLoader: Unknown format.");
|
|
5337
|
-
if (
|
|
5338
|
-
throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " +
|
|
5339
|
-
|
|
5353
|
+
if (no(n) < 7e3)
|
|
5354
|
+
throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + no(n));
|
|
5355
|
+
se = new Lc().parse(n);
|
|
5340
5356
|
}
|
|
5341
5357
|
const s = new hi(this.manager).setPath(this.resourcePath || t).setCrossOrigin(this.crossOrigin);
|
|
5342
|
-
return new Mc(s, this.manager).parse(
|
|
5358
|
+
return new Mc(s, this.manager).parse(se);
|
|
5359
|
+
}
|
|
5360
|
+
getFbxTree() {
|
|
5361
|
+
return se;
|
|
5343
5362
|
}
|
|
5344
5363
|
}
|
|
5345
5364
|
class Mc {
|
|
@@ -5355,7 +5374,7 @@ class Mc {
|
|
|
5355
5374
|
// and details the connection type
|
|
5356
5375
|
parseConnections() {
|
|
5357
5376
|
const e = /* @__PURE__ */ new Map();
|
|
5358
|
-
return "Connections" in
|
|
5377
|
+
return "Connections" in se && se.Connections.connections.forEach(function(s) {
|
|
5359
5378
|
const n = s[0], i = s[1], o = s[2];
|
|
5360
5379
|
e.has(n) || e.set(n, {
|
|
5361
5380
|
parents: [],
|
|
@@ -5375,8 +5394,8 @@ class Mc {
|
|
|
5375
5394
|
// via FBXTree.Connections.
|
|
5376
5395
|
parseImages() {
|
|
5377
5396
|
const e = {}, t = {};
|
|
5378
|
-
if ("Video" in
|
|
5379
|
-
const s =
|
|
5397
|
+
if ("Video" in se.Objects) {
|
|
5398
|
+
const s = se.Objects.Video;
|
|
5380
5399
|
for (const n in s) {
|
|
5381
5400
|
const i = s[n], o = parseInt(n);
|
|
5382
5401
|
if (e[o] = i.RelativeFilename || i.Filename, "Content" in i) {
|
|
@@ -5431,8 +5450,8 @@ class Mc {
|
|
|
5431
5450
|
// to images in FBXTree.Objects.Video
|
|
5432
5451
|
parseTextures(e) {
|
|
5433
5452
|
const t = /* @__PURE__ */ new Map();
|
|
5434
|
-
if ("Texture" in
|
|
5435
|
-
const s =
|
|
5453
|
+
if ("Texture" in se.Objects) {
|
|
5454
|
+
const s = se.Objects.Texture;
|
|
5436
5455
|
for (const n in s) {
|
|
5437
5456
|
const i = this.parseTexture(s[n], e);
|
|
5438
5457
|
t.set(parseInt(n), i);
|
|
@@ -5474,8 +5493,8 @@ class Mc {
|
|
|
5474
5493
|
// Parse nodes in FBXTree.Objects.Material
|
|
5475
5494
|
parseMaterials(e) {
|
|
5476
5495
|
const t = /* @__PURE__ */ new Map();
|
|
5477
|
-
if ("Material" in
|
|
5478
|
-
const s =
|
|
5496
|
+
if ("Material" in se.Objects) {
|
|
5497
|
+
const s = se.Objects.Material;
|
|
5479
5498
|
for (const n in s) {
|
|
5480
5499
|
const i = this.parseMaterial(s[n], e);
|
|
5481
5500
|
i !== null && t.set(parseInt(n), i);
|
|
@@ -5510,7 +5529,7 @@ class Mc {
|
|
|
5510
5529
|
// Also parse the texture map and return any textures associated with the material
|
|
5511
5530
|
parseParameters(e, t, s) {
|
|
5512
5531
|
const n = {};
|
|
5513
|
-
e.BumpFactor && (n.bumpScale = e.BumpFactor.value), e.Diffuse ? n.color = Ve.toWorkingColorSpace(new Se().fromArray(e.Diffuse.value),
|
|
5532
|
+
e.BumpFactor && (n.bumpScale = e.BumpFactor.value), e.Diffuse ? n.color = Ve.toWorkingColorSpace(new Se().fromArray(e.Diffuse.value), ge) : e.DiffuseColor && (e.DiffuseColor.type === "Color" || e.DiffuseColor.type === "ColorRGB") && (n.color = Ve.toWorkingColorSpace(new Se().fromArray(e.DiffuseColor.value), ge)), e.DisplacementFactor && (n.displacementScale = e.DisplacementFactor.value), e.Emissive ? n.emissive = Ve.toWorkingColorSpace(new Se().fromArray(e.Emissive.value), ge) : e.EmissiveColor && (e.EmissiveColor.type === "Color" || e.EmissiveColor.type === "ColorRGB") && (n.emissive = Ve.toWorkingColorSpace(new Se().fromArray(e.EmissiveColor.value), ge)), e.EmissiveFactor && (n.emissiveIntensity = parseFloat(e.EmissiveFactor.value)), e.Opacity && (n.opacity = parseFloat(e.Opacity.value)), n.opacity < 1 && (n.transparent = !0), e.ReflectionFactor && (n.reflectivity = e.ReflectionFactor.value), e.Shininess && (n.shininess = e.Shininess.value), e.Specular ? n.specular = Ve.toWorkingColorSpace(new Se().fromArray(e.Specular.value), ge) : e.SpecularColor && e.SpecularColor.type === "Color" && (n.specular = Ve.toWorkingColorSpace(new Se().fromArray(e.SpecularColor.value), ge));
|
|
5514
5533
|
const i = this;
|
|
5515
5534
|
return _e.get(s).children.forEach(function(o) {
|
|
5516
5535
|
const a = o.relationship;
|
|
@@ -5523,23 +5542,23 @@ class Mc {
|
|
|
5523
5542
|
break;
|
|
5524
5543
|
case "DiffuseColor":
|
|
5525
5544
|
case "Maya|TEX_color_map":
|
|
5526
|
-
n.map = i.getTexture(t, o.ID), n.map !== void 0 && (n.map.colorSpace =
|
|
5545
|
+
n.map = i.getTexture(t, o.ID), n.map !== void 0 && (n.map.colorSpace = ge);
|
|
5527
5546
|
break;
|
|
5528
5547
|
case "DisplacementColor":
|
|
5529
5548
|
n.displacementMap = i.getTexture(t, o.ID);
|
|
5530
5549
|
break;
|
|
5531
5550
|
case "EmissiveColor":
|
|
5532
|
-
n.emissiveMap = i.getTexture(t, o.ID), n.emissiveMap !== void 0 && (n.emissiveMap.colorSpace =
|
|
5551
|
+
n.emissiveMap = i.getTexture(t, o.ID), n.emissiveMap !== void 0 && (n.emissiveMap.colorSpace = ge);
|
|
5533
5552
|
break;
|
|
5534
5553
|
case "NormalMap":
|
|
5535
5554
|
case "Maya|TEX_normal_map":
|
|
5536
5555
|
n.normalMap = i.getTexture(t, o.ID);
|
|
5537
5556
|
break;
|
|
5538
5557
|
case "ReflectionColor":
|
|
5539
|
-
n.envMap = i.getTexture(t, o.ID), n.envMap !== void 0 && (n.envMap.mapping = Nr, n.envMap.colorSpace =
|
|
5558
|
+
n.envMap = i.getTexture(t, o.ID), n.envMap !== void 0 && (n.envMap.mapping = Nr, n.envMap.colorSpace = ge);
|
|
5540
5559
|
break;
|
|
5541
5560
|
case "SpecularColor":
|
|
5542
|
-
n.specularMap = i.getTexture(t, o.ID), n.specularMap !== void 0 && (n.specularMap.colorSpace =
|
|
5561
|
+
n.specularMap = i.getTexture(t, o.ID), n.specularMap !== void 0 && (n.specularMap.colorSpace = ge);
|
|
5543
5562
|
break;
|
|
5544
5563
|
case "TransparentColor":
|
|
5545
5564
|
case "TransparencyFactor":
|
|
@@ -5557,15 +5576,15 @@ class Mc {
|
|
|
5557
5576
|
}
|
|
5558
5577
|
// get a texture from the textureMap for use by a material.
|
|
5559
5578
|
getTexture(e, t) {
|
|
5560
|
-
return "LayeredTexture" in
|
|
5579
|
+
return "LayeredTexture" in se.Objects && t in se.Objects.LayeredTexture && (console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."), t = _e.get(t).children[0].ID), e.get(t);
|
|
5561
5580
|
}
|
|
5562
5581
|
// Parse nodes in FBXTree.Objects.Deformer
|
|
5563
5582
|
// Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here
|
|
5564
5583
|
// Generates map of Skeleton-like objects for use later when generating and binding skeletons.
|
|
5565
5584
|
parseDeformers() {
|
|
5566
5585
|
const e = {}, t = {};
|
|
5567
|
-
if ("Deformer" in
|
|
5568
|
-
const s =
|
|
5586
|
+
if ("Deformer" in se.Objects) {
|
|
5587
|
+
const s = se.Objects.Deformer;
|
|
5569
5588
|
for (const n in s) {
|
|
5570
5589
|
const i = s[n], o = _e.get(parseInt(n));
|
|
5571
5590
|
if (i.attrType === "Skin") {
|
|
@@ -5628,15 +5647,15 @@ class Mc {
|
|
|
5628
5647
|
// create the main Group() to be returned by the loader
|
|
5629
5648
|
parseScene(e, t, s) {
|
|
5630
5649
|
ze = new sn();
|
|
5631
|
-
const n = this.parseModels(e.skeletons, t, s), i =
|
|
5650
|
+
const n = this.parseModels(e.skeletons, t, s), i = se.Objects.Model, o = this;
|
|
5632
5651
|
n.forEach(function(r) {
|
|
5633
5652
|
var h;
|
|
5634
5653
|
const c = i[r.ID];
|
|
5635
5654
|
o.setLookAtProperties(r, c);
|
|
5636
5655
|
const l = (h = _e.get(r.ID)) == null ? void 0 : h.parents;
|
|
5637
|
-
l == null || l.forEach(function(
|
|
5638
|
-
const
|
|
5639
|
-
|
|
5656
|
+
l == null || l.forEach(function(g) {
|
|
5657
|
+
const d = n.get(g.ID);
|
|
5658
|
+
d !== void 0 && d.add(r);
|
|
5640
5659
|
}), r.parent === null && ze.add(r);
|
|
5641
5660
|
}), this.bindSkeleton(e.skeletons, t, n), this.addGlobalSceneSettings(), ze.traverse(function(r) {
|
|
5642
5661
|
if (r.userData.transformData) {
|
|
@@ -5644,13 +5663,14 @@ class Mc {
|
|
|
5644
5663
|
const c = Ea(r.userData.transformData);
|
|
5645
5664
|
r.applyMatrix4(c), r.updateWorldMatrix();
|
|
5646
5665
|
}
|
|
5666
|
+
r.isSkinnedMesh && (r.computeBoundingBox(), r.computeBoundingSphere(), r.boundingBox.expandByScalar(3), r.boundingSphere.radius *= 3);
|
|
5647
5667
|
});
|
|
5648
5668
|
const a = new Fc().parse();
|
|
5649
5669
|
ze.children.length === 1 && ze.children[0].isGroup && (ze.children[0].animations = a, ze = ze.children[0]), ze.animations = a;
|
|
5650
5670
|
}
|
|
5651
5671
|
// parse nodes in FBXTree.Objects.Model
|
|
5652
5672
|
parseModels(e, t, s) {
|
|
5653
|
-
const n = /* @__PURE__ */ new Map(), i =
|
|
5673
|
+
const n = /* @__PURE__ */ new Map(), i = se.Objects.Model;
|
|
5654
5674
|
for (const o in i) {
|
|
5655
5675
|
const a = parseInt(o), r = i[o], c = _e.get(a);
|
|
5656
5676
|
let l = this.buildSkeleton(c, e, a, r.attrName);
|
|
@@ -5701,7 +5721,7 @@ class Mc {
|
|
|
5701
5721
|
createCamera(e) {
|
|
5702
5722
|
let t, s;
|
|
5703
5723
|
if (e.children.forEach(function(n) {
|
|
5704
|
-
const i =
|
|
5724
|
+
const i = se.Objects.NodeAttribute[n.ID];
|
|
5705
5725
|
i !== void 0 && (s = i);
|
|
5706
5726
|
}), s === void 0)
|
|
5707
5727
|
t = new xt();
|
|
@@ -5720,7 +5740,7 @@ class Mc {
|
|
|
5720
5740
|
const h = s.FocalLength ? s.FocalLength.value : null;
|
|
5721
5741
|
switch (n) {
|
|
5722
5742
|
case 0:
|
|
5723
|
-
t = new
|
|
5743
|
+
t = new ds(l, c, i, o), h !== null && t.setFocalLength(h);
|
|
5724
5744
|
break;
|
|
5725
5745
|
case 1:
|
|
5726
5746
|
console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."), t = new xt();
|
|
@@ -5736,7 +5756,7 @@ class Mc {
|
|
|
5736
5756
|
createLight(e) {
|
|
5737
5757
|
let t, s;
|
|
5738
5758
|
if (e.children.forEach(function(n) {
|
|
5739
|
-
const i =
|
|
5759
|
+
const i = se.Objects.NodeAttribute[n.ID];
|
|
5740
5760
|
i !== void 0 && (s = i);
|
|
5741
5761
|
}), s === void 0)
|
|
5742
5762
|
t = new xt();
|
|
@@ -5744,7 +5764,7 @@ class Mc {
|
|
|
5744
5764
|
let n;
|
|
5745
5765
|
s.LightType === void 0 ? n = 0 : n = s.LightType.value;
|
|
5746
5766
|
let i = 16777215;
|
|
5747
|
-
s.Color !== void 0 && (i = Ve.toWorkingColorSpace(new Se().fromArray(s.Color.value),
|
|
5767
|
+
s.Color !== void 0 && (i = Ve.toWorkingColorSpace(new Se().fromArray(s.Color.value), ge));
|
|
5748
5768
|
let o = s.Intensity === void 0 ? 1 : s.Intensity.value / 100;
|
|
5749
5769
|
s.CastLightOnObject !== void 0 && s.CastLightOnObject.value === 0 && (o = 0);
|
|
5750
5770
|
let a = 0;
|
|
@@ -5755,13 +5775,13 @@ class Mc {
|
|
|
5755
5775
|
t = new Vs(i, o, a, r);
|
|
5756
5776
|
break;
|
|
5757
5777
|
case 1:
|
|
5758
|
-
t = new
|
|
5778
|
+
t = new vo(i, o);
|
|
5759
5779
|
break;
|
|
5760
5780
|
case 2:
|
|
5761
5781
|
let c = Math.PI / 3;
|
|
5762
5782
|
s.InnerAngle !== void 0 && (c = ye.degToRad(s.InnerAngle.value));
|
|
5763
5783
|
let l = 0;
|
|
5764
|
-
s.OuterAngle !== void 0 && (l = ye.degToRad(s.OuterAngle.value), l = Math.max(l, 1)), t = new
|
|
5784
|
+
s.OuterAngle !== void 0 && (l = ye.degToRad(s.OuterAngle.value), l = Math.max(l, 1)), t = new To(i, o, a, c, l, r);
|
|
5765
5785
|
break;
|
|
5766
5786
|
default:
|
|
5767
5787
|
console.warn("THREE.FBXLoader: Unknown light type " + s.LightType.value + ", defaulting to a PointLight."), t = new Vs(i, o);
|
|
@@ -5774,14 +5794,25 @@ class Mc {
|
|
|
5774
5794
|
createMesh(e, t, s) {
|
|
5775
5795
|
let n, i = null, o = null;
|
|
5776
5796
|
const a = [];
|
|
5777
|
-
|
|
5797
|
+
if (e.children.forEach(function(r) {
|
|
5778
5798
|
t.has(r.ID) && (i = t.get(r.ID)), s.has(r.ID) && a.push(s.get(r.ID));
|
|
5779
5799
|
}), a.length > 1 ? o = a : a.length > 0 ? o = a[0] : (o = new Pn({
|
|
5780
5800
|
name: Nt.DEFAULT_MATERIAL_NAME,
|
|
5781
5801
|
color: 13421772
|
|
5782
5802
|
}), a.push(o)), "color" in i.attributes && a.forEach(function(r) {
|
|
5783
5803
|
r.vertexColors = !0;
|
|
5784
|
-
}), i.
|
|
5804
|
+
}), i.groups.length > 0) {
|
|
5805
|
+
let r = !1;
|
|
5806
|
+
for (let c = 0, l = i.groups.length; c < l; c++) {
|
|
5807
|
+
const h = i.groups[c];
|
|
5808
|
+
(h.materialIndex < 0 || h.materialIndex >= a.length) && (h.materialIndex = a.length, r = !0);
|
|
5809
|
+
}
|
|
5810
|
+
if (r) {
|
|
5811
|
+
const c = new ui();
|
|
5812
|
+
a.push(c);
|
|
5813
|
+
}
|
|
5814
|
+
}
|
|
5815
|
+
return i.FBX_Deformer ? (n = new di(i, o), n.normalizeSkinWeights()) : n = new z(i, o), n;
|
|
5785
5816
|
}
|
|
5786
5817
|
createCurve(e, t) {
|
|
5787
5818
|
const s = e.children.reduce(function(i, o) {
|
|
@@ -5791,7 +5822,7 @@ class Mc {
|
|
|
5791
5822
|
color: 3342591,
|
|
5792
5823
|
linewidth: 1
|
|
5793
5824
|
});
|
|
5794
|
-
return new
|
|
5825
|
+
return new dt(s, n);
|
|
5795
5826
|
}
|
|
5796
5827
|
// parse the model node for transform data
|
|
5797
5828
|
getTransformData(e, t) {
|
|
@@ -5801,7 +5832,7 @@ class Mc {
|
|
|
5801
5832
|
setLookAtProperties(e, t) {
|
|
5802
5833
|
"LookAtProperty" in t && _e.get(e.ID).children.forEach(function(n) {
|
|
5803
5834
|
if (n.relationship === "LookAtProperty") {
|
|
5804
|
-
const i =
|
|
5835
|
+
const i = se.Objects.Model[n.ID];
|
|
5805
5836
|
if ("Lcl_Translation" in i) {
|
|
5806
5837
|
const o = i.Lcl_Translation.value;
|
|
5807
5838
|
e.target !== void 0 ? (e.target.position.fromArray(o), ze.add(e.target)) : e.lookAt(new P().fromArray(o));
|
|
@@ -5825,8 +5856,8 @@ class Mc {
|
|
|
5825
5856
|
}
|
|
5826
5857
|
parsePoseNodes() {
|
|
5827
5858
|
const e = {};
|
|
5828
|
-
if ("Pose" in
|
|
5829
|
-
const t =
|
|
5859
|
+
if ("Pose" in se.Objects) {
|
|
5860
|
+
const t = se.Objects.Pose;
|
|
5830
5861
|
for (const s in t)
|
|
5831
5862
|
if (t[s].attrType === "BindPose" && t[s].NbPoseNodes > 0) {
|
|
5832
5863
|
const n = t[s].PoseNode;
|
|
@@ -5838,15 +5869,15 @@ class Mc {
|
|
|
5838
5869
|
return e;
|
|
5839
5870
|
}
|
|
5840
5871
|
addGlobalSceneSettings() {
|
|
5841
|
-
if ("GlobalSettings" in
|
|
5842
|
-
if ("AmbientColor" in
|
|
5843
|
-
const e =
|
|
5872
|
+
if ("GlobalSettings" in se) {
|
|
5873
|
+
if ("AmbientColor" in se.GlobalSettings) {
|
|
5874
|
+
const e = se.GlobalSettings.AmbientColor.value, t = e[0], s = e[1], n = e[2];
|
|
5844
5875
|
if (t !== 0 || s !== 0 || n !== 0) {
|
|
5845
|
-
const i = new Se().setRGB(t, s, n,
|
|
5876
|
+
const i = new Se().setRGB(t, s, n, ge);
|
|
5846
5877
|
ze.add(new Ur(i, 1));
|
|
5847
5878
|
}
|
|
5848
5879
|
}
|
|
5849
|
-
"UnitScaleFactor" in
|
|
5880
|
+
"UnitScaleFactor" in se.GlobalSettings && (ze.userData.unitScaleFactor = se.GlobalSettings.UnitScaleFactor.value);
|
|
5850
5881
|
}
|
|
5851
5882
|
}
|
|
5852
5883
|
}
|
|
@@ -5857,8 +5888,8 @@ class kc {
|
|
|
5857
5888
|
// Parse nodes in FBXTree.Objects.Geometry
|
|
5858
5889
|
parse(e) {
|
|
5859
5890
|
const t = /* @__PURE__ */ new Map();
|
|
5860
|
-
if ("Geometry" in
|
|
5861
|
-
const s =
|
|
5891
|
+
if ("Geometry" in se.Objects) {
|
|
5892
|
+
const s = se.Objects.Geometry;
|
|
5862
5893
|
for (const n in s) {
|
|
5863
5894
|
const i = _e.get(parseInt(n)), o = this.parseGeometry(i, s[n], e);
|
|
5864
5895
|
t.set(parseInt(n), o);
|
|
@@ -5878,12 +5909,12 @@ class kc {
|
|
|
5878
5909
|
// Parse single node mesh geometry in FBXTree.Objects.Geometry
|
|
5879
5910
|
parseMeshGeometry(e, t, s) {
|
|
5880
5911
|
const n = s.skeletons, i = [], o = e.parents.map(function(h) {
|
|
5881
|
-
return
|
|
5912
|
+
return se.Objects.Model[h.ID];
|
|
5882
5913
|
});
|
|
5883
5914
|
if (o.length === 0)
|
|
5884
5915
|
return;
|
|
5885
|
-
const a = e.children.reduce(function(h,
|
|
5886
|
-
return n[
|
|
5916
|
+
const a = e.children.reduce(function(h, g) {
|
|
5917
|
+
return n[g.ID] !== void 0 && (h = n[g.ID]), h;
|
|
5887
5918
|
}, null);
|
|
5888
5919
|
e.children.forEach(function(h) {
|
|
5889
5920
|
s.morphTargets[h.ID] !== void 0 && i.push(s.morphTargets[h.ID]);
|
|
@@ -5907,11 +5938,11 @@ class kc {
|
|
|
5907
5938
|
i.setAttribute(h, new ke(a.uvs[l], 2));
|
|
5908
5939
|
}), o.material && o.material.mappingType !== "AllSame") {
|
|
5909
5940
|
let c = a.materialIndex[0], l = 0;
|
|
5910
|
-
if (a.materialIndex.forEach(function(h,
|
|
5911
|
-
h !== c && (i.addGroup(l,
|
|
5941
|
+
if (a.materialIndex.forEach(function(h, g) {
|
|
5942
|
+
h !== c && (i.addGroup(l, g - l, c), c = h, l = g);
|
|
5912
5943
|
}), i.groups.length > 0) {
|
|
5913
|
-
const h = i.groups[i.groups.length - 1],
|
|
5914
|
-
|
|
5944
|
+
const h = i.groups[i.groups.length - 1], g = h.start + h.count;
|
|
5945
|
+
g !== a.materialIndex.length && i.addGroup(g, a.materialIndex.length - g, c);
|
|
5915
5946
|
}
|
|
5916
5947
|
i.groups.length === 0 && i.addGroup(0, a.materialIndex.length, a.materialIndex[0]);
|
|
5917
5948
|
}
|
|
@@ -5945,17 +5976,17 @@ class kc {
|
|
|
5945
5976
|
weightsIndices: []
|
|
5946
5977
|
};
|
|
5947
5978
|
let s = 0, n = 0, i = !1, o = [], a = [], r = [], c = [], l = [], h = [];
|
|
5948
|
-
const
|
|
5949
|
-
return e.vertexIndices.forEach(function(
|
|
5979
|
+
const g = this;
|
|
5980
|
+
return e.vertexIndices.forEach(function(d, p) {
|
|
5950
5981
|
let m, I = !1;
|
|
5951
|
-
|
|
5982
|
+
d < 0 && (d = d ^ -1, I = !0);
|
|
5952
5983
|
let b = [], B = [];
|
|
5953
|
-
if (o.push(
|
|
5954
|
-
const E = Xn(p, s,
|
|
5984
|
+
if (o.push(d * 3, d * 3 + 1, d * 3 + 2), e.color) {
|
|
5985
|
+
const E = Xn(p, s, d, e.color);
|
|
5955
5986
|
r.push(E[0], E[1], E[2]);
|
|
5956
5987
|
}
|
|
5957
5988
|
if (e.skeleton) {
|
|
5958
|
-
if (e.weightTable[
|
|
5989
|
+
if (e.weightTable[d] !== void 0 && e.weightTable[d].forEach(function(E) {
|
|
5959
5990
|
B.push(E.weight), b.push(E.id);
|
|
5960
5991
|
}), B.length > 4) {
|
|
5961
5992
|
i || (console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."), i = !0);
|
|
@@ -5977,13 +6008,13 @@ class kc {
|
|
|
5977
6008
|
l.push(B[E]), h.push(b[E]);
|
|
5978
6009
|
}
|
|
5979
6010
|
if (e.normal) {
|
|
5980
|
-
const E = Xn(p, s,
|
|
6011
|
+
const E = Xn(p, s, d, e.normal);
|
|
5981
6012
|
a.push(E[0], E[1], E[2]);
|
|
5982
6013
|
}
|
|
5983
|
-
e.material && e.material.mappingType !== "AllSame" && (m = Xn(p, s,
|
|
5984
|
-
const Q = Xn(p, s,
|
|
6014
|
+
e.material && e.material.mappingType !== "AllSame" && (m = Xn(p, s, d, e.material)[0], m < 0 && (g.negativeMaterialIndices = !0, m = 0)), e.uv && e.uv.forEach(function(E, w) {
|
|
6015
|
+
const Q = Xn(p, s, d, E);
|
|
5985
6016
|
c[w] === void 0 && (c[w] = []), c[w].push(Q[0]), c[w].push(Q[1]);
|
|
5986
|
-
}), n++, I && (
|
|
6017
|
+
}), n++, I && (g.genFace(t, e, o, m, a, r, c, l, h, n), s++, n = 0, o = [], a = [], r = [], c = [], l = [], h = []);
|
|
5987
6018
|
}), t;
|
|
5988
6019
|
}
|
|
5989
6020
|
// See https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normal
|
|
@@ -6013,24 +6044,24 @@ class kc {
|
|
|
6013
6044
|
genFace(e, t, s, n, i, o, a, r, c, l) {
|
|
6014
6045
|
let h;
|
|
6015
6046
|
if (l > 3) {
|
|
6016
|
-
const
|
|
6047
|
+
const g = [], d = t.baseVertexPositions || t.vertexPositions;
|
|
6017
6048
|
for (let b = 0; b < s.length; b += 3)
|
|
6018
|
-
|
|
6049
|
+
g.push(
|
|
6019
6050
|
new P(
|
|
6020
|
-
|
|
6021
|
-
|
|
6022
|
-
|
|
6051
|
+
d[s[b]],
|
|
6052
|
+
d[s[b + 1]],
|
|
6053
|
+
d[s[b + 2]]
|
|
6023
6054
|
)
|
|
6024
6055
|
);
|
|
6025
|
-
const { tangent: p, bitangent: m } = this.getNormalTangentAndBitangent(
|
|
6026
|
-
for (const b of
|
|
6056
|
+
const { tangent: p, bitangent: m } = this.getNormalTangentAndBitangent(g), I = [];
|
|
6057
|
+
for (const b of g)
|
|
6027
6058
|
I.push(this.flattenVertex(b, p, m));
|
|
6028
6059
|
h = Pr.triangulateShape(I, []);
|
|
6029
6060
|
} else
|
|
6030
6061
|
h = [[0, 1, 2]];
|
|
6031
|
-
for (const [
|
|
6032
|
-
e.vertex.push(t.vertexPositions[s[
|
|
6033
|
-
e.uvs[I] === void 0 && (e.uvs[I] = []), e.uvs[I].push(a[I][
|
|
6062
|
+
for (const [g, d, p] of h)
|
|
6063
|
+
e.vertex.push(t.vertexPositions[s[g * 3]]), e.vertex.push(t.vertexPositions[s[g * 3 + 1]]), e.vertex.push(t.vertexPositions[s[g * 3 + 2]]), e.vertex.push(t.vertexPositions[s[d * 3]]), e.vertex.push(t.vertexPositions[s[d * 3 + 1]]), e.vertex.push(t.vertexPositions[s[d * 3 + 2]]), e.vertex.push(t.vertexPositions[s[p * 3]]), e.vertex.push(t.vertexPositions[s[p * 3 + 1]]), e.vertex.push(t.vertexPositions[s[p * 3 + 2]]), t.skeleton && (e.vertexWeights.push(r[g * 4]), e.vertexWeights.push(r[g * 4 + 1]), e.vertexWeights.push(r[g * 4 + 2]), e.vertexWeights.push(r[g * 4 + 3]), e.vertexWeights.push(r[d * 4]), e.vertexWeights.push(r[d * 4 + 1]), e.vertexWeights.push(r[d * 4 + 2]), e.vertexWeights.push(r[d * 4 + 3]), e.vertexWeights.push(r[p * 4]), e.vertexWeights.push(r[p * 4 + 1]), e.vertexWeights.push(r[p * 4 + 2]), e.vertexWeights.push(r[p * 4 + 3]), e.weightsIndices.push(c[g * 4]), e.weightsIndices.push(c[g * 4 + 1]), e.weightsIndices.push(c[g * 4 + 2]), e.weightsIndices.push(c[g * 4 + 3]), e.weightsIndices.push(c[d * 4]), e.weightsIndices.push(c[d * 4 + 1]), e.weightsIndices.push(c[d * 4 + 2]), e.weightsIndices.push(c[d * 4 + 3]), e.weightsIndices.push(c[p * 4]), e.weightsIndices.push(c[p * 4 + 1]), e.weightsIndices.push(c[p * 4 + 2]), e.weightsIndices.push(c[p * 4 + 3])), t.color && (e.colors.push(o[g * 3]), e.colors.push(o[g * 3 + 1]), e.colors.push(o[g * 3 + 2]), e.colors.push(o[d * 3]), e.colors.push(o[d * 3 + 1]), e.colors.push(o[d * 3 + 2]), e.colors.push(o[p * 3]), e.colors.push(o[p * 3 + 1]), e.colors.push(o[p * 3 + 2])), t.material && t.material.mappingType !== "AllSame" && (e.materialIndex.push(n), e.materialIndex.push(n), e.materialIndex.push(n)), t.normal && (e.normal.push(i[g * 3]), e.normal.push(i[g * 3 + 1]), e.normal.push(i[g * 3 + 2]), e.normal.push(i[d * 3]), e.normal.push(i[d * 3 + 1]), e.normal.push(i[d * 3 + 2]), e.normal.push(i[p * 3]), e.normal.push(i[p * 3 + 1]), e.normal.push(i[p * 3 + 2])), t.uv && t.uv.forEach(function(m, I) {
|
|
6064
|
+
e.uvs[I] === void 0 && (e.uvs[I] = []), e.uvs[I].push(a[I][g * 2]), e.uvs[I].push(a[I][g * 2 + 1]), e.uvs[I].push(a[I][d * 2]), e.uvs[I].push(a[I][d * 2 + 1]), e.uvs[I].push(a[I][p * 2]), e.uvs[I].push(a[I][p * 2 + 1]);
|
|
6034
6065
|
});
|
|
6035
6066
|
}
|
|
6036
6067
|
addMorphTargets(e, t, s, n) {
|
|
@@ -6040,7 +6071,7 @@ class kc {
|
|
|
6040
6071
|
const i = this;
|
|
6041
6072
|
s.forEach(function(o) {
|
|
6042
6073
|
o.rawTargets.forEach(function(a) {
|
|
6043
|
-
const r =
|
|
6074
|
+
const r = se.Objects.Geometry[a.geoID];
|
|
6044
6075
|
r !== void 0 && i.genMorphGeometry(e, t, r, n, a.name);
|
|
6045
6076
|
});
|
|
6046
6077
|
});
|
|
@@ -6055,11 +6086,11 @@ class kc {
|
|
|
6055
6086
|
const I = c[m] * 3;
|
|
6056
6087
|
h[I] = r[m * 3], h[I + 1] = r[m * 3 + 1], h[I + 2] = r[m * 3 + 2];
|
|
6057
6088
|
}
|
|
6058
|
-
const
|
|
6089
|
+
const g = {
|
|
6059
6090
|
vertexIndices: a,
|
|
6060
6091
|
vertexPositions: h,
|
|
6061
6092
|
baseVertexPositions: o
|
|
6062
|
-
},
|
|
6093
|
+
}, d = this.genBuffers(g), p = new ke(d.vertex, 3);
|
|
6063
6094
|
p.name = i || s.attrName, p.applyMatrix4(n), e.morphAttributes.position.push(p);
|
|
6064
6095
|
}
|
|
6065
6096
|
// Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists
|
|
@@ -6094,7 +6125,7 @@ class kc {
|
|
|
6094
6125
|
let i = [];
|
|
6095
6126
|
s === "IndexToDirect" && (i = e.ColorIndex.a);
|
|
6096
6127
|
for (let o = 0, a = new Se(); o < n.length; o += 4)
|
|
6097
|
-
a.fromArray(n, o), Ve.toWorkingColorSpace(a,
|
|
6128
|
+
a.fromArray(n, o), Ve.toWorkingColorSpace(a, ge), a.toArray(n, o);
|
|
6098
6129
|
return {
|
|
6099
6130
|
dataSize: 4,
|
|
6100
6131
|
buffer: n,
|
|
@@ -6131,7 +6162,7 @@ class kc {
|
|
|
6131
6162
|
if (isNaN(t))
|
|
6132
6163
|
return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s", e.Order, e.id), new ut();
|
|
6133
6164
|
const s = t - 1, n = e.KnotVector.a, i = [], o = e.Points.a;
|
|
6134
|
-
for (let h = 0,
|
|
6165
|
+
for (let h = 0, g = o.length; h < g; h += 4)
|
|
6135
6166
|
i.push(new Ut().fromArray(o, h));
|
|
6136
6167
|
let a, r;
|
|
6137
6168
|
if (e.Form === "Closed")
|
|
@@ -6157,7 +6188,7 @@ class Fc {
|
|
|
6157
6188
|
return e;
|
|
6158
6189
|
}
|
|
6159
6190
|
parseClips() {
|
|
6160
|
-
if (
|
|
6191
|
+
if (se.Objects.AnimationCurve === void 0)
|
|
6161
6192
|
return;
|
|
6162
6193
|
const e = this.parseAnimationCurveNodes();
|
|
6163
6194
|
this.parseAnimationCurves(e);
|
|
@@ -6168,7 +6199,7 @@ class Fc {
|
|
|
6168
6199
|
// each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )
|
|
6169
6200
|
// and is referenced by an AnimationLayer
|
|
6170
6201
|
parseAnimationCurveNodes() {
|
|
6171
|
-
const e =
|
|
6202
|
+
const e = se.Objects.AnimationCurveNode, t = /* @__PURE__ */ new Map();
|
|
6172
6203
|
for (const s in e) {
|
|
6173
6204
|
const n = e[s];
|
|
6174
6205
|
if (n.attrName.match(/S|R|T|DeformPercent/) !== null) {
|
|
@@ -6186,7 +6217,7 @@ class Fc {
|
|
|
6186
6217
|
// previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated
|
|
6187
6218
|
// axis ( e.g. times and values of x rotation)
|
|
6188
6219
|
parseAnimationCurves(e) {
|
|
6189
|
-
const t =
|
|
6220
|
+
const t = se.Objects.AnimationCurve;
|
|
6190
6221
|
for (const s in t) {
|
|
6191
6222
|
const n = {
|
|
6192
6223
|
id: t[s].id,
|
|
@@ -6203,7 +6234,7 @@ class Fc {
|
|
|
6203
6234
|
// to various AnimationCurveNodes and is referenced by an AnimationStack node
|
|
6204
6235
|
// note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack
|
|
6205
6236
|
parseAnimationLayers(e) {
|
|
6206
|
-
const t =
|
|
6237
|
+
const t = se.Objects.AnimationLayer, s = /* @__PURE__ */ new Map();
|
|
6207
6238
|
for (const n in t) {
|
|
6208
6239
|
const i = [], o = _e.get(parseInt(n));
|
|
6209
6240
|
o !== void 0 && (o.children.forEach(function(r, c) {
|
|
@@ -6211,25 +6242,25 @@ class Fc {
|
|
|
6211
6242
|
const l = e.get(r.ID);
|
|
6212
6243
|
if (l.curves.x !== void 0 || l.curves.y !== void 0 || l.curves.z !== void 0) {
|
|
6213
6244
|
if (i[c] === void 0) {
|
|
6214
|
-
const h = _e.get(r.ID).parents.filter(function(
|
|
6215
|
-
return
|
|
6245
|
+
const h = _e.get(r.ID).parents.filter(function(g) {
|
|
6246
|
+
return g.relationship !== void 0;
|
|
6216
6247
|
})[0].ID;
|
|
6217
6248
|
if (h !== void 0) {
|
|
6218
|
-
const
|
|
6219
|
-
if (
|
|
6249
|
+
const g = se.Objects.Model[h.toString()];
|
|
6250
|
+
if (g === void 0) {
|
|
6220
6251
|
console.warn("THREE.FBXLoader: Encountered a unused curve.", r);
|
|
6221
6252
|
return;
|
|
6222
6253
|
}
|
|
6223
|
-
const
|
|
6224
|
-
modelName:
|
|
6225
|
-
ID:
|
|
6254
|
+
const d = {
|
|
6255
|
+
modelName: g.attrName ? It.sanitizeNodeName(g.attrName) : "",
|
|
6256
|
+
ID: g.id,
|
|
6226
6257
|
initialPosition: [0, 0, 0],
|
|
6227
6258
|
initialRotation: [0, 0, 0],
|
|
6228
6259
|
initialScale: [1, 1, 1]
|
|
6229
6260
|
};
|
|
6230
6261
|
ze.traverse(function(p) {
|
|
6231
|
-
p.ID ===
|
|
6232
|
-
}),
|
|
6262
|
+
p.ID === g.id && (d.transform = p.matrix, p.userData.transformData && (d.eulerOrder = p.userData.transformData.eulerOrder));
|
|
6263
|
+
}), d.transform || (d.transform = new ue()), "PreRotation" in g && (d.preRotation = g.PreRotation.value), "PostRotation" in g && (d.postRotation = g.PostRotation.value), i[c] = d;
|
|
6233
6264
|
}
|
|
6234
6265
|
}
|
|
6235
6266
|
i[c] && (i[c][l.attr] = l);
|
|
@@ -6237,9 +6268,9 @@ class Fc {
|
|
|
6237
6268
|
if (i[c] === void 0) {
|
|
6238
6269
|
const h = _e.get(r.ID).parents.filter(function(b) {
|
|
6239
6270
|
return b.relationship !== void 0;
|
|
6240
|
-
})[0].ID,
|
|
6271
|
+
})[0].ID, g = _e.get(h).parents[0].ID, d = _e.get(g).parents[0].ID, p = _e.get(d).parents[0].ID, m = se.Objects.Model[p], I = {
|
|
6241
6272
|
modelName: m.attrName ? It.sanitizeNodeName(m.attrName) : "",
|
|
6242
|
-
morphName:
|
|
6273
|
+
morphName: se.Objects.Deformer[h].attrName
|
|
6243
6274
|
};
|
|
6244
6275
|
i[c] = I;
|
|
6245
6276
|
}
|
|
@@ -6253,7 +6284,7 @@ class Fc {
|
|
|
6253
6284
|
// parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation
|
|
6254
6285
|
// hierarchy. Each Stack node will be used to create a AnimationClip
|
|
6255
6286
|
parseAnimStacks(e) {
|
|
6256
|
-
const t =
|
|
6287
|
+
const t = se.Objects.AnimationStack, s = {};
|
|
6257
6288
|
for (const n in t) {
|
|
6258
6289
|
const i = _e.get(parseInt(n)).children;
|
|
6259
6290
|
i.length > 1 && console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");
|
|
@@ -6270,7 +6301,7 @@ class Fc {
|
|
|
6270
6301
|
const s = this;
|
|
6271
6302
|
return e.layer.forEach(function(n) {
|
|
6272
6303
|
t = t.concat(s.generateTracks(n));
|
|
6273
|
-
}), new
|
|
6304
|
+
}), new pi(e.name, -1, t);
|
|
6274
6305
|
}
|
|
6275
6306
|
generateTracks(e) {
|
|
6276
6307
|
const t = [];
|
|
@@ -6304,18 +6335,18 @@ class Fc {
|
|
|
6304
6335
|
return;
|
|
6305
6336
|
}
|
|
6306
6337
|
if (t.x !== void 0 && t.y !== void 0 && t.z !== void 0) {
|
|
6307
|
-
const
|
|
6308
|
-
o =
|
|
6338
|
+
const g = this.interpolateRotations(t.x, t.y, t.z, i);
|
|
6339
|
+
o = g[0], a = g[1];
|
|
6309
6340
|
}
|
|
6310
6341
|
const r = Hn(0);
|
|
6311
6342
|
s !== void 0 && (s = s.map(ye.degToRad), s.push(r), s = new zt().fromArray(s), s = new Te().setFromEuler(s)), n !== void 0 && (n = n.map(ye.degToRad), n.push(r), n = new zt().fromArray(n), n = new Te().setFromEuler(n).invert());
|
|
6312
6343
|
const c = new Te(), l = new zt(), h = [];
|
|
6313
6344
|
if (!(!a || !o)) {
|
|
6314
|
-
for (let
|
|
6315
|
-
l.set(a[
|
|
6345
|
+
for (let g = 0; g < a.length; g += 3)
|
|
6346
|
+
l.set(a[g], a[g + 1], a[g + 2], i), c.setFromEuler(l), s !== void 0 && c.premultiply(s), n !== void 0 && c.multiply(n), g > 2 && new Te().fromArray(
|
|
6316
6347
|
h,
|
|
6317
|
-
(
|
|
6318
|
-
).dot(c) < 0 && c.set(-c.x, -c.y, -c.z, -c.w), c.toArray(h,
|
|
6348
|
+
(g - 3) / 3 * 4
|
|
6349
|
+
).dot(c) < 0 && c.set(-c.x, -c.y, -c.z, -c.w), c.toArray(h, g / 3 * 4);
|
|
6319
6350
|
return new us(e + ".quaternion", o, h);
|
|
6320
6351
|
}
|
|
6321
6352
|
}
|
|
@@ -6383,17 +6414,17 @@ class Fc {
|
|
|
6383
6414
|
];
|
|
6384
6415
|
if (isNaN(l[0]) || isNaN(l[1]) || isNaN(l[2]))
|
|
6385
6416
|
continue;
|
|
6386
|
-
const h = l.map(ye.degToRad),
|
|
6417
|
+
const h = l.map(ye.degToRad), g = [
|
|
6387
6418
|
l[0] - r[0],
|
|
6388
6419
|
l[1] - r[1],
|
|
6389
6420
|
l[2] - r[2]
|
|
6390
|
-
],
|
|
6391
|
-
Math.abs(
|
|
6392
|
-
Math.abs(
|
|
6393
|
-
Math.abs(
|
|
6421
|
+
], d = [
|
|
6422
|
+
Math.abs(g[0]),
|
|
6423
|
+
Math.abs(g[1]),
|
|
6424
|
+
Math.abs(g[2])
|
|
6394
6425
|
];
|
|
6395
|
-
if (
|
|
6396
|
-
const m = Math.max(...
|
|
6426
|
+
if (d[0] >= 180 || d[1] >= 180 || d[2] >= 180) {
|
|
6427
|
+
const m = Math.max(...d) / 180, I = new zt(...c, n), b = new zt(...h, n), B = new Te().setFromEuler(I), E = new Te().setFromEuler(b);
|
|
6397
6428
|
B.dot(E) && E.set(-E.x, -E.y, -E.z, -E.w);
|
|
6398
6429
|
const w = e.times[a - 1], Q = e.times[a] - w, R = new Te(), _ = new zt();
|
|
6399
6430
|
for (let x = 0; x < 1; x += 1 / m)
|
|
@@ -6457,8 +6488,8 @@ class Lc {
|
|
|
6457
6488
|
if (n === "C") {
|
|
6458
6489
|
const r = i.split(",").slice(1), c = parseInt(r[0]), l = parseInt(r[1]);
|
|
6459
6490
|
let h = i.split(",").slice(3);
|
|
6460
|
-
h = h.map(function(
|
|
6461
|
-
return
|
|
6491
|
+
h = h.map(function(g) {
|
|
6492
|
+
return g.trim().replace(/^"/, "");
|
|
6462
6493
|
}), n = "connections", i = [c, l], Hc(i, h), o[n] === void 0 && (o[n] = []);
|
|
6463
6494
|
}
|
|
6464
6495
|
n === "Node" && (o.id = i), n in o && Array.isArray(o[n]) ? o[n].push(i) : n !== "a" ? o[n] = i : o.a = i, this.setCurrentProp(o, n), n === "a" && i.slice(-1) !== "," && (o.a = Us(i));
|
|
@@ -6502,7 +6533,7 @@ class Lc {
|
|
|
6502
6533
|
}
|
|
6503
6534
|
class Nc {
|
|
6504
6535
|
parse(e) {
|
|
6505
|
-
const t = new
|
|
6536
|
+
const t = new to(e);
|
|
6506
6537
|
t.skip(23);
|
|
6507
6538
|
const s = t.getUint32();
|
|
6508
6539
|
if (s < 6400)
|
|
@@ -6526,12 +6557,12 @@ class Nc {
|
|
|
6526
6557
|
if (n === 0)
|
|
6527
6558
|
return null;
|
|
6528
6559
|
const r = [];
|
|
6529
|
-
for (let
|
|
6560
|
+
for (let g = 0; g < i; g++)
|
|
6530
6561
|
r.push(this.parseProperty(e));
|
|
6531
6562
|
const c = r.length > 0 ? r[0] : "", l = r.length > 1 ? r[1] : "", h = r.length > 2 ? r[2] : "";
|
|
6532
6563
|
for (s.singleProperty = i === 1 && e.getOffset() === n; n > e.getOffset(); ) {
|
|
6533
|
-
const
|
|
6534
|
-
|
|
6564
|
+
const g = this.parseNode(e, t);
|
|
6565
|
+
g !== null && this.parseSubNode(a, s, g);
|
|
6535
6566
|
}
|
|
6536
6567
|
return s.propertyList = r, typeof c == "number" && (s.id = c), l !== "" && (s.attrName = l), h !== "" && (s.attrType = h), a !== "" && (s.name = a), s;
|
|
6537
6568
|
}
|
|
@@ -6606,7 +6637,7 @@ class Nc {
|
|
|
6606
6637
|
case "l":
|
|
6607
6638
|
return e.getInt64Array(n);
|
|
6608
6639
|
}
|
|
6609
|
-
const a = Ln(new Uint8Array(e.getArrayBuffer(o))), r = new
|
|
6640
|
+
const a = Ln(new Uint8Array(e.getArrayBuffer(o))), r = new to(a.buffer);
|
|
6610
6641
|
switch (t) {
|
|
6611
6642
|
case "b":
|
|
6612
6643
|
case "c":
|
|
@@ -6626,7 +6657,7 @@ class Nc {
|
|
|
6626
6657
|
}
|
|
6627
6658
|
}
|
|
6628
6659
|
}
|
|
6629
|
-
class
|
|
6660
|
+
class to {
|
|
6630
6661
|
constructor(e, t) {
|
|
6631
6662
|
this.dv = new DataView(e), this.offset = 0, this.littleEndian = t !== void 0 ? t : !0, this._textDecoder = new TextDecoder();
|
|
6632
6663
|
}
|
|
@@ -6746,7 +6777,7 @@ function Gc(A) {
|
|
|
6746
6777
|
return !1;
|
|
6747
6778
|
return !0;
|
|
6748
6779
|
}
|
|
6749
|
-
function
|
|
6780
|
+
function no(A) {
|
|
6750
6781
|
const e = /FBXVersion: (\d+)/, t = A.match(e);
|
|
6751
6782
|
if (t)
|
|
6752
6783
|
return parseInt(t[1]);
|
|
@@ -6780,7 +6811,7 @@ function Xn(A, e, t, s) {
|
|
|
6780
6811
|
}
|
|
6781
6812
|
const Ns = new zt(), hn = new P();
|
|
6782
6813
|
function Ea(A) {
|
|
6783
|
-
const e = new ue(), t = new ue(), s = new ue(), n = new ue(), i = new ue(), o = new ue(), a = new ue(), r = new ue(), c = new ue(), l = new ue(), h = new ue(),
|
|
6814
|
+
const e = new ue(), t = new ue(), s = new ue(), n = new ue(), i = new ue(), o = new ue(), a = new ue(), r = new ue(), c = new ue(), l = new ue(), h = new ue(), g = new ue(), d = A.inheritType ? A.inheritType : 0;
|
|
6784
6815
|
A.translation && e.setPosition(hn.fromArray(A.translation));
|
|
6785
6816
|
const p = Hn(0);
|
|
6786
6817
|
if (A.preRotation) {
|
|
@@ -6801,9 +6832,9 @@ function Ea(A) {
|
|
|
6801
6832
|
const b = new ue();
|
|
6802
6833
|
b.copyPosition(l);
|
|
6803
6834
|
const B = b.clone().invert().multiply(l), E = I.clone().invert().multiply(B), w = i, Q = new ue();
|
|
6804
|
-
if (
|
|
6835
|
+
if (d === 0)
|
|
6805
6836
|
Q.copy(I).multiply(m).multiply(E).multiply(w);
|
|
6806
|
-
else if (
|
|
6837
|
+
else if (d === 1)
|
|
6807
6838
|
Q.copy(I).multiply(E).multiply(m).multiply(w);
|
|
6808
6839
|
else {
|
|
6809
6840
|
const O = new ue().scale(new P().setFromMatrixScale(h)).clone().invert(), Z = E.clone().multiply(O);
|
|
@@ -6812,7 +6843,7 @@ function Ea(A) {
|
|
|
6812
6843
|
const R = c.clone().invert(), _ = o.clone().invert();
|
|
6813
6844
|
let x = e.clone().multiply(r).multiply(c).multiply(t).multiply(s).multiply(n).multiply(R).multiply(a).multiply(o).multiply(i).multiply(_);
|
|
6814
6845
|
const T = new ue().copyPosition(x), L = l.clone().multiply(T);
|
|
6815
|
-
return
|
|
6846
|
+
return g.copyPosition(L), x = g.clone().multiply(Q), x.premultiply(l.invert()), x;
|
|
6816
6847
|
}
|
|
6817
6848
|
function Hn(A) {
|
|
6818
6849
|
A = A || 0;
|
|
@@ -6903,14 +6934,14 @@ class qc extends Nt {
|
|
|
6903
6934
|
const l = c.indexOf(" ");
|
|
6904
6935
|
let h = l >= 0 ? c.substring(0, l) : c;
|
|
6905
6936
|
h = h.toLowerCase();
|
|
6906
|
-
let
|
|
6907
|
-
if (
|
|
6908
|
-
n = { name:
|
|
6937
|
+
let g = l >= 0 ? c.substring(l + 1) : "";
|
|
6938
|
+
if (g = g.trim(), h === "newmtl")
|
|
6939
|
+
n = { name: g }, o[g] = n;
|
|
6909
6940
|
else if (h === "ka" || h === "kd" || h === "ks" || h === "ke") {
|
|
6910
|
-
const
|
|
6911
|
-
n[h] = [parseFloat(
|
|
6941
|
+
const d = g.split(i, 3);
|
|
6942
|
+
n[h] = [parseFloat(d[0]), parseFloat(d[1]), parseFloat(d[2])];
|
|
6912
6943
|
} else
|
|
6913
|
-
n[h] =
|
|
6944
|
+
n[h] = g;
|
|
6914
6945
|
}
|
|
6915
6946
|
const a = new zc(this.resourcePath || t, this.materialOptions);
|
|
6916
6947
|
return a.setCrossOrigin(this.crossOrigin), a.setManager(this.manager), a.setMaterials(o), a;
|
|
@@ -6979,7 +7010,7 @@ class zc {
|
|
|
6979
7010
|
if (n[a])
|
|
6980
7011
|
return;
|
|
6981
7012
|
const c = t.getTextureParams(r, n), l = t.loadTexture(i(t.baseUrl, c.url));
|
|
6982
|
-
l.repeat.copy(c.scale), l.offset.copy(c.offset), l.wrapS = t.wrap, l.wrapT = t.wrap, (a === "map" || a === "emissiveMap") && (l.colorSpace =
|
|
7013
|
+
l.repeat.copy(c.scale), l.offset.copy(c.offset), l.wrapS = t.wrap, l.wrapT = t.wrap, (a === "map" || a === "emissiveMap") && (l.colorSpace = ge), n[a] = l;
|
|
6983
7014
|
}
|
|
6984
7015
|
for (const a in s) {
|
|
6985
7016
|
const r = s[a];
|
|
@@ -6987,13 +7018,13 @@ class zc {
|
|
|
6987
7018
|
if (r !== "")
|
|
6988
7019
|
switch (a.toLowerCase()) {
|
|
6989
7020
|
case "kd":
|
|
6990
|
-
n.color = Ve.toWorkingColorSpace(new Se().fromArray(r),
|
|
7021
|
+
n.color = Ve.toWorkingColorSpace(new Se().fromArray(r), ge);
|
|
6991
7022
|
break;
|
|
6992
7023
|
case "ks":
|
|
6993
|
-
n.specular = Ve.toWorkingColorSpace(new Se().fromArray(r),
|
|
7024
|
+
n.specular = Ve.toWorkingColorSpace(new Se().fromArray(r), ge);
|
|
6994
7025
|
break;
|
|
6995
7026
|
case "ke":
|
|
6996
|
-
n.emissive = Ve.toWorkingColorSpace(new Se().fromArray(r),
|
|
7027
|
+
n.emissive = Ve.toWorkingColorSpace(new Se().fromArray(r), ge);
|
|
6997
7028
|
break;
|
|
6998
7029
|
case "map_kd":
|
|
6999
7030
|
o("map", r);
|
|
@@ -7043,7 +7074,7 @@ class zc {
|
|
|
7043
7074
|
return t !== void 0 && (r.mapping = t), r;
|
|
7044
7075
|
}
|
|
7045
7076
|
}
|
|
7046
|
-
const Kc = /^[og]\s*(.+)?/, Yc = /^mtllib /, Jc = /^usemtl /, Vc = /^usemap /,
|
|
7077
|
+
const Kc = /^[og]\s*(.+)?/, Yc = /^mtllib /, Jc = /^usemtl /, Vc = /^usemap /, so = /\s+/, io = new P(), Gs = new P(), oo = new P(), ao = new P(), ct = new P(), Zn = new Se();
|
|
7047
7078
|
function Wc() {
|
|
7048
7079
|
const A = {
|
|
7049
7080
|
objects: [],
|
|
@@ -7153,7 +7184,7 @@ function Wc() {
|
|
|
7153
7184
|
},
|
|
7154
7185
|
addFaceNormal: function(e, t, s) {
|
|
7155
7186
|
const n = this.vertices, i = this.object.geometry.normals;
|
|
7156
|
-
|
|
7187
|
+
io.fromArray(n, e), Gs.fromArray(n, t), oo.fromArray(n, s), ct.subVectors(oo, Gs), ao.subVectors(io, Gs), ct.cross(ao), ct.normalize(), i.push(ct.x, ct.y, ct.z), i.push(ct.x, ct.y, ct.z), i.push(ct.x, ct.y, ct.z);
|
|
7157
7188
|
},
|
|
7158
7189
|
addColor: function(e, t, s) {
|
|
7159
7190
|
const n = this.colors, i = this.object.geometry.colors;
|
|
@@ -7173,15 +7204,15 @@ function Wc() {
|
|
|
7173
7204
|
},
|
|
7174
7205
|
addFace: function(e, t, s, n, i, o, a, r, c) {
|
|
7175
7206
|
const l = this.vertices.length;
|
|
7176
|
-
let h = this.parseVertexIndex(e, l),
|
|
7177
|
-
if (this.addVertex(h,
|
|
7207
|
+
let h = this.parseVertexIndex(e, l), g = this.parseVertexIndex(t, l), d = this.parseVertexIndex(s, l);
|
|
7208
|
+
if (this.addVertex(h, g, d), this.addColor(h, g, d), a !== void 0 && a !== "") {
|
|
7178
7209
|
const p = this.normals.length;
|
|
7179
|
-
h = this.parseNormalIndex(a, p),
|
|
7210
|
+
h = this.parseNormalIndex(a, p), g = this.parseNormalIndex(r, p), d = this.parseNormalIndex(c, p), this.addNormal(h, g, d);
|
|
7180
7211
|
} else
|
|
7181
|
-
this.addFaceNormal(h,
|
|
7212
|
+
this.addFaceNormal(h, g, d);
|
|
7182
7213
|
if (n !== void 0 && n !== "") {
|
|
7183
7214
|
const p = this.uvs.length;
|
|
7184
|
-
h = this.parseUVIndex(n, p),
|
|
7215
|
+
h = this.parseUVIndex(n, p), g = this.parseUVIndex(i, p), d = this.parseUVIndex(o, p), this.addUV(h, g, d), this.object.geometry.hasUVIndices = !0;
|
|
7185
7216
|
} else
|
|
7186
7217
|
this.addDefaultUV();
|
|
7187
7218
|
},
|
|
@@ -7214,10 +7245,10 @@ class Qh extends Nt {
|
|
|
7214
7245
|
try {
|
|
7215
7246
|
const r = i.parse(a, !0);
|
|
7216
7247
|
for (let c = 0, l = r.materialLibraries.length; c < l; c++) {
|
|
7217
|
-
const h = r.materialLibraries[c],
|
|
7218
|
-
console.debug("Loading MTL file: " +
|
|
7219
|
-
i.materialsLoader.load(
|
|
7220
|
-
i.setMaterials(m),
|
|
7248
|
+
const h = r.materialLibraries[c], g = e.startsWith("blob:") ? e + "/" + h : new URL(h, e);
|
|
7249
|
+
console.debug("Loading MTL file: " + g), await new Promise((d, p) => {
|
|
7250
|
+
i.materialsLoader.load(g.toString(), (m) => {
|
|
7251
|
+
i.setMaterials(m), d();
|
|
7221
7252
|
}, null, p);
|
|
7222
7253
|
});
|
|
7223
7254
|
}
|
|
@@ -7249,7 +7280,7 @@ class Qh extends Nt {
|
|
|
7249
7280
|
const c = r.charAt(0);
|
|
7250
7281
|
if (c !== "#")
|
|
7251
7282
|
if (c === "v") {
|
|
7252
|
-
const l = r.split(
|
|
7283
|
+
const l = r.split(so);
|
|
7253
7284
|
switch (l[0]) {
|
|
7254
7285
|
case "v":
|
|
7255
7286
|
s.vertices.push(
|
|
@@ -7260,7 +7291,7 @@ class Qh extends Nt {
|
|
|
7260
7291
|
parseFloat(l[4]),
|
|
7261
7292
|
parseFloat(l[5]),
|
|
7262
7293
|
parseFloat(l[6]),
|
|
7263
|
-
|
|
7294
|
+
ge
|
|
7264
7295
|
), s.colors.push(Zn.r, Zn.g, Zn.b)) : s.colors.push(void 0, void 0, void 0);
|
|
7265
7296
|
break;
|
|
7266
7297
|
case "vn":
|
|
@@ -7278,25 +7309,25 @@ class Qh extends Nt {
|
|
|
7278
7309
|
break;
|
|
7279
7310
|
}
|
|
7280
7311
|
} else if (c === "f") {
|
|
7281
|
-
const h = r.slice(1).trim().split(
|
|
7312
|
+
const h = r.slice(1).trim().split(so), g = [];
|
|
7282
7313
|
for (let p = 0, m = h.length; p < m; p++) {
|
|
7283
7314
|
const I = h[p];
|
|
7284
7315
|
if (I.length > 0) {
|
|
7285
7316
|
const b = I.split("/");
|
|
7286
|
-
|
|
7317
|
+
g.push(b);
|
|
7287
7318
|
}
|
|
7288
7319
|
}
|
|
7289
|
-
const
|
|
7290
|
-
for (let p = 1, m =
|
|
7291
|
-
const I =
|
|
7320
|
+
const d = g[0];
|
|
7321
|
+
for (let p = 1, m = g.length - 1; p < m; p++) {
|
|
7322
|
+
const I = g[p], b = g[p + 1];
|
|
7292
7323
|
s.addFace(
|
|
7293
|
-
|
|
7324
|
+
d[0],
|
|
7294
7325
|
I[0],
|
|
7295
7326
|
b[0],
|
|
7296
|
-
|
|
7327
|
+
d[1],
|
|
7297
7328
|
I[1],
|
|
7298
7329
|
b[1],
|
|
7299
|
-
|
|
7330
|
+
d[2],
|
|
7300
7331
|
I[2],
|
|
7301
7332
|
b[2]
|
|
7302
7333
|
);
|
|
@@ -7304,15 +7335,15 @@ class Qh extends Nt {
|
|
|
7304
7335
|
} else if (c === "l") {
|
|
7305
7336
|
const l = r.substring(1).trim().split(" ");
|
|
7306
7337
|
let h = [];
|
|
7307
|
-
const
|
|
7338
|
+
const g = [];
|
|
7308
7339
|
if (r.indexOf("/") === -1)
|
|
7309
7340
|
h = l;
|
|
7310
7341
|
else
|
|
7311
|
-
for (let
|
|
7312
|
-
const m = l[
|
|
7313
|
-
m[0] !== "" && h.push(m[0]), m[1] !== "" &&
|
|
7342
|
+
for (let d = 0, p = l.length; d < p; d++) {
|
|
7343
|
+
const m = l[d].split("/");
|
|
7344
|
+
m[0] !== "" && h.push(m[0]), m[1] !== "" && g.push(m[1]);
|
|
7314
7345
|
}
|
|
7315
|
-
s.addLineGeometry(h,
|
|
7346
|
+
s.addLineGeometry(h, g);
|
|
7316
7347
|
} else if (c === "p") {
|
|
7317
7348
|
const h = r.slice(1).trim().split(" ");
|
|
7318
7349
|
s.addPointGeometry(h);
|
|
@@ -7349,9 +7380,9 @@ class Qh extends Nt {
|
|
|
7349
7380
|
let h = !1;
|
|
7350
7381
|
if (a.vertices.length === 0)
|
|
7351
7382
|
continue;
|
|
7352
|
-
const
|
|
7353
|
-
|
|
7354
|
-
const
|
|
7383
|
+
const g = new ut();
|
|
7384
|
+
g.setAttribute("position", new ke(a.vertices, 3)), a.normals.length > 0 && g.setAttribute("normal", new ke(a.normals, 3)), a.colors.length > 0 && (h = !0, g.setAttribute("color", new ke(a.colors, 3))), a.hasUVIndices === !0 && g.setAttribute("uv", new ke(a.uvs, 2));
|
|
7385
|
+
const d = [];
|
|
7355
7386
|
for (let m = 0, I = r.length; m < I; m++) {
|
|
7356
7387
|
const b = r[m], B = b.name + "_" + b.smooth + "_" + h;
|
|
7357
7388
|
let E = e.materials[B];
|
|
@@ -7364,17 +7395,17 @@ class Qh extends Nt {
|
|
|
7364
7395
|
tn.prototype.copy.call(w, E), w.color.copy(E.color), w.map = E.map, E = w;
|
|
7365
7396
|
}
|
|
7366
7397
|
}
|
|
7367
|
-
E === void 0 && (c ? E = new Lt() : l ? E = new Dn({ size: 1, sizeAttenuation: !1 }) : E = new Pn(), E.name = b.name, E.flatShading = !b.smooth, E.vertexColors = h, e.materials[B] = E),
|
|
7398
|
+
E === void 0 && (c ? E = new Lt() : l ? E = new Dn({ size: 1, sizeAttenuation: !1 }) : E = new Pn(), E.name = b.name, E.flatShading = !b.smooth, E.vertexColors = h, e.materials[B] = E), d.push(E);
|
|
7368
7399
|
}
|
|
7369
7400
|
let p;
|
|
7370
|
-
if (
|
|
7401
|
+
if (d.length > 1) {
|
|
7371
7402
|
for (let m = 0, I = r.length; m < I; m++) {
|
|
7372
7403
|
const b = r[m];
|
|
7373
|
-
|
|
7404
|
+
g.addGroup(b.groupStart, b.groupCount, m);
|
|
7374
7405
|
}
|
|
7375
|
-
c ? p = new As(
|
|
7406
|
+
c ? p = new As(g, d) : l ? p = new is(g, d) : p = new z(g, d);
|
|
7376
7407
|
} else
|
|
7377
|
-
c ? p = new As(
|
|
7408
|
+
c ? p = new As(g, d[0]) : l ? p = new is(g, d[0]) : p = new z(g, d[0]);
|
|
7378
7409
|
p.name = o.name, t.add(p);
|
|
7379
7410
|
}
|
|
7380
7411
|
else if (e.vertices.length > 0) {
|
|
@@ -7386,7 +7417,7 @@ class Qh extends Nt {
|
|
|
7386
7417
|
return t;
|
|
7387
7418
|
}
|
|
7388
7419
|
}
|
|
7389
|
-
const
|
|
7420
|
+
const ro = { type: "change" }, wi = { type: "start" }, Ba = { type: "end" }, $n = new Hr(), Ao = new jr(), Xc = Math.cos(70 * ye.DEG2RAD), Me = new P();
|
|
7390
7421
|
new P();
|
|
7391
7422
|
const Ye = 2 * Math.PI, fe = {
|
|
7392
7423
|
NONE: -1,
|
|
@@ -7400,7 +7431,7 @@ const Ye = 2 * Math.PI, fe = {
|
|
|
7400
7431
|
}, Ps = 1e-6;
|
|
7401
7432
|
let xh = class extends Go {
|
|
7402
7433
|
constructor(e, t = null) {
|
|
7403
|
-
super(e, t), this.state = fe.NONE, this.enabled = !0, this.target = new P(), this.cursor = new P(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: mn.ROTATE, MIDDLE: mn.DOLLY, RIGHT: mn.PAN }, this.touches = { ONE: fn.ROTATE, TWO: fn.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new P(), this._lastQuaternion = new Te(), this._lastTargetPosition = new P(), this._quat = new Te().setFromUnitVectors(e.up, new P(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new
|
|
7434
|
+
super(e, t), this.state = fe.NONE, this.enabled = !0, this.target = new P(), this.cursor = new P(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: mn.ROTATE, MIDDLE: mn.DOLLY, RIGHT: mn.PAN }, this.touches = { ONE: fn.ROTATE, TWO: fn.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new P(), this._lastQuaternion = new Te(), this._lastTargetPosition = new P(), this._quat = new Te().setFromUnitVectors(e.up, new P(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new _i(), this._sphericalDelta = new _i(), this._scale = 1, this._currentScale = 1, this._panOffset = new P(), this._rotateStart = new Le(), this._rotateEnd = new Le(), this._rotateDelta = new Le(), this._panStart = new Le(), this._panEnd = new Le(), this._panDelta = new Le(), this._dollyStart = new Le(), this._dollyEnd = new Le(), this._dollyDelta = new Le(), this._dollyDirection = new P(), this._mouse = new Le(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = $c.bind(this), this._onPointerDown = Zc.bind(this), this._onPointerUp = el.bind(this), this._onContextMenu = rl.bind(this), this._onMouseWheel = sl.bind(this), this._onKeyDown = il.bind(this), this._onTouchStart = ol.bind(this), this._onTouchMove = al.bind(this), this._onMouseDown = tl.bind(this), this._onMouseMove = nl.bind(this), this._interceptControlDown = Al.bind(this), this._interceptControlUp = cl.bind(this), this.domElement !== null && this.connect(), this.update();
|
|
7404
7435
|
}
|
|
7405
7436
|
connect() {
|
|
7406
7437
|
this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
|
|
@@ -7430,7 +7461,7 @@ let xh = class extends Go {
|
|
|
7430
7461
|
this.target0.copy(this.target), this.position0.copy(this.object.position), this.zoom0 = this.object.zoom;
|
|
7431
7462
|
}
|
|
7432
7463
|
reset() {
|
|
7433
|
-
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(
|
|
7464
|
+
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(ro), this.update(), this.state = fe.NONE;
|
|
7434
7465
|
}
|
|
7435
7466
|
update(e = null) {
|
|
7436
7467
|
const t = this.object.getWorldPosition(this.object.position);
|
|
@@ -7460,12 +7491,12 @@ let xh = class extends Go {
|
|
|
7460
7491
|
c.unproject(this.object), this.object.position.sub(c).add(a), this.object.updateMatrixWorld(), o = Me.length();
|
|
7461
7492
|
} else
|
|
7462
7493
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
|
|
7463
|
-
o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : ($n.origin.copy(this.object.position), $n.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot($n.direction)) < Xc ? this.object.lookAt(this.target) : (
|
|
7494
|
+
o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : ($n.origin.copy(this.object.position), $n.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot($n.direction)) < Xc ? this.object.lookAt(this.target) : (Ao.setFromNormalAndCoplanarPoint(this.object.up, this.target), $n.intersectPlane(Ao, this.target))));
|
|
7464
7495
|
} else if (this.object.isOrthographicCamera) {
|
|
7465
7496
|
const o = this.object.zoom;
|
|
7466
7497
|
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), o !== this.object.zoom && (this.object.updateProjectionMatrix(), i = !0);
|
|
7467
7498
|
}
|
|
7468
|
-
return this._scale = 1, i || this._lastPosition.distanceToSquared(this.object.position) > Ps || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > Ps || this._lastTargetPosition.distanceToSquared(this.target) > Ps ? (this.dispatchEvent(
|
|
7499
|
+
return this._scale = 1, i || this._lastPosition.distanceToSquared(this.object.position) > Ps || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > Ps || this._lastTargetPosition.distanceToSquared(this.target) > Ps ? (this.dispatchEvent(ro), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : (this._performCursorZoom = !1, !1);
|
|
7469
7500
|
}
|
|
7470
7501
|
_getAutoRotationAngle(e) {
|
|
7471
7502
|
return e !== null ? Ye / 60 * this.autoRotateSpeed * e : Ye / 60 / 60 * this.autoRotateSpeed;
|
|
@@ -7721,7 +7752,7 @@ function tl(A) {
|
|
|
7721
7752
|
default:
|
|
7722
7753
|
this.state = fe.NONE;
|
|
7723
7754
|
}
|
|
7724
|
-
this.state !== fe.NONE && this.dispatchEvent(
|
|
7755
|
+
this.state !== fe.NONE && this.dispatchEvent(wi);
|
|
7725
7756
|
}
|
|
7726
7757
|
function nl(A) {
|
|
7727
7758
|
switch (this.state) {
|
|
@@ -7743,7 +7774,7 @@ function nl(A) {
|
|
|
7743
7774
|
}
|
|
7744
7775
|
}
|
|
7745
7776
|
function sl(A) {
|
|
7746
|
-
this.enabled === !1 || this.enableZoom === !1 || this.state !== fe.NONE || (A.preventDefault(), this.dispatchEvent(
|
|
7777
|
+
this.enabled === !1 || this.enableZoom === !1 || this.state !== fe.NONE || (A.preventDefault(), this.dispatchEvent(wi), this._handleMouseWheel(this._customWheelEvent(A)), this.dispatchEvent(Ba));
|
|
7747
7778
|
}
|
|
7748
7779
|
function il(A) {
|
|
7749
7780
|
this.enabled === !1 || this.enablePan === !1 || this._handleKeyDown(A);
|
|
@@ -7785,7 +7816,7 @@ function ol(A) {
|
|
|
7785
7816
|
default:
|
|
7786
7817
|
this.state = fe.NONE;
|
|
7787
7818
|
}
|
|
7788
|
-
this.state !== fe.NONE && this.dispatchEvent(
|
|
7819
|
+
this.state !== fe.NONE && this.dispatchEvent(wi);
|
|
7789
7820
|
}
|
|
7790
7821
|
function al(A) {
|
|
7791
7822
|
switch (this._trackPointer(A), this.state) {
|
|
@@ -7822,7 +7853,7 @@ function Al(A) {
|
|
|
7822
7853
|
function cl(A) {
|
|
7823
7854
|
A.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
7824
7855
|
}
|
|
7825
|
-
class Th extends
|
|
7856
|
+
class Th extends dt {
|
|
7826
7857
|
constructor(e, t = 1, s = 16, n = 2) {
|
|
7827
7858
|
const i = new ut(), o = s + n * 2, a = new Float32Array((o * 3 + 3) * 3);
|
|
7828
7859
|
i.setAttribute("position", new nt(a, 3));
|
|
@@ -7831,14 +7862,14 @@ class Th extends gt {
|
|
|
7831
7862
|
}
|
|
7832
7863
|
update() {
|
|
7833
7864
|
const e = this.audio, t = this.range, s = this.divisionsInnerAngle, n = this.divisionsOuterAngle, i = ye.degToRad(e.panner.coneInnerAngle), o = ye.degToRad(e.panner.coneOuterAngle), a = i / 2, r = o / 2;
|
|
7834
|
-
let c = 0, l = 0, h,
|
|
7835
|
-
const
|
|
7836
|
-
|
|
7865
|
+
let c = 0, l = 0, h, g;
|
|
7866
|
+
const d = this.geometry, p = d.attributes.position;
|
|
7867
|
+
d.clearGroups();
|
|
7837
7868
|
function m(I, b, B, E) {
|
|
7838
7869
|
const w = (b - I) / B;
|
|
7839
7870
|
for (p.setXYZ(c, 0, 0, 0), l++, h = I; h < b; h += w)
|
|
7840
|
-
|
|
7841
|
-
|
|
7871
|
+
g = c + l, p.setXYZ(g, Math.sin(h) * t, 0, Math.cos(h) * t), p.setXYZ(g + 1, Math.sin(Math.min(h + w, b)) * t, 0, Math.cos(Math.min(h + w, b)) * t), p.setXYZ(g + 2, 0, 0, 0), l += 3;
|
|
7872
|
+
d.addGroup(c, l, E), c += l, l = 0;
|
|
7842
7873
|
}
|
|
7843
7874
|
m(-r, -a, n, 0), m(-a, a, s, 1), m(a, r, n, 0), p.needsUpdate = !0, i === o && (this.material[0].visible = !1);
|
|
7844
7875
|
}
|
|
@@ -7941,7 +7972,7 @@ const vh = {
|
|
|
7941
7972
|
};
|
|
7942
7973
|
let vn, Os, un, es;
|
|
7943
7974
|
function Hs(A, e = 1 / 0, t = null) {
|
|
7944
|
-
Os || (Os = new
|
|
7975
|
+
Os || (Os = new bi(2, 2, 1, 1)), un || (un = new Ho({
|
|
7945
7976
|
uniforms: { blitTexture: new qr(A) },
|
|
7946
7977
|
vertexShader: `
|
|
7947
7978
|
varying vec2 vUv;
|
|
@@ -7962,8 +7993,8 @@ function Hs(A, e = 1 / 0, t = null) {
|
|
|
7962
7993
|
gl_FragColor = texture2D( blitTexture, vUv);
|
|
7963
7994
|
#endif
|
|
7964
7995
|
}`
|
|
7965
|
-
})), un.uniforms.blitTexture.value = A, un.defines.IS_SRGB = A.colorSpace ==
|
|
7966
|
-
const s = new
|
|
7996
|
+
})), un.uniforms.blitTexture.value = A, un.defines.IS_SRGB = A.colorSpace == ge, un.needsUpdate = !0, es || (es = new z(Os, un), es.frustumCulled = !1);
|
|
7997
|
+
const s = new ds(), n = new Zs();
|
|
7967
7998
|
n.add(es), t === null && (t = vn = new zr({ antialias: !1 }));
|
|
7968
7999
|
const i = Math.min(A.image.width, e), o = Math.min(A.image.height, e);
|
|
7969
8000
|
t.setSize(i, o), t.clear(), t.render(n, s);
|
|
@@ -7972,7 +8003,7 @@ function Hs(A, e = 1 / 0, t = null) {
|
|
|
7972
8003
|
const c = new jo(a);
|
|
7973
8004
|
return c.minFilter = A.minFilter, c.magFilter = A.magFilter, c.wrapS = A.wrapS, c.wrapT = A.wrapT, c.colorSpace = A.colorSpace, c.name = A.name, vn && (vn.forceContextLoss(), vn.dispose(), vn = null), c;
|
|
7974
8005
|
}
|
|
7975
|
-
const
|
|
8006
|
+
const co = {
|
|
7976
8007
|
POSITION: [
|
|
7977
8008
|
"byte",
|
|
7978
8009
|
"byte normalized",
|
|
@@ -8058,7 +8089,7 @@ class wa {
|
|
|
8058
8089
|
});
|
|
8059
8090
|
}
|
|
8060
8091
|
}
|
|
8061
|
-
const
|
|
8092
|
+
const ae = {
|
|
8062
8093
|
POINTS: 0,
|
|
8063
8094
|
LINES: 1,
|
|
8064
8095
|
LINE_LOOP: 2,
|
|
@@ -8085,21 +8116,21 @@ const oe = {
|
|
|
8085
8116
|
MIRRORED_REPEAT: 33648,
|
|
8086
8117
|
REPEAT: 10497
|
|
8087
8118
|
}, js = "KHR_mesh_quantization", ot = {};
|
|
8088
|
-
ot[Do] =
|
|
8089
|
-
ot[Mo] =
|
|
8090
|
-
ot[Fo] =
|
|
8091
|
-
ot[mt] =
|
|
8092
|
-
ot[ko] =
|
|
8093
|
-
ot[ps] =
|
|
8094
|
-
ot[cs] =
|
|
8095
|
-
ot[an] =
|
|
8096
|
-
ot[Lo] =
|
|
8097
|
-
const
|
|
8119
|
+
ot[Do] = ae.NEAREST;
|
|
8120
|
+
ot[Mo] = ae.NEAREST_MIPMAP_NEAREST;
|
|
8121
|
+
ot[Fo] = ae.NEAREST_MIPMAP_LINEAR;
|
|
8122
|
+
ot[mt] = ae.LINEAR;
|
|
8123
|
+
ot[ko] = ae.LINEAR_MIPMAP_NEAREST;
|
|
8124
|
+
ot[ps] = ae.LINEAR_MIPMAP_LINEAR;
|
|
8125
|
+
ot[cs] = ae.CLAMP_TO_EDGE;
|
|
8126
|
+
ot[an] = ae.REPEAT;
|
|
8127
|
+
ot[Lo] = ae.MIRRORED_REPEAT;
|
|
8128
|
+
const lo = {
|
|
8098
8129
|
scale: "scale",
|
|
8099
8130
|
position: "translation",
|
|
8100
8131
|
quaternion: "rotation",
|
|
8101
8132
|
morphTargetInfluences: "weights"
|
|
8102
|
-
}, ll = new Se(),
|
|
8133
|
+
}, ll = new Se(), ho = 12, hl = 1179937895, ul = 2, uo = 8, gl = 1313821514, dl = 5130562;
|
|
8103
8134
|
function Nn(A, e) {
|
|
8104
8135
|
return A.length === e.length && A.every(function(t, s) {
|
|
8105
8136
|
return t === e[s];
|
|
@@ -8137,10 +8168,10 @@ function qs(A, e = 0) {
|
|
|
8137
8168
|
}
|
|
8138
8169
|
return A;
|
|
8139
8170
|
}
|
|
8140
|
-
function
|
|
8171
|
+
function go() {
|
|
8141
8172
|
return typeof document > "u" && typeof OffscreenCanvas < "u" ? new OffscreenCanvas(1, 1) : document.createElement("canvas");
|
|
8142
8173
|
}
|
|
8143
|
-
function
|
|
8174
|
+
function po(A, e) {
|
|
8144
8175
|
if (A.toBlob !== void 0)
|
|
8145
8176
|
return new Promise((s) => A.toBlob(s, e));
|
|
8146
8177
|
let t;
|
|
@@ -8188,32 +8219,32 @@ class Il {
|
|
|
8188
8219
|
s = n.options;
|
|
8189
8220
|
const a = n.extensionsUsed, r = n.extensionsRequired, c = new Blob(i, { type: "application/octet-stream" }), l = Object.keys(a), h = Object.keys(r);
|
|
8190
8221
|
if (l.length > 0 && (o.extensionsUsed = l), h.length > 0 && (o.extensionsRequired = h), o.buffers && o.buffers.length > 0 && (o.buffers[0].byteLength = c.size), s.binary === !0) {
|
|
8191
|
-
const
|
|
8192
|
-
|
|
8193
|
-
const
|
|
8194
|
-
p.setUint32(0,
|
|
8195
|
-
const m = qs(pl(JSON.stringify(o)), 32), I = new DataView(new ArrayBuffer(
|
|
8196
|
-
I.setUint32(0, m.byteLength, !0), I.setUint32(4,
|
|
8197
|
-
const b = new ArrayBuffer(
|
|
8222
|
+
const g = new FileReader();
|
|
8223
|
+
g.readAsArrayBuffer(c), g.onloadend = function() {
|
|
8224
|
+
const d = qs(g.result), p = new DataView(new ArrayBuffer(uo));
|
|
8225
|
+
p.setUint32(0, d.byteLength, !0), p.setUint32(4, dl, !0);
|
|
8226
|
+
const m = qs(pl(JSON.stringify(o)), 32), I = new DataView(new ArrayBuffer(uo));
|
|
8227
|
+
I.setUint32(0, m.byteLength, !0), I.setUint32(4, gl, !0);
|
|
8228
|
+
const b = new ArrayBuffer(ho), B = new DataView(b);
|
|
8198
8229
|
B.setUint32(0, hl, !0), B.setUint32(4, ul, !0);
|
|
8199
|
-
const E =
|
|
8230
|
+
const E = ho + I.byteLength + m.byteLength + p.byteLength + d.byteLength;
|
|
8200
8231
|
B.setUint32(8, E, !0);
|
|
8201
8232
|
const w = new Blob([
|
|
8202
8233
|
b,
|
|
8203
8234
|
I,
|
|
8204
8235
|
m,
|
|
8205
8236
|
p,
|
|
8206
|
-
|
|
8237
|
+
d
|
|
8207
8238
|
], { type: "application/octet-stream" }), Q = new FileReader();
|
|
8208
8239
|
Q.readAsArrayBuffer(w), Q.onloadend = function() {
|
|
8209
8240
|
t(Q.result);
|
|
8210
8241
|
};
|
|
8211
8242
|
};
|
|
8212
8243
|
} else if (o.buffers && o.buffers.length > 0) {
|
|
8213
|
-
const
|
|
8214
|
-
|
|
8215
|
-
const
|
|
8216
|
-
o.buffers[0].uri =
|
|
8244
|
+
const g = new FileReader();
|
|
8245
|
+
g.readAsDataURL(c), g.onloadend = function() {
|
|
8246
|
+
const d = g.result;
|
|
8247
|
+
o.buffers[0].uri = d, t(o);
|
|
8217
8248
|
};
|
|
8218
8249
|
} else
|
|
8219
8250
|
t(o);
|
|
@@ -8299,15 +8330,15 @@ class Il {
|
|
|
8299
8330
|
buildMetalRoughTexture(e, t) {
|
|
8300
8331
|
if (e === t)
|
|
8301
8332
|
return e;
|
|
8302
|
-
function s(
|
|
8303
|
-
return
|
|
8333
|
+
function s(d) {
|
|
8334
|
+
return d.colorSpace === ge ? function(m) {
|
|
8304
8335
|
return m < 0.04045 ? m * 0.0773993808 : Math.pow(m * 0.9478672986 + 0.0521327014, 2.4);
|
|
8305
8336
|
} : function(m) {
|
|
8306
8337
|
return m;
|
|
8307
8338
|
};
|
|
8308
8339
|
}
|
|
8309
8340
|
console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."), e instanceof Gn && (e = Hs(e)), t instanceof Gn && (t = Hs(t));
|
|
8310
|
-
const n = e ? e.image : null, i = t ? t.image : null, o = Math.max(n ? n.width : 0, i ? i.width : 0), a = Math.max(n ? n.height : 0, i ? i.height : 0), r =
|
|
8341
|
+
const n = e ? e.image : null, i = t ? t.image : null, o = Math.max(n ? n.width : 0, i ? i.width : 0), a = Math.max(n ? n.height : 0, i ? i.height : 0), r = go();
|
|
8311
8342
|
r.width = o, r.height = a;
|
|
8312
8343
|
const c = r.getContext("2d", {
|
|
8313
8344
|
willReadFrequently: !0
|
|
@@ -8316,19 +8347,19 @@ class Il {
|
|
|
8316
8347
|
const l = c.getImageData(0, 0, o, a);
|
|
8317
8348
|
if (n) {
|
|
8318
8349
|
c.drawImage(n, 0, 0, o, a);
|
|
8319
|
-
const
|
|
8350
|
+
const d = s(e), p = c.getImageData(0, 0, o, a).data;
|
|
8320
8351
|
for (let m = 2; m < p.length; m += 4)
|
|
8321
|
-
l.data[m] =
|
|
8352
|
+
l.data[m] = d(p[m] / 256) * 256;
|
|
8322
8353
|
}
|
|
8323
8354
|
if (i) {
|
|
8324
8355
|
c.drawImage(i, 0, 0, o, a);
|
|
8325
|
-
const
|
|
8356
|
+
const d = s(t), p = c.getImageData(0, 0, o, a).data;
|
|
8326
8357
|
for (let m = 1; m < p.length; m += 4)
|
|
8327
|
-
l.data[m] =
|
|
8358
|
+
l.data[m] = d(p[m] / 256) * 256;
|
|
8328
8359
|
}
|
|
8329
8360
|
c.putImageData(l, 0, 0);
|
|
8330
|
-
const
|
|
8331
|
-
return
|
|
8361
|
+
const g = (e || t).clone();
|
|
8362
|
+
return g.source = new Yr(r), g.colorSpace = gs, g.channel = (e || t).channel, e && t && e.channel !== t.channel && console.warn("THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match."), g;
|
|
8332
8363
|
}
|
|
8333
8364
|
/**
|
|
8334
8365
|
* Process a buffer to append to the default one.
|
|
@@ -8353,34 +8384,34 @@ class Il {
|
|
|
8353
8384
|
o.bufferViews || (o.bufferViews = []);
|
|
8354
8385
|
let a;
|
|
8355
8386
|
switch (t) {
|
|
8356
|
-
case
|
|
8357
|
-
case
|
|
8387
|
+
case ae.BYTE:
|
|
8388
|
+
case ae.UNSIGNED_BYTE:
|
|
8358
8389
|
a = 1;
|
|
8359
8390
|
break;
|
|
8360
|
-
case
|
|
8361
|
-
case
|
|
8391
|
+
case ae.SHORT:
|
|
8392
|
+
case ae.UNSIGNED_SHORT:
|
|
8362
8393
|
a = 2;
|
|
8363
8394
|
break;
|
|
8364
8395
|
default:
|
|
8365
8396
|
a = 4;
|
|
8366
8397
|
}
|
|
8367
8398
|
let r = e.itemSize * a;
|
|
8368
|
-
i ===
|
|
8399
|
+
i === ae.ARRAY_BUFFER && (r = Math.ceil(r / 4) * 4);
|
|
8369
8400
|
const c = ya(n * r), l = new DataView(new ArrayBuffer(c));
|
|
8370
8401
|
let h = 0;
|
|
8371
8402
|
for (let p = s; p < s + n; p++) {
|
|
8372
8403
|
for (let m = 0; m < e.itemSize; m++) {
|
|
8373
8404
|
let I;
|
|
8374
|
-
e.itemSize > 4 ? I = e.array[p * e.itemSize + m] : (m === 0 ? I = e.getX(p) : m === 1 ? I = e.getY(p) : m === 2 ? I = e.getZ(p) : m === 3 && (I = e.getW(p)), e.normalized === !0 && (I = ye.normalize(I, e.array))), t ===
|
|
8405
|
+
e.itemSize > 4 ? I = e.array[p * e.itemSize + m] : (m === 0 ? I = e.getX(p) : m === 1 ? I = e.getY(p) : m === 2 ? I = e.getZ(p) : m === 3 && (I = e.getW(p)), e.normalized === !0 && (I = ye.normalize(I, e.array))), t === ae.FLOAT ? l.setFloat32(h, I, !0) : t === ae.INT ? l.setInt32(h, I, !0) : t === ae.UNSIGNED_INT ? l.setUint32(h, I, !0) : t === ae.SHORT ? l.setInt16(h, I, !0) : t === ae.UNSIGNED_SHORT ? l.setUint16(h, I, !0) : t === ae.BYTE ? l.setInt8(h, I) : t === ae.UNSIGNED_BYTE && l.setUint8(h, I), h += a;
|
|
8375
8406
|
}
|
|
8376
8407
|
h % r !== 0 && (h += r - h % r);
|
|
8377
8408
|
}
|
|
8378
|
-
const
|
|
8409
|
+
const g = {
|
|
8379
8410
|
buffer: this.processBuffer(l.buffer),
|
|
8380
8411
|
byteOffset: this.byteOffset,
|
|
8381
8412
|
byteLength: c
|
|
8382
8413
|
};
|
|
8383
|
-
return i !== void 0 && (
|
|
8414
|
+
return i !== void 0 && (g.target = i), i === ae.ARRAY_BUFFER && (g.byteStride = r), this.byteOffset += c, o.bufferViews.push(g), {
|
|
8384
8415
|
id: o.bufferViews.length - 1,
|
|
8385
8416
|
byteLength: 0
|
|
8386
8417
|
};
|
|
@@ -8423,26 +8454,26 @@ class Il {
|
|
|
8423
8454
|
};
|
|
8424
8455
|
let a;
|
|
8425
8456
|
if (e.array.constructor === Float32Array)
|
|
8426
|
-
a =
|
|
8457
|
+
a = ae.FLOAT;
|
|
8427
8458
|
else if (e.array.constructor === Int32Array)
|
|
8428
|
-
a =
|
|
8459
|
+
a = ae.INT;
|
|
8429
8460
|
else if (e.array.constructor === Uint32Array)
|
|
8430
|
-
a =
|
|
8461
|
+
a = ae.UNSIGNED_INT;
|
|
8431
8462
|
else if (e.array.constructor === Int16Array)
|
|
8432
|
-
a =
|
|
8463
|
+
a = ae.SHORT;
|
|
8433
8464
|
else if (e.array.constructor === Uint16Array)
|
|
8434
|
-
a =
|
|
8465
|
+
a = ae.UNSIGNED_SHORT;
|
|
8435
8466
|
else if (e.array.constructor === Int8Array)
|
|
8436
|
-
a =
|
|
8467
|
+
a = ae.BYTE;
|
|
8437
8468
|
else if (e.array.constructor === Uint8Array)
|
|
8438
|
-
a =
|
|
8469
|
+
a = ae.UNSIGNED_BYTE;
|
|
8439
8470
|
else
|
|
8440
8471
|
throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: " + e.array.constructor.name);
|
|
8441
8472
|
if (s === void 0 && (s = 0), (n === void 0 || n === 1 / 0) && (n = e.count), n === 0)
|
|
8442
8473
|
return null;
|
|
8443
8474
|
const r = ml(e, s, n);
|
|
8444
8475
|
let c;
|
|
8445
|
-
t !== void 0 && (c = e === t.index ?
|
|
8476
|
+
t !== void 0 && (c = e === t.index ? ae.ELEMENT_ARRAY_BUFFER : ae.ARRAY_BUFFER);
|
|
8446
8477
|
const l = this.processBufferView(e, a, s, n, c), h = {
|
|
8447
8478
|
bufferView: l.id,
|
|
8448
8479
|
byteOffset: l.byteOffset,
|
|
@@ -8470,31 +8501,31 @@ class Il {
|
|
|
8470
8501
|
if (l[h] !== void 0)
|
|
8471
8502
|
return l[h];
|
|
8472
8503
|
a.images || (a.images = []);
|
|
8473
|
-
const
|
|
8474
|
-
|
|
8475
|
-
const p =
|
|
8504
|
+
const g = { mimeType: n }, d = go();
|
|
8505
|
+
d.width = Math.min(e.width, r.maxTextureSize), d.height = Math.min(e.height, r.maxTextureSize);
|
|
8506
|
+
const p = d.getContext("2d", {
|
|
8476
8507
|
willReadFrequently: !0
|
|
8477
8508
|
});
|
|
8478
|
-
if (s === !0 && (p.translate(0,
|
|
8509
|
+
if (s === !0 && (p.translate(0, d.height), p.scale(1, -1)), e.data !== void 0) {
|
|
8479
8510
|
t !== Kt && console.error("GLTFExporter: Only RGBAFormat is supported.", t), (e.width > r.maxTextureSize || e.height > r.maxTextureSize) && console.warn("GLTFExporter: Image size is bigger than maxTextureSize", e);
|
|
8480
8511
|
const I = new Uint8ClampedArray(e.height * e.width * 4);
|
|
8481
8512
|
for (let b = 0; b < I.length; b += 4)
|
|
8482
8513
|
I[b + 0] = e.data[b + 0], I[b + 1] = e.data[b + 1], I[b + 2] = e.data[b + 2], I[b + 3] = e.data[b + 3];
|
|
8483
8514
|
p.putImageData(new ImageData(I, e.width, e.height), 0, 0);
|
|
8484
8515
|
} else if (typeof HTMLImageElement < "u" && e instanceof HTMLImageElement || typeof HTMLCanvasElement < "u" && e instanceof HTMLCanvasElement || typeof ImageBitmap < "u" && e instanceof ImageBitmap || typeof OffscreenCanvas < "u" && e instanceof OffscreenCanvas)
|
|
8485
|
-
p.drawImage(e, 0, 0,
|
|
8516
|
+
p.drawImage(e, 0, 0, d.width, d.height);
|
|
8486
8517
|
else
|
|
8487
8518
|
throw new Error("THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.");
|
|
8488
8519
|
r.binary === !0 ? c.push(
|
|
8489
|
-
|
|
8490
|
-
|
|
8520
|
+
po(d, n).then((I) => i.processBufferViewImage(I)).then((I) => {
|
|
8521
|
+
g.bufferView = I;
|
|
8491
8522
|
})
|
|
8492
|
-
) :
|
|
8493
|
-
|
|
8494
|
-
|
|
8523
|
+
) : d.toDataURL !== void 0 ? g.uri = d.toDataURL(n) : c.push(
|
|
8524
|
+
po(d, n).then((I) => new FileReader().readAsDataURL(I)).then((I) => {
|
|
8525
|
+
g.uri = I;
|
|
8495
8526
|
})
|
|
8496
8527
|
);
|
|
8497
|
-
const m = a.images.push(
|
|
8528
|
+
const m = a.images.push(g) - 1;
|
|
8498
8529
|
return l[h] = m, m;
|
|
8499
8530
|
} else
|
|
8500
8531
|
throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.");
|
|
@@ -8548,7 +8579,7 @@ class Il {
|
|
|
8548
8579
|
* @return {Integer|null} Index of the processed material in the "materials" array
|
|
8549
8580
|
*/
|
|
8550
8581
|
processMaterial(e) {
|
|
8551
|
-
var c, l, h,
|
|
8582
|
+
var c, l, h, g, d;
|
|
8552
8583
|
const t = this.cache, s = this.json;
|
|
8553
8584
|
if (t.materials.has(e))
|
|
8554
8585
|
return t.materials.get(e);
|
|
@@ -8584,21 +8615,21 @@ class Il {
|
|
|
8584
8615
|
this.applyTextureTransform(I, e.emissiveMap), n.emissiveTexture = I;
|
|
8585
8616
|
}
|
|
8586
8617
|
}
|
|
8587
|
-
if ((
|
|
8618
|
+
if ((g = e.normalMap) != null && g.image) {
|
|
8588
8619
|
const p = {
|
|
8589
8620
|
index: this.processTexture(e.normalMap),
|
|
8590
8621
|
texCoord: e.normalMap.channel
|
|
8591
8622
|
};
|
|
8592
8623
|
e.normalScale && e.normalScale.x !== 1 && (p.scale = e.normalScale.x), this.applyTextureTransform(p, e.normalMap), n.normalTexture = p;
|
|
8593
8624
|
}
|
|
8594
|
-
if ((
|
|
8625
|
+
if ((d = e.aoMap) != null && d.image) {
|
|
8595
8626
|
const p = {
|
|
8596
8627
|
index: this.processTexture(e.aoMap),
|
|
8597
8628
|
texCoord: e.aoMap.channel
|
|
8598
8629
|
};
|
|
8599
8630
|
e.aoMapIntensity !== 1 && (p.strength = e.aoMapIntensity), this.applyTextureTransform(p, e.aoMap), n.occlusionTexture = p;
|
|
8600
8631
|
}
|
|
8601
|
-
e.transparent ? n.alphaMode = "BLEND" : e.alphaTest > 0 && (n.alphaMode = "MASK", n.alphaCutoff = e.alphaTest), e.side ===
|
|
8632
|
+
e.transparent ? n.alphaMode = "BLEND" : e.alphaTest > 0 && (n.alphaMode = "MASK", n.alphaCutoff = e.alphaTest), e.side === gi && (n.doubleSided = !0), e.name !== "" && (n.name = e.name), this.serializeUserData(e, n), this._invokeAll(function(p) {
|
|
8602
8633
|
p.writeMaterial && p.writeMaterial(e, n);
|
|
8603
8634
|
});
|
|
8604
8635
|
const r = s.materials.push(n) - 1;
|
|
@@ -8626,8 +8657,8 @@ class Il {
|
|
|
8626
8657
|
return s.meshes.get(o);
|
|
8627
8658
|
const a = e.geometry;
|
|
8628
8659
|
let r;
|
|
8629
|
-
e.isLineSegments ? r =
|
|
8630
|
-
const c = {}, l = {}, h = [],
|
|
8660
|
+
e.isLineSegments ? r = ae.LINES : e.isLineLoop ? r = ae.LINE_LOOP : e.isLine ? r = ae.LINE_STRIP : e.isPoints ? r = ae.POINTS : r = e.material.wireframe ? ae.LINES : ae.TRIANGLES;
|
|
8661
|
+
const c = {}, l = {}, h = [], g = [], d = {
|
|
8631
8662
|
uv: "TEXCOORD_0",
|
|
8632
8663
|
uv1: "TEXCOORD_1",
|
|
8633
8664
|
uv2: "TEXCOORD_2",
|
|
@@ -8642,7 +8673,7 @@ class Il {
|
|
|
8642
8673
|
if (Q.slice(0, 5) === "morph")
|
|
8643
8674
|
continue;
|
|
8644
8675
|
const R = a.attributes[Q];
|
|
8645
|
-
if (Q =
|
|
8676
|
+
if (Q = d[Q] || Q.toUpperCase(), /^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(Q) || (Q = "_" + Q), s.attributes.has(this.getUID(R))) {
|
|
8646
8677
|
l[Q] = s.attributes.get(this.getUID(R));
|
|
8647
8678
|
continue;
|
|
8648
8679
|
}
|
|
@@ -8679,7 +8710,7 @@ class Il {
|
|
|
8679
8710
|
ee === 0 && q.setX(H, O.getX(H) - U.getX(H)), ee === 1 && q.setY(H, O.getY(H) - U.getY(H)), ee === 2 && q.setZ(H, O.getZ(H) - U.getZ(H)), ee === 3 && q.setW(H, O.getW(H) - U.getW(H));
|
|
8680
8711
|
T[Z] = this.processAccessor(q, a), s.attributes.set(this.getUID(U, !0), T[Z]);
|
|
8681
8712
|
}
|
|
8682
|
-
|
|
8713
|
+
g.push(T), Q.push(e.morphTargetInfluences[x]), e.morphTargetDictionary !== void 0 && R.push(_[x]);
|
|
8683
8714
|
}
|
|
8684
8715
|
c.weights = Q, R.length > 0 && (c.extras = {}, c.extras.targetNames = R);
|
|
8685
8716
|
}
|
|
@@ -8699,7 +8730,7 @@ class Il {
|
|
|
8699
8730
|
mode: r,
|
|
8700
8731
|
attributes: l
|
|
8701
8732
|
};
|
|
8702
|
-
if (this.serializeUserData(a, _),
|
|
8733
|
+
if (this.serializeUserData(a, _), g.length > 0 && (_.targets = g), a.index !== null) {
|
|
8703
8734
|
let T = this.getUID(a.index);
|
|
8704
8735
|
(E[Q].start !== void 0 || E[Q].count !== void 0) && (T += ":" + E[Q].start + ":" + E[Q].count), s.attributes.has(T) ? _.indices = s.attributes.get(T) : (_.indices = this.processAccessor(a.index, a, E[Q].start, E[Q].count), s.attributes.set(T, _.indices)), _.indices === null && delete _.indices;
|
|
8705
8736
|
}
|
|
@@ -8745,7 +8776,7 @@ class Il {
|
|
|
8745
8776
|
}
|
|
8746
8777
|
t.normalized && (s += " normalized");
|
|
8747
8778
|
const n = e.split("_", 1)[0];
|
|
8748
|
-
|
|
8779
|
+
co[n] && co[n].includes(s) && (this.extensionsUsed[js] = !0, this.extensionsRequired[js] = !0);
|
|
8749
8780
|
}
|
|
8750
8781
|
/**
|
|
8751
8782
|
* Process camera
|
|
@@ -8787,24 +8818,24 @@ class Il {
|
|
|
8787
8818
|
for (let r = 0; r < i.length; ++r) {
|
|
8788
8819
|
const c = i[r], l = It.parseTrackName(c.name);
|
|
8789
8820
|
let h = It.findNode(t, l.nodeName);
|
|
8790
|
-
const
|
|
8791
|
-
if (l.objectName === "bones" && (h.isSkinnedMesh === !0 ? h = h.skeleton.getBoneByName(l.objectIndex) : h = void 0), !h || !
|
|
8821
|
+
const g = lo[l.propertyName];
|
|
8822
|
+
if (l.objectName === "bones" && (h.isSkinnedMesh === !0 ? h = h.skeleton.getBoneByName(l.objectIndex) : h = void 0), !h || !g) {
|
|
8792
8823
|
console.warn('THREE.GLTFExporter: Could not export animation track "%s".', c.name);
|
|
8793
8824
|
continue;
|
|
8794
8825
|
}
|
|
8795
|
-
const
|
|
8826
|
+
const d = 1;
|
|
8796
8827
|
let p = c.values.length / c.times.length;
|
|
8797
|
-
|
|
8828
|
+
g === lo.morphTargetInfluences && (p /= h.morphTargetInfluences.length);
|
|
8798
8829
|
let m;
|
|
8799
|
-
c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline === !0 ? (m = "CUBICSPLINE", p /= 3) : c.getInterpolation() ===
|
|
8800
|
-
input: this.processAccessor(new nt(c.times,
|
|
8830
|
+
c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline === !0 ? (m = "CUBICSPLINE", p /= 3) : c.getInterpolation() === fi ? m = "STEP" : m = "LINEAR", a.push({
|
|
8831
|
+
input: this.processAccessor(new nt(c.times, d)),
|
|
8801
8832
|
output: this.processAccessor(new nt(c.values, p)),
|
|
8802
8833
|
interpolation: m
|
|
8803
8834
|
}), o.push({
|
|
8804
8835
|
sampler: a.length - 1,
|
|
8805
8836
|
target: {
|
|
8806
8837
|
node: n.get(h),
|
|
8807
|
-
path:
|
|
8838
|
+
path: g
|
|
8808
8839
|
}
|
|
8809
8840
|
});
|
|
8810
8841
|
}
|
|
@@ -8863,8 +8894,8 @@ class Il {
|
|
|
8863
8894
|
for (let c = 0, l = e.children.length; c < l; c++) {
|
|
8864
8895
|
const h = e.children[c];
|
|
8865
8896
|
if (h.visible || n.onlyVisible === !1) {
|
|
8866
|
-
const
|
|
8867
|
-
|
|
8897
|
+
const g = this.processNode(h);
|
|
8898
|
+
g !== null && r.push(g);
|
|
8868
8899
|
}
|
|
8869
8900
|
}
|
|
8870
8901
|
r.length > 0 && (o.children = r);
|
|
@@ -9175,14 +9206,14 @@ class Dl {
|
|
|
9175
9206
|
if (!e.isInstancedMesh)
|
|
9176
9207
|
return;
|
|
9177
9208
|
const s = this.writer, n = e, i = new Float32Array(n.count * 3), o = new Float32Array(n.count * 4), a = new Float32Array(n.count * 3), r = new ue(), c = new P(), l = new Te(), h = new P();
|
|
9178
|
-
for (let
|
|
9179
|
-
n.getMatrixAt(
|
|
9180
|
-
const
|
|
9209
|
+
for (let d = 0; d < n.count; d++)
|
|
9210
|
+
n.getMatrixAt(d, r), r.decompose(c, l, h), c.toArray(i, d * 3), l.toArray(o, d * 4), h.toArray(a, d * 3);
|
|
9211
|
+
const g = {
|
|
9181
9212
|
TRANSLATION: s.processAccessor(new nt(i, 3)),
|
|
9182
9213
|
ROTATION: s.processAccessor(new nt(o, 4)),
|
|
9183
9214
|
SCALE: s.processAccessor(new nt(a, 3))
|
|
9184
9215
|
};
|
|
9185
|
-
n.instanceColor && (
|
|
9216
|
+
n.instanceColor && (g._COLOR_0 = s.processAccessor(n.instanceColor)), t.extensions = t.extensions || {}, t.extensions[this.name] = { attributes: g }, s.extensionsUsed[this.name] = !0, s.extensionsRequired[this.name] = !0;
|
|
9186
9217
|
}
|
|
9187
9218
|
}
|
|
9188
9219
|
wa.Utils = {
|
|
@@ -9233,19 +9264,19 @@ wa.Utils = {
|
|
|
9233
9264
|
let h;
|
|
9234
9265
|
if (s[r.uuid] === void 0) {
|
|
9235
9266
|
h = o.clone();
|
|
9236
|
-
const
|
|
9267
|
+
const d = new h.ValueBufferType(c * h.times.length);
|
|
9237
9268
|
for (let p = 0; p < h.times.length; p++)
|
|
9238
|
-
|
|
9239
|
-
h.name = (a.nodeName || "") + ".morphTargetInfluences", h.values =
|
|
9269
|
+
d[p * c + l] = h.values[p];
|
|
9270
|
+
h.name = (a.nodeName || "") + ".morphTargetInfluences", h.values = d, s[r.uuid] = h, t.push(h);
|
|
9240
9271
|
continue;
|
|
9241
9272
|
}
|
|
9242
|
-
const
|
|
9273
|
+
const g = o.createInterpolant(new o.ValueBufferType(1));
|
|
9243
9274
|
h = s[r.uuid];
|
|
9244
|
-
for (let
|
|
9245
|
-
h.values[
|
|
9246
|
-
for (let
|
|
9247
|
-
const p = this.insertKeyframe(h, o.times[
|
|
9248
|
-
h.values[p * c + l] = o.values[
|
|
9275
|
+
for (let d = 0; d < h.times.length; d++)
|
|
9276
|
+
h.values[d * c + l] = g.evaluate(h.times[d]);
|
|
9277
|
+
for (let d = 0; d < o.times.length; d++) {
|
|
9278
|
+
const p = this.insertKeyframe(h, o.times[d]);
|
|
9279
|
+
h.values[p * c + l] = o.values[d];
|
|
9249
9280
|
}
|
|
9250
9281
|
}
|
|
9251
9282
|
return A.tracks = t, A;
|
|
@@ -9516,7 +9547,7 @@ function jl(A, e) {
|
|
|
9516
9547
|
});
|
|
9517
9548
|
});
|
|
9518
9549
|
}
|
|
9519
|
-
function
|
|
9550
|
+
function fo(A, e) {
|
|
9520
9551
|
jl(A.motionController, e), A.envMap && e.traverse((t) => {
|
|
9521
9552
|
t.isMesh && (t.material.envMap = A.envMap, t.material.needsUpdate = !0);
|
|
9522
9553
|
}), A.layers.mask != 0 && e.traverse((t) => {
|
|
@@ -9543,14 +9574,14 @@ class _h {
|
|
|
9543
9574
|
);
|
|
9544
9575
|
const r = this._assetCache[t.motionController.assetUrl];
|
|
9545
9576
|
if (r)
|
|
9546
|
-
s = r.scene.clone(),
|
|
9577
|
+
s = r.scene.clone(), fo(t, s), this.onLoad && this.onLoad(s);
|
|
9547
9578
|
else {
|
|
9548
9579
|
if (!this.gltfLoader)
|
|
9549
9580
|
throw new Error("GLTFLoader not set.");
|
|
9550
9581
|
this.gltfLoader.setPath(""), this.gltfLoader.load(
|
|
9551
9582
|
t.motionController.assetUrl,
|
|
9552
9583
|
(c) => {
|
|
9553
|
-
this._assetCache[t.motionController.assetUrl] = c, s = c.scene.clone(),
|
|
9584
|
+
this._assetCache[t.motionController.assetUrl] = c, s = c.scene.clone(), fo(t, s), this.onLoad && this.onLoad(s);
|
|
9554
9585
|
},
|
|
9555
9586
|
null,
|
|
9556
9587
|
() => {
|
|
@@ -9600,8 +9631,8 @@ class Dh {
|
|
|
9600
9631
|
"pinky-finger-phalanx-distal",
|
|
9601
9632
|
"pinky-finger-tip"
|
|
9602
9633
|
].forEach((h) => {
|
|
9603
|
-
const
|
|
9604
|
-
|
|
9634
|
+
const g = r.getObjectByName(h);
|
|
9635
|
+
g !== void 0 ? g.jointName = h : console.warn(`Couldn't find ${h} in ${n} hand mesh`), this.bones.push(g);
|
|
9605
9636
|
}), o && o(r);
|
|
9606
9637
|
});
|
|
9607
9638
|
}
|
|
@@ -9619,7 +9650,7 @@ class Dh {
|
|
|
9619
9650
|
}
|
|
9620
9651
|
}
|
|
9621
9652
|
}
|
|
9622
|
-
const
|
|
9653
|
+
const mo = new fs(), ts = new P();
|
|
9623
9654
|
class xa extends Jr {
|
|
9624
9655
|
constructor() {
|
|
9625
9656
|
super(), this.isLineSegmentsGeometry = !0, this.type = "LineSegmentsGeometry";
|
|
@@ -9658,10 +9689,10 @@ class xa extends Jr {
|
|
|
9658
9689
|
computeBoundingBox() {
|
|
9659
9690
|
this.boundingBox === null && (this.boundingBox = new fs());
|
|
9660
9691
|
const e = this.attributes.instanceStart, t = this.attributes.instanceEnd;
|
|
9661
|
-
e !== void 0 && t !== void 0 && (this.boundingBox.setFromBufferAttribute(e),
|
|
9692
|
+
e !== void 0 && t !== void 0 && (this.boundingBox.setFromBufferAttribute(e), mo.setFromBufferAttribute(t), this.boundingBox.union(mo));
|
|
9662
9693
|
}
|
|
9663
9694
|
computeBoundingSphere() {
|
|
9664
|
-
this.boundingSphere === null && (this.boundingSphere = new
|
|
9695
|
+
this.boundingSphere === null && (this.boundingSphere = new mi()), this.boundingBox === null && this.computeBoundingBox();
|
|
9665
9696
|
const e = this.attributes.instanceStart, t = this.attributes.instanceEnd;
|
|
9666
9697
|
if (e !== void 0 && t !== void 0) {
|
|
9667
9698
|
const s = this.boundingSphere.center;
|
|
@@ -10151,9 +10182,9 @@ class Sa extends Ho {
|
|
|
10151
10182
|
this.defines && (e === !0 !== this.alphaToCoverage && (this.needsUpdate = !0), e === !0 ? this.defines.USE_ALPHA_TO_COVERAGE = "" : delete this.defines.USE_ALPHA_TO_COVERAGE);
|
|
10152
10183
|
}
|
|
10153
10184
|
}
|
|
10154
|
-
const zs = new Ut(),
|
|
10185
|
+
const zs = new Ut(), Io = new P(), bo = new P(), Ne = new Ut(), Ue = new Ut(), Ct = new Ut(), Ks = new P(), Ys = new ue(), Pe = new Wr(), Eo = new P(), ns = new fs(), ss = new mi(), Bt = new Ut();
|
|
10155
10186
|
let yt, on;
|
|
10156
|
-
function
|
|
10187
|
+
function Co(A, e, t) {
|
|
10157
10188
|
return Bt.set(0, 0, -e, 1).applyMatrix4(A.projectionMatrix), Bt.multiplyScalar(1 / Bt.w), Bt.x = on / t.width, Bt.y = on / t.height, Bt.applyMatrix4(A.projectionMatrixInverse), Bt.multiplyScalar(1 / Bt.w), Math.abs(Math.max(Bt.x, Bt.y));
|
|
10158
10189
|
}
|
|
10159
10190
|
function zl(A, e) {
|
|
@@ -10176,8 +10207,8 @@ function zl(A, e) {
|
|
|
10176
10207
|
function Kl(A, e, t) {
|
|
10177
10208
|
const s = e.projectionMatrix, i = A.material.resolution, o = A.matrixWorld, a = A.geometry, r = a.attributes.instanceStart, c = a.attributes.instanceEnd, l = Math.min(a.instanceCount, r.count), h = -e.near;
|
|
10178
10209
|
yt.at(1, Ct), Ct.w = 1, Ct.applyMatrix4(e.matrixWorldInverse), Ct.applyMatrix4(s), Ct.multiplyScalar(1 / Ct.w), Ct.x *= i.x / 2, Ct.y *= i.y / 2, Ct.z = 0, Ks.copy(Ct), Ys.multiplyMatrices(e.matrixWorldInverse, o);
|
|
10179
|
-
for (let
|
|
10180
|
-
if (Ne.fromBufferAttribute(r,
|
|
10210
|
+
for (let g = 0, d = l; g < d; g++) {
|
|
10211
|
+
if (Ne.fromBufferAttribute(r, g), Ue.fromBufferAttribute(c, g), Ne.w = 1, Ue.w = 1, Ne.applyMatrix4(Ys), Ue.applyMatrix4(Ys), Ne.z > h && Ue.z > h)
|
|
10181
10212
|
continue;
|
|
10182
10213
|
if (Ne.z > h) {
|
|
10183
10214
|
const E = Ne.z - Ue.z, w = (Ne.z - h) / E;
|
|
@@ -10188,10 +10219,10 @@ function Kl(A, e, t) {
|
|
|
10188
10219
|
}
|
|
10189
10220
|
Ne.applyMatrix4(s), Ue.applyMatrix4(s), Ne.multiplyScalar(1 / Ne.w), Ue.multiplyScalar(1 / Ue.w), Ne.x *= i.x / 2, Ne.y *= i.y / 2, Ue.x *= i.x / 2, Ue.y *= i.y / 2, Pe.start.copy(Ne), Pe.start.z = 0, Pe.end.copy(Ue), Pe.end.z = 0;
|
|
10190
10221
|
const m = Pe.closestPointToPointParameter(Ks, !0);
|
|
10191
|
-
Pe.at(m,
|
|
10192
|
-
const I = ye.lerp(Ne.z, Ue.z, m), b = I >= -1 && I <= 1, B = Ks.distanceTo(
|
|
10222
|
+
Pe.at(m, Eo);
|
|
10223
|
+
const I = ye.lerp(Ne.z, Ue.z, m), b = I >= -1 && I <= 1, B = Ks.distanceTo(Eo) < on * 0.5;
|
|
10193
10224
|
if (b && B) {
|
|
10194
|
-
Pe.start.fromBufferAttribute(r,
|
|
10225
|
+
Pe.start.fromBufferAttribute(r, g), Pe.end.fromBufferAttribute(c, g), Pe.start.applyMatrix4(o), Pe.end.applyMatrix4(o);
|
|
10195
10226
|
const E = new P(), w = new P();
|
|
10196
10227
|
yt.distanceSqToSegment(Pe.start, Pe.end, w, E), t.push({
|
|
10197
10228
|
point: w,
|
|
@@ -10199,7 +10230,7 @@ function Kl(A, e, t) {
|
|
|
10199
10230
|
distance: yt.origin.distanceTo(w),
|
|
10200
10231
|
object: A,
|
|
10201
10232
|
face: null,
|
|
10202
|
-
faceIndex:
|
|
10233
|
+
faceIndex: g,
|
|
10203
10234
|
uv: null,
|
|
10204
10235
|
uv1: null
|
|
10205
10236
|
});
|
|
@@ -10214,7 +10245,7 @@ class Yl extends z {
|
|
|
10214
10245
|
computeLineDistances() {
|
|
10215
10246
|
const e = this.geometry, t = e.attributes.instanceStart, s = e.attributes.instanceEnd, n = new Float32Array(2 * t.count);
|
|
10216
10247
|
for (let o = 0, a = 0, r = t.count; o < r; o++, a += 2)
|
|
10217
|
-
|
|
10248
|
+
Io.fromBufferAttribute(t, o), bo.fromBufferAttribute(s, o), n[a] = a === 0 ? 0 : n[a - 1], n[a + 1] = n[a] + Io.distanceTo(bo);
|
|
10218
10249
|
const i = new $s(n, 2, 1);
|
|
10219
10250
|
return e.setAttribute("instanceDistanceStart", new en(i, 1, 0)), e.setAttribute("instanceDistanceEnd", new en(i, 1, 1)), this;
|
|
10220
10251
|
}
|
|
@@ -10230,7 +10261,7 @@ class Yl extends z {
|
|
|
10230
10261
|
c = on * 0.5;
|
|
10231
10262
|
else {
|
|
10232
10263
|
const h = Math.max(n.near, ss.distanceToPoint(yt.origin));
|
|
10233
|
-
c =
|
|
10264
|
+
c = Co(n, h, r.resolution);
|
|
10234
10265
|
}
|
|
10235
10266
|
if (ss.radius += c, yt.intersectsSphere(ss) === !1)
|
|
10236
10267
|
return;
|
|
@@ -10240,7 +10271,7 @@ class Yl extends z {
|
|
|
10240
10271
|
l = on * 0.5;
|
|
10241
10272
|
else {
|
|
10242
10273
|
const h = Math.max(n.near, ns.distanceToPoint(yt.origin));
|
|
10243
|
-
l =
|
|
10274
|
+
l = Co(n, h, r.resolution);
|
|
10244
10275
|
}
|
|
10245
10276
|
ns.expandByScalar(l), yt.intersectsBox(ns) !== !1 && (s ? zl(this, t) : Kl(this, n, t));
|
|
10246
10277
|
}
|
|
@@ -10277,7 +10308,7 @@ class Mh extends Yl {
|
|
|
10277
10308
|
}
|
|
10278
10309
|
class kh extends z {
|
|
10279
10310
|
constructor(e) {
|
|
10280
|
-
const t = new Vl(e), s = new
|
|
10311
|
+
const t = new Vl(e), s = new bi(t.image.width * 1e-3, t.image.height * 1e-3), n = new Qt({ map: t, toneMapped: !1, transparent: !0 });
|
|
10281
10312
|
super(s, n);
|
|
10282
10313
|
function i(o) {
|
|
10283
10314
|
n.map.dispatchDOMEvent(o);
|
|
@@ -10289,7 +10320,7 @@ class kh extends z {
|
|
|
10289
10320
|
}
|
|
10290
10321
|
class Vl extends jo {
|
|
10291
10322
|
constructor(e) {
|
|
10292
|
-
super(
|
|
10323
|
+
super(Bo(e)), this.dom = e, this.anisotropy = 16, this.colorSpace = ge, this.minFilter = mt, this.magFilter = mt;
|
|
10293
10324
|
const t = new MutationObserver(() => {
|
|
10294
10325
|
this.scheduleUpdate || (this.scheduleUpdate = setTimeout(() => this.update(), 16));
|
|
10295
10326
|
}), s = { attributes: !0, childList: !0, subtree: !0, characterData: !0 };
|
|
@@ -10299,106 +10330,106 @@ class Vl extends jo {
|
|
|
10299
10330
|
e.data && Wl(this.dom, e.type, e.data.x, e.data.y);
|
|
10300
10331
|
}
|
|
10301
10332
|
update() {
|
|
10302
|
-
this.image =
|
|
10333
|
+
this.image = Bo(this.dom), this.needsUpdate = !0, this.scheduleUpdate = null;
|
|
10303
10334
|
}
|
|
10304
10335
|
dispose() {
|
|
10305
10336
|
this.observer && this.observer.disconnect(), this.scheduleUpdate = clearTimeout(this.scheduleUpdate), super.dispose();
|
|
10306
10337
|
}
|
|
10307
10338
|
}
|
|
10308
10339
|
const Ai = /* @__PURE__ */ new WeakMap();
|
|
10309
|
-
function
|
|
10340
|
+
function Bo(A) {
|
|
10310
10341
|
const e = document.createRange(), t = new Se();
|
|
10311
|
-
function s(
|
|
10312
|
-
const
|
|
10342
|
+
function s(g) {
|
|
10343
|
+
const d = [];
|
|
10313
10344
|
let p = !1;
|
|
10314
10345
|
function m() {
|
|
10315
|
-
if (p && (p = !1,
|
|
10346
|
+
if (p && (p = !1, g.restore()), d.length === 0)
|
|
10316
10347
|
return;
|
|
10317
10348
|
let I = -1 / 0, b = -1 / 0, B = 1 / 0, E = 1 / 0;
|
|
10318
|
-
for (let w = 0; w <
|
|
10319
|
-
const Q =
|
|
10349
|
+
for (let w = 0; w < d.length; w++) {
|
|
10350
|
+
const Q = d[w];
|
|
10320
10351
|
I = Math.max(I, Q.x), b = Math.max(b, Q.y), B = Math.min(B, Q.x + Q.width), E = Math.min(E, Q.y + Q.height);
|
|
10321
10352
|
}
|
|
10322
|
-
|
|
10353
|
+
g.save(), g.beginPath(), g.rect(I, b, B - I, E - b), g.clip(), p = !0;
|
|
10323
10354
|
}
|
|
10324
10355
|
return {
|
|
10325
10356
|
add: function(I) {
|
|
10326
|
-
|
|
10357
|
+
d.push(I), m();
|
|
10327
10358
|
},
|
|
10328
10359
|
remove: function() {
|
|
10329
|
-
|
|
10360
|
+
d.pop(), m();
|
|
10330
10361
|
}
|
|
10331
10362
|
};
|
|
10332
10363
|
}
|
|
10333
|
-
function n(
|
|
10334
|
-
m !== "" && (
|
|
10364
|
+
function n(g, d, p, m) {
|
|
10365
|
+
m !== "" && (g.textTransform === "uppercase" && (m = m.toUpperCase()), l.font = g.fontWeight + " " + g.fontSize + " " + g.fontFamily, l.textBaseline = "top", l.fillStyle = g.color, l.fillText(m, d, p + parseFloat(g.fontSize) * 0.1));
|
|
10335
10366
|
}
|
|
10336
|
-
function i(
|
|
10337
|
-
p < 2 * I && (I = p / 2), m < 2 * I && (I = m / 2), l.beginPath(), l.moveTo(
|
|
10367
|
+
function i(g, d, p, m, I) {
|
|
10368
|
+
p < 2 * I && (I = p / 2), m < 2 * I && (I = m / 2), l.beginPath(), l.moveTo(g + I, d), l.arcTo(g + p, d, g + p, d + m, I), l.arcTo(g + p, d + m, g, d + m, I), l.arcTo(g, d + m, g, d, I), l.arcTo(g, d, g + p, d, I), l.closePath();
|
|
10338
10369
|
}
|
|
10339
|
-
function o(
|
|
10340
|
-
const B = d
|
|
10370
|
+
function o(g, d, p, m, I, b) {
|
|
10371
|
+
const B = g[d + "Width"], E = g[d + "Style"], w = g[d + "Color"];
|
|
10341
10372
|
B !== "0px" && E !== "none" && w !== "transparent" && w !== "rgba(0, 0, 0, 0)" && (l.strokeStyle = w, l.lineWidth = parseFloat(B), l.beginPath(), l.moveTo(p, m), l.lineTo(p + I, m + b), l.stroke());
|
|
10342
10373
|
}
|
|
10343
|
-
function a(
|
|
10344
|
-
if (
|
|
10374
|
+
function a(g, d) {
|
|
10375
|
+
if (g.nodeType === Node.COMMENT_NODE || g.nodeName === "SCRIPT" || g.style && g.style.display === "none")
|
|
10345
10376
|
return;
|
|
10346
10377
|
let p = 0, m = 0, I = 0, b = 0;
|
|
10347
|
-
if (
|
|
10348
|
-
e.selectNode(
|
|
10378
|
+
if (g.nodeType === Node.TEXT_NODE) {
|
|
10379
|
+
e.selectNode(g);
|
|
10349
10380
|
const E = e.getBoundingClientRect();
|
|
10350
|
-
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, I = E.width, b = E.height, n(
|
|
10351
|
-
} else if (
|
|
10352
|
-
const E =
|
|
10381
|
+
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, I = E.width, b = E.height, n(d, p, m, g.nodeValue.trim());
|
|
10382
|
+
} else if (g instanceof HTMLCanvasElement) {
|
|
10383
|
+
const E = g.getBoundingClientRect();
|
|
10353
10384
|
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, l.save();
|
|
10354
10385
|
const w = window.devicePixelRatio;
|
|
10355
|
-
l.scale(1 / w, 1 / w), l.drawImage(
|
|
10356
|
-
} else if (
|
|
10357
|
-
const E =
|
|
10358
|
-
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, I = E.width, b = E.height, l.drawImage(
|
|
10386
|
+
l.scale(1 / w, 1 / w), l.drawImage(g, p, m), l.restore();
|
|
10387
|
+
} else if (g instanceof HTMLImageElement) {
|
|
10388
|
+
const E = g.getBoundingClientRect();
|
|
10389
|
+
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, I = E.width, b = E.height, l.drawImage(g, p, m, I, b);
|
|
10359
10390
|
} else {
|
|
10360
|
-
const E =
|
|
10361
|
-
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, I = E.width, b = E.height,
|
|
10362
|
-
const w =
|
|
10391
|
+
const E = g.getBoundingClientRect();
|
|
10392
|
+
p = E.left - r.left - 0.5, m = E.top - r.top - 0.5, I = E.width, b = E.height, d = window.getComputedStyle(g), i(p, m, I, b, parseFloat(d.borderRadius));
|
|
10393
|
+
const w = d.backgroundColor;
|
|
10363
10394
|
w !== "transparent" && w !== "rgba(0, 0, 0, 0)" && (l.fillStyle = w, l.fill());
|
|
10364
10395
|
const Q = ["borderTop", "borderLeft", "borderBottom", "borderRight"];
|
|
10365
10396
|
let R = !0, _ = null;
|
|
10366
10397
|
for (const x of Q) {
|
|
10367
|
-
if (_ !== null && (R =
|
|
10398
|
+
if (_ !== null && (R = d[x + "Width"] === d[_ + "Width"] && d[x + "Color"] === d[_ + "Color"] && d[x + "Style"] === d[_ + "Style"]), R === !1)
|
|
10368
10399
|
break;
|
|
10369
10400
|
_ = x;
|
|
10370
10401
|
}
|
|
10371
10402
|
if (R === !0) {
|
|
10372
|
-
const x = parseFloat(
|
|
10373
|
-
|
|
10403
|
+
const x = parseFloat(d.borderTopWidth);
|
|
10404
|
+
d.borderTopWidth !== "0px" && d.borderTopStyle !== "none" && d.borderTopColor !== "transparent" && d.borderTopColor !== "rgba(0, 0, 0, 0)" && (l.strokeStyle = d.borderTopColor, l.lineWidth = x, l.stroke());
|
|
10374
10405
|
} else
|
|
10375
|
-
o(
|
|
10376
|
-
if (
|
|
10377
|
-
let x =
|
|
10378
|
-
(x === void 0 || x === "auto") && (x =
|
|
10406
|
+
o(d, "borderTop", p, m, I, 0), o(d, "borderLeft", p, m, 0, b), o(d, "borderBottom", p, m + b, I, 0), o(d, "borderRight", p + I, m, 0, b);
|
|
10407
|
+
if (g instanceof HTMLInputElement) {
|
|
10408
|
+
let x = d.accentColor;
|
|
10409
|
+
(x === void 0 || x === "auto") && (x = d.color), t.set(x);
|
|
10379
10410
|
const L = Math.sqrt(0.299 * t.r ** 2 + 0.587 * t.g ** 2 + 0.114 * t.b ** 2) < 0.5 ? "white" : "#111111";
|
|
10380
|
-
if (
|
|
10411
|
+
if (g.type === "radio" && (i(p, m, I, b, b), l.fillStyle = "white", l.strokeStyle = x, l.lineWidth = 1, l.fill(), l.stroke(), g.checked && (i(p + 2, m + 2, I - 4, b - 4, b), l.fillStyle = x, l.strokeStyle = L, l.lineWidth = 2, l.fill(), l.stroke())), g.type === "checkbox" && (i(p, m, I, b, 2), l.fillStyle = g.checked ? x : "white", l.strokeStyle = g.checked ? L : x, l.lineWidth = 1, l.stroke(), l.fill(), g.checked)) {
|
|
10381
10412
|
const N = l.textAlign;
|
|
10382
10413
|
l.textAlign = "center";
|
|
10383
10414
|
const O = {
|
|
10384
10415
|
color: L,
|
|
10385
|
-
fontFamily:
|
|
10416
|
+
fontFamily: d.fontFamily,
|
|
10386
10417
|
fontSize: b + "px",
|
|
10387
10418
|
fontWeight: "bold"
|
|
10388
10419
|
};
|
|
10389
10420
|
n(O, p + I / 2, m, "✔"), l.textAlign = N;
|
|
10390
10421
|
}
|
|
10391
|
-
if (
|
|
10392
|
-
const [N, O, Z] = ["min", "max", "value"].map((q) => parseFloat(
|
|
10422
|
+
if (g.type === "range") {
|
|
10423
|
+
const [N, O, Z] = ["min", "max", "value"].map((q) => parseFloat(g[q])), U = (Z - N) / (O - N) * (I - b);
|
|
10393
10424
|
i(p, m + b / 4, I, b / 2, b / 4), l.fillStyle = L, l.strokeStyle = x, l.lineWidth = 1, l.fill(), l.stroke(), i(p, m + b / 4, U + b / 2, b / 2, b / 4), l.fillStyle = x, l.fill(), i(p + U, m, b, b, b / 2), l.fillStyle = x, l.fill();
|
|
10394
10425
|
}
|
|
10395
|
-
(
|
|
10426
|
+
(g.type === "color" || g.type === "text" || g.type === "number") && (h.add({ x: p, y: m, width: I, height: b }), n(d, p + parseInt(d.paddingLeft), m + parseInt(d.paddingTop), g.value), h.remove());
|
|
10396
10427
|
}
|
|
10397
10428
|
}
|
|
10398
|
-
const B =
|
|
10429
|
+
const B = d.overflow === "auto" || d.overflow === "hidden";
|
|
10399
10430
|
B && h.add({ x: p, y: m, width: I, height: b });
|
|
10400
|
-
for (let E = 0; E <
|
|
10401
|
-
a(
|
|
10431
|
+
for (let E = 0; E < g.childNodes.length; E++)
|
|
10432
|
+
a(g.childNodes[E], d);
|
|
10402
10433
|
B && h.remove();
|
|
10403
10434
|
}
|
|
10404
10435
|
const r = A.getBoundingClientRect();
|
|
@@ -10423,8 +10454,8 @@ function Wl(A, e, t, s) {
|
|
|
10423
10454
|
if (a.nodeType !== Node.TEXT_NODE && a.nodeType !== Node.COMMENT_NODE) {
|
|
10424
10455
|
const r = a.getBoundingClientRect();
|
|
10425
10456
|
if (t > r.left && t < r.right && s > r.top && s < r.bottom && (a.dispatchEvent(new MouseEvent(e, n)), a instanceof HTMLInputElement && a.type === "range" && (e === "mousedown" || e === "click"))) {
|
|
10426
|
-
const [c, l] = ["min", "max"].map((p) => parseFloat(a[p])), h = r.width,
|
|
10427
|
-
a.value = c + (l - c) *
|
|
10457
|
+
const [c, l] = ["min", "max"].map((p) => parseFloat(a[p])), h = r.width, d = (t - r.x) / h;
|
|
10458
|
+
a.value = c + (l - c) * d, a.dispatchEvent(new InputEvent("input", { bubbles: !0 }));
|
|
10428
10459
|
}
|
|
10429
10460
|
for (let c = 0; c < a.childNodes.length; c++)
|
|
10430
10461
|
o(a.childNodes[c]);
|
|
@@ -10432,18 +10463,18 @@ function Wl(A, e, t, s) {
|
|
|
10432
10463
|
}
|
|
10433
10464
|
o(A);
|
|
10434
10465
|
}
|
|
10435
|
-
const rs = new Le(),
|
|
10466
|
+
const rs = new Le(), gn = { type: "", data: rs }, wo = new Ii();
|
|
10436
10467
|
class Fh extends sn {
|
|
10437
10468
|
listenToPointerEvents(e, t) {
|
|
10438
|
-
const s = this, n = new
|
|
10469
|
+
const s = this, n = new Ii(), i = e.domElement;
|
|
10439
10470
|
function o(a) {
|
|
10440
10471
|
a.stopPropagation();
|
|
10441
10472
|
const r = e.domElement.getBoundingClientRect();
|
|
10442
10473
|
rs.x = (a.clientX - r.left) / r.width * 2 - 1, rs.y = -(a.clientY - r.top) / r.height * 2 + 1, n.setFromCamera(rs, t);
|
|
10443
10474
|
const c = n.intersectObjects(s.children, !1);
|
|
10444
10475
|
if (c.length > 0) {
|
|
10445
|
-
const l = c[0], h = l.object,
|
|
10446
|
-
|
|
10476
|
+
const l = c[0], h = l.object, g = l.uv;
|
|
10477
|
+
gn.type = a.type, gn.data.set(g.x, 1 - g.y), h.dispatchEvent(gn);
|
|
10447
10478
|
}
|
|
10448
10479
|
}
|
|
10449
10480
|
i.addEventListener("pointerdown", o), i.addEventListener("pointerup", o), i.addEventListener("pointermove", o), i.addEventListener("mousedown", o), i.addEventListener("mouseup", o), i.addEventListener("mousemove", o), i.addEventListener("click", o);
|
|
@@ -10457,30 +10488,30 @@ class Fh extends sn {
|
|
|
10457
10488
|
};
|
|
10458
10489
|
function n(i) {
|
|
10459
10490
|
const o = i.target;
|
|
10460
|
-
|
|
10461
|
-
const a =
|
|
10491
|
+
wo.setFromXRController(o);
|
|
10492
|
+
const a = wo.intersectObjects(t.children, !1);
|
|
10462
10493
|
if (a.length > 0) {
|
|
10463
10494
|
const r = a[0], c = r.object, l = r.uv;
|
|
10464
|
-
|
|
10495
|
+
gn.type = s[i.type], gn.data.set(l.x, 1 - l.y), c.dispatchEvent(gn);
|
|
10465
10496
|
}
|
|
10466
10497
|
}
|
|
10467
10498
|
e.addEventListener("move", n), e.addEventListener("select", n), e.addEventListener("selectstart", n), e.addEventListener("selectend", n);
|
|
10468
10499
|
}
|
|
10469
10500
|
}
|
|
10470
|
-
const Rn = new P(), _n = new P(),
|
|
10501
|
+
const Rn = new P(), _n = new P(), yo = new Oo();
|
|
10471
10502
|
class Lh extends As {
|
|
10472
10503
|
constructor(e, t = 1, s = 16711680) {
|
|
10473
10504
|
const n = new ut(), i = e.geometry.attributes.normal.count, o = new ke(i * 2 * 3, 3);
|
|
10474
10505
|
n.setAttribute("position", o), super(n, new Lt({ color: s, toneMapped: !1 })), this.object = e, this.size = t, this.type = "VertexNormalsHelper", this.matrixAutoUpdate = !1, this.update();
|
|
10475
10506
|
}
|
|
10476
10507
|
update() {
|
|
10477
|
-
this.object.updateMatrixWorld(!0),
|
|
10508
|
+
this.object.updateMatrixWorld(!0), yo.getNormalMatrix(this.object.matrixWorld);
|
|
10478
10509
|
const e = this.object.matrixWorld, t = this.geometry.attributes.position, s = this.object.geometry;
|
|
10479
10510
|
if (s) {
|
|
10480
10511
|
const n = s.attributes.position, i = s.attributes.normal;
|
|
10481
10512
|
let o = 0;
|
|
10482
10513
|
for (let a = 0, r = n.count; a < r; a++)
|
|
10483
|
-
Rn.fromBufferAttribute(n, a).applyMatrix4(e), _n.fromBufferAttribute(i, a), _n.applyMatrix3(
|
|
10514
|
+
Rn.fromBufferAttribute(n, a).applyMatrix4(e), _n.fromBufferAttribute(i, a), _n.applyMatrix3(yo).normalize().multiplyScalar(this.size).add(Rn), t.setXYZ(o, Rn.x, Rn.y, Rn.z), o = o + 1, t.setXYZ(o, _n.x, _n.y, _n.z), o = o + 1;
|
|
10484
10515
|
}
|
|
10485
10516
|
t.needsUpdate = !0;
|
|
10486
10517
|
}
|
|
@@ -10517,9 +10548,9 @@ const lt = {
|
|
|
10517
10548
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
10518
10549
|
CUBICSPLINE: void 0,
|
|
10519
10550
|
LINEAR: jn,
|
|
10520
|
-
STEP:
|
|
10521
|
-
},
|
|
10522
|
-
let
|
|
10551
|
+
STEP: fi
|
|
10552
|
+
}, Qo = It.findNode;
|
|
10553
|
+
let xo = !1;
|
|
10523
10554
|
class $l {
|
|
10524
10555
|
constructor(e) {
|
|
10525
10556
|
this.parser = e, this.name = Zt, this.animationPointerResolver = null;
|
|
@@ -10528,7 +10559,7 @@ class $l {
|
|
|
10528
10559
|
return this.animationPointerResolver = e, this;
|
|
10529
10560
|
}
|
|
10530
10561
|
_patchPropertyBindingFindNode() {
|
|
10531
|
-
|
|
10562
|
+
xo || (xo = !0, It.findNode = function(e, t) {
|
|
10532
10563
|
if (t.startsWith(".materials.")) {
|
|
10533
10564
|
const s = t.substring(11).substring(t.indexOf(".")), n = s.indexOf("."), i = n < 0 ? s : s.substring(0, n);
|
|
10534
10565
|
let o = null;
|
|
@@ -10552,12 +10583,12 @@ class $l {
|
|
|
10552
10583
|
}
|
|
10553
10584
|
}
|
|
10554
10585
|
if (!n) {
|
|
10555
|
-
const i =
|
|
10586
|
+
const i = Qo(e, s[2]);
|
|
10556
10587
|
return i || console.warn(Zt + ": Property binding not found", t, e, e.name, s), i;
|
|
10557
10588
|
}
|
|
10558
10589
|
return n;
|
|
10559
10590
|
}
|
|
10560
|
-
return
|
|
10591
|
+
return Qo(e, t);
|
|
10561
10592
|
});
|
|
10562
10593
|
}
|
|
10563
10594
|
/* DUPLICATE of functionality in GLTFLoader */
|
|
@@ -10584,7 +10615,7 @@ class $l {
|
|
|
10584
10615
|
}
|
|
10585
10616
|
switch (i) {
|
|
10586
10617
|
case lt.material:
|
|
10587
|
-
const h = ("/materials/" + o.toString() + "/").length,
|
|
10618
|
+
const h = ("/materials/" + o.toString() + "/").length, g = c.substring(0, h);
|
|
10588
10619
|
switch (n = c.substring(h), n) {
|
|
10589
10620
|
case "pbrMetallicRoughness/baseColorFactor":
|
|
10590
10621
|
n = "color";
|
|
@@ -10668,11 +10699,11 @@ class $l {
|
|
|
10668
10699
|
n = "specularColor";
|
|
10669
10700
|
break;
|
|
10670
10701
|
}
|
|
10671
|
-
c =
|
|
10702
|
+
c = g + n;
|
|
10672
10703
|
break;
|
|
10673
10704
|
case lt.node:
|
|
10674
|
-
const
|
|
10675
|
-
switch (n = c.substring(
|
|
10705
|
+
const d = ("/nodes/" + o.toString() + "/").length, p = c.substring(0, d);
|
|
10706
|
+
switch (n = c.substring(d), n) {
|
|
10676
10707
|
case "translation":
|
|
10677
10708
|
n = "position";
|
|
10678
10709
|
break;
|
|
@@ -10755,12 +10786,12 @@ class $l {
|
|
|
10755
10786
|
const c = a.split(".");
|
|
10756
10787
|
var h = e.name !== void 0 && e.name !== null ? e.name : e.uuid;
|
|
10757
10788
|
if (c[2] = h, c[3] === "morphTargetInfluences" && e.type === "Group") {
|
|
10758
|
-
for (const
|
|
10759
|
-
|
|
10789
|
+
for (const d of e.children)
|
|
10790
|
+
d instanceof di && d.morphTargetInfluences && (c[3] = d.name, c[4] = "morphTargetInfluences", g(this.parser));
|
|
10760
10791
|
return r;
|
|
10761
10792
|
}
|
|
10762
|
-
|
|
10763
|
-
function d
|
|
10793
|
+
g(this.parser);
|
|
10794
|
+
function g(d) {
|
|
10764
10795
|
a = c.join(".");
|
|
10765
10796
|
let p;
|
|
10766
10797
|
switch (s.itemSize) {
|
|
@@ -10776,7 +10807,7 @@ class $l {
|
|
|
10776
10807
|
break;
|
|
10777
10808
|
}
|
|
10778
10809
|
const m = n.interpolation !== void 0 ? Zl[n.interpolation] : jn;
|
|
10779
|
-
let I =
|
|
10810
|
+
let I = d._getArrayFromAccessor(s);
|
|
10780
10811
|
a.endsWith(".fov") && (I = I.map((B) => B / Math.PI * 180));
|
|
10781
10812
|
const b = new p(
|
|
10782
10813
|
a,
|
|
@@ -10784,7 +10815,7 @@ class $l {
|
|
|
10784
10815
|
I,
|
|
10785
10816
|
m
|
|
10786
10817
|
);
|
|
10787
|
-
if (m === "CUBICSPLINE" &&
|
|
10818
|
+
if (m === "CUBICSPLINE" && d._createCubicSplineTrackInterpolant(b), r.push(b), a && s.itemSize === 4 && a.startsWith(".materials.") && a.endsWith(".color")) {
|
|
10788
10819
|
const B = new Float32Array(I.length / 4);
|
|
10789
10820
|
for (let w = 0, Q = I.length / 4; w < Q; w += 1)
|
|
10790
10821
|
B[w] = I[w * 4 + 3];
|
|
@@ -10794,7 +10825,7 @@ class $l {
|
|
|
10794
10825
|
B,
|
|
10795
10826
|
m
|
|
10796
10827
|
);
|
|
10797
|
-
m === "CUBICSPLINE" &&
|
|
10828
|
+
m === "CUBICSPLINE" && d._createCubicSplineTrackInterpolant(b), r.push(E);
|
|
10798
10829
|
}
|
|
10799
10830
|
}
|
|
10800
10831
|
return r;
|
|
@@ -10811,8 +10842,8 @@ class $l {
|
|
|
10811
10842
|
*/
|
|
10812
10843
|
loadAnimation(e) {
|
|
10813
10844
|
const t = this, s = this.parser.json, n = this.parser, i = s.animations[e], o = i.name ? i.name : "animation_" + e, a = [], r = [], c = [], l = [], h = [];
|
|
10814
|
-
for (let
|
|
10815
|
-
const p = i.channels[
|
|
10845
|
+
for (let g = 0, d = i.channels.length; g < d; g++) {
|
|
10846
|
+
const p = i.channels[g], m = i.samplers[p.sampler], I = p.target, b = i.parameters !== void 0 ? i.parameters[m.input] : m.input, B = i.parameters !== void 0 ? i.parameters[m.output] : m.output;
|
|
10816
10847
|
let E = t.loadAnimationTargetFromChannelWithAnimationPointer(p);
|
|
10817
10848
|
E || (E = t.loadAnimationTargetFromChannel(p)), a.push(E), r.push(n.getDependency("accessor", b)), c.push(n.getDependency("accessor", B)), l.push(m), h.push(I);
|
|
10818
10849
|
}
|
|
@@ -10822,10 +10853,10 @@ class $l {
|
|
|
10822
10853
|
Promise.all(c),
|
|
10823
10854
|
Promise.all(l),
|
|
10824
10855
|
Promise.all(h)
|
|
10825
|
-
]).then(function(
|
|
10826
|
-
const
|
|
10827
|
-
for (let E = 0, w =
|
|
10828
|
-
const Q =
|
|
10856
|
+
]).then(function(g) {
|
|
10857
|
+
const d = g[0], p = g[1], m = g[2], I = g[3], b = g[4], B = [];
|
|
10858
|
+
for (let E = 0, w = d.length; E < w; E++) {
|
|
10859
|
+
const Q = d[E], R = p[E], _ = m[E], x = I[E], T = b[E];
|
|
10829
10860
|
if (Q === void 0)
|
|
10830
10861
|
continue;
|
|
10831
10862
|
Q.updateMatrix && (Q.updateMatrix(), Q.matrixAutoUpdate = !0);
|
|
@@ -10834,7 +10865,7 @@ class $l {
|
|
|
10834
10865
|
for (let N = 0; N < L.length; N++)
|
|
10835
10866
|
B.push(L[N]);
|
|
10836
10867
|
}
|
|
10837
|
-
return new
|
|
10868
|
+
return new pi(o, void 0, B);
|
|
10838
10869
|
});
|
|
10839
10870
|
}
|
|
10840
10871
|
}
|
|
@@ -10877,6 +10908,6 @@ export {
|
|
|
10877
10908
|
Bh as p,
|
|
10878
10909
|
wh as q,
|
|
10879
10910
|
Uh as r,
|
|
10880
|
-
|
|
10911
|
+
$i as s,
|
|
10881
10912
|
Ch as z
|
|
10882
10913
|
};
|