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