aptechka 0.4.43 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/en3/core/En3View.d.ts +41 -0
- package/lib/en3/core/en3.d.ts +12 -41
- package/lib/en3/index.cjs +7 -7
- package/lib/en3/index.d.ts +2 -2
- package/lib/en3/index.js +907 -973
- package/lib/en3/objects/En3Clip.d.ts +5 -1
- package/lib/en3/utils/getCurrentViewport.d.ts +1 -1
- package/package.json +1 -1
- package/lib/en3/core/En3Raycaster.d.ts +0 -20
package/lib/en3/index.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
1
|
+
var is = Object.defineProperty, os = Object.defineProperties;
|
|
2
|
+
var Bs = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var nt = Object.getOwnPropertySymbols;
|
|
4
|
+
var rs = Object.prototype.hasOwnProperty, Cs = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var it = (a, A, e) => A in a ? is(a, A, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[A] = e, FA = (a, A) => {
|
|
6
6
|
for (var e in A || (A = {}))
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
for (var e of
|
|
10
|
-
|
|
11
|
-
return
|
|
12
|
-
},
|
|
13
|
-
var
|
|
14
|
-
if (!A.has(
|
|
7
|
+
rs.call(A, e) && it(a, e, A[e]);
|
|
8
|
+
if (nt)
|
|
9
|
+
for (var e of nt(A))
|
|
10
|
+
Cs.call(A, e) && it(a, e, A[e]);
|
|
11
|
+
return a;
|
|
12
|
+
}, ue = (a, A) => os(a, Bs(A));
|
|
13
|
+
var ye = (a, A, e) => {
|
|
14
|
+
if (!A.has(a))
|
|
15
15
|
throw TypeError("Cannot " + e);
|
|
16
16
|
};
|
|
17
|
-
var g = (
|
|
18
|
-
if (A.has(
|
|
17
|
+
var g = (a, A, e) => (ye(a, A, "read from private field"), e ? e.call(a) : A.get(a)), F = (a, A, e) => {
|
|
18
|
+
if (A.has(a))
|
|
19
19
|
throw TypeError("Cannot add the same private member more than once");
|
|
20
|
-
A instanceof WeakSet ? A.add(
|
|
21
|
-
}, G = (
|
|
22
|
-
var
|
|
23
|
-
var
|
|
20
|
+
A instanceof WeakSet ? A.add(a) : A.set(a, e);
|
|
21
|
+
}, G = (a, A, e, s) => (ye(a, A, "write to private field"), s ? s.call(a, e) : A.set(a, e), e);
|
|
22
|
+
var fe = (a, A, e) => (ye(a, A, "access private method"), e);
|
|
23
|
+
var KA = (a, A, e) => new Promise((s, t) => {
|
|
24
24
|
var n = (o) => {
|
|
25
25
|
try {
|
|
26
26
|
B(e.next(o));
|
|
@@ -34,19 +34,20 @@ var PA = (C, A, e) => new Promise((s, t) => {
|
|
|
34
34
|
t(r);
|
|
35
35
|
}
|
|
36
36
|
}, B = (o) => o.done ? s(o.value) : Promise.resolve(o.value).then(n, i);
|
|
37
|
-
B((e = e.apply(
|
|
37
|
+
B((e = e.apply(a, A)).next());
|
|
38
38
|
});
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import { ticker as bA } from "../ticker/index.js";
|
|
44
|
-
import { Mesh as Re, Vector2 as at, Raycaster as fs, REVISION as Ds, OrthographicCamera as Te, PerspectiveCamera as At, Scene as Fs, WebGLRenderer as Gs, TextureLoader as Kt, TrianglesDrawMode as Rs, TriangleFanDrawMode as et, TriangleStripDrawMode as Ot, Loader as Ct, LoaderUtils as jA, FileLoader as DA, Color as cA, LinearSRGBColorSpace as _, SpotLight as ps, PointLight as ms, DirectionalLight as Ms, MeshBasicMaterial as vA, SRGBColorSpace as AA, MeshPhysicalMaterial as eA, Matrix4 as KA, Vector3 as y, Quaternion as It, InstancedMesh as ws, InstancedBufferAttribute as ys, Object3D as gt, ImageBitmapLoader as Ss, BufferAttribute as ZA, InterleavedBuffer as Ls, InterleavedBufferAttribute as Hs, LinearFilter as Ue, LinearMipmapLinearFilter as Et, RepeatWrapping as tt, PointsMaterial as Js, Material as Ke, LineBasicMaterial as Ts, MeshStandardMaterial as _t, DoubleSide as Us, PropertyBinding as Ns, BufferGeometry as Pt, SkinnedMesh as xs, LineSegments as ks, Line as bs, LineLoop as Ks, Points as Os, Group as zA, MathUtils as _s, Skeleton as Ps, AnimationClip as Ys, Bone as qs, InterpolateLinear as Yt, ColorManagement as dt, NearestFilter as Xs, NearestMipmapNearestFilter as vs, LinearMipmapNearestFilter as Ws, NearestMipmapLinearFilter as Vs, ClampToEdgeWrapping as js, MirroredRepeatWrapping as Zs, InterpolateDiscrete as zs, FrontSide as $s, Texture as ut, VectorKeyframeTrack as ft, NumberKeyframeTrack as Dt, QuaternionKeyframeTrack as Ft, Box3 as An, Sphere as en, Interpolant as tn, CompressedCubeTexture as sn, UnsignedByteType as O, CompressedArrayTexture as nn, CompressedTexture as qt, RGBAFormat as GA, RGBA_ASTC_4x4_Format as on, RGBA_BPTC_Format as Bn, RGBA_ETC2_EAC_Format as rn, RGBA_PVRTC_4BPPV1_Format as an, RGBA_S3TC_DXT5_Format as Cn, RGB_ETC1_Format as In, RGB_ETC2_Format as gn, RGB_PVRTC_4BPPV1_Format as En, RGB_S3TC_DXT1_Format as cn, FloatType as He, HalfFloatType as Je, DataTexture as Qn, Data3DTexture as hn, DisplayP3ColorSpace as ln, LinearDisplayP3ColorSpace as dn, NoColorSpace as Gt, RGFormat as WA, RedFormat as VA, RGBA_ASTC_6x6_Format as Rt, Plane as ye, PlaneHelper as Se, BoxGeometry as un, VideoTexture as fn } from "three";
|
|
45
|
-
import { loading as Oe } from "../loading/index.js";
|
|
46
|
-
import { S as Dn } from "../SourceManager-D_8MZ3bR.js";
|
|
39
|
+
import { RESIZE_ORDER as Mt, TICK_ORDER as ze } from "../order/index.js";
|
|
40
|
+
import { windowResizer as UA } from "../window-resizer/index.js";
|
|
41
|
+
import { ticker as NA } from "../ticker/index.js";
|
|
42
|
+
import { g as wt } from "../dom-0S_WDL4g.js";
|
|
47
43
|
import "../path-data-polyfill-DgeDWYeI.js";
|
|
48
|
-
import {
|
|
49
|
-
|
|
44
|
+
import { Mesh as Qe, OrthographicCamera as me, PerspectiveCamera as qe, Scene as as, REVISION as Is, WebGLRenderer as gs, TextureLoader as St, TrianglesDrawMode as Es, TriangleFanDrawMode as Xe, TriangleStripDrawMode as yt, Loader as $e, LoaderUtils as vA, FileLoader as fA, Color as EA, LinearSRGBColorSpace as _, SpotLight as cs, PointLight as Qs, DirectionalLight as hs, MeshBasicMaterial as YA, SRGBColorSpace as $, MeshPhysicalMaterial as AA, Vector2 as Lt, Matrix4 as xA, Vector3 as w, Quaternion as At, InstancedMesh as ls, InstancedBufferAttribute as ds, Object3D as et, ImageBitmapLoader as us, BufferAttribute as WA, InterleavedBuffer as fs, InterleavedBufferAttribute as Ds, LinearFilter as Me, LinearMipmapLinearFilter as tt, RepeatWrapping as ve, PointsMaterial as Fs, Material as Le, LineBasicMaterial as Gs, MeshStandardMaterial as Jt, DoubleSide as Rs, PropertyBinding as ps, BufferGeometry as Ht, SkinnedMesh as ms, LineSegments as Ms, Line as ws, LineLoop as Ss, Points as ys, Group as VA, MathUtils as Ls, Skeleton as Js, AnimationClip as Hs, Bone as Ts, InterpolateLinear as Tt, ColorManagement as ot, NearestFilter as Us, NearestMipmapNearestFilter as Ns, LinearMipmapNearestFilter as xs, NearestMipmapLinearFilter as ks, ClampToEdgeWrapping as bs, MirroredRepeatWrapping as Ks, InterpolateDiscrete as Os, FrontSide as _s, Texture as Bt, VectorKeyframeTrack as rt, NumberKeyframeTrack as Ct, QuaternionKeyframeTrack as at, Box3 as Ps, Sphere as Ys, Interpolant as qs, CompressedCubeTexture as Xs, UnsignedByteType as O, CompressedArrayTexture as vs, CompressedTexture as Ut, RGBAFormat as GA, RGBA_ASTC_4x4_Format as Ws, RGBA_BPTC_Format as Vs, RGBA_ETC2_EAC_Format as js, RGBA_PVRTC_4BPPV1_Format as Zs, RGBA_S3TC_DXT5_Format as zs, RGB_ETC1_Format as $s, RGB_ETC2_Format as An, RGB_PVRTC_4BPPV1_Format as en, RGB_S3TC_DXT1_Format as tn, FloatType as Re, HalfFloatType as pe, DataTexture as sn, Data3DTexture as nn, DisplayP3ColorSpace as on, LinearDisplayP3ColorSpace as Bn, NoColorSpace as It, RGFormat as qA, RedFormat as XA, RGBA_ASTC_6x6_Format as gt, Plane as De, PlaneHelper as Fe, BoxGeometry as rn, VideoTexture as Cn } from "three";
|
|
45
|
+
import { LayoutBox as Nt } from "../layout-box/index.js";
|
|
46
|
+
import { a as an, g as In } from "../layout-HoBT_Da2.js";
|
|
47
|
+
import { loading as Je } from "../loading/index.js";
|
|
48
|
+
import { S as gn } from "../SourceManager-D_8MZ3bR.js";
|
|
49
|
+
import { S as Et } from "../Store-Cd-E5W1z.js";
|
|
50
|
+
function xt(a) {
|
|
50
51
|
const A = (e) => {
|
|
51
52
|
e.dispose();
|
|
52
53
|
for (const s of Object.keys(e)) {
|
|
@@ -54,8 +55,8 @@ function Xt(C) {
|
|
|
54
55
|
t && typeof t == "object" && "minFilter" in t && t.dispose();
|
|
55
56
|
}
|
|
56
57
|
};
|
|
57
|
-
|
|
58
|
-
if (e instanceof
|
|
58
|
+
a.traverse((e) => {
|
|
59
|
+
if (e instanceof Qe) {
|
|
59
60
|
if (e.geometry.dispose(), !Array.isArray(e.material) && e.material.isMaterial)
|
|
60
61
|
A(e.material);
|
|
61
62
|
else if (Array.isArray(e.material))
|
|
@@ -64,307 +65,237 @@ function Xt(C) {
|
|
|
64
65
|
}
|
|
65
66
|
});
|
|
66
67
|
}
|
|
67
|
-
var
|
|
68
|
-
class
|
|
69
|
-
constructor(A) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
68
|
+
var jA, L, hA, nA, iA, pA, j, oA, Z, ZA, zA;
|
|
69
|
+
class ct {
|
|
70
|
+
constructor(A, e) {
|
|
71
|
+
F(this, jA, void 0);
|
|
72
|
+
F(this, L, void 0);
|
|
73
|
+
F(this, hA, void 0);
|
|
74
|
+
F(this, nA, void 0);
|
|
75
|
+
F(this, iA, void 0);
|
|
76
|
+
F(this, pA, void 0);
|
|
77
|
+
F(this, j, void 0);
|
|
78
|
+
F(this, oA, 0);
|
|
79
|
+
F(this, Z, 0);
|
|
80
|
+
F(this, ZA, 0);
|
|
81
|
+
F(this, zA, 0);
|
|
82
|
+
G(this, jA, A), G(this, L, (e == null ? void 0 : e.cameraType) === "orthographic" ? new me() : new qe()), G(this, hA, new as()), G(this, nA, []), G(this, iA, (e == null ? void 0 : e.cameraDistance) || 1e3), g(this, L).near = (e == null ? void 0 : e.cameraNear) || 1, g(this, L).far = (e == null ? void 0 : e.cameraFar) || 11e3, G(this, pA, (e == null ? void 0 : e.cameraFov) || "auto"), G(this, j, wt(e == null ? void 0 : e.sizeElement) || document.documentElement), this.beforeRenderCallback = e == null ? void 0 : e.beforeRender;
|
|
83
|
+
}
|
|
84
|
+
get name() {
|
|
85
|
+
return g(this, jA);
|
|
86
|
+
}
|
|
87
|
+
get camera() {
|
|
88
|
+
return g(this, L);
|
|
89
|
+
}
|
|
90
|
+
get scene() {
|
|
91
|
+
return g(this, hA);
|
|
92
|
+
}
|
|
93
|
+
get width() {
|
|
78
94
|
return g(this, oA);
|
|
79
95
|
}
|
|
80
|
-
get
|
|
81
|
-
return g(this,
|
|
96
|
+
get height() {
|
|
97
|
+
return g(this, Z);
|
|
82
98
|
}
|
|
83
|
-
get
|
|
84
|
-
return g(this,
|
|
99
|
+
get top() {
|
|
100
|
+
return g(this, ZA);
|
|
85
101
|
}
|
|
86
|
-
get
|
|
87
|
-
return g(this,
|
|
102
|
+
get left() {
|
|
103
|
+
return g(this, zA);
|
|
88
104
|
}
|
|
89
|
-
|
|
90
|
-
this
|
|
91
|
-
originalEvent: e,
|
|
92
|
-
type: A
|
|
93
|
-
}, this.intersection));
|
|
105
|
+
get cameraDistance() {
|
|
106
|
+
return g(this, iA);
|
|
94
107
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
f(this, BA, []);
|
|
101
|
-
f(this, T, []);
|
|
102
|
-
f(this, mA, new at());
|
|
103
|
-
f(this, te, new fs());
|
|
104
|
-
f(this, se, (A) => {
|
|
105
|
-
for (let e = 0; e < g(this, T).length; e++)
|
|
106
|
-
g(this, T)[e].dispatch("en3PointerDown", A);
|
|
107
|
-
});
|
|
108
|
-
f(this, ne, (A) => {
|
|
109
|
-
for (let e = 0; e < g(this, T).length; e++)
|
|
110
|
-
g(this, T)[e].dispatch("en3PointerUp", A);
|
|
111
|
-
});
|
|
112
|
-
f(this, ie, (A) => {
|
|
113
|
-
g(this, mA).x = A.clientX / M.width * 2 - 1, g(this, mA).y = -(A.clientY / M.height) * 2 + 1, M.camera && g(this, te).setFromCamera(g(this, mA), M.camera);
|
|
114
|
-
const e = [];
|
|
115
|
-
for (const o of g(this, BA)) {
|
|
116
|
-
const r = g(this, te).intersectObject(o.target);
|
|
117
|
-
r.length && (o.intersection = r[0], e.push(o));
|
|
118
|
-
}
|
|
119
|
-
let s = !1;
|
|
120
|
-
const t = g(this, T).filter(
|
|
121
|
-
(o) => !e.find((r) => r.object3D.uuid === o.object3D.uuid)
|
|
122
|
-
), i = e.sort(
|
|
123
|
-
(o, r) => r.object3D.position.z - o.object3D.position.z
|
|
124
|
-
).filter((o, r) => s ? (t.push(o), !1) : (s = !o.propagation, !0)), B = i.filter(
|
|
125
|
-
(o) => !g(this, T).find((r) => r.object3D.uuid === o.object3D.uuid)
|
|
126
|
-
);
|
|
127
|
-
for (let o = 0; o < t.length; o++)
|
|
128
|
-
t[o].dispatch("en3PointerLeave", A);
|
|
129
|
-
for (let o = 0; o < B.length; o++)
|
|
130
|
-
B[o].dispatch("en3PointerEnter", A);
|
|
131
|
-
G(this, T, i);
|
|
132
|
-
for (let o = 0; o < g(this, T).length; o++)
|
|
133
|
-
g(this, T)[o].dispatch("en3PointerMove", A);
|
|
134
|
-
});
|
|
135
|
-
M.containerElement.addEventListener(
|
|
136
|
-
"pointerdown",
|
|
137
|
-
g(this, se)
|
|
138
|
-
), M.containerElement.addEventListener("pointerup", g(this, ne)), M.containerElement.addEventListener(
|
|
139
|
-
"pointermove",
|
|
140
|
-
g(this, ie)
|
|
141
|
-
);
|
|
108
|
+
set cameraDistance(A) {
|
|
109
|
+
G(this, iA, A), this.resize();
|
|
110
|
+
}
|
|
111
|
+
resize() {
|
|
112
|
+
G(this, oA, g(this, j).offsetWidth), G(this, Z, g(this, j).offsetHeight), G(this, ZA, an(g(this, j))), G(this, zA, In(g(this, j))), g(this, L).position.z = g(this, iA), g(this, L) instanceof qe ? (g(this, L).aspect = g(this, oA) / g(this, Z), g(this, L).fov = g(this, pA) === "auto" ? 2 * Math.atan(g(this, Z) / 2 / g(this, iA)) * (180 / Math.PI) : g(this, pA)) : g(this, L) instanceof me && (g(this, L).left = g(this, oA) / -2, g(this, L).right = g(this, oA) / 2, g(this, L).top = g(this, Z) / 2, g(this, L).bottom = g(this, Z) / -2), g(this, L).updateProjectionMatrix();
|
|
142
113
|
}
|
|
143
114
|
destroy() {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
), M.containerElement.removeEventListener(
|
|
148
|
-
"pointerup",
|
|
149
|
-
g(this, ne)
|
|
150
|
-
), M.containerElement.removeEventListener(
|
|
151
|
-
"pointermove",
|
|
152
|
-
g(this, ie)
|
|
153
|
-
);
|
|
115
|
+
g(this, nA).forEach((A) => {
|
|
116
|
+
A.userData.box.destroy();
|
|
117
|
+
}), g(this, hA).clear(), xt(g(this, hA)), K.removeView(this);
|
|
154
118
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
119
|
+
attachToHTMLElement(A, e, s) {
|
|
120
|
+
const t = new Nt(A, ue(FA({}, s), {
|
|
121
|
+
containerElement: g(this, j),
|
|
122
|
+
cartesian: !0
|
|
123
|
+
}));
|
|
124
|
+
return t.bindObject(e), e.userData.box = t, g(this, nA).push(e), e;
|
|
125
|
+
}
|
|
126
|
+
detachFromHTMLElement(A) {
|
|
127
|
+
G(this, nA, g(this, nA).filter((e) => e === A ? (A.userData.box.destroy(), !1) : !0));
|
|
162
128
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
129
|
+
add(...A) {
|
|
130
|
+
const e = A[0], s = A[1], t = A[2];
|
|
131
|
+
return this.scene.add(e), s ? this.attachToHTMLElement(s, e, t) : e;
|
|
132
|
+
}
|
|
133
|
+
remove(A, e) {
|
|
134
|
+
this.scene.remove(A), e && this.detachFromHTMLElement(A);
|
|
167
135
|
}
|
|
168
136
|
}
|
|
169
|
-
|
|
170
|
-
var
|
|
171
|
-
class
|
|
137
|
+
jA = new WeakMap(), L = new WeakMap(), hA = new WeakMap(), nA = new WeakMap(), iA = new WeakMap(), pA = new WeakMap(), j = new WeakMap(), oA = new WeakMap(), Z = new WeakMap(), ZA = new WeakMap(), zA = new WeakMap();
|
|
138
|
+
var we, BA, S, U, mA, MA, wA, $A, lA, Ae, ee;
|
|
139
|
+
class En {
|
|
172
140
|
constructor() {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
x: 0,
|
|
184
|
-
y: 0,
|
|
185
|
-
z: 0
|
|
186
|
-
}));
|
|
187
|
-
f(this, yA, new lt({
|
|
188
|
-
x: 0,
|
|
189
|
-
y: 0,
|
|
190
|
-
z: 0
|
|
191
|
-
}));
|
|
192
|
-
f(this, SA, "auto");
|
|
193
|
-
f(this, z, 0);
|
|
194
|
-
f(this, X, 0);
|
|
195
|
-
f(this, LA, 0);
|
|
196
|
-
f(this, oe, 2);
|
|
197
|
-
f(this, Be, !0);
|
|
198
|
-
f(this, dA, !1);
|
|
199
|
-
f(this, ae, () => {
|
|
141
|
+
F(this, we, `https://unpkg.com/three@0.${Is}.x`);
|
|
142
|
+
F(this, BA, null);
|
|
143
|
+
F(this, S, null);
|
|
144
|
+
F(this, U, /* @__PURE__ */ new Map());
|
|
145
|
+
F(this, mA, 0);
|
|
146
|
+
F(this, MA, 0);
|
|
147
|
+
F(this, wA, 0);
|
|
148
|
+
F(this, $A, 2);
|
|
149
|
+
F(this, lA, !1);
|
|
150
|
+
F(this, Ae, () => {
|
|
200
151
|
var A;
|
|
201
|
-
G(this,
|
|
152
|
+
G(this, mA, g(this, BA).clientWidth), G(this, MA, g(this, BA).clientHeight), G(this, wA, Math.min(g(this, $A), devicePixelRatio || 1)), g(this, S).setPixelRatio(g(this, wA)), g(this, S).setSize(g(this, mA), g(this, MA)), g(this, U).forEach((e) => {
|
|
153
|
+
e.resize();
|
|
154
|
+
}), (A = this.onResize) == null || A.call(this);
|
|
202
155
|
});
|
|
203
|
-
|
|
204
|
-
|
|
156
|
+
F(this, ee, () => {
|
|
157
|
+
g(this, S).setRenderTarget(null), g(this, U).forEach((A) => {
|
|
158
|
+
this.render(A);
|
|
159
|
+
});
|
|
205
160
|
});
|
|
206
161
|
}
|
|
207
162
|
get CDNVersion() {
|
|
208
|
-
return g(this,
|
|
163
|
+
return g(this, we);
|
|
209
164
|
}
|
|
210
165
|
get containerElement() {
|
|
211
|
-
return g(this,
|
|
166
|
+
return g(this, BA);
|
|
212
167
|
}
|
|
213
168
|
get webglRenderer() {
|
|
214
|
-
return g(this,
|
|
215
|
-
}
|
|
216
|
-
get camera() {
|
|
217
|
-
return g(this, q);
|
|
218
|
-
}
|
|
219
|
-
get scene() {
|
|
220
|
-
return g(this, MA);
|
|
221
|
-
}
|
|
222
|
-
get raycaster() {
|
|
223
|
-
return g(this, wA);
|
|
224
|
-
}
|
|
225
|
-
get attachedObjects() {
|
|
226
|
-
return g(this, aA);
|
|
169
|
+
return g(this, S);
|
|
227
170
|
}
|
|
228
|
-
get
|
|
229
|
-
return g(this,
|
|
171
|
+
get views() {
|
|
172
|
+
return g(this, U);
|
|
230
173
|
}
|
|
231
|
-
get
|
|
232
|
-
return
|
|
174
|
+
get view() {
|
|
175
|
+
return this.getView("default");
|
|
233
176
|
}
|
|
234
177
|
get width() {
|
|
235
|
-
return g(this,
|
|
178
|
+
return g(this, mA);
|
|
236
179
|
}
|
|
237
180
|
get height() {
|
|
238
|
-
return g(this,
|
|
181
|
+
return g(this, MA);
|
|
239
182
|
}
|
|
240
183
|
get pixelRatio() {
|
|
241
|
-
return g(this,
|
|
242
|
-
}
|
|
243
|
-
get cameraDistance() {
|
|
244
|
-
return g(this, K).getStepValue("_initial").z;
|
|
245
|
-
}
|
|
246
|
-
set cameraDistance(A) {
|
|
247
|
-
g(this, K).setStep("_initial", "+", {
|
|
248
|
-
z: A
|
|
249
|
-
}), g(this, K).calculate(), hA(this, re, st).call(this);
|
|
250
|
-
}
|
|
251
|
-
attachToHTMLElement(A, e, s) {
|
|
252
|
-
const t = new kt(A, we(sA({}, s), {
|
|
253
|
-
containerElement: this.containerElement,
|
|
254
|
-
cartesian: !0
|
|
255
|
-
}));
|
|
256
|
-
return t.bindObject(e), e.userData.box = t, g(this, aA).push(e), e;
|
|
257
|
-
}
|
|
258
|
-
detachFromHTMLElement(A) {
|
|
259
|
-
G(this, aA, g(this, aA).filter((e) => e === A ? (A.userData.box.destroy(), !1) : !0));
|
|
260
|
-
}
|
|
261
|
-
add(...A) {
|
|
262
|
-
const e = A[0], s = A[1], t = A[2];
|
|
263
|
-
return this.scene.add(e), s ? this.attachToHTMLElement(s, e, t) : e;
|
|
264
|
-
}
|
|
265
|
-
remove(A, e) {
|
|
266
|
-
this.scene.remove(A), e && this.detachFromHTMLElement(A);
|
|
184
|
+
return g(this, wA);
|
|
267
185
|
}
|
|
268
186
|
setup(A) {
|
|
269
|
-
if (g(this,
|
|
187
|
+
if (g(this, lA)) {
|
|
270
188
|
console.warn("[en3.setup]: You are trying to setup en3 again.");
|
|
271
189
|
return;
|
|
272
190
|
}
|
|
273
|
-
G(this,
|
|
274
|
-
z: (A == null ? void 0 : A.cameraDistance) || 1e3
|
|
275
|
-
}), g(this, K).calculate(), g(this, q).near = (A == null ? void 0 : A.cameraNear) || 1, g(this, q).far = (A == null ? void 0 : A.cameraFar) || 11e3, G(this, SA, (A == null ? void 0 : A.cameraFov) || "auto"), G(this, MA, new Fs()), G(this, oe, (A == null ? void 0 : A.maxPixelRatio) || 2), G(this, Be, (A == null ? void 0 : A.cameraAutoUpdate) !== !1), G(this, U, new Gs(A == null ? void 0 : A.webGLRendererParameters)), g(this, U).domElement.style.cssText = `
|
|
191
|
+
G(this, BA, wt(A == null ? void 0 : A.containerElement) || document.body), G(this, $A, (A == null ? void 0 : A.maxPixelRatio) || 2), G(this, S, new gs(A == null ? void 0 : A.webGLRendererParameters)), g(this, S).domElement.style.cssText = `
|
|
276
192
|
position: fixed;
|
|
277
193
|
left: 0;
|
|
278
194
|
top: 0;
|
|
279
195
|
width: 100%;
|
|
280
196
|
height: 100%;
|
|
281
197
|
z-index: -1;
|
|
282
|
-
`, g(this,
|
|
198
|
+
`, g(this, BA).append(g(this, S).domElement), g(this, U).set("default", new ct("default", A == null ? void 0 : A.view)), G(this, lA, !0), UA.subscribe(g(this, Ae), Mt.EN3), NA.subscribe(g(this, ee), { order: ze.EN3 });
|
|
283
199
|
}
|
|
284
200
|
destroy() {
|
|
285
|
-
if (!g(this,
|
|
201
|
+
if (!g(this, lA)) {
|
|
286
202
|
console.warn(
|
|
287
203
|
"[en3.setup]: You are trying to destory en3 but it has not been initialized."
|
|
288
204
|
);
|
|
289
205
|
return;
|
|
290
206
|
}
|
|
291
|
-
g(this,
|
|
292
|
-
A.
|
|
293
|
-
}),
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
g(this, U).
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
g(this,
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
207
|
+
UA.unsubscribe(g(this, Ae)), NA.unsubscribe(g(this, ee)), g(this, U).forEach((A) => {
|
|
208
|
+
A.destroy();
|
|
209
|
+
}), g(this, S).dispose(), g(this, S).domElement.remove(), G(this, S, null), G(this, lA, !1);
|
|
210
|
+
}
|
|
211
|
+
createView(A, e) {
|
|
212
|
+
const s = g(this, U).size, t = new ct(A, e);
|
|
213
|
+
return g(this, U).set(A, t), t.resize(), s <= 1 && g(this, S).setScissorTest(!0), t;
|
|
214
|
+
}
|
|
215
|
+
getView(A) {
|
|
216
|
+
return g(this, U).get(A);
|
|
217
|
+
}
|
|
218
|
+
removeView(A) {
|
|
219
|
+
g(this, U).delete(A.name), g(this, U).size <= 1 && g(this, S).setScissorTest(!1);
|
|
220
|
+
}
|
|
221
|
+
render(A) {
|
|
222
|
+
var e;
|
|
223
|
+
g(this, U).size > 1 && (g(this, S).setScissor(
|
|
224
|
+
A.left,
|
|
225
|
+
A.top,
|
|
226
|
+
A.width,
|
|
227
|
+
A.height
|
|
228
|
+
), g(this, S).setViewport(
|
|
229
|
+
A.left,
|
|
230
|
+
A.top,
|
|
231
|
+
A.width,
|
|
232
|
+
A.height
|
|
233
|
+
)), (e = A.beforeRenderCallback) == null || e.call(A), g(this, S).render(A.scene, A.camera);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
we = new WeakMap(), BA = new WeakMap(), S = new WeakMap(), U = new WeakMap(), mA = new WeakMap(), MA = new WeakMap(), wA = new WeakMap(), $A = new WeakMap(), lA = new WeakMap(), Ae = new WeakMap(), ee = new WeakMap();
|
|
237
|
+
const K = new En(), cn = new St();
|
|
238
|
+
function Qt(a, A) {
|
|
239
|
+
if (A === Es)
|
|
240
|
+
return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), a;
|
|
241
|
+
if (A === Xe || A === yt) {
|
|
242
|
+
let e = a.getIndex();
|
|
312
243
|
if (e === null) {
|
|
313
|
-
const i = [], B =
|
|
244
|
+
const i = [], B = a.getAttribute("position");
|
|
314
245
|
if (B !== void 0) {
|
|
315
246
|
for (let o = 0; o < B.count; o++)
|
|
316
247
|
i.push(o);
|
|
317
|
-
|
|
248
|
+
a.setIndex(i), e = a.getIndex();
|
|
318
249
|
} else
|
|
319
|
-
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),
|
|
250
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), a;
|
|
320
251
|
}
|
|
321
252
|
const s = e.count - 2, t = [];
|
|
322
|
-
if (A ===
|
|
253
|
+
if (A === Xe)
|
|
323
254
|
for (let i = 1; i <= s; i++)
|
|
324
255
|
t.push(e.getX(0)), t.push(e.getX(i)), t.push(e.getX(i + 1));
|
|
325
256
|
else
|
|
326
257
|
for (let i = 0; i < s; i++)
|
|
327
258
|
i % 2 === 0 ? (t.push(e.getX(i)), t.push(e.getX(i + 1)), t.push(e.getX(i + 2))) : (t.push(e.getX(i + 2)), t.push(e.getX(i + 1)), t.push(e.getX(i)));
|
|
328
259
|
t.length / 3 !== s && console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");
|
|
329
|
-
const n =
|
|
260
|
+
const n = a.clone();
|
|
330
261
|
return n.setIndex(t), n.clearGroups(), n;
|
|
331
262
|
} else
|
|
332
|
-
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", A),
|
|
263
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", A), a;
|
|
333
264
|
}
|
|
334
|
-
class
|
|
265
|
+
class Qn extends $e {
|
|
335
266
|
constructor(A) {
|
|
336
267
|
super(A), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(e) {
|
|
337
|
-
return new
|
|
268
|
+
return new fn(e);
|
|
338
269
|
}), this.register(function(e) {
|
|
339
|
-
return new
|
|
270
|
+
return new Sn(e);
|
|
340
271
|
}), this.register(function(e) {
|
|
341
|
-
return new
|
|
272
|
+
return new yn(e);
|
|
342
273
|
}), this.register(function(e) {
|
|
343
|
-
return new
|
|
274
|
+
return new Ln(e);
|
|
344
275
|
}), this.register(function(e) {
|
|
345
|
-
return new
|
|
276
|
+
return new Fn(e);
|
|
346
277
|
}), this.register(function(e) {
|
|
347
|
-
return new
|
|
278
|
+
return new Gn(e);
|
|
348
279
|
}), this.register(function(e) {
|
|
349
|
-
return new
|
|
280
|
+
return new Rn(e);
|
|
350
281
|
}), this.register(function(e) {
|
|
351
|
-
return new
|
|
282
|
+
return new pn(e);
|
|
352
283
|
}), this.register(function(e) {
|
|
353
|
-
return new
|
|
284
|
+
return new un(e);
|
|
354
285
|
}), this.register(function(e) {
|
|
355
|
-
return new
|
|
286
|
+
return new mn(e);
|
|
356
287
|
}), this.register(function(e) {
|
|
357
|
-
return new
|
|
288
|
+
return new Dn(e);
|
|
358
289
|
}), this.register(function(e) {
|
|
359
|
-
return new
|
|
290
|
+
return new wn(e);
|
|
360
291
|
}), this.register(function(e) {
|
|
361
|
-
return new
|
|
292
|
+
return new Mn(e);
|
|
362
293
|
}), this.register(function(e) {
|
|
363
|
-
return new
|
|
294
|
+
return new ln(e);
|
|
364
295
|
}), this.register(function(e) {
|
|
365
|
-
return new
|
|
296
|
+
return new Jn(e);
|
|
366
297
|
}), this.register(function(e) {
|
|
367
|
-
return new
|
|
298
|
+
return new Hn(e);
|
|
368
299
|
});
|
|
369
300
|
}
|
|
370
301
|
load(A, e, s, t) {
|
|
@@ -373,14 +304,14 @@ class mn extends Ct {
|
|
|
373
304
|
if (this.resourcePath !== "")
|
|
374
305
|
i = this.resourcePath;
|
|
375
306
|
else if (this.path !== "") {
|
|
376
|
-
const r =
|
|
377
|
-
i =
|
|
307
|
+
const r = vA.extractUrlBase(A);
|
|
308
|
+
i = vA.resolveURL(r, this.path);
|
|
378
309
|
} else
|
|
379
|
-
i =
|
|
310
|
+
i = vA.extractUrlBase(A);
|
|
380
311
|
this.manager.itemStart(A);
|
|
381
312
|
const B = function(r) {
|
|
382
313
|
t ? t(r) : console.error(r), n.manager.itemError(A), n.manager.itemEnd(A);
|
|
383
|
-
}, o = new
|
|
314
|
+
}, o = new fA(this.manager);
|
|
384
315
|
o.setPath(this.path), o.setResponseType("arraybuffer"), o.setRequestHeader(this.requestHeader), o.setWithCredentials(this.withCredentials), o.load(A, function(r) {
|
|
385
316
|
try {
|
|
386
317
|
n.parse(r, i, function(I) {
|
|
@@ -417,11 +348,11 @@ class mn extends Ct {
|
|
|
417
348
|
if (typeof A == "string")
|
|
418
349
|
n = JSON.parse(A);
|
|
419
350
|
else if (A instanceof ArrayBuffer)
|
|
420
|
-
if (o.decode(new Uint8Array(A, 0, 4)) ===
|
|
351
|
+
if (o.decode(new Uint8Array(A, 0, 4)) === kt) {
|
|
421
352
|
try {
|
|
422
|
-
i[R.KHR_BINARY_GLTF] = new
|
|
423
|
-
} catch (
|
|
424
|
-
t && t(
|
|
353
|
+
i[R.KHR_BINARY_GLTF] = new Tn(A);
|
|
354
|
+
} catch (C) {
|
|
355
|
+
t && t(C);
|
|
425
356
|
return;
|
|
426
357
|
}
|
|
427
358
|
n = JSON.parse(i[R.KHR_BINARY_GLTF].content);
|
|
@@ -433,7 +364,7 @@ class mn extends Ct {
|
|
|
433
364
|
t && t(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
434
365
|
return;
|
|
435
366
|
}
|
|
436
|
-
const r = new
|
|
367
|
+
const r = new vn(n, {
|
|
437
368
|
path: e || this.resourcePath || "",
|
|
438
369
|
crossOrigin: this.crossOrigin,
|
|
439
370
|
requestHeader: this.requestHeader,
|
|
@@ -443,27 +374,27 @@ class mn extends Ct {
|
|
|
443
374
|
});
|
|
444
375
|
r.fileLoader.setRequestHeader(this.requestHeader);
|
|
445
376
|
for (let I = 0; I < this.pluginCallbacks.length; I++) {
|
|
446
|
-
const
|
|
447
|
-
|
|
377
|
+
const C = this.pluginCallbacks[I](r);
|
|
378
|
+
C.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), B[C.name] = C, i[C.name] = !0;
|
|
448
379
|
}
|
|
449
380
|
if (n.extensionsUsed)
|
|
450
381
|
for (let I = 0; I < n.extensionsUsed.length; ++I) {
|
|
451
|
-
const
|
|
452
|
-
switch (
|
|
382
|
+
const C = n.extensionsUsed[I], c = n.extensionsRequired || [];
|
|
383
|
+
switch (C) {
|
|
453
384
|
case R.KHR_MATERIALS_UNLIT:
|
|
454
|
-
i[
|
|
385
|
+
i[C] = new dn();
|
|
455
386
|
break;
|
|
456
387
|
case R.KHR_DRACO_MESH_COMPRESSION:
|
|
457
|
-
i[
|
|
388
|
+
i[C] = new Un(n, this.dracoLoader);
|
|
458
389
|
break;
|
|
459
390
|
case R.KHR_TEXTURE_TRANSFORM:
|
|
460
|
-
i[
|
|
391
|
+
i[C] = new Nn();
|
|
461
392
|
break;
|
|
462
393
|
case R.KHR_MESH_QUANTIZATION:
|
|
463
|
-
i[
|
|
394
|
+
i[C] = new xn();
|
|
464
395
|
break;
|
|
465
396
|
default:
|
|
466
|
-
c.indexOf(
|
|
397
|
+
c.indexOf(C) >= 0 && B[C] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + C + '".');
|
|
467
398
|
}
|
|
468
399
|
}
|
|
469
400
|
r.setExtensions(i), r.setPlugins(B), r.parse(s, t);
|
|
@@ -475,20 +406,20 @@ class mn extends Ct {
|
|
|
475
406
|
});
|
|
476
407
|
}
|
|
477
408
|
}
|
|
478
|
-
function
|
|
479
|
-
let
|
|
409
|
+
function hn() {
|
|
410
|
+
let a = {};
|
|
480
411
|
return {
|
|
481
412
|
get: function(A) {
|
|
482
|
-
return
|
|
413
|
+
return a[A];
|
|
483
414
|
},
|
|
484
415
|
add: function(A, e) {
|
|
485
|
-
|
|
416
|
+
a[A] = e;
|
|
486
417
|
},
|
|
487
418
|
remove: function(A) {
|
|
488
|
-
delete
|
|
419
|
+
delete a[A];
|
|
489
420
|
},
|
|
490
421
|
removeAll: function() {
|
|
491
|
-
|
|
422
|
+
a = {};
|
|
492
423
|
}
|
|
493
424
|
};
|
|
494
425
|
}
|
|
@@ -515,7 +446,7 @@ const R = {
|
|
|
515
446
|
EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression",
|
|
516
447
|
EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing"
|
|
517
448
|
};
|
|
518
|
-
class
|
|
449
|
+
class ln {
|
|
519
450
|
constructor(A) {
|
|
520
451
|
this.parser = A, this.name = R.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
521
452
|
}
|
|
@@ -533,23 +464,23 @@ class wn {
|
|
|
533
464
|
return t;
|
|
534
465
|
const n = e.json, o = ((n.extensions && n.extensions[this.name] || {}).lights || [])[A];
|
|
535
466
|
let r;
|
|
536
|
-
const I = new
|
|
467
|
+
const I = new EA(16777215);
|
|
537
468
|
o.color !== void 0 && I.setRGB(o.color[0], o.color[1], o.color[2], _);
|
|
538
|
-
const
|
|
469
|
+
const C = o.range !== void 0 ? o.range : 0;
|
|
539
470
|
switch (o.type) {
|
|
540
471
|
case "directional":
|
|
541
|
-
r = new
|
|
472
|
+
r = new hs(I), r.target.position.set(0, 0, -1), r.add(r.target);
|
|
542
473
|
break;
|
|
543
474
|
case "point":
|
|
544
|
-
r = new
|
|
475
|
+
r = new Qs(I), r.distance = C;
|
|
545
476
|
break;
|
|
546
477
|
case "spot":
|
|
547
|
-
r = new
|
|
478
|
+
r = new cs(I), r.distance = C, o.spot = o.spot || {}, o.spot.innerConeAngle = o.spot.innerConeAngle !== void 0 ? o.spot.innerConeAngle : 0, o.spot.outerConeAngle = o.spot.outerConeAngle !== void 0 ? o.spot.outerConeAngle : Math.PI / 4, r.angle = o.spot.outerConeAngle, r.penumbra = 1 - o.spot.innerConeAngle / o.spot.outerConeAngle, r.target.position.set(0, 0, -1), r.add(r.target);
|
|
548
479
|
break;
|
|
549
480
|
default:
|
|
550
481
|
throw new Error("THREE.GLTFLoader: Unexpected light type: " + o.type);
|
|
551
482
|
}
|
|
552
|
-
return r.position.set(0, 0, 0), r.decay = 2,
|
|
483
|
+
return r.position.set(0, 0, 0), r.decay = 2, sA(r, o), o.intensity !== void 0 && (r.intensity = o.intensity), r.name = e.createUniqueName(o.name || "light_" + A), t = Promise.resolve(r), e.cache.add(s, t), t;
|
|
553
484
|
}
|
|
554
485
|
getDependency(A, e) {
|
|
555
486
|
if (A === "light")
|
|
@@ -562,28 +493,28 @@ class wn {
|
|
|
562
493
|
});
|
|
563
494
|
}
|
|
564
495
|
}
|
|
565
|
-
class
|
|
496
|
+
class dn {
|
|
566
497
|
constructor() {
|
|
567
498
|
this.name = R.KHR_MATERIALS_UNLIT;
|
|
568
499
|
}
|
|
569
500
|
getMaterialType() {
|
|
570
|
-
return
|
|
501
|
+
return YA;
|
|
571
502
|
}
|
|
572
503
|
extendParams(A, e, s) {
|
|
573
504
|
const t = [];
|
|
574
|
-
A.color = new
|
|
505
|
+
A.color = new EA(1, 1, 1), A.opacity = 1;
|
|
575
506
|
const n = e.pbrMetallicRoughness;
|
|
576
507
|
if (n) {
|
|
577
508
|
if (Array.isArray(n.baseColorFactor)) {
|
|
578
509
|
const i = n.baseColorFactor;
|
|
579
510
|
A.color.setRGB(i[0], i[1], i[2], _), A.opacity = i[3];
|
|
580
511
|
}
|
|
581
|
-
n.baseColorTexture !== void 0 && t.push(s.assignTexture(A, "map", n.baseColorTexture,
|
|
512
|
+
n.baseColorTexture !== void 0 && t.push(s.assignTexture(A, "map", n.baseColorTexture, $));
|
|
582
513
|
}
|
|
583
514
|
return Promise.all(t);
|
|
584
515
|
}
|
|
585
516
|
}
|
|
586
|
-
class
|
|
517
|
+
class un {
|
|
587
518
|
constructor(A) {
|
|
588
519
|
this.parser = A, this.name = R.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
589
520
|
}
|
|
@@ -595,13 +526,13 @@ class Sn {
|
|
|
595
526
|
return n !== void 0 && (e.emissiveIntensity = n), Promise.resolve();
|
|
596
527
|
}
|
|
597
528
|
}
|
|
598
|
-
class
|
|
529
|
+
class fn {
|
|
599
530
|
constructor(A) {
|
|
600
531
|
this.parser = A, this.name = R.KHR_MATERIALS_CLEARCOAT;
|
|
601
532
|
}
|
|
602
533
|
getMaterialType(A) {
|
|
603
534
|
const s = this.parser.json.materials[A];
|
|
604
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
535
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
605
536
|
}
|
|
606
537
|
extendMaterialParams(A, e) {
|
|
607
538
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -610,18 +541,18 @@ class Ln {
|
|
|
610
541
|
const n = [], i = t.extensions[this.name];
|
|
611
542
|
if (i.clearcoatFactor !== void 0 && (e.clearcoat = i.clearcoatFactor), i.clearcoatTexture !== void 0 && n.push(s.assignTexture(e, "clearcoatMap", i.clearcoatTexture)), i.clearcoatRoughnessFactor !== void 0 && (e.clearcoatRoughness = i.clearcoatRoughnessFactor), i.clearcoatRoughnessTexture !== void 0 && n.push(s.assignTexture(e, "clearcoatRoughnessMap", i.clearcoatRoughnessTexture)), i.clearcoatNormalTexture !== void 0 && (n.push(s.assignTexture(e, "clearcoatNormalMap", i.clearcoatNormalTexture)), i.clearcoatNormalTexture.scale !== void 0)) {
|
|
612
543
|
const B = i.clearcoatNormalTexture.scale;
|
|
613
|
-
e.clearcoatNormalScale = new
|
|
544
|
+
e.clearcoatNormalScale = new Lt(B, B);
|
|
614
545
|
}
|
|
615
546
|
return Promise.all(n);
|
|
616
547
|
}
|
|
617
548
|
}
|
|
618
|
-
class
|
|
549
|
+
class Dn {
|
|
619
550
|
constructor(A) {
|
|
620
551
|
this.parser = A, this.name = R.KHR_MATERIALS_IRIDESCENCE;
|
|
621
552
|
}
|
|
622
553
|
getMaterialType(A) {
|
|
623
554
|
const s = this.parser.json.materials[A];
|
|
624
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
555
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
625
556
|
}
|
|
626
557
|
extendMaterialParams(A, e) {
|
|
627
558
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -631,35 +562,35 @@ class Hn {
|
|
|
631
562
|
return i.iridescenceFactor !== void 0 && (e.iridescence = i.iridescenceFactor), i.iridescenceTexture !== void 0 && n.push(s.assignTexture(e, "iridescenceMap", i.iridescenceTexture)), i.iridescenceIor !== void 0 && (e.iridescenceIOR = i.iridescenceIor), e.iridescenceThicknessRange === void 0 && (e.iridescenceThicknessRange = [100, 400]), i.iridescenceThicknessMinimum !== void 0 && (e.iridescenceThicknessRange[0] = i.iridescenceThicknessMinimum), i.iridescenceThicknessMaximum !== void 0 && (e.iridescenceThicknessRange[1] = i.iridescenceThicknessMaximum), i.iridescenceThicknessTexture !== void 0 && n.push(s.assignTexture(e, "iridescenceThicknessMap", i.iridescenceThicknessTexture)), Promise.all(n);
|
|
632
563
|
}
|
|
633
564
|
}
|
|
634
|
-
class
|
|
565
|
+
class Fn {
|
|
635
566
|
constructor(A) {
|
|
636
567
|
this.parser = A, this.name = R.KHR_MATERIALS_SHEEN;
|
|
637
568
|
}
|
|
638
569
|
getMaterialType(A) {
|
|
639
570
|
const s = this.parser.json.materials[A];
|
|
640
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
571
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
641
572
|
}
|
|
642
573
|
extendMaterialParams(A, e) {
|
|
643
574
|
const s = this.parser, t = s.json.materials[A];
|
|
644
575
|
if (!t.extensions || !t.extensions[this.name])
|
|
645
576
|
return Promise.resolve();
|
|
646
577
|
const n = [];
|
|
647
|
-
e.sheenColor = new
|
|
578
|
+
e.sheenColor = new EA(0, 0, 0), e.sheenRoughness = 0, e.sheen = 1;
|
|
648
579
|
const i = t.extensions[this.name];
|
|
649
580
|
if (i.sheenColorFactor !== void 0) {
|
|
650
581
|
const B = i.sheenColorFactor;
|
|
651
582
|
e.sheenColor.setRGB(B[0], B[1], B[2], _);
|
|
652
583
|
}
|
|
653
|
-
return i.sheenRoughnessFactor !== void 0 && (e.sheenRoughness = i.sheenRoughnessFactor), i.sheenColorTexture !== void 0 && n.push(s.assignTexture(e, "sheenColorMap", i.sheenColorTexture,
|
|
584
|
+
return i.sheenRoughnessFactor !== void 0 && (e.sheenRoughness = i.sheenRoughnessFactor), i.sheenColorTexture !== void 0 && n.push(s.assignTexture(e, "sheenColorMap", i.sheenColorTexture, $)), i.sheenRoughnessTexture !== void 0 && n.push(s.assignTexture(e, "sheenRoughnessMap", i.sheenRoughnessTexture)), Promise.all(n);
|
|
654
585
|
}
|
|
655
586
|
}
|
|
656
|
-
class
|
|
587
|
+
class Gn {
|
|
657
588
|
constructor(A) {
|
|
658
589
|
this.parser = A, this.name = R.KHR_MATERIALS_TRANSMISSION;
|
|
659
590
|
}
|
|
660
591
|
getMaterialType(A) {
|
|
661
592
|
const s = this.parser.json.materials[A];
|
|
662
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
593
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
663
594
|
}
|
|
664
595
|
extendMaterialParams(A, e) {
|
|
665
596
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -669,13 +600,13 @@ class Tn {
|
|
|
669
600
|
return i.transmissionFactor !== void 0 && (e.transmission = i.transmissionFactor), i.transmissionTexture !== void 0 && n.push(s.assignTexture(e, "transmissionMap", i.transmissionTexture)), Promise.all(n);
|
|
670
601
|
}
|
|
671
602
|
}
|
|
672
|
-
class
|
|
603
|
+
class Rn {
|
|
673
604
|
constructor(A) {
|
|
674
605
|
this.parser = A, this.name = R.KHR_MATERIALS_VOLUME;
|
|
675
606
|
}
|
|
676
607
|
getMaterialType(A) {
|
|
677
608
|
const s = this.parser.json.materials[A];
|
|
678
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
609
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
679
610
|
}
|
|
680
611
|
extendMaterialParams(A, e) {
|
|
681
612
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -684,16 +615,16 @@ class Un {
|
|
|
684
615
|
const n = [], i = t.extensions[this.name];
|
|
685
616
|
e.thickness = i.thicknessFactor !== void 0 ? i.thicknessFactor : 0, i.thicknessTexture !== void 0 && n.push(s.assignTexture(e, "thicknessMap", i.thicknessTexture)), e.attenuationDistance = i.attenuationDistance || 1 / 0;
|
|
686
617
|
const B = i.attenuationColor || [1, 1, 1];
|
|
687
|
-
return e.attenuationColor = new
|
|
618
|
+
return e.attenuationColor = new EA().setRGB(B[0], B[1], B[2], _), Promise.all(n);
|
|
688
619
|
}
|
|
689
620
|
}
|
|
690
|
-
class
|
|
621
|
+
class pn {
|
|
691
622
|
constructor(A) {
|
|
692
623
|
this.parser = A, this.name = R.KHR_MATERIALS_IOR;
|
|
693
624
|
}
|
|
694
625
|
getMaterialType(A) {
|
|
695
626
|
const s = this.parser.json.materials[A];
|
|
696
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
627
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
697
628
|
}
|
|
698
629
|
extendMaterialParams(A, e) {
|
|
699
630
|
const t = this.parser.json.materials[A];
|
|
@@ -703,13 +634,13 @@ class Nn {
|
|
|
703
634
|
return e.ior = n.ior !== void 0 ? n.ior : 1.5, Promise.resolve();
|
|
704
635
|
}
|
|
705
636
|
}
|
|
706
|
-
class
|
|
637
|
+
class mn {
|
|
707
638
|
constructor(A) {
|
|
708
639
|
this.parser = A, this.name = R.KHR_MATERIALS_SPECULAR;
|
|
709
640
|
}
|
|
710
641
|
getMaterialType(A) {
|
|
711
642
|
const s = this.parser.json.materials[A];
|
|
712
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
643
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
713
644
|
}
|
|
714
645
|
extendMaterialParams(A, e) {
|
|
715
646
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -718,16 +649,16 @@ class xn {
|
|
|
718
649
|
const n = [], i = t.extensions[this.name];
|
|
719
650
|
e.specularIntensity = i.specularFactor !== void 0 ? i.specularFactor : 1, i.specularTexture !== void 0 && n.push(s.assignTexture(e, "specularIntensityMap", i.specularTexture));
|
|
720
651
|
const B = i.specularColorFactor || [1, 1, 1];
|
|
721
|
-
return e.specularColor = new
|
|
652
|
+
return e.specularColor = new EA().setRGB(B[0], B[1], B[2], _), i.specularColorTexture !== void 0 && n.push(s.assignTexture(e, "specularColorMap", i.specularColorTexture, $)), Promise.all(n);
|
|
722
653
|
}
|
|
723
654
|
}
|
|
724
|
-
class
|
|
655
|
+
class Mn {
|
|
725
656
|
constructor(A) {
|
|
726
657
|
this.parser = A, this.name = R.EXT_MATERIALS_BUMP;
|
|
727
658
|
}
|
|
728
659
|
getMaterialType(A) {
|
|
729
660
|
const s = this.parser.json.materials[A];
|
|
730
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
661
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
731
662
|
}
|
|
732
663
|
extendMaterialParams(A, e) {
|
|
733
664
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -737,13 +668,13 @@ class kn {
|
|
|
737
668
|
return e.bumpScale = i.bumpFactor !== void 0 ? i.bumpFactor : 1, i.bumpTexture !== void 0 && n.push(s.assignTexture(e, "bumpMap", i.bumpTexture)), Promise.all(n);
|
|
738
669
|
}
|
|
739
670
|
}
|
|
740
|
-
class
|
|
671
|
+
class wn {
|
|
741
672
|
constructor(A) {
|
|
742
673
|
this.parser = A, this.name = R.KHR_MATERIALS_ANISOTROPY;
|
|
743
674
|
}
|
|
744
675
|
getMaterialType(A) {
|
|
745
676
|
const s = this.parser.json.materials[A];
|
|
746
|
-
return !s.extensions || !s.extensions[this.name] ? null :
|
|
677
|
+
return !s.extensions || !s.extensions[this.name] ? null : AA;
|
|
747
678
|
}
|
|
748
679
|
extendMaterialParams(A, e) {
|
|
749
680
|
const s = this.parser, t = s.json.materials[A];
|
|
@@ -753,7 +684,7 @@ class bn {
|
|
|
753
684
|
return i.anisotropyStrength !== void 0 && (e.anisotropy = i.anisotropyStrength), i.anisotropyRotation !== void 0 && (e.anisotropyRotation = i.anisotropyRotation), i.anisotropyTexture !== void 0 && n.push(s.assignTexture(e, "anisotropyMap", i.anisotropyTexture)), Promise.all(n);
|
|
754
685
|
}
|
|
755
686
|
}
|
|
756
|
-
class
|
|
687
|
+
class Sn {
|
|
757
688
|
constructor(A) {
|
|
758
689
|
this.parser = A, this.name = R.KHR_TEXTURE_BASISU;
|
|
759
690
|
}
|
|
@@ -770,7 +701,7 @@ class Kn {
|
|
|
770
701
|
return e.loadTextureImage(A, n.source, i);
|
|
771
702
|
}
|
|
772
703
|
}
|
|
773
|
-
class
|
|
704
|
+
class yn {
|
|
774
705
|
constructor(A) {
|
|
775
706
|
this.parser = A, this.name = R.EXT_TEXTURE_WEBP, this.isSupported = null;
|
|
776
707
|
}
|
|
@@ -801,7 +732,7 @@ class On {
|
|
|
801
732
|
})), this.isSupported;
|
|
802
733
|
}
|
|
803
734
|
}
|
|
804
|
-
class
|
|
735
|
+
class Ln {
|
|
805
736
|
constructor(A) {
|
|
806
737
|
this.parser = A, this.name = R.EXT_TEXTURE_AVIF, this.isSupported = null;
|
|
807
738
|
}
|
|
@@ -832,7 +763,7 @@ class _n {
|
|
|
832
763
|
})), this.isSupported;
|
|
833
764
|
}
|
|
834
765
|
}
|
|
835
|
-
class
|
|
766
|
+
class Jn {
|
|
836
767
|
constructor(A) {
|
|
837
768
|
this.name = R.EXT_MESHOPT_COMPRESSION, this.parser = A;
|
|
838
769
|
}
|
|
@@ -846,19 +777,19 @@ class Pn {
|
|
|
846
777
|
return null;
|
|
847
778
|
}
|
|
848
779
|
return n.then(function(B) {
|
|
849
|
-
const o = t.byteOffset || 0, r = t.byteLength || 0, I = t.count,
|
|
850
|
-
return i.decodeGltfBufferAsync ? i.decodeGltfBufferAsync(I,
|
|
780
|
+
const o = t.byteOffset || 0, r = t.byteLength || 0, I = t.count, C = t.byteStride, c = new Uint8Array(B, o, r);
|
|
781
|
+
return i.decodeGltfBufferAsync ? i.decodeGltfBufferAsync(I, C, c, t.mode, t.filter).then(function(Q) {
|
|
851
782
|
return Q.buffer;
|
|
852
783
|
}) : i.ready.then(function() {
|
|
853
|
-
const Q = new ArrayBuffer(I *
|
|
854
|
-
return i.decodeGltfBuffer(new Uint8Array(Q), I,
|
|
784
|
+
const Q = new ArrayBuffer(I * C);
|
|
785
|
+
return i.decodeGltfBuffer(new Uint8Array(Q), I, C, c, t.mode, t.filter), Q;
|
|
855
786
|
});
|
|
856
787
|
});
|
|
857
788
|
} else
|
|
858
789
|
return null;
|
|
859
790
|
}
|
|
860
791
|
}
|
|
861
|
-
class
|
|
792
|
+
class Hn {
|
|
862
793
|
constructor(A) {
|
|
863
794
|
this.name = R.EXT_MESH_GPU_INSTANCING, this.parser = A;
|
|
864
795
|
}
|
|
@@ -874,47 +805,47 @@ class Yn {
|
|
|
874
805
|
for (const r in i)
|
|
875
806
|
B.push(this.parser.getDependency("accessor", i[r]).then((I) => (o[r] = I, o[r])));
|
|
876
807
|
return B.length < 1 ? null : (B.push(this.parser.createNodeMesh(A)), Promise.all(B).then((r) => {
|
|
877
|
-
const I = r.pop(),
|
|
878
|
-
for (const l of
|
|
879
|
-
const h = new
|
|
880
|
-
for (let
|
|
881
|
-
o.TRANSLATION && E.fromBufferAttribute(o.TRANSLATION,
|
|
882
|
-
for (const
|
|
883
|
-
if (
|
|
884
|
-
const p = o[
|
|
885
|
-
|
|
808
|
+
const I = r.pop(), C = I.isGroup ? I.children : [I], c = r[0].count, Q = [];
|
|
809
|
+
for (const l of C) {
|
|
810
|
+
const h = new xA(), E = new w(), d = new At(), u = new w(1, 1, 1), f = new ls(l.geometry, l.material, c);
|
|
811
|
+
for (let D = 0; D < c; D++)
|
|
812
|
+
o.TRANSLATION && E.fromBufferAttribute(o.TRANSLATION, D), o.ROTATION && d.fromBufferAttribute(o.ROTATION, D), o.SCALE && u.fromBufferAttribute(o.SCALE, D), f.setMatrixAt(D, h.compose(E, d, u));
|
|
813
|
+
for (const D in o)
|
|
814
|
+
if (D === "_COLOR_0") {
|
|
815
|
+
const p = o[D];
|
|
816
|
+
f.instanceColor = new ds(p.array, p.itemSize, p.normalized);
|
|
886
817
|
} else
|
|
887
|
-
|
|
888
|
-
|
|
818
|
+
D !== "TRANSLATION" && D !== "ROTATION" && D !== "SCALE" && l.geometry.setAttribute(D, o[D]);
|
|
819
|
+
et.prototype.copy.call(f, l), this.parser.assignFinalMaterial(f), Q.push(f);
|
|
889
820
|
}
|
|
890
821
|
return I.isGroup ? (I.clear(), I.add(...Q), I) : Q[0];
|
|
891
822
|
}));
|
|
892
823
|
}
|
|
893
824
|
}
|
|
894
|
-
const
|
|
895
|
-
class
|
|
825
|
+
const kt = "glTF", OA = 12, ht = { JSON: 1313821514, BIN: 5130562 };
|
|
826
|
+
class Tn {
|
|
896
827
|
constructor(A) {
|
|
897
828
|
this.name = R.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
898
|
-
const e = new DataView(A, 0,
|
|
829
|
+
const e = new DataView(A, 0, OA), s = new TextDecoder();
|
|
899
830
|
if (this.header = {
|
|
900
831
|
magic: s.decode(new Uint8Array(A.slice(0, 4))),
|
|
901
832
|
version: e.getUint32(4, !0),
|
|
902
833
|
length: e.getUint32(8, !0)
|
|
903
|
-
}, this.header.magic !==
|
|
834
|
+
}, this.header.magic !== kt)
|
|
904
835
|
throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
|
|
905
836
|
if (this.header.version < 2)
|
|
906
837
|
throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
|
|
907
|
-
const t = this.header.length -
|
|
838
|
+
const t = this.header.length - OA, n = new DataView(A, OA);
|
|
908
839
|
let i = 0;
|
|
909
840
|
for (; i < t; ) {
|
|
910
841
|
const B = n.getUint32(i, !0);
|
|
911
842
|
i += 4;
|
|
912
843
|
const o = n.getUint32(i, !0);
|
|
913
|
-
if (i += 4, o ===
|
|
914
|
-
const r = new Uint8Array(A,
|
|
844
|
+
if (i += 4, o === ht.JSON) {
|
|
845
|
+
const r = new Uint8Array(A, OA + i, B);
|
|
915
846
|
this.content = s.decode(r);
|
|
916
|
-
} else if (o ===
|
|
917
|
-
const r =
|
|
847
|
+
} else if (o === ht.BIN) {
|
|
848
|
+
const r = OA + i;
|
|
918
849
|
this.body = A.slice(r, r + B);
|
|
919
850
|
}
|
|
920
851
|
i += B;
|
|
@@ -923,7 +854,7 @@ class qn {
|
|
|
923
854
|
throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
924
855
|
}
|
|
925
856
|
}
|
|
926
|
-
class
|
|
857
|
+
class Un {
|
|
927
858
|
constructor(A, e) {
|
|
928
859
|
if (!e)
|
|
929
860
|
throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
@@ -932,30 +863,30 @@ class Xn {
|
|
|
932
863
|
decodePrimitive(A, e) {
|
|
933
864
|
const s = this.json, t = this.dracoLoader, n = A.extensions[this.name].bufferView, i = A.extensions[this.name].attributes, B = {}, o = {}, r = {};
|
|
934
865
|
for (const I in i) {
|
|
935
|
-
const
|
|
936
|
-
B[
|
|
866
|
+
const C = We[I] || I.toLowerCase();
|
|
867
|
+
B[C] = i[I];
|
|
937
868
|
}
|
|
938
869
|
for (const I in A.attributes) {
|
|
939
|
-
const
|
|
870
|
+
const C = We[I] || I.toLowerCase();
|
|
940
871
|
if (i[I] !== void 0) {
|
|
941
872
|
const c = s.accessors[A.attributes[I]], Q = RA[c.componentType];
|
|
942
|
-
r[
|
|
873
|
+
r[C] = Q.name, o[C] = c.normalized === !0;
|
|
943
874
|
}
|
|
944
875
|
}
|
|
945
876
|
return e.getDependency("bufferView", n).then(function(I) {
|
|
946
|
-
return new Promise(function(
|
|
877
|
+
return new Promise(function(C, c) {
|
|
947
878
|
t.decodeDracoFile(I, function(Q) {
|
|
948
879
|
for (const l in Q.attributes) {
|
|
949
880
|
const h = Q.attributes[l], E = o[l];
|
|
950
881
|
E !== void 0 && (h.normalized = E);
|
|
951
882
|
}
|
|
952
|
-
|
|
883
|
+
C(Q);
|
|
953
884
|
}, B, r, _, c);
|
|
954
885
|
});
|
|
955
886
|
});
|
|
956
887
|
}
|
|
957
888
|
}
|
|
958
|
-
class
|
|
889
|
+
class Nn {
|
|
959
890
|
constructor() {
|
|
960
891
|
this.name = R.KHR_TEXTURE_TRANSFORM;
|
|
961
892
|
}
|
|
@@ -963,12 +894,12 @@ class vn {
|
|
|
963
894
|
return (e.texCoord === void 0 || e.texCoord === A.channel) && e.offset === void 0 && e.rotation === void 0 && e.scale === void 0 || (A = A.clone(), e.texCoord !== void 0 && (A.channel = e.texCoord), e.offset !== void 0 && A.offset.fromArray(e.offset), e.rotation !== void 0 && (A.rotation = e.rotation), e.scale !== void 0 && A.repeat.fromArray(e.scale), A.needsUpdate = !0), A;
|
|
964
895
|
}
|
|
965
896
|
}
|
|
966
|
-
class
|
|
897
|
+
class xn {
|
|
967
898
|
constructor() {
|
|
968
899
|
this.name = R.KHR_MESH_QUANTIZATION;
|
|
969
900
|
}
|
|
970
901
|
}
|
|
971
|
-
class
|
|
902
|
+
class bt extends qs {
|
|
972
903
|
constructor(A, e, s, t) {
|
|
973
904
|
super(A, e, s, t);
|
|
974
905
|
}
|
|
@@ -979,19 +910,19 @@ class Vt extends tn {
|
|
|
979
910
|
return e;
|
|
980
911
|
}
|
|
981
912
|
interpolate_(A, e, s, t) {
|
|
982
|
-
const n = this.resultBuffer, i = this.sampleValues, B = this.valueSize, o = B * 2, r = B * 3, I = t - e,
|
|
983
|
-
for (let
|
|
984
|
-
const p = i[h +
|
|
985
|
-
n[
|
|
913
|
+
const n = this.resultBuffer, i = this.sampleValues, B = this.valueSize, o = B * 2, r = B * 3, I = t - e, C = (s - e) / I, c = C * C, Q = c * C, l = A * r, h = l - r, E = -2 * Q + 3 * c, d = Q - c, u = 1 - E, f = d - c + C;
|
|
914
|
+
for (let D = 0; D !== B; D++) {
|
|
915
|
+
const p = i[h + D + B], m = i[h + D + o] * I, M = i[l + D + B], P = i[l + D] * I;
|
|
916
|
+
n[D] = u * p + f * m + E * M + d * P;
|
|
986
917
|
}
|
|
987
918
|
return n;
|
|
988
919
|
}
|
|
989
920
|
}
|
|
990
|
-
const
|
|
991
|
-
class
|
|
921
|
+
const kn = new At();
|
|
922
|
+
class bn extends bt {
|
|
992
923
|
interpolate_(A, e, s, t) {
|
|
993
924
|
const n = super.interpolate_(A, e, s, t);
|
|
994
|
-
return
|
|
925
|
+
return kn.fromArray(n).normalize().toArray(n), n;
|
|
995
926
|
}
|
|
996
927
|
}
|
|
997
928
|
const b = {
|
|
@@ -1021,18 +952,18 @@ const b = {
|
|
|
1021
952
|
5123: Uint16Array,
|
|
1022
953
|
5125: Uint32Array,
|
|
1023
954
|
5126: Float32Array
|
|
1024
|
-
},
|
|
1025
|
-
9728:
|
|
1026
|
-
9729:
|
|
1027
|
-
9984:
|
|
1028
|
-
9985:
|
|
1029
|
-
9986:
|
|
1030
|
-
9987:
|
|
1031
|
-
},
|
|
1032
|
-
33071:
|
|
1033
|
-
33648:
|
|
1034
|
-
10497:
|
|
1035
|
-
},
|
|
955
|
+
}, lt = {
|
|
956
|
+
9728: Us,
|
|
957
|
+
9729: Me,
|
|
958
|
+
9984: Ns,
|
|
959
|
+
9985: xs,
|
|
960
|
+
9986: ks,
|
|
961
|
+
9987: tt
|
|
962
|
+
}, dt = {
|
|
963
|
+
33071: bs,
|
|
964
|
+
33648: Ks,
|
|
965
|
+
10497: ve
|
|
966
|
+
}, He = {
|
|
1036
967
|
SCALAR: 1,
|
|
1037
968
|
VEC2: 2,
|
|
1038
969
|
VEC3: 3,
|
|
@@ -1040,7 +971,7 @@ const b = {
|
|
|
1040
971
|
MAT2: 4,
|
|
1041
972
|
MAT3: 9,
|
|
1042
973
|
MAT4: 16
|
|
1043
|
-
},
|
|
974
|
+
}, We = {
|
|
1044
975
|
POSITION: "position",
|
|
1045
976
|
NORMAL: "normal",
|
|
1046
977
|
TANGENT: "tangent",
|
|
@@ -1051,62 +982,62 @@ const b = {
|
|
|
1051
982
|
COLOR_0: "color",
|
|
1052
983
|
WEIGHTS_0: "skinWeight",
|
|
1053
984
|
JOINTS_0: "skinIndex"
|
|
1054
|
-
},
|
|
985
|
+
}, tA = {
|
|
1055
986
|
scale: "scale",
|
|
1056
987
|
translation: "position",
|
|
1057
988
|
rotation: "quaternion",
|
|
1058
989
|
weights: "morphTargetInfluences"
|
|
1059
|
-
},
|
|
990
|
+
}, Kn = {
|
|
1060
991
|
CUBICSPLINE: void 0,
|
|
1061
992
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
1062
993
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
1063
|
-
LINEAR:
|
|
1064
|
-
STEP:
|
|
1065
|
-
},
|
|
994
|
+
LINEAR: Tt,
|
|
995
|
+
STEP: Os
|
|
996
|
+
}, Te = {
|
|
1066
997
|
OPAQUE: "OPAQUE",
|
|
1067
998
|
MASK: "MASK",
|
|
1068
999
|
BLEND: "BLEND"
|
|
1069
1000
|
};
|
|
1070
|
-
function
|
|
1071
|
-
return
|
|
1001
|
+
function On(a) {
|
|
1002
|
+
return a.DefaultMaterial === void 0 && (a.DefaultMaterial = new Jt({
|
|
1072
1003
|
color: 16777215,
|
|
1073
1004
|
emissive: 0,
|
|
1074
1005
|
metalness: 1,
|
|
1075
1006
|
roughness: 1,
|
|
1076
1007
|
transparent: !1,
|
|
1077
1008
|
depthTest: !0,
|
|
1078
|
-
side:
|
|
1079
|
-
})),
|
|
1009
|
+
side: _s
|
|
1010
|
+
})), a.DefaultMaterial;
|
|
1080
1011
|
}
|
|
1081
|
-
function
|
|
1012
|
+
function QA(a, A, e) {
|
|
1082
1013
|
for (const s in e.extensions)
|
|
1083
|
-
|
|
1014
|
+
a[s] === void 0 && (A.userData.gltfExtensions = A.userData.gltfExtensions || {}, A.userData.gltfExtensions[s] = e.extensions[s]);
|
|
1084
1015
|
}
|
|
1085
|
-
function
|
|
1086
|
-
A.extras !== void 0 && (typeof A.extras == "object" ? Object.assign(
|
|
1016
|
+
function sA(a, A) {
|
|
1017
|
+
A.extras !== void 0 && (typeof A.extras == "object" ? Object.assign(a.userData, A.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + A.extras));
|
|
1087
1018
|
}
|
|
1088
|
-
function
|
|
1019
|
+
function _n(a, A, e) {
|
|
1089
1020
|
let s = !1, t = !1, n = !1;
|
|
1090
1021
|
for (let r = 0, I = A.length; r < I; r++) {
|
|
1091
|
-
const
|
|
1092
|
-
if (
|
|
1022
|
+
const C = A[r];
|
|
1023
|
+
if (C.POSITION !== void 0 && (s = !0), C.NORMAL !== void 0 && (t = !0), C.COLOR_0 !== void 0 && (n = !0), s && t && n)
|
|
1093
1024
|
break;
|
|
1094
1025
|
}
|
|
1095
1026
|
if (!s && !t && !n)
|
|
1096
|
-
return Promise.resolve(
|
|
1027
|
+
return Promise.resolve(a);
|
|
1097
1028
|
const i = [], B = [], o = [];
|
|
1098
1029
|
for (let r = 0, I = A.length; r < I; r++) {
|
|
1099
|
-
const
|
|
1030
|
+
const C = A[r];
|
|
1100
1031
|
if (s) {
|
|
1101
|
-
const c =
|
|
1032
|
+
const c = C.POSITION !== void 0 ? e.getDependency("accessor", C.POSITION) : a.attributes.position;
|
|
1102
1033
|
i.push(c);
|
|
1103
1034
|
}
|
|
1104
1035
|
if (t) {
|
|
1105
|
-
const c =
|
|
1036
|
+
const c = C.NORMAL !== void 0 ? e.getDependency("accessor", C.NORMAL) : a.attributes.normal;
|
|
1106
1037
|
B.push(c);
|
|
1107
1038
|
}
|
|
1108
1039
|
if (n) {
|
|
1109
|
-
const c =
|
|
1040
|
+
const c = C.COLOR_0 !== void 0 ? e.getDependency("accessor", C.COLOR_0) : a.attributes.color;
|
|
1110
1041
|
o.push(c);
|
|
1111
1042
|
}
|
|
1112
1043
|
}
|
|
@@ -1115,41 +1046,41 @@ function $n(C, A, e) {
|
|
|
1115
1046
|
Promise.all(B),
|
|
1116
1047
|
Promise.all(o)
|
|
1117
1048
|
]).then(function(r) {
|
|
1118
|
-
const I = r[0],
|
|
1119
|
-
return s && (
|
|
1049
|
+
const I = r[0], C = r[1], c = r[2];
|
|
1050
|
+
return s && (a.morphAttributes.position = I), t && (a.morphAttributes.normal = C), n && (a.morphAttributes.color = c), a.morphTargetsRelative = !0, a;
|
|
1120
1051
|
});
|
|
1121
1052
|
}
|
|
1122
|
-
function
|
|
1123
|
-
if (
|
|
1053
|
+
function Pn(a, A) {
|
|
1054
|
+
if (a.updateMorphTargets(), A.weights !== void 0)
|
|
1124
1055
|
for (let e = 0, s = A.weights.length; e < s; e++)
|
|
1125
|
-
|
|
1056
|
+
a.morphTargetInfluences[e] = A.weights[e];
|
|
1126
1057
|
if (A.extras && Array.isArray(A.extras.targetNames)) {
|
|
1127
1058
|
const e = A.extras.targetNames;
|
|
1128
|
-
if (
|
|
1129
|
-
|
|
1059
|
+
if (a.morphTargetInfluences.length === e.length) {
|
|
1060
|
+
a.morphTargetDictionary = {};
|
|
1130
1061
|
for (let s = 0, t = e.length; s < t; s++)
|
|
1131
|
-
|
|
1062
|
+
a.morphTargetDictionary[e[s]] = s;
|
|
1132
1063
|
} else
|
|
1133
1064
|
console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
1134
1065
|
}
|
|
1135
1066
|
}
|
|
1136
|
-
function
|
|
1067
|
+
function Yn(a) {
|
|
1137
1068
|
let A;
|
|
1138
|
-
const e =
|
|
1139
|
-
if (e ? A = "draco:" + e.bufferView + ":" + e.indices + ":" +
|
|
1140
|
-
for (let s = 0, t =
|
|
1141
|
-
A += ":" +
|
|
1069
|
+
const e = a.extensions && a.extensions[R.KHR_DRACO_MESH_COMPRESSION];
|
|
1070
|
+
if (e ? A = "draco:" + e.bufferView + ":" + e.indices + ":" + Ue(e.attributes) : A = a.indices + ":" + Ue(a.attributes) + ":" + a.mode, a.targets !== void 0)
|
|
1071
|
+
for (let s = 0, t = a.targets.length; s < t; s++)
|
|
1072
|
+
A += ":" + Ue(a.targets[s]);
|
|
1142
1073
|
return A;
|
|
1143
1074
|
}
|
|
1144
|
-
function
|
|
1075
|
+
function Ue(a) {
|
|
1145
1076
|
let A = "";
|
|
1146
|
-
const e = Object.keys(
|
|
1077
|
+
const e = Object.keys(a).sort();
|
|
1147
1078
|
for (let s = 0, t = e.length; s < t; s++)
|
|
1148
|
-
A += e[s] + ":" +
|
|
1079
|
+
A += e[s] + ":" + a[e[s]] + ";";
|
|
1149
1080
|
return A;
|
|
1150
1081
|
}
|
|
1151
|
-
function
|
|
1152
|
-
switch (
|
|
1082
|
+
function Ve(a) {
|
|
1083
|
+
switch (a) {
|
|
1153
1084
|
case Int8Array:
|
|
1154
1085
|
return 1 / 127;
|
|
1155
1086
|
case Uint8Array:
|
|
@@ -1162,15 +1093,15 @@ function it(C) {
|
|
|
1162
1093
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
1163
1094
|
}
|
|
1164
1095
|
}
|
|
1165
|
-
function
|
|
1166
|
-
return
|
|
1096
|
+
function qn(a) {
|
|
1097
|
+
return a.search(/\.jpe?g($|\?)/i) > 0 || a.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : a.search(/\.webp($|\?)/i) > 0 || a.search(/^data\:image\/webp/) === 0 ? "image/webp" : "image/png";
|
|
1167
1098
|
}
|
|
1168
|
-
const
|
|
1169
|
-
class
|
|
1099
|
+
const Xn = new xA();
|
|
1100
|
+
class vn {
|
|
1170
1101
|
constructor(A = {}, e = {}) {
|
|
1171
|
-
this.json = A, this.extensions = {}, this.plugins = {}, this.options = e, this.cache = new
|
|
1102
|
+
this.json = A, this.extensions = {}, this.plugins = {}, this.options = e, this.cache = new hn(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
|
|
1172
1103
|
let s = !1, t = !1, n = -1;
|
|
1173
|
-
typeof navigator != "undefined" && (s = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === !0, t = navigator.userAgent.indexOf("Firefox") > -1, n = t ? navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1] : -1), typeof createImageBitmap == "undefined" || s || t && n < 98 ? this.textureLoader = new
|
|
1104
|
+
typeof navigator != "undefined" && (s = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) === !0, t = navigator.userAgent.indexOf("Firefox") > -1, n = t ? navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1] : -1), typeof createImageBitmap == "undefined" || s || t && n < 98 ? this.textureLoader = new St(this.options.manager) : this.textureLoader = new us(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new fA(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(!0);
|
|
1174
1105
|
}
|
|
1175
1106
|
setExtensions(A) {
|
|
1176
1107
|
this.extensions = A;
|
|
@@ -1200,7 +1131,7 @@ class ni {
|
|
|
1200
1131
|
parser: s,
|
|
1201
1132
|
userData: {}
|
|
1202
1133
|
};
|
|
1203
|
-
return
|
|
1134
|
+
return QA(n, B, t), sA(B, t), Promise.all(s._invokeAll(function(o) {
|
|
1204
1135
|
return o.afterRoot && o.afterRoot(B);
|
|
1205
1136
|
})).then(function() {
|
|
1206
1137
|
for (const o of B.scenes)
|
|
@@ -1363,7 +1294,7 @@ class ni {
|
|
|
1363
1294
|
return Promise.resolve(this.extensions[R.KHR_BINARY_GLTF].body);
|
|
1364
1295
|
const t = this.options;
|
|
1365
1296
|
return new Promise(function(n, i) {
|
|
1366
|
-
s.load(
|
|
1297
|
+
s.load(vA.resolveURL(e.uri, t.path), n, void 0, function() {
|
|
1367
1298
|
i(new Error('THREE.GLTFLoader: Failed to load buffer "' + e.uri + '".'));
|
|
1368
1299
|
});
|
|
1369
1300
|
});
|
|
@@ -1388,25 +1319,25 @@ class ni {
|
|
|
1388
1319
|
loadAccessor(A) {
|
|
1389
1320
|
const e = this, s = this.json, t = this.json.accessors[A];
|
|
1390
1321
|
if (t.bufferView === void 0 && t.sparse === void 0) {
|
|
1391
|
-
const i =
|
|
1392
|
-
return Promise.resolve(new
|
|
1322
|
+
const i = He[t.type], B = RA[t.componentType], o = t.normalized === !0, r = new B(t.count * i);
|
|
1323
|
+
return Promise.resolve(new WA(r, i, o));
|
|
1393
1324
|
}
|
|
1394
1325
|
const n = [];
|
|
1395
1326
|
return t.bufferView !== void 0 ? n.push(this.getDependency("bufferView", t.bufferView)) : n.push(null), t.sparse !== void 0 && (n.push(this.getDependency("bufferView", t.sparse.indices.bufferView)), n.push(this.getDependency("bufferView", t.sparse.values.bufferView))), Promise.all(n).then(function(i) {
|
|
1396
|
-
const B = i[0], o =
|
|
1327
|
+
const B = i[0], o = He[t.type], r = RA[t.componentType], I = r.BYTES_PER_ELEMENT, C = I * o, c = t.byteOffset || 0, Q = t.bufferView !== void 0 ? s.bufferViews[t.bufferView].byteStride : void 0, l = t.normalized === !0;
|
|
1397
1328
|
let h, E;
|
|
1398
|
-
if (Q && Q !==
|
|
1329
|
+
if (Q && Q !== C) {
|
|
1399
1330
|
const d = Math.floor(c / Q), u = "InterleavedBuffer:" + t.bufferView + ":" + t.componentType + ":" + d + ":" + t.count;
|
|
1400
|
-
let
|
|
1401
|
-
|
|
1331
|
+
let f = e.cache.get(u);
|
|
1332
|
+
f || (h = new r(B, d * Q, t.count * Q / I), f = new fs(h, Q / I), e.cache.add(u, f)), E = new Ds(f, o, c % Q / I, l);
|
|
1402
1333
|
} else
|
|
1403
|
-
B === null ? h = new r(t.count * o) : h = new r(B, c, t.count * o), E = new
|
|
1334
|
+
B === null ? h = new r(t.count * o) : h = new r(B, c, t.count * o), E = new WA(h, o, l);
|
|
1404
1335
|
if (t.sparse !== void 0) {
|
|
1405
|
-
const d =
|
|
1406
|
-
B !== null && (E = new
|
|
1407
|
-
for (let
|
|
1408
|
-
const
|
|
1409
|
-
if (E.setX(
|
|
1336
|
+
const d = He.SCALAR, u = RA[t.sparse.indices.componentType], f = t.sparse.indices.byteOffset || 0, D = t.sparse.values.byteOffset || 0, p = new u(i[1], f, t.sparse.count * d), m = new r(i[2], D, t.sparse.count * o);
|
|
1337
|
+
B !== null && (E = new WA(E.array.slice(), E.itemSize, E.normalized));
|
|
1338
|
+
for (let M = 0, P = p.length; M < P; M++) {
|
|
1339
|
+
const T = p[M];
|
|
1340
|
+
if (E.setX(T, m[M * o]), o >= 2 && E.setY(T, m[M * o + 1]), o >= 3 && E.setZ(T, m[M * o + 2]), o >= 4 && E.setW(T, m[M * o + 3]), o >= 5)
|
|
1410
1341
|
throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
|
|
1411
1342
|
}
|
|
1412
1343
|
}
|
|
@@ -1434,7 +1365,7 @@ class ni {
|
|
|
1434
1365
|
const r = this.loadImageSource(e, s).then(function(I) {
|
|
1435
1366
|
I.flipY = !1, I.name = i.name || B.name || "", I.name === "" && typeof B.uri == "string" && B.uri.startsWith("data:image/") === !1 && (I.name = B.uri);
|
|
1436
1367
|
const c = (n.samplers || {})[i.sampler] || {};
|
|
1437
|
-
return I.magFilter =
|
|
1368
|
+
return I.magFilter = lt[c.magFilter] || Me, I.minFilter = lt[c.minFilter] || tt, I.wrapS = dt[c.wrapS] || ve, I.wrapT = dt[c.wrapT] || ve, t.associations.set(I, { textures: A }), I;
|
|
1438
1369
|
}).catch(function() {
|
|
1439
1370
|
return null;
|
|
1440
1371
|
});
|
|
@@ -1443,29 +1374,29 @@ class ni {
|
|
|
1443
1374
|
loadImageSource(A, e) {
|
|
1444
1375
|
const s = this, t = this.json, n = this.options;
|
|
1445
1376
|
if (this.sourceCache[A] !== void 0)
|
|
1446
|
-
return this.sourceCache[A].then((
|
|
1377
|
+
return this.sourceCache[A].then((C) => C.clone());
|
|
1447
1378
|
const i = t.images[A], B = self.URL || self.webkitURL;
|
|
1448
1379
|
let o = i.uri || "", r = !1;
|
|
1449
1380
|
if (i.bufferView !== void 0)
|
|
1450
|
-
o = s.getDependency("bufferView", i.bufferView).then(function(
|
|
1381
|
+
o = s.getDependency("bufferView", i.bufferView).then(function(C) {
|
|
1451
1382
|
r = !0;
|
|
1452
|
-
const c = new Blob([
|
|
1383
|
+
const c = new Blob([C], { type: i.mimeType });
|
|
1453
1384
|
return o = B.createObjectURL(c), o;
|
|
1454
1385
|
});
|
|
1455
1386
|
else if (i.uri === void 0)
|
|
1456
1387
|
throw new Error("THREE.GLTFLoader: Image " + A + " is missing URI and bufferView");
|
|
1457
|
-
const I = Promise.resolve(o).then(function(
|
|
1388
|
+
const I = Promise.resolve(o).then(function(C) {
|
|
1458
1389
|
return new Promise(function(c, Q) {
|
|
1459
1390
|
let l = c;
|
|
1460
1391
|
e.isImageBitmapLoader === !0 && (l = function(h) {
|
|
1461
|
-
const E = new
|
|
1392
|
+
const E = new Bt(h);
|
|
1462
1393
|
E.needsUpdate = !0, c(E);
|
|
1463
|
-
}), e.load(
|
|
1394
|
+
}), e.load(vA.resolveURL(C, n.path), l, void 0, Q);
|
|
1464
1395
|
});
|
|
1465
|
-
}).then(function(
|
|
1466
|
-
return r === !0 && B.revokeObjectURL(o),
|
|
1467
|
-
}).catch(function(
|
|
1468
|
-
throw console.error("THREE.GLTFLoader: Couldn't load texture", o),
|
|
1396
|
+
}).then(function(C) {
|
|
1397
|
+
return r === !0 && B.revokeObjectURL(o), C.userData.mimeType = i.mimeType || qn(i.uri), C;
|
|
1398
|
+
}).catch(function(C) {
|
|
1399
|
+
throw console.error("THREE.GLTFLoader: Couldn't load texture", o), C;
|
|
1469
1400
|
});
|
|
1470
1401
|
return this.sourceCache[A] = I, I;
|
|
1471
1402
|
}
|
|
@@ -1506,11 +1437,11 @@ class ni {
|
|
|
1506
1437
|
if (A.isPoints) {
|
|
1507
1438
|
const B = "PointsMaterial:" + s.uuid;
|
|
1508
1439
|
let o = this.cache.get(B);
|
|
1509
|
-
o || (o = new
|
|
1440
|
+
o || (o = new Fs(), Le.prototype.copy.call(o, s), o.color.copy(s.color), o.map = s.map, o.sizeAttenuation = !1, this.cache.add(B, o)), s = o;
|
|
1510
1441
|
} else if (A.isLine) {
|
|
1511
1442
|
const B = "LineBasicMaterial:" + s.uuid;
|
|
1512
1443
|
let o = this.cache.get(B);
|
|
1513
|
-
o || (o = new
|
|
1444
|
+
o || (o = new Gs(), Le.prototype.copy.call(o, s), o.color.copy(s.color), o.map = s.map, this.cache.add(B, o)), s = o;
|
|
1514
1445
|
}
|
|
1515
1446
|
if (t || n || i) {
|
|
1516
1447
|
let B = "ClonedMaterial:" + s.uuid + ":";
|
|
@@ -1521,7 +1452,7 @@ class ni {
|
|
|
1521
1452
|
A.material = s;
|
|
1522
1453
|
}
|
|
1523
1454
|
getMaterialType() {
|
|
1524
|
-
return
|
|
1455
|
+
return Jt;
|
|
1525
1456
|
}
|
|
1526
1457
|
/**
|
|
1527
1458
|
* Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials
|
|
@@ -1533,38 +1464,38 @@ class ni {
|
|
|
1533
1464
|
let i;
|
|
1534
1465
|
const B = {}, o = n.extensions || {}, r = [];
|
|
1535
1466
|
if (o[R.KHR_MATERIALS_UNLIT]) {
|
|
1536
|
-
const
|
|
1537
|
-
i =
|
|
1467
|
+
const C = t[R.KHR_MATERIALS_UNLIT];
|
|
1468
|
+
i = C.getMaterialType(), r.push(C.extendParams(B, n, e));
|
|
1538
1469
|
} else {
|
|
1539
|
-
const
|
|
1540
|
-
if (B.color = new
|
|
1541
|
-
const c =
|
|
1470
|
+
const C = n.pbrMetallicRoughness || {};
|
|
1471
|
+
if (B.color = new EA(1, 1, 1), B.opacity = 1, Array.isArray(C.baseColorFactor)) {
|
|
1472
|
+
const c = C.baseColorFactor;
|
|
1542
1473
|
B.color.setRGB(c[0], c[1], c[2], _), B.opacity = c[3];
|
|
1543
1474
|
}
|
|
1544
|
-
|
|
1475
|
+
C.baseColorTexture !== void 0 && r.push(e.assignTexture(B, "map", C.baseColorTexture, $)), B.metalness = C.metallicFactor !== void 0 ? C.metallicFactor : 1, B.roughness = C.roughnessFactor !== void 0 ? C.roughnessFactor : 1, C.metallicRoughnessTexture !== void 0 && (r.push(e.assignTexture(B, "metalnessMap", C.metallicRoughnessTexture)), r.push(e.assignTexture(B, "roughnessMap", C.metallicRoughnessTexture))), i = this._invokeOne(function(c) {
|
|
1545
1476
|
return c.getMaterialType && c.getMaterialType(A);
|
|
1546
1477
|
}), r.push(Promise.all(this._invokeAll(function(c) {
|
|
1547
1478
|
return c.extendMaterialParams && c.extendMaterialParams(A, B);
|
|
1548
1479
|
})));
|
|
1549
1480
|
}
|
|
1550
|
-
n.doubleSided === !0 && (B.side =
|
|
1551
|
-
const I = n.alphaMode ||
|
|
1552
|
-
if (I ===
|
|
1553
|
-
const
|
|
1554
|
-
B.normalScale.set(
|
|
1481
|
+
n.doubleSided === !0 && (B.side = Rs);
|
|
1482
|
+
const I = n.alphaMode || Te.OPAQUE;
|
|
1483
|
+
if (I === Te.BLEND ? (B.transparent = !0, B.depthWrite = !1) : (B.transparent = !1, I === Te.MASK && (B.alphaTest = n.alphaCutoff !== void 0 ? n.alphaCutoff : 0.5)), n.normalTexture !== void 0 && i !== YA && (r.push(e.assignTexture(B, "normalMap", n.normalTexture)), B.normalScale = new Lt(1, 1), n.normalTexture.scale !== void 0)) {
|
|
1484
|
+
const C = n.normalTexture.scale;
|
|
1485
|
+
B.normalScale.set(C, C);
|
|
1555
1486
|
}
|
|
1556
|
-
if (n.occlusionTexture !== void 0 && i !==
|
|
1557
|
-
const
|
|
1558
|
-
B.emissive = new
|
|
1487
|
+
if (n.occlusionTexture !== void 0 && i !== YA && (r.push(e.assignTexture(B, "aoMap", n.occlusionTexture)), n.occlusionTexture.strength !== void 0 && (B.aoMapIntensity = n.occlusionTexture.strength)), n.emissiveFactor !== void 0 && i !== YA) {
|
|
1488
|
+
const C = n.emissiveFactor;
|
|
1489
|
+
B.emissive = new EA().setRGB(C[0], C[1], C[2], _);
|
|
1559
1490
|
}
|
|
1560
|
-
return n.emissiveTexture !== void 0 && i !==
|
|
1561
|
-
const
|
|
1562
|
-
return n.name && (
|
|
1491
|
+
return n.emissiveTexture !== void 0 && i !== YA && r.push(e.assignTexture(B, "emissiveMap", n.emissiveTexture, $)), Promise.all(r).then(function() {
|
|
1492
|
+
const C = new i(B);
|
|
1493
|
+
return n.name && (C.name = n.name), sA(C, n), e.associations.set(C, { materials: A }), n.extensions && QA(t, C, n), C;
|
|
1563
1494
|
});
|
|
1564
1495
|
}
|
|
1565
1496
|
/** When Object3D instances are targeted by animation, they need unique names. */
|
|
1566
1497
|
createUniqueName(A) {
|
|
1567
|
-
const e =
|
|
1498
|
+
const e = ps.sanitizeNodeName(A || "");
|
|
1568
1499
|
return e in this.nodeNamesUsed ? e + "_" + ++this.nodeNamesUsed[e] : (this.nodeNamesUsed[e] = 0, e);
|
|
1569
1500
|
}
|
|
1570
1501
|
/**
|
|
@@ -1579,17 +1510,17 @@ class ni {
|
|
|
1579
1510
|
const e = this, s = this.extensions, t = this.primitiveCache;
|
|
1580
1511
|
function n(B) {
|
|
1581
1512
|
return s[R.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(B, e).then(function(o) {
|
|
1582
|
-
return
|
|
1513
|
+
return ut(o, B, e);
|
|
1583
1514
|
});
|
|
1584
1515
|
}
|
|
1585
1516
|
const i = [];
|
|
1586
1517
|
for (let B = 0, o = A.length; B < o; B++) {
|
|
1587
|
-
const r = A[B], I =
|
|
1588
|
-
if (
|
|
1589
|
-
i.push(
|
|
1518
|
+
const r = A[B], I = Yn(r), C = t[I];
|
|
1519
|
+
if (C)
|
|
1520
|
+
i.push(C.promise);
|
|
1590
1521
|
else {
|
|
1591
1522
|
let c;
|
|
1592
|
-
r.extensions && r.extensions[R.KHR_DRACO_MESH_COMPRESSION] ? c = n(r) : c =
|
|
1523
|
+
r.extensions && r.extensions[R.KHR_DRACO_MESH_COMPRESSION] ? c = n(r) : c = ut(new Ht(), r, e), t[I] = { primitive: r, promise: c }, i.push(c);
|
|
1593
1524
|
}
|
|
1594
1525
|
}
|
|
1595
1526
|
return Promise.all(i);
|
|
@@ -1602,40 +1533,40 @@ class ni {
|
|
|
1602
1533
|
loadMesh(A) {
|
|
1603
1534
|
const e = this, s = this.json, t = this.extensions, n = s.meshes[A], i = n.primitives, B = [];
|
|
1604
1535
|
for (let o = 0, r = i.length; o < r; o++) {
|
|
1605
|
-
const I = i[o].material === void 0 ?
|
|
1536
|
+
const I = i[o].material === void 0 ? On(this.cache) : this.getDependency("material", i[o].material);
|
|
1606
1537
|
B.push(I);
|
|
1607
1538
|
}
|
|
1608
1539
|
return B.push(e.loadGeometries(i)), Promise.all(B).then(function(o) {
|
|
1609
|
-
const r = o.slice(0, o.length - 1), I = o[o.length - 1],
|
|
1540
|
+
const r = o.slice(0, o.length - 1), I = o[o.length - 1], C = [];
|
|
1610
1541
|
for (let Q = 0, l = I.length; Q < l; Q++) {
|
|
1611
1542
|
const h = I[Q], E = i[Q];
|
|
1612
1543
|
let d;
|
|
1613
1544
|
const u = r[Q];
|
|
1614
1545
|
if (E.mode === b.TRIANGLES || E.mode === b.TRIANGLE_STRIP || E.mode === b.TRIANGLE_FAN || E.mode === void 0)
|
|
1615
|
-
d = n.isSkinnedMesh === !0 ? new
|
|
1546
|
+
d = n.isSkinnedMesh === !0 ? new ms(h, u) : new Qe(h, u), d.isSkinnedMesh === !0 && d.normalizeSkinWeights(), E.mode === b.TRIANGLE_STRIP ? d.geometry = Qt(d.geometry, yt) : E.mode === b.TRIANGLE_FAN && (d.geometry = Qt(d.geometry, Xe));
|
|
1616
1547
|
else if (E.mode === b.LINES)
|
|
1617
|
-
d = new
|
|
1548
|
+
d = new Ms(h, u);
|
|
1618
1549
|
else if (E.mode === b.LINE_STRIP)
|
|
1619
|
-
d = new
|
|
1550
|
+
d = new ws(h, u);
|
|
1620
1551
|
else if (E.mode === b.LINE_LOOP)
|
|
1621
|
-
d = new
|
|
1552
|
+
d = new Ss(h, u);
|
|
1622
1553
|
else if (E.mode === b.POINTS)
|
|
1623
|
-
d = new
|
|
1554
|
+
d = new ys(h, u);
|
|
1624
1555
|
else
|
|
1625
1556
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + E.mode);
|
|
1626
|
-
Object.keys(d.geometry.morphAttributes).length > 0 &&
|
|
1557
|
+
Object.keys(d.geometry.morphAttributes).length > 0 && Pn(d, n), d.name = e.createUniqueName(n.name || "mesh_" + A), sA(d, n), E.extensions && QA(t, d, E), e.assignFinalMaterial(d), C.push(d);
|
|
1627
1558
|
}
|
|
1628
|
-
for (let Q = 0, l =
|
|
1629
|
-
e.associations.set(
|
|
1559
|
+
for (let Q = 0, l = C.length; Q < l; Q++)
|
|
1560
|
+
e.associations.set(C[Q], {
|
|
1630
1561
|
meshes: A,
|
|
1631
1562
|
primitives: Q
|
|
1632
1563
|
});
|
|
1633
|
-
if (
|
|
1634
|
-
return n.extensions &&
|
|
1635
|
-
const c = new
|
|
1636
|
-
n.extensions &&
|
|
1637
|
-
for (let Q = 0, l =
|
|
1638
|
-
c.add(
|
|
1564
|
+
if (C.length === 1)
|
|
1565
|
+
return n.extensions && QA(t, C[0], n), C[0];
|
|
1566
|
+
const c = new VA();
|
|
1567
|
+
n.extensions && QA(t, c, n), e.associations.set(c, { meshes: A });
|
|
1568
|
+
for (let Q = 0, l = C.length; Q < l; Q++)
|
|
1569
|
+
c.add(C[Q]);
|
|
1639
1570
|
return c;
|
|
1640
1571
|
});
|
|
1641
1572
|
}
|
|
@@ -1651,7 +1582,7 @@ class ni {
|
|
|
1651
1582
|
console.warn("THREE.GLTFLoader: Missing camera parameters.");
|
|
1652
1583
|
return;
|
|
1653
1584
|
}
|
|
1654
|
-
return s.type === "perspective" ? e = new
|
|
1585
|
+
return s.type === "perspective" ? e = new qe(Ls.radToDeg(t.yfov), t.aspectRatio || 1, t.znear || 1, t.zfar || 2e6) : s.type === "orthographic" && (e = new me(-t.xmag, t.xmag, t.ymag, -t.ymag, t.znear, t.zfar)), s.name && (e.name = this.createUniqueName(s.name)), sA(e, s), Promise.resolve(e);
|
|
1655
1586
|
}
|
|
1656
1587
|
/**
|
|
1657
1588
|
* Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins
|
|
@@ -1665,15 +1596,15 @@ class ni {
|
|
|
1665
1596
|
return e.inverseBindMatrices !== void 0 ? s.push(this.getDependency("accessor", e.inverseBindMatrices)) : s.push(null), Promise.all(s).then(function(t) {
|
|
1666
1597
|
const n = t.pop(), i = t, B = [], o = [];
|
|
1667
1598
|
for (let r = 0, I = i.length; r < I; r++) {
|
|
1668
|
-
const
|
|
1669
|
-
if (
|
|
1670
|
-
B.push(
|
|
1671
|
-
const c = new
|
|
1599
|
+
const C = i[r];
|
|
1600
|
+
if (C) {
|
|
1601
|
+
B.push(C);
|
|
1602
|
+
const c = new xA();
|
|
1672
1603
|
n !== null && c.fromArray(n.array, r * 16), o.push(c);
|
|
1673
1604
|
} else
|
|
1674
1605
|
console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', e.joints[r]);
|
|
1675
1606
|
}
|
|
1676
|
-
return new
|
|
1607
|
+
return new Js(B, o);
|
|
1677
1608
|
});
|
|
1678
1609
|
}
|
|
1679
1610
|
/**
|
|
@@ -1683,8 +1614,8 @@ class ni {
|
|
|
1683
1614
|
*/
|
|
1684
1615
|
loadAnimation(A) {
|
|
1685
1616
|
const e = this.json, s = this, t = e.animations[A], n = t.name ? t.name : "animation_" + A, i = [], B = [], o = [], r = [], I = [];
|
|
1686
|
-
for (let
|
|
1687
|
-
const Q = t.channels[
|
|
1617
|
+
for (let C = 0, c = t.channels.length; C < c; C++) {
|
|
1618
|
+
const Q = t.channels[C], l = t.samplers[Q.sampler], h = Q.target, E = h.node, d = t.parameters !== void 0 ? t.parameters[l.input] : l.input, u = t.parameters !== void 0 ? t.parameters[l.output] : l.output;
|
|
1688
1619
|
h.node !== void 0 && (i.push(this.getDependency("node", E)), B.push(this.getDependency("accessor", d)), o.push(this.getDependency("accessor", u)), r.push(l), I.push(h));
|
|
1689
1620
|
}
|
|
1690
1621
|
return Promise.all([
|
|
@@ -1693,19 +1624,19 @@ class ni {
|
|
|
1693
1624
|
Promise.all(o),
|
|
1694
1625
|
Promise.all(r),
|
|
1695
1626
|
Promise.all(I)
|
|
1696
|
-
]).then(function(
|
|
1697
|
-
const c =
|
|
1698
|
-
for (let u = 0,
|
|
1699
|
-
const
|
|
1700
|
-
if (
|
|
1627
|
+
]).then(function(C) {
|
|
1628
|
+
const c = C[0], Q = C[1], l = C[2], h = C[3], E = C[4], d = [];
|
|
1629
|
+
for (let u = 0, f = c.length; u < f; u++) {
|
|
1630
|
+
const D = c[u], p = Q[u], m = l[u], M = h[u], P = E[u];
|
|
1631
|
+
if (D === void 0)
|
|
1701
1632
|
continue;
|
|
1702
|
-
|
|
1703
|
-
const
|
|
1704
|
-
if (
|
|
1705
|
-
for (let
|
|
1706
|
-
d.push(
|
|
1633
|
+
D.updateMatrix && D.updateMatrix();
|
|
1634
|
+
const T = s._createAnimationTracks(D, p, m, M, P);
|
|
1635
|
+
if (T)
|
|
1636
|
+
for (let v = 0; v < T.length; v++)
|
|
1637
|
+
d.push(T[v]);
|
|
1707
1638
|
}
|
|
1708
|
-
return new
|
|
1639
|
+
return new Hs(n, void 0, d);
|
|
1709
1640
|
});
|
|
1710
1641
|
}
|
|
1711
1642
|
createNodeMesh(A) {
|
|
@@ -1734,12 +1665,12 @@ class ni {
|
|
|
1734
1665
|
Promise.all(i),
|
|
1735
1666
|
o
|
|
1736
1667
|
]).then(function(r) {
|
|
1737
|
-
const I = r[0],
|
|
1668
|
+
const I = r[0], C = r[1], c = r[2];
|
|
1738
1669
|
c !== null && I.traverse(function(Q) {
|
|
1739
|
-
Q.isSkinnedMesh && Q.bind(c,
|
|
1670
|
+
Q.isSkinnedMesh && Q.bind(c, Xn);
|
|
1740
1671
|
});
|
|
1741
|
-
for (let Q = 0, l =
|
|
1742
|
-
I.add(
|
|
1672
|
+
for (let Q = 0, l = C.length; Q < l; Q++)
|
|
1673
|
+
I.add(C[Q]);
|
|
1743
1674
|
return I;
|
|
1744
1675
|
});
|
|
1745
1676
|
}
|
|
@@ -1760,12 +1691,12 @@ class ni {
|
|
|
1760
1691
|
B.push(r);
|
|
1761
1692
|
}), this.nodeCache[A] = Promise.all(B).then(function(r) {
|
|
1762
1693
|
let I;
|
|
1763
|
-
if (n.isBone === !0 ? I = new
|
|
1764
|
-
for (let
|
|
1765
|
-
I.add(r[
|
|
1766
|
-
if (n.name && (I.userData.name = n.name, I.name = i),
|
|
1767
|
-
const
|
|
1768
|
-
|
|
1694
|
+
if (n.isBone === !0 ? I = new Ts() : r.length > 1 ? I = new VA() : r.length === 1 ? I = r[0] : I = new et(), I !== r[0])
|
|
1695
|
+
for (let C = 0, c = r.length; C < c; C++)
|
|
1696
|
+
I.add(r[C]);
|
|
1697
|
+
if (n.name && (I.userData.name = n.name, I.name = i), sA(I, n), n.extensions && QA(s, I, n), n.matrix !== void 0) {
|
|
1698
|
+
const C = new xA();
|
|
1699
|
+
C.fromArray(n.matrix), I.applyMatrix4(C);
|
|
1769
1700
|
} else
|
|
1770
1701
|
n.translation !== void 0 && I.position.fromArray(n.translation), n.rotation !== void 0 && I.quaternion.fromArray(n.rotation), n.scale !== void 0 && I.scale.fromArray(n.scale);
|
|
1771
1702
|
return t.associations.has(I) || t.associations.set(I, {}), t.associations.get(I).nodes = A, I;
|
|
@@ -1777,62 +1708,62 @@ class ni {
|
|
|
1777
1708
|
* @return {Promise<Group>}
|
|
1778
1709
|
*/
|
|
1779
1710
|
loadScene(A) {
|
|
1780
|
-
const e = this.extensions, s = this.json.scenes[A], t = this, n = new
|
|
1781
|
-
s.name && (n.name = t.createUniqueName(s.name)),
|
|
1711
|
+
const e = this.extensions, s = this.json.scenes[A], t = this, n = new VA();
|
|
1712
|
+
s.name && (n.name = t.createUniqueName(s.name)), sA(n, s), s.extensions && QA(e, n, s);
|
|
1782
1713
|
const i = s.nodes || [], B = [];
|
|
1783
1714
|
for (let o = 0, r = i.length; o < r; o++)
|
|
1784
1715
|
B.push(t.getDependency("node", i[o]));
|
|
1785
1716
|
return Promise.all(B).then(function(o) {
|
|
1786
|
-
for (let I = 0,
|
|
1717
|
+
for (let I = 0, C = o.length; I < C; I++)
|
|
1787
1718
|
n.add(o[I]);
|
|
1788
1719
|
const r = (I) => {
|
|
1789
|
-
const
|
|
1720
|
+
const C = /* @__PURE__ */ new Map();
|
|
1790
1721
|
for (const [c, Q] of t.associations)
|
|
1791
|
-
(c instanceof
|
|
1722
|
+
(c instanceof Le || c instanceof Bt) && C.set(c, Q);
|
|
1792
1723
|
return I.traverse((c) => {
|
|
1793
1724
|
const Q = t.associations.get(c);
|
|
1794
|
-
Q != null &&
|
|
1795
|
-
}),
|
|
1725
|
+
Q != null && C.set(c, Q);
|
|
1726
|
+
}), C;
|
|
1796
1727
|
};
|
|
1797
1728
|
return t.associations = r(n), n;
|
|
1798
1729
|
});
|
|
1799
1730
|
}
|
|
1800
1731
|
_createAnimationTracks(A, e, s, t, n) {
|
|
1801
1732
|
const i = [], B = A.name ? A.name : A.uuid, o = [];
|
|
1802
|
-
|
|
1733
|
+
tA[n.path] === tA.weights ? A.traverse(function(c) {
|
|
1803
1734
|
c.morphTargetInfluences && o.push(c.name ? c.name : c.uuid);
|
|
1804
1735
|
}) : o.push(B);
|
|
1805
1736
|
let r;
|
|
1806
|
-
switch (
|
|
1807
|
-
case
|
|
1808
|
-
r =
|
|
1737
|
+
switch (tA[n.path]) {
|
|
1738
|
+
case tA.weights:
|
|
1739
|
+
r = Ct;
|
|
1809
1740
|
break;
|
|
1810
|
-
case
|
|
1811
|
-
r =
|
|
1741
|
+
case tA.rotation:
|
|
1742
|
+
r = at;
|
|
1812
1743
|
break;
|
|
1813
|
-
case
|
|
1814
|
-
case
|
|
1815
|
-
r =
|
|
1744
|
+
case tA.position:
|
|
1745
|
+
case tA.scale:
|
|
1746
|
+
r = rt;
|
|
1816
1747
|
break;
|
|
1817
1748
|
default:
|
|
1818
1749
|
switch (s.itemSize) {
|
|
1819
1750
|
case 1:
|
|
1820
|
-
r =
|
|
1751
|
+
r = Ct;
|
|
1821
1752
|
break;
|
|
1822
1753
|
case 2:
|
|
1823
1754
|
case 3:
|
|
1824
1755
|
default:
|
|
1825
|
-
r =
|
|
1756
|
+
r = rt;
|
|
1826
1757
|
break;
|
|
1827
1758
|
}
|
|
1828
1759
|
break;
|
|
1829
1760
|
}
|
|
1830
|
-
const I = t.interpolation !== void 0 ?
|
|
1761
|
+
const I = t.interpolation !== void 0 ? Kn[t.interpolation] : Tt, C = this._getArrayFromAccessor(s);
|
|
1831
1762
|
for (let c = 0, Q = o.length; c < Q; c++) {
|
|
1832
1763
|
const l = new r(
|
|
1833
|
-
o[c] + "." +
|
|
1764
|
+
o[c] + "." + tA[n.path],
|
|
1834
1765
|
e.array,
|
|
1835
|
-
|
|
1766
|
+
C,
|
|
1836
1767
|
I
|
|
1837
1768
|
);
|
|
1838
1769
|
t.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(l), i.push(l);
|
|
@@ -1842,7 +1773,7 @@ class ni {
|
|
|
1842
1773
|
_getArrayFromAccessor(A) {
|
|
1843
1774
|
let e = A.array;
|
|
1844
1775
|
if (A.normalized) {
|
|
1845
|
-
const s =
|
|
1776
|
+
const s = Ve(e.constructor), t = new Float32Array(e.length);
|
|
1846
1777
|
for (let n = 0, i = e.length; n < i; n++)
|
|
1847
1778
|
t[n] = e[n] * s;
|
|
1848
1779
|
e = t;
|
|
@@ -1851,21 +1782,21 @@ class ni {
|
|
|
1851
1782
|
}
|
|
1852
1783
|
_createCubicSplineTrackInterpolant(A) {
|
|
1853
1784
|
A.createInterpolant = function(s) {
|
|
1854
|
-
const t = this instanceof
|
|
1785
|
+
const t = this instanceof at ? bn : bt;
|
|
1855
1786
|
return new t(this.times, this.values, this.getValueSize() / 3, s);
|
|
1856
1787
|
}, A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
1857
1788
|
}
|
|
1858
1789
|
}
|
|
1859
|
-
function
|
|
1860
|
-
const s = A.attributes, t = new
|
|
1790
|
+
function Wn(a, A, e) {
|
|
1791
|
+
const s = A.attributes, t = new Ps();
|
|
1861
1792
|
if (s.POSITION !== void 0) {
|
|
1862
1793
|
const B = e.json.accessors[s.POSITION], o = B.min, r = B.max;
|
|
1863
1794
|
if (o !== void 0 && r !== void 0) {
|
|
1864
1795
|
if (t.set(
|
|
1865
|
-
new
|
|
1866
|
-
new
|
|
1796
|
+
new w(o[0], o[1], o[2]),
|
|
1797
|
+
new w(r[0], r[1], r[2])
|
|
1867
1798
|
), B.normalized) {
|
|
1868
|
-
const I =
|
|
1799
|
+
const I = Ve(RA[B.componentType]);
|
|
1869
1800
|
t.min.multiplyScalar(I), t.max.multiplyScalar(I);
|
|
1870
1801
|
}
|
|
1871
1802
|
} else {
|
|
@@ -1876,14 +1807,14 @@ function ii(C, A, e) {
|
|
|
1876
1807
|
return;
|
|
1877
1808
|
const n = A.targets;
|
|
1878
1809
|
if (n !== void 0) {
|
|
1879
|
-
const B = new
|
|
1810
|
+
const B = new w(), o = new w();
|
|
1880
1811
|
for (let r = 0, I = n.length; r < I; r++) {
|
|
1881
|
-
const
|
|
1882
|
-
if (
|
|
1883
|
-
const c = e.json.accessors[
|
|
1812
|
+
const C = n[r];
|
|
1813
|
+
if (C.POSITION !== void 0) {
|
|
1814
|
+
const c = e.json.accessors[C.POSITION], Q = c.min, l = c.max;
|
|
1884
1815
|
if (Q !== void 0 && l !== void 0) {
|
|
1885
1816
|
if (o.setX(Math.max(Math.abs(Q[0]), Math.abs(l[0]))), o.setY(Math.max(Math.abs(Q[1]), Math.abs(l[1]))), o.setZ(Math.max(Math.abs(Q[2]), Math.abs(l[2]))), c.normalized) {
|
|
1886
|
-
const h =
|
|
1817
|
+
const h = Ve(RA[c.componentType]);
|
|
1887
1818
|
o.multiplyScalar(h);
|
|
1888
1819
|
}
|
|
1889
1820
|
B.max(o);
|
|
@@ -1893,33 +1824,33 @@ function ii(C, A, e) {
|
|
|
1893
1824
|
}
|
|
1894
1825
|
t.expandByVector(B);
|
|
1895
1826
|
}
|
|
1896
|
-
|
|
1897
|
-
const i = new
|
|
1898
|
-
t.getCenter(i.center), i.radius = t.min.distanceTo(t.max) / 2,
|
|
1827
|
+
a.boundingBox = t;
|
|
1828
|
+
const i = new Ys();
|
|
1829
|
+
t.getCenter(i.center), i.radius = t.min.distanceTo(t.max) / 2, a.boundingSphere = i;
|
|
1899
1830
|
}
|
|
1900
|
-
function
|
|
1831
|
+
function ut(a, A, e) {
|
|
1901
1832
|
const s = A.attributes, t = [];
|
|
1902
1833
|
function n(i, B) {
|
|
1903
1834
|
return e.getDependency("accessor", i).then(function(o) {
|
|
1904
|
-
|
|
1835
|
+
a.setAttribute(B, o);
|
|
1905
1836
|
});
|
|
1906
1837
|
}
|
|
1907
1838
|
for (const i in s) {
|
|
1908
|
-
const B =
|
|
1909
|
-
B in
|
|
1839
|
+
const B = We[i] || i.toLowerCase();
|
|
1840
|
+
B in a.attributes || t.push(n(s[i], B));
|
|
1910
1841
|
}
|
|
1911
|
-
if (A.indices !== void 0 && !
|
|
1842
|
+
if (A.indices !== void 0 && !a.index) {
|
|
1912
1843
|
const i = e.getDependency("accessor", A.indices).then(function(B) {
|
|
1913
|
-
|
|
1844
|
+
a.setIndex(B);
|
|
1914
1845
|
});
|
|
1915
1846
|
t.push(i);
|
|
1916
1847
|
}
|
|
1917
|
-
return
|
|
1918
|
-
return A.targets !== void 0 ?
|
|
1848
|
+
return ot.workingColorSpace !== _ && "COLOR_0" in s && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ot.workingColorSpace}" not supported.`), sA(a, A), Wn(a, A, e), Promise.all(t).then(function() {
|
|
1849
|
+
return A.targets !== void 0 ? _n(a, A.targets, e) : a;
|
|
1919
1850
|
});
|
|
1920
1851
|
}
|
|
1921
|
-
const
|
|
1922
|
-
class
|
|
1852
|
+
const Ne = /* @__PURE__ */ new WeakMap();
|
|
1853
|
+
class Vn extends $e {
|
|
1923
1854
|
constructor(A) {
|
|
1924
1855
|
super(A), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = {
|
|
1925
1856
|
position: "POSITION",
|
|
@@ -1943,14 +1874,14 @@ class oi extends Ct {
|
|
|
1943
1874
|
return this.workerLimit = A, this;
|
|
1944
1875
|
}
|
|
1945
1876
|
load(A, e, s, t) {
|
|
1946
|
-
const n = new
|
|
1877
|
+
const n = new fA(this.manager);
|
|
1947
1878
|
n.setPath(this.path), n.setResponseType("arraybuffer"), n.setRequestHeader(this.requestHeader), n.setWithCredentials(this.withCredentials), n.load(A, (i) => {
|
|
1948
1879
|
this.parse(i, e, t);
|
|
1949
1880
|
}, s, t);
|
|
1950
1881
|
}
|
|
1951
1882
|
parse(A, e, s = () => {
|
|
1952
1883
|
}) {
|
|
1953
|
-
this.decodeDracoFile(A, e, null, null,
|
|
1884
|
+
this.decodeDracoFile(A, e, null, null, $).catch(s);
|
|
1954
1885
|
}
|
|
1955
1886
|
decodeDracoFile(A, e, s, t, n = _, i = () => {
|
|
1956
1887
|
}) {
|
|
@@ -1964,8 +1895,8 @@ class oi extends Ct {
|
|
|
1964
1895
|
}
|
|
1965
1896
|
decodeGeometry(A, e) {
|
|
1966
1897
|
const s = JSON.stringify(e);
|
|
1967
|
-
if (
|
|
1968
|
-
const o =
|
|
1898
|
+
if (Ne.has(A)) {
|
|
1899
|
+
const o = Ne.get(A);
|
|
1969
1900
|
if (o.key === s)
|
|
1970
1901
|
return o.promise;
|
|
1971
1902
|
if (A.byteLength === 0)
|
|
@@ -1979,29 +1910,29 @@ class oi extends Ct {
|
|
|
1979
1910
|
}))).then((o) => this._createGeometry(o.geometry));
|
|
1980
1911
|
return B.catch(() => !0).then(() => {
|
|
1981
1912
|
t && n && this._releaseTask(t, n);
|
|
1982
|
-
}),
|
|
1913
|
+
}), Ne.set(A, {
|
|
1983
1914
|
key: s,
|
|
1984
1915
|
promise: B
|
|
1985
1916
|
}), B;
|
|
1986
1917
|
}
|
|
1987
1918
|
_createGeometry(A) {
|
|
1988
|
-
const e = new
|
|
1989
|
-
A.index && e.setIndex(new
|
|
1919
|
+
const e = new Ht();
|
|
1920
|
+
A.index && e.setIndex(new WA(A.index.array, 1));
|
|
1990
1921
|
for (let s = 0; s < A.attributes.length; s++) {
|
|
1991
|
-
const t = A.attributes[s], n = t.name, i = t.array, B = t.itemSize, o = new
|
|
1922
|
+
const t = A.attributes[s], n = t.name, i = t.array, B = t.itemSize, o = new WA(i, B);
|
|
1992
1923
|
n === "color" && (this._assignVertexColorSpace(o, t.vertexColorSpace), o.normalized = !(i instanceof Float32Array)), e.setAttribute(n, o);
|
|
1993
1924
|
}
|
|
1994
1925
|
return e;
|
|
1995
1926
|
}
|
|
1996
1927
|
_assignVertexColorSpace(A, e) {
|
|
1997
|
-
if (e !==
|
|
1928
|
+
if (e !== $)
|
|
1998
1929
|
return;
|
|
1999
|
-
const s = new
|
|
1930
|
+
const s = new EA();
|
|
2000
1931
|
for (let t = 0, n = A.count; t < n; t++)
|
|
2001
1932
|
s.fromBufferAttribute(A, t).convertSRGBToLinear(), A.setXYZ(t, s.r, s.g, s.b);
|
|
2002
1933
|
}
|
|
2003
1934
|
_loadLibrary(A, e) {
|
|
2004
|
-
const s = new
|
|
1935
|
+
const s = new fA(this.manager);
|
|
2005
1936
|
return s.setPath(this.decoderPath), s.setResponseType(e), s.setWithCredentials(this.withCredentials), new Promise((t, n) => {
|
|
2006
1937
|
s.load(A, t, void 0, n);
|
|
2007
1938
|
});
|
|
@@ -2016,7 +1947,7 @@ class oi extends Ct {
|
|
|
2016
1947
|
return A ? e.push(this._loadLibrary("draco_decoder.js", "text")) : (e.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), e.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(e).then((s) => {
|
|
2017
1948
|
const t = s[0];
|
|
2018
1949
|
A || (this.decoderConfig.wasmBinary = s[1]);
|
|
2019
|
-
const n =
|
|
1950
|
+
const n = jn.toString(), i = [
|
|
2020
1951
|
"/* draco decoder */",
|
|
2021
1952
|
t,
|
|
2022
1953
|
"",
|
|
@@ -2064,36 +1995,36 @@ class oi extends Ct {
|
|
|
2064
1995
|
return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
|
|
2065
1996
|
}
|
|
2066
1997
|
}
|
|
2067
|
-
function
|
|
2068
|
-
let
|
|
1998
|
+
function jn() {
|
|
1999
|
+
let a, A;
|
|
2069
2000
|
onmessage = function(i) {
|
|
2070
2001
|
const B = i.data;
|
|
2071
2002
|
switch (B.type) {
|
|
2072
2003
|
case "init":
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
I({ draco:
|
|
2076
|
-
}, DracoDecoderModule(
|
|
2004
|
+
a = B.decoderConfig, A = new Promise(function(I) {
|
|
2005
|
+
a.onModuleLoaded = function(C) {
|
|
2006
|
+
I({ draco: C });
|
|
2007
|
+
}, DracoDecoderModule(a);
|
|
2077
2008
|
});
|
|
2078
2009
|
break;
|
|
2079
2010
|
case "decode":
|
|
2080
2011
|
const o = B.buffer, r = B.taskConfig;
|
|
2081
2012
|
A.then((I) => {
|
|
2082
|
-
const
|
|
2013
|
+
const C = I.draco, c = new C.Decoder();
|
|
2083
2014
|
try {
|
|
2084
|
-
const Q = e(
|
|
2015
|
+
const Q = e(C, c, new Int8Array(o), r), l = Q.attributes.map((h) => h.array.buffer);
|
|
2085
2016
|
Q.index && l.push(Q.index.array.buffer), self.postMessage({ type: "decode", id: B.id, geometry: Q }, l);
|
|
2086
2017
|
} catch (Q) {
|
|
2087
2018
|
console.error(Q), self.postMessage({ type: "error", id: B.id, error: Q.message });
|
|
2088
2019
|
} finally {
|
|
2089
|
-
|
|
2020
|
+
C.destroy(c);
|
|
2090
2021
|
}
|
|
2091
2022
|
});
|
|
2092
2023
|
break;
|
|
2093
2024
|
}
|
|
2094
2025
|
};
|
|
2095
2026
|
function e(i, B, o, r) {
|
|
2096
|
-
const I = r.attributeIDs,
|
|
2027
|
+
const I = r.attributeIDs, C = r.attributeTypes;
|
|
2097
2028
|
let c, Q;
|
|
2098
2029
|
const l = B.GetEncodedGeometryType(o);
|
|
2099
2030
|
if (l === i.TRIANGULAR_MESH)
|
|
@@ -2106,29 +2037,29 @@ function Bi() {
|
|
|
2106
2037
|
throw new Error("THREE.DRACOLoader: Decoding failed: " + Q.error_msg());
|
|
2107
2038
|
const h = { index: null, attributes: [] };
|
|
2108
2039
|
for (const E in I) {
|
|
2109
|
-
const d = self[
|
|
2110
|
-
let u,
|
|
2040
|
+
const d = self[C[E]];
|
|
2041
|
+
let u, f;
|
|
2111
2042
|
if (r.useUniqueIDs)
|
|
2112
|
-
|
|
2043
|
+
f = I[E], u = B.GetAttributeByUniqueId(c, f);
|
|
2113
2044
|
else {
|
|
2114
|
-
if (
|
|
2045
|
+
if (f = B.GetAttributeId(c, i[I[E]]), f === -1)
|
|
2115
2046
|
continue;
|
|
2116
|
-
u = B.GetAttribute(c,
|
|
2047
|
+
u = B.GetAttribute(c, f);
|
|
2117
2048
|
}
|
|
2118
|
-
const
|
|
2119
|
-
E === "color" && (
|
|
2049
|
+
const D = t(i, B, c, E, d, u);
|
|
2050
|
+
E === "color" && (D.vertexColorSpace = r.vertexColorSpace), h.attributes.push(D);
|
|
2120
2051
|
}
|
|
2121
2052
|
return l === i.TRIANGULAR_MESH && (h.index = s(i, B, c)), i.destroy(c), h;
|
|
2122
2053
|
}
|
|
2123
2054
|
function s(i, B, o) {
|
|
2124
|
-
const I = o.num_faces() * 3,
|
|
2125
|
-
B.GetTrianglesUInt32Array(o,
|
|
2055
|
+
const I = o.num_faces() * 3, C = I * 4, c = i._malloc(C);
|
|
2056
|
+
B.GetTrianglesUInt32Array(o, C, c);
|
|
2126
2057
|
const Q = new Uint32Array(i.HEAPF32.buffer, c, I).slice();
|
|
2127
2058
|
return i._free(c), { array: Q, itemSize: 1 };
|
|
2128
2059
|
}
|
|
2129
|
-
function t(i, B, o, r, I,
|
|
2130
|
-
const c =
|
|
2131
|
-
B.GetAttributeDataArrayForAllPoints(o,
|
|
2060
|
+
function t(i, B, o, r, I, C) {
|
|
2061
|
+
const c = C.num_components(), l = o.num_points() * c, h = l * I.BYTES_PER_ELEMENT, E = n(i, I), d = i._malloc(h);
|
|
2062
|
+
B.GetAttributeDataArrayForAllPoints(o, C, E, h, d);
|
|
2132
2063
|
const u = new I(i.HEAPF32.buffer, d, l).slice();
|
|
2133
2064
|
return i._free(d), {
|
|
2134
2065
|
name: r,
|
|
@@ -2155,7 +2086,7 @@ function Bi() {
|
|
|
2155
2086
|
}
|
|
2156
2087
|
}
|
|
2157
2088
|
}
|
|
2158
|
-
class
|
|
2089
|
+
class Zn {
|
|
2159
2090
|
constructor(A = 4) {
|
|
2160
2091
|
this.pool = A, this.queue = [], this.workers = [], this.workersResolve = [], this.workerStatus = 0;
|
|
2161
2092
|
}
|
|
@@ -2195,13 +2126,13 @@ class ri {
|
|
|
2195
2126
|
this.workers.forEach((A) => A.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
2196
2127
|
}
|
|
2197
2128
|
}
|
|
2198
|
-
const
|
|
2199
|
-
class
|
|
2129
|
+
const zn = 0, ft = 2, $n = 1, Dt = 2, Ai = 0, ei = 1, ti = 10, si = 0, Kt = 9, Ot = 15, _t = 16, Pt = 22, Yt = 37, qt = 43, Xt = 76, vt = 83, Wt = 97, Vt = 100, jt = 103, Zt = 109, zt = 165, $t = 166;
|
|
2130
|
+
class ni {
|
|
2200
2131
|
constructor() {
|
|
2201
2132
|
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;
|
|
2202
2133
|
}
|
|
2203
2134
|
}
|
|
2204
|
-
class
|
|
2135
|
+
class _A {
|
|
2205
2136
|
constructor(A, e, s, t) {
|
|
2206
2137
|
this._dataView = new DataView(A.buffer, A.byteOffset + e, s), this._littleEndian = t, this._offset = 0;
|
|
2207
2138
|
}
|
|
@@ -2237,64 +2168,64 @@ class qA {
|
|
|
2237
2168
|
}
|
|
2238
2169
|
}
|
|
2239
2170
|
const H = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
2240
|
-
function
|
|
2241
|
-
return typeof TextDecoder != "undefined" ? new TextDecoder().decode(
|
|
2171
|
+
function Ft(a) {
|
|
2172
|
+
return typeof TextDecoder != "undefined" ? new TextDecoder().decode(a) : Buffer.from(a).toString("utf8");
|
|
2242
2173
|
}
|
|
2243
|
-
function
|
|
2244
|
-
const A = new Uint8Array(
|
|
2174
|
+
function ii(a) {
|
|
2175
|
+
const A = new Uint8Array(a.buffer, a.byteOffset, H.length);
|
|
2245
2176
|
if (A[0] !== H[0] || A[1] !== H[1] || A[2] !== H[2] || A[3] !== H[3] || A[4] !== H[4] || A[5] !== H[5] || A[6] !== H[6] || A[7] !== H[7] || A[8] !== H[8] || A[9] !== H[9] || A[10] !== H[10] || A[11] !== H[11])
|
|
2246
2177
|
throw new Error("Missing KTX 2.0 identifier.");
|
|
2247
|
-
const e = new
|
|
2178
|
+
const e = new ni(), s = 17 * Uint32Array.BYTES_PER_ELEMENT, t = new _A(a, H.length, s, !0);
|
|
2248
2179
|
e.vkFormat = t._nextUint32(), e.typeSize = t._nextUint32(), e.pixelWidth = t._nextUint32(), e.pixelHeight = t._nextUint32(), e.pixelDepth = t._nextUint32(), e.layerCount = t._nextUint32(), e.faceCount = t._nextUint32();
|
|
2249
2180
|
const n = t._nextUint32();
|
|
2250
2181
|
e.supercompressionScheme = t._nextUint32();
|
|
2251
|
-
const i = t._nextUint32(), B = t._nextUint32(), o = t._nextUint32(), r = t._nextUint32(), I = t._nextUint64(),
|
|
2252
|
-
for (let
|
|
2253
|
-
e.levels.push({ levelData: new Uint8Array(
|
|
2254
|
-
const Q = new
|
|
2255
|
-
for (let
|
|
2182
|
+
const i = t._nextUint32(), B = t._nextUint32(), o = t._nextUint32(), r = t._nextUint32(), I = t._nextUint64(), C = t._nextUint64(), c = new _A(a, H.length + s, 3 * n * 8, !0);
|
|
2183
|
+
for (let J = 0; J < n; J++)
|
|
2184
|
+
e.levels.push({ levelData: new Uint8Array(a.buffer, a.byteOffset + c._nextUint64(), c._nextUint64()), uncompressedByteLength: c._nextUint64() });
|
|
2185
|
+
const Q = new _A(a, i, B, !0), l = { vendorId: Q._skip(4)._nextUint16(), descriptorType: Q._nextUint16(), versionNumber: Q._nextUint16(), descriptorBlockSize: Q._nextUint16(), colorModel: Q._nextUint8(), colorPrimaries: Q._nextUint8(), transferFunction: Q._nextUint8(), flags: Q._nextUint8(), texelBlockDimension: [Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8()], bytesPlane: [Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8()], samples: [] }, h = (l.descriptorBlockSize / 4 - 6) / 4;
|
|
2186
|
+
for (let J = 0; J < h; J++) {
|
|
2256
2187
|
const N = { bitOffset: Q._nextUint16(), bitLength: Q._nextUint8(), channelType: Q._nextUint8(), samplePosition: [Q._nextUint8(), Q._nextUint8(), Q._nextUint8(), Q._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2257
|
-
64 & N.channelType ? (N.sampleLower = Q._nextInt32(), N.sampleUpper = Q._nextInt32()) : (N.sampleLower = Q._nextUint32(), N.sampleUpper = Q._nextUint32()), l.samples[
|
|
2188
|
+
64 & N.channelType ? (N.sampleLower = Q._nextInt32(), N.sampleUpper = Q._nextInt32()) : (N.sampleLower = Q._nextUint32(), N.sampleUpper = Q._nextUint32()), l.samples[J] = N;
|
|
2258
2189
|
}
|
|
2259
2190
|
e.dataFormatDescriptor.length = 0, e.dataFormatDescriptor.push(l);
|
|
2260
|
-
const E = new
|
|
2191
|
+
const E = new _A(a, o, r, !0);
|
|
2261
2192
|
for (; E._offset < r; ) {
|
|
2262
|
-
const
|
|
2263
|
-
e.keyValue[
|
|
2193
|
+
const J = E._nextUint32(), N = E._scan(J), bA = Ft(N), W = E._scan(J - N.byteLength);
|
|
2194
|
+
e.keyValue[bA] = bA.match(/^ktx/i) ? Ft(W) : W, E._offset % 4 && E._skip(4 - E._offset % 4);
|
|
2264
2195
|
}
|
|
2265
|
-
if (
|
|
2196
|
+
if (C <= 0)
|
|
2266
2197
|
return e;
|
|
2267
|
-
const d = new
|
|
2268
|
-
for (let
|
|
2198
|
+
const d = new _A(a, I, C, !0), u = d._nextUint16(), f = d._nextUint16(), D = d._nextUint32(), p = d._nextUint32(), m = d._nextUint32(), M = d._nextUint32(), P = [];
|
|
2199
|
+
for (let J = 0; J < n; J++)
|
|
2269
2200
|
P.push({ imageFlags: d._nextUint32(), rgbSliceByteOffset: d._nextUint32(), rgbSliceByteLength: d._nextUint32(), alphaSliceByteOffset: d._nextUint32(), alphaSliceByteLength: d._nextUint32() });
|
|
2270
|
-
const
|
|
2271
|
-
return e.globalData = { endpointCount: u, selectorCount:
|
|
2201
|
+
const T = I + d._offset, v = T + D, kA = v + p, he = kA + m, cA = new Uint8Array(a.buffer, a.byteOffset + T, D), le = new Uint8Array(a.buffer, a.byteOffset + v, p), eA = new Uint8Array(a.buffer, a.byteOffset + kA, m), de = new Uint8Array(a.buffer, a.byteOffset + he, M);
|
|
2202
|
+
return e.globalData = { endpointCount: u, selectorCount: f, imageDescs: P, endpointsData: cA, selectorsData: le, tablesData: eA, extendedData: de }, e;
|
|
2272
2203
|
}
|
|
2273
|
-
let
|
|
2274
|
-
const
|
|
2275
|
-
|
|
2204
|
+
let xe, V, je;
|
|
2205
|
+
const ke = { env: { emscripten_notify_memory_growth: function(a) {
|
|
2206
|
+
je = new Uint8Array(V.exports.memory.buffer);
|
|
2276
2207
|
} } };
|
|
2277
|
-
class
|
|
2208
|
+
class oi {
|
|
2278
2209
|
init() {
|
|
2279
|
-
return
|
|
2210
|
+
return xe || (xe = typeof fetch != "undefined" ? fetch("data:application/wasm;base64," + Gt).then((A) => A.arrayBuffer()).then((A) => WebAssembly.instantiate(A, ke)).then(this._init) : WebAssembly.instantiate(Buffer.from(Gt, "base64"), ke).then(this._init), xe);
|
|
2280
2211
|
}
|
|
2281
2212
|
_init(A) {
|
|
2282
|
-
|
|
2213
|
+
V = A.instance, ke.env.emscripten_notify_memory_growth(0);
|
|
2283
2214
|
}
|
|
2284
2215
|
decode(A, e = 0) {
|
|
2285
|
-
if (!
|
|
2216
|
+
if (!V)
|
|
2286
2217
|
throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
2287
|
-
const s = A.byteLength, t =
|
|
2288
|
-
|
|
2289
|
-
const n =
|
|
2290
|
-
return
|
|
2218
|
+
const s = A.byteLength, t = V.exports.malloc(s);
|
|
2219
|
+
je.set(A, t), e = e || Number(V.exports.ZSTD_findDecompressedSize(t, s));
|
|
2220
|
+
const n = V.exports.malloc(e), i = V.exports.ZSTD_decompress(n, e, t, s), B = je.slice(n, n + i);
|
|
2221
|
+
return V.exports.free(t), V.exports.free(n), B;
|
|
2291
2222
|
}
|
|
2292
2223
|
}
|
|
2293
|
-
const Tt = "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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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", We = /* @__PURE__ */ new WeakMap();
|
|
2294
|
-
let
|
|
2295
|
-
class
|
|
2224
|
+
const Gt = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/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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", be = /* @__PURE__ */ new WeakMap();
|
|
2225
|
+
let Ke = 0, Oe;
|
|
2226
|
+
class X extends $e {
|
|
2296
2227
|
constructor(A) {
|
|
2297
|
-
super(A), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new
|
|
2228
|
+
super(A), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Zn(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER != "undefined" && console.warn(
|
|
2298
2229
|
'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
|
|
2299
2230
|
);
|
|
2300
2231
|
}
|
|
@@ -2305,7 +2236,7 @@ class W extends Ct {
|
|
|
2305
2236
|
return this.workerPool.setWorkerLimit(A), this;
|
|
2306
2237
|
}
|
|
2307
2238
|
detectSupportAsync(A) {
|
|
2308
|
-
return
|
|
2239
|
+
return KA(this, null, function* () {
|
|
2309
2240
|
return this.workerConfig = {
|
|
2310
2241
|
astcSupported: yield A.hasFeatureAsync("texture-compression-astc"),
|
|
2311
2242
|
etc1Supported: yield A.hasFeatureAsync("texture-compression-etc1"),
|
|
@@ -2335,17 +2266,17 @@ class W extends Ct {
|
|
|
2335
2266
|
}
|
|
2336
2267
|
init() {
|
|
2337
2268
|
if (!this.transcoderPending) {
|
|
2338
|
-
const A = new
|
|
2269
|
+
const A = new fA(this.manager);
|
|
2339
2270
|
A.setPath(this.transcoderPath), A.setWithCredentials(this.withCredentials);
|
|
2340
|
-
const e = A.loadAsync("basis_transcoder.js"), s = new
|
|
2271
|
+
const e = A.loadAsync("basis_transcoder.js"), s = new fA(this.manager);
|
|
2341
2272
|
s.setPath(this.transcoderPath), s.setResponseType("arraybuffer"), s.setWithCredentials(this.withCredentials);
|
|
2342
2273
|
const t = s.loadAsync("basis_transcoder.wasm");
|
|
2343
2274
|
this.transcoderPending = Promise.all([e, t]).then(([n, i]) => {
|
|
2344
|
-
const B =
|
|
2275
|
+
const B = X.BasisWorker.toString(), o = [
|
|
2345
2276
|
"/* constants */",
|
|
2346
|
-
"let _EngineFormat = " + JSON.stringify(
|
|
2347
|
-
"let _TranscoderFormat = " + JSON.stringify(
|
|
2348
|
-
"let _BasisFormat = " + JSON.stringify(
|
|
2277
|
+
"let _EngineFormat = " + JSON.stringify(X.EngineFormat),
|
|
2278
|
+
"let _TranscoderFormat = " + JSON.stringify(X.TranscoderFormat),
|
|
2279
|
+
"let _BasisFormat = " + JSON.stringify(X.BasisFormat),
|
|
2349
2280
|
"/* basis_transcoder.js */",
|
|
2350
2281
|
n,
|
|
2351
2282
|
"/* worker */",
|
|
@@ -2356,19 +2287,19 @@ class W extends Ct {
|
|
|
2356
2287
|
const r = new Worker(this.workerSourceURL), I = this.transcoderBinary.slice(0);
|
|
2357
2288
|
return r.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: I }, [I]), r;
|
|
2358
2289
|
});
|
|
2359
|
-
}),
|
|
2290
|
+
}), Ke > 0 && console.warn(
|
|
2360
2291
|
"THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
|
|
2361
|
-
),
|
|
2292
|
+
), Ke++;
|
|
2362
2293
|
}
|
|
2363
2294
|
return this.transcoderPending;
|
|
2364
2295
|
}
|
|
2365
2296
|
load(A, e, s, t) {
|
|
2366
2297
|
if (this.workerConfig === null)
|
|
2367
2298
|
throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
|
|
2368
|
-
const n = new
|
|
2299
|
+
const n = new fA(this.manager);
|
|
2369
2300
|
n.setResponseType("arraybuffer"), n.setWithCredentials(this.withCredentials), n.load(A, (i) => {
|
|
2370
|
-
if (
|
|
2371
|
-
return
|
|
2301
|
+
if (be.has(i))
|
|
2302
|
+
return be.get(i).promise.then(e).catch(t);
|
|
2372
2303
|
this._createTexture(i).then((B) => e ? e(B) : null).catch(t);
|
|
2373
2304
|
}, s, t);
|
|
2374
2305
|
}
|
|
@@ -2378,12 +2309,12 @@ class W extends Ct {
|
|
|
2378
2309
|
return Promise.reject(o);
|
|
2379
2310
|
let I;
|
|
2380
2311
|
if (e.faceCount === 6)
|
|
2381
|
-
I = new
|
|
2312
|
+
I = new Xs(s, i, O);
|
|
2382
2313
|
else {
|
|
2383
|
-
const
|
|
2384
|
-
I = e.layerCount > 1 ? new
|
|
2314
|
+
const C = s[0].mipmaps;
|
|
2315
|
+
I = e.layerCount > 1 ? new vs(C, t, n, e.layerCount, i, O) : new Ut(C, t, n, i, O);
|
|
2385
2316
|
}
|
|
2386
|
-
return I.minFilter = s[0].mipmaps.length === 1 ?
|
|
2317
|
+
return I.minFilter = s[0].mipmaps.length === 1 ? Me : tt, I.magFilter = Me, I.generateMipmaps = !1, I.needsUpdate = !0, I.colorSpace = As(e), I.premultiplyAlpha = !!(r & $n), I;
|
|
2387
2318
|
}
|
|
2388
2319
|
/**
|
|
2389
2320
|
* @param {ArrayBuffer} buffer
|
|
@@ -2391,23 +2322,23 @@ class W extends Ct {
|
|
|
2391
2322
|
* @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
|
|
2392
2323
|
*/
|
|
2393
2324
|
_createTexture(s) {
|
|
2394
|
-
return
|
|
2395
|
-
const t =
|
|
2396
|
-
if (t.vkFormat !==
|
|
2397
|
-
return
|
|
2325
|
+
return KA(this, arguments, function* (A, e = {}) {
|
|
2326
|
+
const t = ii(new Uint8Array(A));
|
|
2327
|
+
if (t.vkFormat !== si)
|
|
2328
|
+
return ri(t);
|
|
2398
2329
|
const n = e, i = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: A, taskConfig: n }, [A])).then((B) => this._createTextureFrom(B.data, t));
|
|
2399
|
-
return
|
|
2330
|
+
return be.set(A, { promise: i }), i;
|
|
2400
2331
|
});
|
|
2401
2332
|
}
|
|
2402
2333
|
dispose() {
|
|
2403
|
-
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL),
|
|
2334
|
+
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), Ke--, this;
|
|
2404
2335
|
}
|
|
2405
2336
|
}
|
|
2406
|
-
|
|
2337
|
+
X.BasisFormat = {
|
|
2407
2338
|
ETC1S: 0,
|
|
2408
2339
|
UASTC_4x4: 1
|
|
2409
2340
|
};
|
|
2410
|
-
|
|
2341
|
+
X.TranscoderFormat = {
|
|
2411
2342
|
ETC1: 0,
|
|
2412
2343
|
ETC2: 1,
|
|
2413
2344
|
BC1: 2,
|
|
@@ -2426,32 +2357,32 @@ W.TranscoderFormat = {
|
|
|
2426
2357
|
BGR565: 15,
|
|
2427
2358
|
RGBA4444: 16
|
|
2428
2359
|
};
|
|
2429
|
-
|
|
2360
|
+
X.EngineFormat = {
|
|
2430
2361
|
RGBAFormat: GA,
|
|
2431
|
-
RGBA_ASTC_4x4_Format:
|
|
2432
|
-
RGBA_BPTC_Format:
|
|
2433
|
-
RGBA_ETC2_EAC_Format:
|
|
2434
|
-
RGBA_PVRTC_4BPPV1_Format:
|
|
2435
|
-
RGBA_S3TC_DXT5_Format:
|
|
2436
|
-
RGB_ETC1_Format:
|
|
2437
|
-
RGB_ETC2_Format:
|
|
2438
|
-
RGB_PVRTC_4BPPV1_Format:
|
|
2439
|
-
RGB_S3TC_DXT1_Format:
|
|
2362
|
+
RGBA_ASTC_4x4_Format: Ws,
|
|
2363
|
+
RGBA_BPTC_Format: Vs,
|
|
2364
|
+
RGBA_ETC2_EAC_Format: js,
|
|
2365
|
+
RGBA_PVRTC_4BPPV1_Format: Zs,
|
|
2366
|
+
RGBA_S3TC_DXT5_Format: zs,
|
|
2367
|
+
RGB_ETC1_Format: $s,
|
|
2368
|
+
RGB_ETC2_Format: An,
|
|
2369
|
+
RGB_PVRTC_4BPPV1_Format: en,
|
|
2370
|
+
RGB_S3TC_DXT1_Format: tn
|
|
2440
2371
|
};
|
|
2441
|
-
|
|
2442
|
-
let
|
|
2372
|
+
X.BasisWorker = function() {
|
|
2373
|
+
let a, A, e;
|
|
2443
2374
|
const s = _EngineFormat, t = _TranscoderFormat, n = _BasisFormat;
|
|
2444
2375
|
self.addEventListener("message", function(l) {
|
|
2445
2376
|
const h = l.data;
|
|
2446
2377
|
switch (h.type) {
|
|
2447
2378
|
case "init":
|
|
2448
|
-
|
|
2379
|
+
a = h.config, i(h.transcoderBinary);
|
|
2449
2380
|
break;
|
|
2450
2381
|
case "transcode":
|
|
2451
2382
|
A.then(() => {
|
|
2452
2383
|
try {
|
|
2453
|
-
const { faces: E, buffers: d, width: u, height:
|
|
2454
|
-
self.postMessage({ type: "transcode", id: h.id, faces: E, width: u, height:
|
|
2384
|
+
const { faces: E, buffers: d, width: u, height: f, hasAlpha: D, format: p, dfdFlags: m } = B(h.buffer);
|
|
2385
|
+
self.postMessage({ type: "transcode", id: h.id, faces: E, width: u, height: f, hasAlpha: D, format: p, dfdFlags: m }, d);
|
|
2455
2386
|
} catch (E) {
|
|
2456
2387
|
console.error(E), self.postMessage({ type: "error", id: h.id, error: E.message });
|
|
2457
2388
|
}
|
|
@@ -2473,31 +2404,31 @@ W.BasisWorker = function() {
|
|
|
2473
2404
|
}
|
|
2474
2405
|
if (!h.isValid())
|
|
2475
2406
|
throw E(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
|
|
2476
|
-
const d = h.isUASTC() ? n.UASTC_4x4 : n.ETC1S, u = h.getWidth(),
|
|
2477
|
-
if (!u || !
|
|
2407
|
+
const d = h.isUASTC() ? n.UASTC_4x4 : n.ETC1S, u = h.getWidth(), f = h.getHeight(), D = h.getLayers() || 1, p = h.getLevels(), m = h.getFaces(), M = h.getHasAlpha(), P = h.getDFDFlags(), { transcoderFormat: T, engineFormat: v } = C(d, u, f, M);
|
|
2408
|
+
if (!u || !f || !p)
|
|
2478
2409
|
throw E(), new Error("THREE.KTX2Loader: Invalid texture");
|
|
2479
2410
|
if (!h.startTranscoding())
|
|
2480
2411
|
throw E(), new Error("THREE.KTX2Loader: .startTranscoding failed");
|
|
2481
|
-
const
|
|
2482
|
-
for (let
|
|
2483
|
-
const
|
|
2484
|
-
for (let
|
|
2485
|
-
const
|
|
2486
|
-
let
|
|
2487
|
-
for (let
|
|
2488
|
-
const
|
|
2489
|
-
|
|
2490
|
-
const
|
|
2491
|
-
if (!h.transcodeImage(
|
|
2412
|
+
const kA = [], he = [];
|
|
2413
|
+
for (let cA = 0; cA < m; cA++) {
|
|
2414
|
+
const le = [];
|
|
2415
|
+
for (let eA = 0; eA < p; eA++) {
|
|
2416
|
+
const de = [];
|
|
2417
|
+
let J, N;
|
|
2418
|
+
for (let W = 0; W < D; W++) {
|
|
2419
|
+
const DA = h.getImageLevelInfo(eA, W, cA);
|
|
2420
|
+
cA === 0 && eA === 0 && W === 0 && (DA.origWidth % 4 !== 0 || DA.origHeight % 4 !== 0) && console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), p > 1 ? (J = DA.origWidth, N = DA.origHeight) : (J = DA.width, N = DA.height);
|
|
2421
|
+
const st = new Uint8Array(h.getImageTranscodedSizeInBytes(eA, W, 0, T));
|
|
2422
|
+
if (!h.transcodeImage(st, eA, W, cA, T, 0, -1, -1))
|
|
2492
2423
|
throw E(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
|
|
2493
|
-
|
|
2424
|
+
de.push(st);
|
|
2494
2425
|
}
|
|
2495
|
-
const
|
|
2496
|
-
|
|
2426
|
+
const bA = Q(de);
|
|
2427
|
+
le.push({ data: bA, width: J, height: N }), he.push(bA.buffer);
|
|
2497
2428
|
}
|
|
2498
|
-
|
|
2429
|
+
kA.push({ mipmaps: le, width: u, height: f, format: v });
|
|
2499
2430
|
}
|
|
2500
|
-
return E(), { faces:
|
|
2431
|
+
return E(), { faces: kA, buffers: he, width: u, height: f, hasAlpha: M, format: v, dfdFlags: P };
|
|
2501
2432
|
}
|
|
2502
2433
|
const o = [
|
|
2503
2434
|
{
|
|
@@ -2559,15 +2490,15 @@ W.BasisWorker = function() {
|
|
|
2559
2490
|
}), I = o.sort(function(l, h) {
|
|
2560
2491
|
return l.priorityUASTC - h.priorityUASTC;
|
|
2561
2492
|
});
|
|
2562
|
-
function
|
|
2563
|
-
let u,
|
|
2564
|
-
const
|
|
2565
|
-
for (let p = 0; p <
|
|
2566
|
-
const m =
|
|
2567
|
-
if (
|
|
2568
|
-
return u = m.transcoderFormat[d ? 1 : 0],
|
|
2493
|
+
function C(l, h, E, d) {
|
|
2494
|
+
let u, f;
|
|
2495
|
+
const D = l === n.ETC1S ? r : I;
|
|
2496
|
+
for (let p = 0; p < D.length; p++) {
|
|
2497
|
+
const m = D[p];
|
|
2498
|
+
if (a[m.if] && m.basisFormat.includes(l) && !(d && m.transcoderFormat.length < 2) && !(m.needsPowerOfTwo && !(c(h) && c(E))))
|
|
2499
|
+
return u = m.transcoderFormat[d ? 1 : 0], f = m.engineFormat[d ? 1 : 0], { transcoderFormat: u, engineFormat: f };
|
|
2569
2500
|
}
|
|
2570
|
-
return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."), u = t.RGBA32,
|
|
2501
|
+
return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."), u = t.RGBA32, f = s.RGBAFormat, { transcoderFormat: u, engineFormat: f };
|
|
2571
2502
|
}
|
|
2572
2503
|
function c(l) {
|
|
2573
2504
|
return l <= 2 ? !0 : (l & l - 1) === 0 && l !== 0;
|
|
@@ -2577,105 +2508,105 @@ W.BasisWorker = function() {
|
|
|
2577
2508
|
return l[0];
|
|
2578
2509
|
let h = 0;
|
|
2579
2510
|
for (let u = 0; u < l.length; u++) {
|
|
2580
|
-
const
|
|
2581
|
-
h +=
|
|
2511
|
+
const f = l[u];
|
|
2512
|
+
h += f.byteLength;
|
|
2582
2513
|
}
|
|
2583
2514
|
const E = new Uint8Array(h);
|
|
2584
2515
|
let d = 0;
|
|
2585
2516
|
for (let u = 0; u < l.length; u++) {
|
|
2586
|
-
const
|
|
2587
|
-
E.set(
|
|
2517
|
+
const f = l[u];
|
|
2518
|
+
E.set(f, d), d += f.byteLength;
|
|
2588
2519
|
}
|
|
2589
2520
|
return E;
|
|
2590
2521
|
}
|
|
2591
2522
|
};
|
|
2592
|
-
const
|
|
2593
|
-
[
|
|
2594
|
-
[
|
|
2595
|
-
[
|
|
2596
|
-
[
|
|
2597
|
-
[
|
|
2598
|
-
[
|
|
2599
|
-
[
|
|
2600
|
-
[
|
|
2601
|
-
[
|
|
2602
|
-
[
|
|
2603
|
-
[
|
|
2604
|
-
[
|
|
2605
|
-
[
|
|
2606
|
-
[
|
|
2607
|
-
},
|
|
2608
|
-
[
|
|
2609
|
-
[
|
|
2610
|
-
[
|
|
2611
|
-
[
|
|
2612
|
-
[
|
|
2613
|
-
[
|
|
2614
|
-
[
|
|
2523
|
+
const Bi = /* @__PURE__ */ new Set([GA, qA, XA]), _e = {
|
|
2524
|
+
[Zt]: GA,
|
|
2525
|
+
[Wt]: GA,
|
|
2526
|
+
[Yt]: GA,
|
|
2527
|
+
[qt]: GA,
|
|
2528
|
+
[jt]: qA,
|
|
2529
|
+
[vt]: qA,
|
|
2530
|
+
[_t]: qA,
|
|
2531
|
+
[Pt]: qA,
|
|
2532
|
+
[Vt]: XA,
|
|
2533
|
+
[Xt]: XA,
|
|
2534
|
+
[Ot]: XA,
|
|
2535
|
+
[Kt]: XA,
|
|
2536
|
+
[$t]: gt,
|
|
2537
|
+
[zt]: gt
|
|
2538
|
+
}, Pe = {
|
|
2539
|
+
[Zt]: Re,
|
|
2540
|
+
[Wt]: pe,
|
|
2541
|
+
[Yt]: O,
|
|
2542
|
+
[qt]: O,
|
|
2543
|
+
[jt]: Re,
|
|
2544
|
+
[vt]: pe,
|
|
2545
|
+
[_t]: O,
|
|
2546
|
+
[Pt]: O,
|
|
2547
|
+
[Vt]: Re,
|
|
2548
|
+
[Xt]: pe,
|
|
2549
|
+
[Ot]: O,
|
|
2550
|
+
[Kt]: O,
|
|
2615
2551
|
[$t]: O,
|
|
2616
|
-
[
|
|
2617
|
-
[ts]: Je,
|
|
2618
|
-
[Zt]: O,
|
|
2619
|
-
[jt]: O,
|
|
2620
|
-
[as]: O,
|
|
2621
|
-
[rs]: O
|
|
2552
|
+
[zt]: O
|
|
2622
2553
|
};
|
|
2623
|
-
function
|
|
2624
|
-
return
|
|
2625
|
-
const { vkFormat: A } =
|
|
2626
|
-
if (
|
|
2554
|
+
function ri(a) {
|
|
2555
|
+
return KA(this, null, function* () {
|
|
2556
|
+
const { vkFormat: A } = a;
|
|
2557
|
+
if (_e[A] === void 0)
|
|
2627
2558
|
throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
|
|
2628
2559
|
let e;
|
|
2629
|
-
|
|
2630
|
-
const i = new
|
|
2560
|
+
a.supercompressionScheme === ft && (Oe || (Oe = new Promise((n) => KA(this, null, function* () {
|
|
2561
|
+
const i = new oi();
|
|
2631
2562
|
yield i.init(), n(i);
|
|
2632
|
-
}))), e = yield
|
|
2563
|
+
}))), e = yield Oe);
|
|
2633
2564
|
const s = [];
|
|
2634
|
-
for (let n = 0; n <
|
|
2635
|
-
const i = Math.max(1,
|
|
2565
|
+
for (let n = 0; n < a.levels.length; n++) {
|
|
2566
|
+
const i = Math.max(1, a.pixelWidth >> n), B = Math.max(1, a.pixelHeight >> n), o = a.pixelDepth ? Math.max(1, a.pixelDepth >> n) : 0, r = a.levels[n];
|
|
2636
2567
|
let I;
|
|
2637
|
-
if (
|
|
2568
|
+
if (a.supercompressionScheme === zn)
|
|
2638
2569
|
I = r.levelData;
|
|
2639
|
-
else if (
|
|
2570
|
+
else if (a.supercompressionScheme === ft)
|
|
2640
2571
|
I = e.decode(r.levelData, r.uncompressedByteLength);
|
|
2641
2572
|
else
|
|
2642
2573
|
throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
2643
|
-
let
|
|
2644
|
-
|
|
2574
|
+
let C;
|
|
2575
|
+
Pe[A] === Re ? C = new Float32Array(
|
|
2645
2576
|
I.buffer,
|
|
2646
2577
|
I.byteOffset,
|
|
2647
2578
|
I.byteLength / Float32Array.BYTES_PER_ELEMENT
|
|
2648
|
-
) :
|
|
2579
|
+
) : Pe[A] === pe ? C = new Uint16Array(
|
|
2649
2580
|
I.buffer,
|
|
2650
2581
|
I.byteOffset,
|
|
2651
2582
|
I.byteLength / Uint16Array.BYTES_PER_ELEMENT
|
|
2652
|
-
) :
|
|
2653
|
-
data:
|
|
2583
|
+
) : C = I, s.push({
|
|
2584
|
+
data: C,
|
|
2654
2585
|
width: i,
|
|
2655
2586
|
height: B,
|
|
2656
2587
|
depth: o
|
|
2657
2588
|
});
|
|
2658
2589
|
}
|
|
2659
2590
|
let t;
|
|
2660
|
-
if (
|
|
2661
|
-
t =
|
|
2591
|
+
if (Bi.has(_e[A]))
|
|
2592
|
+
t = a.pixelDepth === 0 ? new sn(s[0].data, a.pixelWidth, a.pixelHeight) : new nn(s[0].data, a.pixelWidth, a.pixelHeight, a.pixelDepth);
|
|
2662
2593
|
else {
|
|
2663
|
-
if (
|
|
2594
|
+
if (a.pixelDepth > 0)
|
|
2664
2595
|
throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
2665
|
-
t = new
|
|
2596
|
+
t = new Ut(s, a.pixelWidth, a.pixelHeight);
|
|
2666
2597
|
}
|
|
2667
|
-
return t.mipmaps = s, t.type =
|
|
2598
|
+
return t.mipmaps = s, t.type = Pe[A], t.format = _e[A], t.colorSpace = As(a), t.needsUpdate = !0, Promise.resolve(t);
|
|
2668
2599
|
});
|
|
2669
2600
|
}
|
|
2670
|
-
function
|
|
2671
|
-
const A =
|
|
2672
|
-
return A.colorPrimaries ===
|
|
2601
|
+
function As(a) {
|
|
2602
|
+
const A = a.dataFormatDescriptor[0];
|
|
2603
|
+
return A.colorPrimaries === ei ? A.transferFunction === Dt ? $ : _ : A.colorPrimaries === ti ? A.transferFunction === Dt ? on : Bn : A.colorPrimaries === Ai ? It : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`), It);
|
|
2673
2604
|
}
|
|
2674
|
-
let
|
|
2675
|
-
const
|
|
2676
|
-
if (
|
|
2677
|
-
return
|
|
2678
|
-
const C = "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", A = "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", e = new Uint8Array([
|
|
2605
|
+
let Ge;
|
|
2606
|
+
const Ci = () => {
|
|
2607
|
+
if (Ge)
|
|
2608
|
+
return Ge;
|
|
2609
|
+
const a = "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", A = "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", e = new Uint8Array([
|
|
2679
2610
|
0,
|
|
2680
2611
|
97,
|
|
2681
2612
|
115,
|
|
@@ -2793,28 +2724,28 @@ const fi = () => {
|
|
|
2793
2724
|
return {
|
|
2794
2725
|
supported: !1
|
|
2795
2726
|
};
|
|
2796
|
-
let t =
|
|
2727
|
+
let t = a;
|
|
2797
2728
|
WebAssembly.validate(e) && (t = A);
|
|
2798
2729
|
let n;
|
|
2799
|
-
const i = WebAssembly.instantiate(B(t), {}).then((
|
|
2800
|
-
n =
|
|
2730
|
+
const i = WebAssembly.instantiate(B(t), {}).then((C) => {
|
|
2731
|
+
n = C.instance, n.exports.__wasm_call_ctors();
|
|
2801
2732
|
});
|
|
2802
|
-
function B(
|
|
2803
|
-
const c = new Uint8Array(
|
|
2804
|
-
for (let l = 0; l <
|
|
2805
|
-
const h =
|
|
2733
|
+
function B(C) {
|
|
2734
|
+
const c = new Uint8Array(C.length);
|
|
2735
|
+
for (let l = 0; l < C.length; ++l) {
|
|
2736
|
+
const h = C.charCodeAt(l);
|
|
2806
2737
|
c[l] = h > 96 ? h - 71 : h > 64 ? h - 65 : h > 47 ? h + 4 : h > 46 ? 63 : 62;
|
|
2807
2738
|
}
|
|
2808
2739
|
let Q = 0;
|
|
2809
|
-
for (let l = 0; l <
|
|
2740
|
+
for (let l = 0; l < C.length; ++l)
|
|
2810
2741
|
c[Q++] = c[l] < 60 ? s[c[l]] : (c[l] - 60) * 64 + c[++l];
|
|
2811
2742
|
return c.buffer.slice(0, Q);
|
|
2812
2743
|
}
|
|
2813
|
-
function o(
|
|
2814
|
-
const d = n.exports.sbrk, u = Q + 3 & -4,
|
|
2815
|
-
p.set(h,
|
|
2816
|
-
const m =
|
|
2817
|
-
if (m === 0 && E && E(
|
|
2744
|
+
function o(C, c, Q, l, h, E) {
|
|
2745
|
+
const d = n.exports.sbrk, u = Q + 3 & -4, f = d(u * l), D = d(h.length), p = new Uint8Array(n.exports.memory.buffer);
|
|
2746
|
+
p.set(h, D);
|
|
2747
|
+
const m = C(f, Q, l, D, h.length);
|
|
2748
|
+
if (m === 0 && E && E(f, u, l), c.set(p.subarray(f, f + Q * l)), d(f - d(0)), m !== 0)
|
|
2818
2749
|
throw new Error(`Malformed buffer data: ${m}`);
|
|
2819
2750
|
}
|
|
2820
2751
|
const r = {
|
|
@@ -2838,126 +2769,129 @@ const fi = () => {
|
|
|
2838
2769
|
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
2839
2770
|
INDICES: "meshopt_decodeIndexSequence"
|
|
2840
2771
|
};
|
|
2841
|
-
return
|
|
2772
|
+
return Ge = {
|
|
2842
2773
|
ready: i,
|
|
2843
2774
|
supported: !0,
|
|
2844
|
-
decodeVertexBuffer(
|
|
2775
|
+
decodeVertexBuffer(C, c, Q, l, h) {
|
|
2845
2776
|
o(
|
|
2846
2777
|
n.exports.meshopt_decodeVertexBuffer,
|
|
2847
|
-
|
|
2778
|
+
C,
|
|
2848
2779
|
c,
|
|
2849
2780
|
Q,
|
|
2850
2781
|
l,
|
|
2851
2782
|
n.exports[r[h]]
|
|
2852
2783
|
);
|
|
2853
2784
|
},
|
|
2854
|
-
decodeIndexBuffer(
|
|
2855
|
-
o(n.exports.meshopt_decodeIndexBuffer,
|
|
2785
|
+
decodeIndexBuffer(C, c, Q, l) {
|
|
2786
|
+
o(n.exports.meshopt_decodeIndexBuffer, C, c, Q, l);
|
|
2856
2787
|
},
|
|
2857
|
-
decodeIndexSequence(
|
|
2858
|
-
o(n.exports.meshopt_decodeIndexSequence,
|
|
2788
|
+
decodeIndexSequence(C, c, Q, l) {
|
|
2789
|
+
o(n.exports.meshopt_decodeIndexSequence, C, c, Q, l);
|
|
2859
2790
|
},
|
|
2860
|
-
decodeGltfBuffer(
|
|
2791
|
+
decodeGltfBuffer(C, c, Q, l, h, E) {
|
|
2861
2792
|
o(
|
|
2862
2793
|
n.exports[I[h]],
|
|
2863
|
-
|
|
2794
|
+
C,
|
|
2864
2795
|
c,
|
|
2865
2796
|
Q,
|
|
2866
2797
|
l,
|
|
2867
2798
|
n.exports[r[E]]
|
|
2868
2799
|
);
|
|
2869
2800
|
}
|
|
2870
|
-
},
|
|
2801
|
+
}, Ge;
|
|
2871
2802
|
};
|
|
2872
|
-
var
|
|
2873
|
-
class
|
|
2803
|
+
var SA, te, se, ne;
|
|
2804
|
+
class ai {
|
|
2874
2805
|
constructor() {
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
`${
|
|
2806
|
+
F(this, SA, new Qn());
|
|
2807
|
+
F(this, te, new Vn().setDecoderPath(
|
|
2808
|
+
`${K.CDNVersion}/examples/jsm/libs/draco/gltf/`
|
|
2878
2809
|
));
|
|
2879
|
-
|
|
2880
|
-
`${
|
|
2810
|
+
F(this, se, new X().setTranscoderPath(
|
|
2811
|
+
`${K.CDNVersion}/examples/jsm/libs/basis/`
|
|
2881
2812
|
));
|
|
2882
|
-
|
|
2883
|
-
g(this,
|
|
2813
|
+
F(this, ne, !1);
|
|
2814
|
+
g(this, SA).setCrossOrigin("anonymous").setDRACOLoader(g(this, te)).setMeshoptDecoder(Ci);
|
|
2884
2815
|
}
|
|
2885
2816
|
get gltfLoader() {
|
|
2886
|
-
return g(this,
|
|
2817
|
+
return g(this, SA);
|
|
2887
2818
|
}
|
|
2888
2819
|
get dracoLoader() {
|
|
2889
|
-
return g(this,
|
|
2820
|
+
return g(this, te);
|
|
2890
2821
|
}
|
|
2891
2822
|
get ktx2Loader() {
|
|
2892
|
-
return g(this,
|
|
2823
|
+
return g(this, se);
|
|
2893
2824
|
}
|
|
2894
2825
|
load(...A) {
|
|
2895
|
-
g(this,
|
|
2896
|
-
}
|
|
2897
|
-
}
|
|
2898
|
-
|
|
2899
|
-
const
|
|
2900
|
-
var
|
|
2901
|
-
class
|
|
2902
|
-
constructor(A, e
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
g(this,
|
|
2826
|
+
g(this, ne) || (g(this, SA).setKTX2Loader(g(this, se).detectSupport(K.webglRenderer)), G(this, ne, !0)), this.gltfLoader.load(...A);
|
|
2827
|
+
}
|
|
2828
|
+
}
|
|
2829
|
+
SA = new WeakMap(), te = new WeakMap(), se = new WeakMap(), ne = new WeakMap();
|
|
2830
|
+
const Ii = new ai();
|
|
2831
|
+
var rA, y, z, ie;
|
|
2832
|
+
class Ji {
|
|
2833
|
+
constructor(A, e) {
|
|
2834
|
+
F(this, rA, void 0);
|
|
2835
|
+
F(this, y, void 0);
|
|
2836
|
+
F(this, z, []);
|
|
2837
|
+
F(this, ie, () => {
|
|
2838
|
+
const A = g(this, y).left - g(this, rA).left, e = g(this, y).top - g(this, rA).top, s = g(this, y).position.x - g(this, y).left, t = g(this, y).position.y - g(this, y).top, n = g(this, rA).width - g(this, y).scale.x, i = A - n, B = g(this, rA).height - g(this, y).scale.y, o = e - B;
|
|
2839
|
+
g(this, z)[0].constant = g(this, y).scale.y / 2 + t * -1 - B / 2 - o, g(this, z)[1].constant = g(this, y).scale.y / 2 + t + B / 2 + o, g(this, z)[2].constant = g(this, y).scale.x / 2 + s + n / 2 + i, g(this, z)[3].constant = g(this, y).scale.x / 2 + s * -1 - n / 2 - i;
|
|
2908
2840
|
});
|
|
2909
|
-
G(this,
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
new
|
|
2913
|
-
new
|
|
2914
|
-
|
|
2841
|
+
G(this, rA, K.getView((e == null ? void 0 : e.viewName) || "default")), G(this, y, new Nt(A, { cartesian: !1 }));
|
|
2842
|
+
const s = (e == null ? void 0 : e.scale) || 1;
|
|
2843
|
+
G(this, z, [
|
|
2844
|
+
new De(new w(0, -1 * s, 0)),
|
|
2845
|
+
new De(new w(0, 1 * s, 0)),
|
|
2846
|
+
new De(new w(-1 * s, 0, 0)),
|
|
2847
|
+
new De(new w(1 * s, 0, 0))
|
|
2848
|
+
]), NA.subscribe(g(this, ie), { order: ze.LAYOUT_BOX });
|
|
2915
2849
|
}
|
|
2916
2850
|
get planes() {
|
|
2917
|
-
return g(this,
|
|
2851
|
+
return g(this, z);
|
|
2918
2852
|
}
|
|
2919
2853
|
get layoutBox() {
|
|
2920
|
-
return g(this,
|
|
2854
|
+
return g(this, y);
|
|
2921
2855
|
}
|
|
2922
2856
|
destroy() {
|
|
2923
|
-
|
|
2857
|
+
NA.unsubscribe(g(this, ie)), g(this, y).destroy();
|
|
2924
2858
|
}
|
|
2925
2859
|
}
|
|
2926
|
-
|
|
2927
|
-
class
|
|
2860
|
+
rA = new WeakMap(), y = new WeakMap(), z = new WeakMap(), ie = new WeakMap();
|
|
2861
|
+
class Hi extends VA {
|
|
2928
2862
|
constructor(A, e = 500) {
|
|
2929
|
-
super(), this.add(new
|
|
2863
|
+
super(), this.add(new Fe(A.planes[0], e, 16711680)), this.add(new Fe(A.planes[1], e, 16711680)), this.add(new Fe(A.planes[2], e, 16711680)), this.add(new Fe(A.planes[3], e, 16711680));
|
|
2930
2864
|
}
|
|
2931
2865
|
}
|
|
2932
|
-
var
|
|
2933
|
-
class
|
|
2866
|
+
var yA, dA, LA, oe, Be, CA, JA, re;
|
|
2867
|
+
class es extends gn {
|
|
2934
2868
|
constructor(e) {
|
|
2935
2869
|
super(e);
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
if (!(g(this, CA) && !g(this,
|
|
2945
|
-
const e = g(this,
|
|
2946
|
-
g(this, CA) ||
|
|
2870
|
+
F(this, yA, new Et(null));
|
|
2871
|
+
F(this, dA, new Et(void 0));
|
|
2872
|
+
F(this, LA, void 0);
|
|
2873
|
+
F(this, oe, void 0);
|
|
2874
|
+
F(this, Be, void 0);
|
|
2875
|
+
F(this, CA, void 0);
|
|
2876
|
+
F(this, JA, !1);
|
|
2877
|
+
F(this, re, () => {
|
|
2878
|
+
if (!(g(this, CA) && !g(this, JA)) && (this.current !== this.previous && (g(this, yA).current = null), this.current)) {
|
|
2879
|
+
const e = g(this, Be) ? this.current.url : this.current.name + this.current.extension;
|
|
2880
|
+
g(this, CA) || Je.setTotal(e, 1), g(this, dA).current = "start", g(this, oe).load(
|
|
2947
2881
|
e,
|
|
2948
2882
|
(s) => {
|
|
2949
|
-
g(this,
|
|
2883
|
+
g(this, yA).current = s, g(this, dA).current = "complete", g(this, CA) || Je.setLoaded(e, 1);
|
|
2950
2884
|
},
|
|
2951
2885
|
void 0,
|
|
2952
2886
|
() => {
|
|
2953
|
-
g(this, CA) || (g(this,
|
|
2887
|
+
g(this, CA) || (g(this, dA).current = "error", Je.setError(e, e));
|
|
2954
2888
|
}
|
|
2955
2889
|
);
|
|
2956
2890
|
}
|
|
2957
2891
|
});
|
|
2958
|
-
G(this,
|
|
2892
|
+
G(this, LA, e.consumer), G(this, oe, e.loader), G(this, Be, e.keepSourceParameters || !1), G(this, CA, e.lazy || !1), this.subscribe(g(this, re)), g(this, LA).addEventListener("added", () => {
|
|
2959
2893
|
this.connect();
|
|
2960
|
-
}), g(this,
|
|
2894
|
+
}), g(this, LA).addEventListener("removed", () => {
|
|
2961
2895
|
this.disconnect();
|
|
2962
2896
|
});
|
|
2963
2897
|
}
|
|
@@ -2965,62 +2899,62 @@ class Is extends Dn {
|
|
|
2965
2899
|
* Resource store.
|
|
2966
2900
|
*/
|
|
2967
2901
|
get data() {
|
|
2968
|
-
return g(this,
|
|
2902
|
+
return g(this, yA);
|
|
2969
2903
|
}
|
|
2970
2904
|
/**
|
|
2971
2905
|
* Loading store.
|
|
2972
2906
|
*/
|
|
2973
2907
|
get loading() {
|
|
2974
|
-
return g(this,
|
|
2908
|
+
return g(this, dA);
|
|
2975
2909
|
}
|
|
2976
2910
|
/**
|
|
2977
2911
|
* Calling this method will start loading the resource.
|
|
2978
2912
|
*/
|
|
2979
2913
|
lazyLoad() {
|
|
2980
|
-
g(this,
|
|
2914
|
+
g(this, JA) || (G(this, JA, !0), g(this, re).call(this));
|
|
2981
2915
|
}
|
|
2982
2916
|
}
|
|
2983
|
-
|
|
2984
|
-
var
|
|
2985
|
-
class
|
|
2917
|
+
yA = new WeakMap(), dA = new WeakMap(), LA = new WeakMap(), oe = new WeakMap(), Be = new WeakMap(), CA = new WeakMap(), JA = new WeakMap(), re = new WeakMap();
|
|
2918
|
+
var HA;
|
|
2919
|
+
class Ti extends VA {
|
|
2986
2920
|
constructor(e) {
|
|
2987
2921
|
super();
|
|
2988
|
-
|
|
2989
|
-
G(this,
|
|
2990
|
-
loader:
|
|
2922
|
+
F(this, HA, void 0);
|
|
2923
|
+
G(this, HA, new es(FA({
|
|
2924
|
+
loader: Ii,
|
|
2991
2925
|
consumer: this
|
|
2992
|
-
}, e))), g(this,
|
|
2926
|
+
}, e))), g(this, HA).data.subscribe((s) => {
|
|
2993
2927
|
s.current ? this.add(...s.current.scene.children) : this.children.forEach((t) => {
|
|
2994
|
-
this.remove(t),
|
|
2928
|
+
this.remove(t), xt(t);
|
|
2995
2929
|
});
|
|
2996
2930
|
});
|
|
2997
2931
|
}
|
|
2998
2932
|
get sourceManager() {
|
|
2999
|
-
return g(this,
|
|
2933
|
+
return g(this, HA);
|
|
3000
2934
|
}
|
|
3001
2935
|
}
|
|
3002
|
-
|
|
3003
|
-
function
|
|
3004
|
-
const s = A.x, t = A.y, n = e ||
|
|
3005
|
-
let i = 0, B = 0, o =
|
|
3006
|
-
s / t > n ? (i = 1, B = t / s * n) : (B = 1, i = s / t / n),
|
|
2936
|
+
HA = new WeakMap();
|
|
2937
|
+
function ts(a, A, e) {
|
|
2938
|
+
const s = A.x, t = A.y, n = e || a.image.width / a.image.height;
|
|
2939
|
+
let i = 0, B = 0, o = a.offset.x, r = a.offset.y, I = a.rotation, C = a.center.x, c = a.center.y;
|
|
2940
|
+
s / t > n ? (i = 1, B = t / s * n) : (B = 1, i = s / t / n), a.matrix.setUvTransform(o, r, i, B, I, C, c);
|
|
3007
2941
|
}
|
|
3008
|
-
const
|
|
3009
|
-
function k(
|
|
2942
|
+
const PA = new w();
|
|
2943
|
+
function k(a, A, e, s, t, n) {
|
|
3010
2944
|
const i = 2 * Math.PI * t / 4, B = Math.max(n - 2 * t, 0), o = Math.PI / 4;
|
|
3011
|
-
|
|
3012
|
-
const r = 0.5 * i / (i + B), I = 1 -
|
|
3013
|
-
return Math.sign(
|
|
2945
|
+
PA.copy(A), PA[s] = 0, PA.normalize();
|
|
2946
|
+
const r = 0.5 * i / (i + B), I = 1 - PA.angleTo(a) / o;
|
|
2947
|
+
return Math.sign(PA[e]) === 1 ? I * r : B / (i + B) + r + r * (1 - I);
|
|
3014
2948
|
}
|
|
3015
|
-
class
|
|
2949
|
+
class gi extends rn {
|
|
3016
2950
|
constructor(A = 1, e = 1, s = 1, t = 2, n = 0.1) {
|
|
3017
2951
|
if (t = t * 2 + 1, n = Math.min(A / 2, e / 2, s / 2, n), super(1, 1, 1, t, t, t), t === 1)
|
|
3018
2952
|
return;
|
|
3019
2953
|
const i = this.toNonIndexed();
|
|
3020
2954
|
this.index = null, this.attributes.position = i.attributes.position, this.attributes.normal = i.attributes.normal, this.attributes.uv = i.attributes.uv;
|
|
3021
|
-
const B = new
|
|
2955
|
+
const B = new w(), o = new w(), r = new w(A, e, s).divideScalar(2).subScalar(n), I = this.attributes.position.array, C = this.attributes.normal.array, c = this.attributes.uv.array, Q = I.length / 6, l = new w(), h = 0.5 / t;
|
|
3022
2956
|
for (let E = 0, d = 0; E < I.length; E += 3, d += 2)
|
|
3023
|
-
switch (B.fromArray(I, E), o.copy(B), o.x -= Math.sign(o.x) * h, o.y -= Math.sign(o.y) * h, o.z -= Math.sign(o.z) * h, o.normalize(), I[E + 0] = r.x * Math.sign(B.x) + o.x * n, I[E + 1] = r.y * Math.sign(B.y) + o.y * n, I[E + 2] = r.z * Math.sign(B.z) + o.z * n,
|
|
2957
|
+
switch (B.fromArray(I, E), o.copy(B), o.x -= Math.sign(o.x) * h, o.y -= Math.sign(o.y) * h, o.z -= Math.sign(o.z) * h, o.normalize(), I[E + 0] = r.x * Math.sign(B.x) + o.x * n, I[E + 1] = r.y * Math.sign(B.y) + o.y * n, I[E + 2] = r.z * Math.sign(B.z) + o.z * n, C[E + 0] = o.x, C[E + 1] = o.y, C[E + 2] = o.z, Math.floor(E / Q)) {
|
|
3024
2958
|
case 0:
|
|
3025
2959
|
l.set(1, 0, 0), c[d + 0] = k(l, o, "z", "y", n, s), c[d + 1] = 1 - k(l, o, "y", "z", n, e);
|
|
3026
2960
|
break;
|
|
@@ -3042,8 +2976,8 @@ class Gi extends un {
|
|
|
3042
2976
|
}
|
|
3043
2977
|
}
|
|
3044
2978
|
}
|
|
3045
|
-
const
|
|
3046
|
-
class
|
|
2979
|
+
const Rt = new w(), Ei = new At(), pt = new w();
|
|
2980
|
+
class ci extends et {
|
|
3047
2981
|
constructor(A = document.createElement("div")) {
|
|
3048
2982
|
super(), this.isCSS3DObject = !0, this.element = A, this.element.style.position = "absolute", this.element.style.pointerEvents = "auto", this.element.style.userSelect = "none", this.element.setAttribute("draggable", !1), this.addEventListener("removed", function() {
|
|
3049
2983
|
this.traverse(function(e) {
|
|
@@ -3055,8 +2989,8 @@ class pi extends gt {
|
|
|
3055
2989
|
return super.copy(A, e), this.element = A.element.cloneNode(!0), this;
|
|
3056
2990
|
}
|
|
3057
2991
|
}
|
|
3058
|
-
const Y = new
|
|
3059
|
-
class
|
|
2992
|
+
const Y = new xA(), Qi = new xA();
|
|
2993
|
+
class hi {
|
|
3060
2994
|
constructor(A = {}) {
|
|
3061
2995
|
const e = this;
|
|
3062
2996
|
let s, t, n, i;
|
|
@@ -3076,50 +3010,50 @@ class Mi {
|
|
|
3076
3010
|
}, this.render = function(h, E) {
|
|
3077
3011
|
const d = E.projectionMatrix.elements[5] * i;
|
|
3078
3012
|
E.view && E.view.enabled ? (r.style.transform = `translate( ${-E.view.offsetX * (s / E.view.width)}px, ${-E.view.offsetY * (t / E.view.height)}px )`, r.style.transform += `scale( ${E.view.fullWidth / E.view.width}, ${E.view.fullHeight / E.view.height} )`) : r.style.transform = "", h.matrixWorldAutoUpdate === !0 && h.updateMatrixWorld(), E.parent === null && E.matrixWorldAutoUpdate === !0 && E.updateMatrixWorld();
|
|
3079
|
-
let u,
|
|
3080
|
-
E.isOrthographicCamera && (u = -(E.right + E.left) / 2,
|
|
3081
|
-
const
|
|
3082
|
-
B.camera.style !==
|
|
3013
|
+
let u, f;
|
|
3014
|
+
E.isOrthographicCamera && (u = -(E.right + E.left) / 2, f = (E.top + E.bottom) / 2);
|
|
3015
|
+
const D = E.view && E.view.enabled ? E.view.height / E.view.fullHeight : 1, p = E.isOrthographicCamera ? `scale( ${D} )scale(` + d + ")translate(" + C(u) + "px," + C(f) + "px)" + c(E.matrixWorldInverse) : `scale( ${D} )translateZ(` + d + "px)" + c(E.matrixWorldInverse), M = (E.isPerspectiveCamera ? "perspective(" + d + "px) " : "") + p + "translate(" + n + "px," + i + "px)";
|
|
3016
|
+
B.camera.style !== M && (I.style.transform = M, B.camera.style = M), l(h, h, E);
|
|
3083
3017
|
}, this.setSize = function(h, E) {
|
|
3084
3018
|
s = h, t = E, n = s / 2, i = t / 2, o.style.width = h + "px", o.style.height = E + "px", r.style.width = h + "px", r.style.height = E + "px", I.style.width = h + "px", I.style.height = E + "px";
|
|
3085
3019
|
};
|
|
3086
|
-
function
|
|
3020
|
+
function C(h) {
|
|
3087
3021
|
return Math.abs(h) < 1e-10 ? 0 : h;
|
|
3088
3022
|
}
|
|
3089
3023
|
function c(h) {
|
|
3090
3024
|
const E = h.elements;
|
|
3091
|
-
return "matrix3d(" +
|
|
3025
|
+
return "matrix3d(" + C(E[0]) + "," + C(-E[1]) + "," + C(E[2]) + "," + C(E[3]) + "," + C(E[4]) + "," + C(-E[5]) + "," + C(E[6]) + "," + C(E[7]) + "," + C(E[8]) + "," + C(-E[9]) + "," + C(E[10]) + "," + C(E[11]) + "," + C(E[12]) + "," + C(-E[13]) + "," + C(E[14]) + "," + C(E[15]) + ")";
|
|
3092
3026
|
}
|
|
3093
3027
|
function Q(h) {
|
|
3094
3028
|
const E = h.elements;
|
|
3095
|
-
return "translate(-50%,-50%)" + ("matrix3d(" +
|
|
3029
|
+
return "translate(-50%,-50%)" + ("matrix3d(" + C(E[0]) + "," + C(E[1]) + "," + C(E[2]) + "," + C(E[3]) + "," + C(-E[4]) + "," + C(-E[5]) + "," + C(-E[6]) + "," + C(-E[7]) + "," + C(E[8]) + "," + C(E[9]) + "," + C(E[10]) + "," + C(E[11]) + "," + C(E[12]) + "," + C(E[13]) + "," + C(E[14]) + "," + C(E[15]) + ")");
|
|
3096
3030
|
}
|
|
3097
3031
|
function l(h, E, d, u) {
|
|
3098
3032
|
if (h.isCSS3DObject) {
|
|
3099
|
-
const
|
|
3100
|
-
if (h.element.style.display =
|
|
3033
|
+
const f = h.visible === !0 && h.layers.test(d.layers) === !0;
|
|
3034
|
+
if (h.element.style.display = f === !0 ? "" : "none", f === !0) {
|
|
3101
3035
|
h.onBeforeRender(e, E, d);
|
|
3102
|
-
let
|
|
3103
|
-
h.isCSS3DSprite ? (Y.copy(d.matrixWorldInverse), Y.transpose(), h.rotation2D !== 0 && Y.multiply(
|
|
3036
|
+
let D;
|
|
3037
|
+
h.isCSS3DSprite ? (Y.copy(d.matrixWorldInverse), Y.transpose(), h.rotation2D !== 0 && Y.multiply(Qi.makeRotationZ(h.rotation2D)), h.matrixWorld.decompose(Rt, Ei, pt), Y.setPosition(Rt), Y.scale(pt), Y.elements[3] = 0, Y.elements[7] = 0, Y.elements[11] = 0, Y.elements[15] = 1, D = Q(Y)) : D = Q(h.matrixWorld);
|
|
3104
3038
|
const p = h.element, m = B.objects.get(h);
|
|
3105
|
-
if (m === void 0 || m.style !==
|
|
3106
|
-
p.style.transform =
|
|
3107
|
-
const
|
|
3108
|
-
B.objects.set(h,
|
|
3039
|
+
if (m === void 0 || m.style !== D) {
|
|
3040
|
+
p.style.transform = D;
|
|
3041
|
+
const M = { style: D };
|
|
3042
|
+
B.objects.set(h, M);
|
|
3109
3043
|
}
|
|
3110
3044
|
p.parentNode !== I && I.appendChild(p), h.onAfterRender(e, E, d);
|
|
3111
3045
|
}
|
|
3112
3046
|
}
|
|
3113
|
-
for (let
|
|
3114
|
-
l(h.children[
|
|
3047
|
+
for (let f = 0, D = h.children.length; f < D; f++)
|
|
3048
|
+
l(h.children[f], E, d);
|
|
3115
3049
|
}
|
|
3116
3050
|
}
|
|
3117
3051
|
}
|
|
3118
|
-
var
|
|
3119
|
-
class
|
|
3052
|
+
var aA, TA, uA;
|
|
3053
|
+
class ss extends Qe {
|
|
3120
3054
|
constructor(e) {
|
|
3121
3055
|
super(
|
|
3122
|
-
new
|
|
3056
|
+
new gi(
|
|
3123
3057
|
e.width,
|
|
3124
3058
|
e.height,
|
|
3125
3059
|
1,
|
|
@@ -3128,71 +3062,71 @@ class Es extends Re {
|
|
|
3128
3062
|
),
|
|
3129
3063
|
e.material
|
|
3130
3064
|
);
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
g(this,
|
|
3065
|
+
F(this, aA, void 0);
|
|
3066
|
+
F(this, TA, void 0);
|
|
3067
|
+
F(this, uA, () => {
|
|
3068
|
+
g(this, aA).data.current && g(this, TA) && this.onCoverResize(g(this, aA).data.current);
|
|
3135
3069
|
});
|
|
3136
|
-
G(this,
|
|
3070
|
+
G(this, aA, new es(FA({
|
|
3137
3071
|
consumer: this
|
|
3138
|
-
}, e))), G(this,
|
|
3139
|
-
|
|
3072
|
+
}, e))), G(this, TA, e.cover || !1), this.addEventListener("added", () => {
|
|
3073
|
+
UA.subscribe(g(this, uA));
|
|
3140
3074
|
}), this.addEventListener("removed", () => {
|
|
3141
|
-
|
|
3142
|
-
}), g(this,
|
|
3143
|
-
!s.current && s.previous ? s.previous.dispose() : s.current && this.material && (g(this,
|
|
3075
|
+
UA.unsubscribe(g(this, uA));
|
|
3076
|
+
}), g(this, aA).data.subscribe((s) => {
|
|
3077
|
+
!s.current && s.previous ? s.previous.dispose() : s.current && this.material && (g(this, TA) && (s.current.matrixAutoUpdate = !1), s.current.colorSpace = $, s.current.center.set(0.5, 0.5), this.material.map = s.current, this.material.needsUpdate = !0, g(this, uA).call(this));
|
|
3144
3078
|
});
|
|
3145
3079
|
}
|
|
3146
3080
|
get sourceManager() {
|
|
3147
|
-
return g(this,
|
|
3081
|
+
return g(this, aA);
|
|
3148
3082
|
}
|
|
3149
3083
|
updateTexture() {
|
|
3150
|
-
g(this,
|
|
3084
|
+
g(this, uA).call(this);
|
|
3151
3085
|
}
|
|
3152
3086
|
onCoverResize(e) {
|
|
3153
|
-
|
|
3087
|
+
ts(e, {
|
|
3154
3088
|
x: this.scale.x,
|
|
3155
3089
|
y: this.scale.y
|
|
3156
3090
|
});
|
|
3157
3091
|
}
|
|
3158
3092
|
}
|
|
3159
|
-
|
|
3160
|
-
class
|
|
3093
|
+
aA = new WeakMap(), TA = new WeakMap(), uA = new WeakMap();
|
|
3094
|
+
class Ui extends ss {
|
|
3161
3095
|
constructor(A) {
|
|
3162
|
-
super(
|
|
3163
|
-
loader:
|
|
3096
|
+
super(ue(FA({}, A), {
|
|
3097
|
+
loader: cn
|
|
3164
3098
|
}));
|
|
3165
3099
|
}
|
|
3166
3100
|
}
|
|
3167
|
-
class
|
|
3101
|
+
class li {
|
|
3168
3102
|
load(...A) {
|
|
3169
3103
|
const e = A[0], s = A[1], t = A[3], n = document.createElement("video");
|
|
3170
3104
|
n.src = e, n.onloadeddata = () => {
|
|
3171
|
-
s(new
|
|
3105
|
+
s(new Cn(n)), n.onerror = null, n.onloadeddata = null;
|
|
3172
3106
|
}, n.onerror = () => {
|
|
3173
3107
|
t == null || t(e), n.onerror = null, n.onloadeddata = null;
|
|
3174
3108
|
};
|
|
3175
3109
|
}
|
|
3176
3110
|
}
|
|
3177
|
-
var
|
|
3178
|
-
class
|
|
3111
|
+
var Ce, ae, Ie;
|
|
3112
|
+
class Ni extends ss {
|
|
3179
3113
|
constructor(e) {
|
|
3180
|
-
super(
|
|
3181
|
-
loader: new
|
|
3114
|
+
super(ue(FA({}, e), {
|
|
3115
|
+
loader: new li()
|
|
3182
3116
|
}));
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
G(this,
|
|
3117
|
+
F(this, Ce, void 0);
|
|
3118
|
+
F(this, ae, void 0);
|
|
3119
|
+
F(this, Ie, void 0);
|
|
3120
|
+
G(this, Ce, e.autoplay || !1), G(this, ae, e.muted || !1), G(this, Ie, e.loop || !1), this.sourceManager.data.subscribe((s) => {
|
|
3187
3121
|
if (s.current) {
|
|
3188
3122
|
const t = s.current.image;
|
|
3189
|
-
g(this,
|
|
3123
|
+
g(this, ae) && (t.muted = !0), g(this, Ie) && (t.loop = !0), g(this, Ce) && t.play();
|
|
3190
3124
|
}
|
|
3191
3125
|
});
|
|
3192
3126
|
}
|
|
3193
3127
|
onCoverResize(e) {
|
|
3194
3128
|
const s = e.image;
|
|
3195
|
-
|
|
3129
|
+
ts(
|
|
3196
3130
|
e,
|
|
3197
3131
|
{
|
|
3198
3132
|
x: this.scale.x,
|
|
@@ -3202,47 +3136,47 @@ class Xi extends Es {
|
|
|
3202
3136
|
);
|
|
3203
3137
|
}
|
|
3204
3138
|
}
|
|
3205
|
-
|
|
3206
|
-
function
|
|
3207
|
-
|
|
3208
|
-
e instanceof
|
|
3139
|
+
Ce = new WeakMap(), ae = new WeakMap(), Ie = new WeakMap();
|
|
3140
|
+
function xi(a, A) {
|
|
3141
|
+
a.traverse((e) => {
|
|
3142
|
+
e instanceof Qe && A(e);
|
|
3209
3143
|
});
|
|
3210
3144
|
}
|
|
3211
|
-
function
|
|
3212
|
-
|
|
3213
|
-
e instanceof
|
|
3145
|
+
function ki(a, A) {
|
|
3146
|
+
a.traverse((e) => {
|
|
3147
|
+
e instanceof Qe && e.material && (Array.isArray(e.material) ? e.material : [e.material]).forEach(A);
|
|
3214
3148
|
});
|
|
3215
3149
|
}
|
|
3216
|
-
const
|
|
3217
|
-
function
|
|
3218
|
-
const { width:
|
|
3219
|
-
|
|
3220
|
-
const
|
|
3221
|
-
if (
|
|
3150
|
+
const Ye = new w(), di = new w();
|
|
3151
|
+
function bi(a, A = "default") {
|
|
3152
|
+
const e = K.getView(A), { width: s, height: t } = K, n = s / t;
|
|
3153
|
+
a instanceof w ? Ye.copy(a) : Ye.set(...a);
|
|
3154
|
+
const i = e.camera.getWorldPosition(di).distanceTo(Ye);
|
|
3155
|
+
if (e.camera instanceof me)
|
|
3222
3156
|
return {
|
|
3223
|
-
width:
|
|
3224
|
-
height:
|
|
3157
|
+
width: s / e.camera.zoom,
|
|
3158
|
+
height: t / e.camera.zoom,
|
|
3225
3159
|
factor: 1,
|
|
3226
|
-
distance:
|
|
3227
|
-
aspect:
|
|
3160
|
+
distance: i,
|
|
3161
|
+
aspect: n
|
|
3228
3162
|
};
|
|
3229
3163
|
{
|
|
3230
|
-
const
|
|
3231
|
-
return { width:
|
|
3164
|
+
const B = e.camera.fov * Math.PI / 180, o = 2 * Math.tan(B / 2) * i, r = o * (s / t);
|
|
3165
|
+
return { width: r, height: o, factor: s / r, distance: i, aspect: n };
|
|
3232
3166
|
}
|
|
3233
3167
|
}
|
|
3234
|
-
var
|
|
3235
|
-
const x = class x extends
|
|
3168
|
+
var q, Se, ns, ge, Ee;
|
|
3169
|
+
const x = class x extends ci {
|
|
3236
3170
|
static destroy() {
|
|
3237
|
-
|
|
3171
|
+
UA.unsubscribe(g(this, Ee)), NA.unsubscribe(g(this, ge)), G(this, q, null);
|
|
3238
3172
|
}
|
|
3239
3173
|
constructor(A) {
|
|
3240
3174
|
var e;
|
|
3241
|
-
super(A.element), g(x,
|
|
3175
|
+
super(A.element), g(x, q) || fe(e = x, Se, ns).call(e);
|
|
3242
3176
|
}
|
|
3243
3177
|
};
|
|
3244
|
-
|
|
3245
|
-
G(x,
|
|
3178
|
+
q = new WeakMap(), Se = new WeakSet(), ns = function() {
|
|
3179
|
+
G(x, q, new hi()), g(x, q).domElement.style.cssText = `
|
|
3246
3180
|
position: fixed;
|
|
3247
3181
|
left: 0;
|
|
3248
3182
|
top: 0;
|
|
@@ -3251,46 +3185,46 @@ v = new WeakMap(), ke = new WeakSet(), cs = function() {
|
|
|
3251
3185
|
z-index: 1;
|
|
3252
3186
|
pointer-events: none;
|
|
3253
3187
|
overflow: hidden;
|
|
3254
|
-
`,
|
|
3255
|
-
},
|
|
3256
|
-
g(x,
|
|
3257
|
-
}),
|
|
3258
|
-
g(x,
|
|
3188
|
+
`, K.containerElement.prepend(g(x, q).domElement), UA.subscribe(g(this, Ee), Mt.EN3 + 1), NA.subscribe(g(this, ge), { order: ze.EN3 + 1 });
|
|
3189
|
+
}, ge = new WeakMap(), Ee = new WeakMap(), F(x, Se), F(x, q, null), F(x, ge, () => {
|
|
3190
|
+
g(x, q).render(K.view.scene, K.view.camera);
|
|
3191
|
+
}), F(x, Ee, () => {
|
|
3192
|
+
g(x, q).setSize(K.width, K.height);
|
|
3259
3193
|
});
|
|
3260
|
-
let
|
|
3261
|
-
var
|
|
3262
|
-
class
|
|
3194
|
+
let mt = x;
|
|
3195
|
+
var IA, gA, ce, Ze;
|
|
3196
|
+
class Ki {
|
|
3263
3197
|
constructor(A) {
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
G(this,
|
|
3198
|
+
F(this, ce);
|
|
3199
|
+
F(this, IA, void 0);
|
|
3200
|
+
F(this, gA, void 0);
|
|
3201
|
+
G(this, IA, A.material), G(this, gA, A.uniforms || {}), g(this, IA).userData.uniforms = g(this, gA);
|
|
3268
3202
|
let e;
|
|
3269
3203
|
const s = () => {
|
|
3270
3204
|
e == null || e();
|
|
3271
3205
|
};
|
|
3272
|
-
g(this,
|
|
3206
|
+
g(this, IA).addEventListener("dispose", s), g(this, IA).onBeforeCompile = (t) => {
|
|
3273
3207
|
var n;
|
|
3274
3208
|
e == null || e();
|
|
3275
|
-
for (const i in g(this,
|
|
3276
|
-
t.uniforms[i] = g(this,
|
|
3209
|
+
for (const i in g(this, gA))
|
|
3210
|
+
t.uniforms[i] = g(this, gA)[i];
|
|
3277
3211
|
A.vertextDeclarations && (t.vertexShader = `
|
|
3278
3212
|
${A.vertextDeclarations}
|
|
3279
3213
|
${t.vertexShader}
|
|
3280
3214
|
`), A.fragmentDeclarations && (t.fragmentShader = `
|
|
3281
3215
|
${A.fragmentDeclarations}
|
|
3282
3216
|
${t.fragmentShader}
|
|
3283
|
-
`),
|
|
3217
|
+
`), fe(this, ce, Ze).call(this, t, "vertex", A), fe(this, ce, Ze).call(this, t, "fragment", A), e = (n = A.onReady) == null ? void 0 : n.call(A, this), A.log && (console.log("VERTEX SHADER: ", t.vertexShader), console.log("FRAGMENT SHADER: ", t.fragmentShader));
|
|
3284
3218
|
};
|
|
3285
3219
|
}
|
|
3286
3220
|
get material() {
|
|
3287
|
-
return g(this,
|
|
3221
|
+
return g(this, IA);
|
|
3288
3222
|
}
|
|
3289
3223
|
get uniforms() {
|
|
3290
|
-
return g(this,
|
|
3224
|
+
return g(this, gA);
|
|
3291
3225
|
}
|
|
3292
3226
|
}
|
|
3293
|
-
|
|
3227
|
+
IA = new WeakMap(), gA = new WeakMap(), ce = new WeakSet(), Ze = function(A, e, s) {
|
|
3294
3228
|
const t = e === "vertex" ? "vertexChunk" : "fragmentChunk", n = e === "vertex" ? "vertexShader" : "fragmentShader";
|
|
3295
3229
|
s[t] && (s[t].replace ? A[n] = A[n].replace(
|
|
3296
3230
|
`#include <${s[t].replace}>`,
|
|
@@ -3304,22 +3238,22 @@ gA = new WeakMap(), EA = new WeakMap(), Ge = new WeakSet(), Bt = function(A, e,
|
|
|
3304
3238
|
)));
|
|
3305
3239
|
};
|
|
3306
3240
|
export {
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3241
|
+
Ji as En3Clip,
|
|
3242
|
+
Hi as En3ClipHelpers,
|
|
3243
|
+
Ti as En3GLTF,
|
|
3244
|
+
mt as En3HTML,
|
|
3245
|
+
Ui as En3Image,
|
|
3246
|
+
ss as En3ImageLike,
|
|
3247
|
+
Ki as En3ModifiedMaterial,
|
|
3248
|
+
es as En3SourceManager,
|
|
3249
|
+
Ni as En3Video,
|
|
3250
|
+
ct as En3View,
|
|
3251
|
+
ts as coverTexture,
|
|
3252
|
+
xt as dispose,
|
|
3253
|
+
K as en3,
|
|
3254
|
+
Ii as en3GLTFLoader,
|
|
3255
|
+
cn as en3TextureLoader,
|
|
3256
|
+
bi as getCurrentViewport,
|
|
3257
|
+
ki as traverseMaterials,
|
|
3258
|
+
xi as traverseMeshes
|
|
3325
3259
|
};
|