@needle-tools/engine 4.7.2-next.6f2cd71 → 4.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/gltf-progressive-BCZdu3Gc.min.js +8 -0
- package/dist/gltf-progressive-C6QbvrB4.umd.cjs +8 -0
- package/dist/gltf-progressive-CCddD-3B.js +1159 -0
- package/dist/{needle-engine.bundle-B-NoV0t_.min.js → needle-engine.bundle-CnzaSk8v.min.js} +126 -125
- package/dist/{needle-engine.bundle-CFi0ugBx.js → needle-engine.bundle-DALjvqho.js} +3696 -3588
- package/dist/{needle-engine.bundle-BMnlxDfi.umd.cjs → needle-engine.bundle-RNpCdQTu.umd.cjs} +109 -108
- package/dist/needle-engine.d.ts +21 -0
- package/dist/needle-engine.js +3 -3
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-CjW23fio.umd.cjs → postprocessing-CNCT892s.umd.cjs} +1 -1
- package/dist/{postprocessing-xYQWCHFu.min.js → postprocessing-TkXiVrjY.min.js} +1 -1
- package/dist/{postprocessing-DYLNOL3W.js → postprocessing-qvgDnYKK.js} +1 -1
- package/dist/{three-examples-DaDLBuy6.min.js → three-examples-BMOhDaYR.min.js} +17 -17
- package/dist/{three-examples-X3OadjXB.umd.cjs → three-examples-DUcCNw9s.umd.cjs} +17 -17
- package/dist/{three-examples-B50TT3Iu.js → three-examples-tvuhV8Ne.js} +688 -688
- package/lib/engine/engine_context.js +1 -2
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_create_objects.js +24 -1
- package/lib/engine/engine_create_objects.js.map +1 -1
- package/lib/engine/engine_input.js +3 -0
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_lods.d.ts +1 -1
- package/lib/engine/engine_lods.js.map +1 -1
- package/lib/engine/engine_physics.d.ts +13 -1
- package/lib/engine/engine_physics.js +15 -7
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_tonemapping.js +1 -0
- package/lib/engine/engine_tonemapping.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +0 -1
- package/lib/engine/webcomponents/needle-engine.js +62 -3
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +45 -0
- package/lib/engine-components/OrbitControls.js +54 -9
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/Skybox.js +24 -5
- package/lib/engine-components/Skybox.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.js +9 -10
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/package.json +4 -4
- package/plugins/common/logger.js +34 -16
- package/plugins/vite/logger.client.js +55 -22
- package/src/engine/engine_context.ts +0 -2
- package/src/engine/engine_create_objects.ts +24 -1
- package/src/engine/engine_input.ts +8 -1
- package/src/engine/engine_lods.ts +1 -2
- package/src/engine/engine_physics.ts +26 -8
- package/src/engine/engine_tonemapping.ts +1 -0
- package/src/engine/webcomponents/needle-engine.ts +71 -5
- package/src/engine-components/OrbitControls.ts +78 -14
- package/src/engine-components/Skybox.ts +25 -7
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +1 -1
- package/src/engine-components/ui/EventSystem.ts +8 -9
- package/dist/gltf-progressive-B9o1T8Vr.umd.cjs +0 -8
- package/dist/gltf-progressive-DO0SisAM.js +0 -1052
- package/dist/gltf-progressive-DQF10PJE.min.js +0 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Mesh as z, SphereGeometry as ci, Vector3 as P, MeshBasicMaterial as Qt, Node as ra, PerspectiveCamera as
|
|
2
|
-
class
|
|
1
|
+
import { Mesh as z, SphereGeometry as ci, Vector3 as P, MeshBasicMaterial as Qt, Node as ra, PerspectiveCamera as ps, NodeFrame as aa, NodeBuilder as Aa, GLSLNodeParser as ca, ShaderLib as wt, UniformsUtils as li, UniformsLib as Gn, normalView as la, defaultShaderStages as Yn, ShaderChunk as ha, Material as nn, TrianglesDrawMode as ua, TriangleFanDrawMode as Js, TriangleStripDrawMode as So, Matrix4 as ue, Loader as Nt, LoaderUtils as sn, FileLoader as ft, MeshPhysicalMaterial as Tt, Vector2 as Le, Color as Se, LinearSRGBColorSpace as Ve, SRGBColorSpace as ge, SpotLight as vo, PointLight as Ws, DirectionalLight as To, InstancedMesh as ga, Quaternion as ve, InstancedBufferAttribute as da, Object3D as xt, TextureLoader as hi, ImageBitmapLoader as pa, BufferAttribute as nt, InterleavedBuffer as fa, LinearMipmapLinearFilter as fs, NearestMipmapLinearFilter as _o, LinearMipmapNearestFilter as Ro, NearestMipmapNearestFilter as Do, LinearFilter as mt, NearestFilter as Mo, RepeatWrapping as an, MirroredRepeatWrapping as ko, ClampToEdgeWrapping as cs, PointsMaterial as Mn, LineBasicMaterial as Lt, MeshStandardMaterial as ui, DoubleSide as gi, PropertyBinding as It, BufferGeometry as ut, SkinnedMesh as di, LineSegments as ls, Line as dt, LineLoop as ma, Points as os, Group as on, MathUtils as ye, OrthographicCamera as Fo, Skeleton as Lo, AnimationClip as pi, Bone as Vs, InterpolateDiscrete as fi, InterpolateLinear as qn, InterleavedBufferAttribute as tn, Texture as Xs, VectorKeyframeTrack as hs, NumberKeyframeTrack as us, QuaternionKeyframeTrack as gs, ColorManagement as We, FrontSide as No, Interpolant as Ia, Box3 as ms, Sphere as mi, RGBA_S3TC_DXT1_Format as ba, RGB_PVRTC_4BPPV1_Format as Ea, RGB_ETC2_Format as Ca, RGB_ETC1_Format as Ba, RGBA_S3TC_DXT5_Format as wa, RGBA_PVRTC_4BPPV1_Format as ya, RGBA_ETC2_EAC_Format as Qa, RGBA_BPTC_Format as xa, RGBA_ASTC_4x4_Format as Uo, RGBAFormat as Kt, CompressedCubeTexture as Sa, UnsignedByteType as pt, CompressedArrayTexture as va, CompressedTexture as Pn, DisplayP3ColorSpace as Ta, LinearDisplayP3ColorSpace as _a, NoColorSpace as ds, RGBA_ASTC_6x6_Format as _i, RedFormat as pn, RGFormat as kn, HalfFloatType as st, FloatType as St, DataTexture as Ra, Data3DTexture as Da, ExtrudeGeometry as Ma, ShapePath as ka, Raycaster as Ii, CylinderGeometry as Ke, BoxGeometry as je, Float32BufferAttribute as ke, OctahedronGeometry as Jn, TorusGeometry as Bn, Euler as zt, Controls as Go, PlaneGeometry as bi, DataTextureLoader as Po, DataUtils as fn, Vector4 as Ut, Curve as Fa, MeshPhongMaterial as On, MeshLambertMaterial as La, EquirectangularReflectionMapping as Na, AmbientLight as Ua, Uint16BufferAttribute as Ga, Matrix3 as Oo, ShapeUtils as Pa, DefaultLoadingManager as Oa, Ray as Ha, Plane as ja, MOUSE as In, TOUCH as mn, Spherical as Ri, ShaderMaterial as Ho, Uniform$1 as qa, Scene as Zs, WebGLRenderer as za, CanvasTexture as jo, REVISION as Ka, Source as Ya, InstancedBufferGeometry as Ja, InstancedInterleavedBuffer as $s, WireframeGeometry as Wa, Line3 as Va, ColorKeyframeTrack as Xa } from "./three-DrqIzZTH.js";
|
|
2
|
+
class th extends z {
|
|
3
3
|
constructor(e, t, s, n = 128) {
|
|
4
4
|
if (t <= 0 || s <= 0 || n <= 0)
|
|
5
5
|
throw new Error("GroundedSkybox height, radius, and resolution must be positive.");
|
|
@@ -23,7 +23,7 @@ class Ce extends ra {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
const tt = new aa();
|
|
26
|
-
tt.camera = new
|
|
26
|
+
tt.camera = new ps();
|
|
27
27
|
const Di = {
|
|
28
28
|
LineBasicNodeMaterial: wt.basic,
|
|
29
29
|
MeshBasicNodeMaterial: wt.basic,
|
|
@@ -41,7 +41,7 @@ const Di = {
|
|
|
41
41
|
function Ot(A) {
|
|
42
42
|
return `#include <${A}>`;
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function wn(A) {
|
|
45
45
|
return `${A}Shader`;
|
|
46
46
|
}
|
|
47
47
|
class eA extends Aa {
|
|
@@ -59,7 +59,7 @@ class eA extends Aa {
|
|
|
59
59
|
let t = e.type;
|
|
60
60
|
if (e.isMeshPhysicalNodeMaterial ? t = "MeshPhysicalNodeMaterial" : e.isMeshStandardNodeMaterial ? t = "MeshStandardNodeMaterial" : e.isMeshPhongNodeMaterial ? t = "MeshPhongNodeMaterial" : e.isMeshBasicNodeMaterial ? t = "MeshBasicNodeMaterial" : e.isPointsNodeMaterial ? t = "PointsNodeMaterial" : e.isLineBasicNodeMaterial && (t = "LineBasicNodeMaterial"), Di[t] !== void 0) {
|
|
61
61
|
const s = Di[t], n = this.shader;
|
|
62
|
-
n.vertexShader = s.vertexShader, n.fragmentShader = s.fragmentShader, n.uniforms = li.merge([s.uniforms,
|
|
62
|
+
n.vertexShader = s.vertexShader, n.fragmentShader = s.fragmentShader, n.uniforms = li.merge([s.uniforms, Gn.lights]);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
_parseObject() {
|
|
@@ -251,7 +251,7 @@ ${s.code}
|
|
|
251
251
|
return t;
|
|
252
252
|
}
|
|
253
253
|
addCode(e, t, s, n = this) {
|
|
254
|
-
const i =
|
|
254
|
+
const i = wn(e);
|
|
255
255
|
let o = n[i];
|
|
256
256
|
const r = o.indexOf(t);
|
|
257
257
|
if (r !== -1) {
|
|
@@ -263,7 +263,7 @@ ${c}`;
|
|
|
263
263
|
n[i] = o;
|
|
264
264
|
}
|
|
265
265
|
replaceCode(e, t, s, n = this) {
|
|
266
|
-
const i =
|
|
266
|
+
const i = wn(e);
|
|
267
267
|
n[i] = n[i].replaceAll(t, s);
|
|
268
268
|
}
|
|
269
269
|
getVertexIndex() {
|
|
@@ -280,7 +280,7 @@ ${c}`;
|
|
|
280
280
|
}
|
|
281
281
|
buildCode() {
|
|
282
282
|
const e = {};
|
|
283
|
-
for (const t of
|
|
283
|
+
for (const t of Yn) {
|
|
284
284
|
const s = this.getUniforms(t), n = this.getAttributes(t), i = this.getVaryings(t), o = this.getVars(t), r = this.getCodes(t);
|
|
285
285
|
e[t] = `${this.getSignature()}
|
|
286
286
|
// <node_builder>
|
|
@@ -302,7 +302,7 @@ ${r}
|
|
|
302
302
|
|
|
303
303
|
// </node_builder>
|
|
304
304
|
|
|
305
|
-
${this.shader[
|
|
305
|
+
${this.shader[wn(t)]}
|
|
306
306
|
`;
|
|
307
307
|
}
|
|
308
308
|
this.vertexShader = e.vertex, this.fragmentShader = e.fragment;
|
|
@@ -312,19 +312,19 @@ ${this.shader[Bn(t)]}
|
|
|
312
312
|
}
|
|
313
313
|
_parseInclude(e, ...t) {
|
|
314
314
|
for (const s of t) {
|
|
315
|
-
const n = Ot(s), i = ha[s], o =
|
|
315
|
+
const n = Ot(s), i = ha[s], o = wn(e);
|
|
316
316
|
this.shader[o] = this.shader[o].replaceAll(n, i);
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
319
|
_sortSlotsToFlow() {
|
|
320
|
-
for (const e of
|
|
321
|
-
const t = this.shader[
|
|
320
|
+
for (const e of Yn) {
|
|
321
|
+
const t = this.shader[wn(e)], s = this.slots[e].sort((n, i) => t.indexOf(n.source) > t.indexOf(i.source) ? 1 : -1);
|
|
322
322
|
for (const n of s)
|
|
323
323
|
this.addFlow(e, n);
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
_addSnippets() {
|
|
327
|
-
for (const e of
|
|
327
|
+
for (const e of Yn) {
|
|
328
328
|
for (const t of this.slots[e]) {
|
|
329
329
|
const s = this.getFlowData(
|
|
330
330
|
t
|
|
@@ -342,7 +342,7 @@ ${this.shader[Bn(t)]}
|
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
344
|
_addUniforms() {
|
|
345
|
-
for (const e of
|
|
345
|
+
for (const e of Yn)
|
|
346
346
|
for (const t of this.uniforms[e])
|
|
347
347
|
this.shader.uniforms[t.name] = t;
|
|
348
348
|
}
|
|
@@ -353,7 +353,7 @@ ${this.shader[Bn(t)]}
|
|
|
353
353
|
}
|
|
354
354
|
}
|
|
355
355
|
const qo = /* @__PURE__ */ new WeakMap();
|
|
356
|
-
|
|
356
|
+
nn.prototype.onBuild = function(A, e, t) {
|
|
357
357
|
const s = this;
|
|
358
358
|
if (s.isNodeMaterial === !0) {
|
|
359
359
|
let n;
|
|
@@ -364,7 +364,7 @@ tn.prototype.onBuild = function(A, e, t) {
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
};
|
|
367
|
-
|
|
367
|
+
nn.prototype.onBeforeRender = function(A, e, t, s, n) {
|
|
368
368
|
const i = qo.get(this);
|
|
369
369
|
if (i !== void 0) {
|
|
370
370
|
tt.material = this, tt.camera = t, tt.object = n, tt.renderer = A, tt.scene = e, tt.geometry = s;
|
|
@@ -376,7 +376,7 @@ tn.prototype.onBeforeRender = function(A, e, t, s, n) {
|
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
};
|
|
379
|
-
var
|
|
379
|
+
var rs = function() {
|
|
380
380
|
var A = 0, e = document.createElement("div");
|
|
381
381
|
e.style.cssText = "position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000", e.addEventListener("click", function(l) {
|
|
382
382
|
l.preventDefault(), s(++A % e.children.length);
|
|
@@ -389,9 +389,9 @@ var os = function() {
|
|
|
389
389
|
e.children[h].style.display = h === l ? "block" : "none";
|
|
390
390
|
A = l;
|
|
391
391
|
}
|
|
392
|
-
var n = (performance || Date).now(), i = n, o = 0, r = t(new
|
|
392
|
+
var n = (performance || Date).now(), i = n, o = 0, r = t(new rs.Panel("FPS", "#0ff", "#002")), a = t(new rs.Panel("MS", "#0f0", "#020"));
|
|
393
393
|
if (self.performance && self.performance.memory)
|
|
394
|
-
var c = t(new
|
|
394
|
+
var c = t(new rs.Panel("MB", "#f08", "#201"));
|
|
395
395
|
return s(0), {
|
|
396
396
|
REVISION: 16,
|
|
397
397
|
dom: e,
|
|
@@ -417,7 +417,7 @@ var os = function() {
|
|
|
417
417
|
setMode: s
|
|
418
418
|
};
|
|
419
419
|
};
|
|
420
|
-
|
|
420
|
+
rs.Panel = function(A, e, t) {
|
|
421
421
|
var s = 1 / 0, n = 0, i = Math.round, o = i(window.devicePixelRatio || 1), r = 80 * o, a = 48 * o, c = 3 * o, l = 2 * o, h = 3 * o, g = 15 * o, d = 74 * o, p = 30 * o, m = document.createElement("canvas");
|
|
422
422
|
m.width = r, m.height = a, m.style.cssText = "width:80px;height:48px";
|
|
423
423
|
var I = m.getContext("2d");
|
|
@@ -428,7 +428,7 @@ os.Panel = function(A, e, t) {
|
|
|
428
428
|
}
|
|
429
429
|
};
|
|
430
430
|
};
|
|
431
|
-
function
|
|
431
|
+
function nh(A, e = 1e-4) {
|
|
432
432
|
e = Math.max(e, Number.EPSILON);
|
|
433
433
|
const t = {}, s = A.getIndex(), n = A.getAttribute("position"), i = s ? s.count : n.count;
|
|
434
434
|
let o = 0;
|
|
@@ -440,26 +440,26 @@ function th(A, e = 1e-4) {
|
|
|
440
440
|
Q.itemSize,
|
|
441
441
|
Q.normalized
|
|
442
442
|
);
|
|
443
|
-
const
|
|
444
|
-
|
|
445
|
-
const v = new
|
|
446
|
-
c[w][x] = new
|
|
443
|
+
const _ = A.morphAttributes[w];
|
|
444
|
+
_ && (c[w] || (c[w] = []), _.forEach((R, x) => {
|
|
445
|
+
const v = new R.array.constructor(R.count * R.itemSize);
|
|
446
|
+
c[w][x] = new R.constructor(v, R.itemSize, R.normalized);
|
|
447
447
|
}));
|
|
448
448
|
}
|
|
449
449
|
const d = e * 0.5, p = Math.log10(1 / e), m = Math.pow(10, p), I = d * m;
|
|
450
450
|
for (let B = 0; B < i; B++) {
|
|
451
451
|
const E = s ? s.getX(B) : B;
|
|
452
452
|
let w = "";
|
|
453
|
-
for (let Q = 0,
|
|
454
|
-
const
|
|
453
|
+
for (let Q = 0, _ = r.length; Q < _; Q++) {
|
|
454
|
+
const R = r[Q], x = A.getAttribute(R), v = x.itemSize;
|
|
455
455
|
for (let L = 0; L < v; L++)
|
|
456
456
|
w += `${~~(x[h[L]](E) * m + I)},`;
|
|
457
457
|
}
|
|
458
458
|
if (w in t)
|
|
459
459
|
l.push(t[w]);
|
|
460
460
|
else {
|
|
461
|
-
for (let Q = 0,
|
|
462
|
-
const
|
|
461
|
+
for (let Q = 0, _ = r.length; Q < _; Q++) {
|
|
462
|
+
const R = r[Q], x = A.getAttribute(R), v = A.morphAttributes[R], L = x.itemSize, N = a[R], O = c[R];
|
|
463
463
|
for (let Z = 0; Z < L; Z++) {
|
|
464
464
|
const U = h[Z], q = g[Z];
|
|
465
465
|
if (N[q](o, x[U](E)), v)
|
|
@@ -560,10 +560,10 @@ class zo extends Nt {
|
|
|
560
560
|
if (this.resourcePath !== "")
|
|
561
561
|
o = this.resourcePath;
|
|
562
562
|
else if (this.path !== "") {
|
|
563
|
-
const c =
|
|
564
|
-
o =
|
|
563
|
+
const c = sn.extractUrlBase(e);
|
|
564
|
+
o = sn.resolveURL(c, this.path);
|
|
565
565
|
} else
|
|
566
|
-
o =
|
|
566
|
+
o = sn.extractUrlBase(e);
|
|
567
567
|
this.manager.itemStart(e);
|
|
568
568
|
const r = function(c) {
|
|
569
569
|
n ? n(c) : console.error(c), i.manager.itemError(e), i.manager.itemEnd(e);
|
|
@@ -1091,11 +1091,11 @@ let bA = class {
|
|
|
1091
1091
|
}));
|
|
1092
1092
|
}
|
|
1093
1093
|
};
|
|
1094
|
-
const Ko = "glTF",
|
|
1094
|
+
const Ko = "glTF", yn = 12, ki = { JSON: 1313821514, BIN: 5130562 };
|
|
1095
1095
|
class EA {
|
|
1096
1096
|
constructor(e) {
|
|
1097
1097
|
this.name = oe.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
1098
|
-
const t = new DataView(e, 0,
|
|
1098
|
+
const t = new DataView(e, 0, yn), s = new TextDecoder();
|
|
1099
1099
|
if (this.header = {
|
|
1100
1100
|
magic: s.decode(new Uint8Array(e.slice(0, 4))),
|
|
1101
1101
|
version: t.getUint32(4, !0),
|
|
@@ -1104,17 +1104,17 @@ class EA {
|
|
|
1104
1104
|
throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
|
|
1105
1105
|
if (this.header.version < 2)
|
|
1106
1106
|
throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
|
|
1107
|
-
const n = this.header.length -
|
|
1107
|
+
const n = this.header.length - yn, i = new DataView(e, yn);
|
|
1108
1108
|
let o = 0;
|
|
1109
1109
|
for (; o < n; ) {
|
|
1110
1110
|
const r = i.getUint32(o, !0);
|
|
1111
1111
|
o += 4;
|
|
1112
1112
|
const a = i.getUint32(o, !0);
|
|
1113
1113
|
if (o += 4, a === ki.JSON) {
|
|
1114
|
-
const c = new Uint8Array(e,
|
|
1114
|
+
const c = new Uint8Array(e, yn + o, r);
|
|
1115
1115
|
this.content = s.decode(c);
|
|
1116
1116
|
} else if (a === ki.BIN) {
|
|
1117
|
-
const c =
|
|
1117
|
+
const c = yn + o;
|
|
1118
1118
|
this.body = e.slice(c, c + r);
|
|
1119
1119
|
}
|
|
1120
1120
|
o += r;
|
|
@@ -1138,7 +1138,7 @@ class CA {
|
|
|
1138
1138
|
for (const l in e.attributes) {
|
|
1139
1139
|
const h = ei[l] || l.toLowerCase();
|
|
1140
1140
|
if (o[l] !== void 0) {
|
|
1141
|
-
const g = s.accessors[e.attributes[l]], d =
|
|
1141
|
+
const g = s.accessors[e.attributes[l]], d = bn[g.componentType];
|
|
1142
1142
|
c[h] = d.name, a[h] = g.normalized === !0;
|
|
1143
1143
|
}
|
|
1144
1144
|
}
|
|
@@ -1181,8 +1181,8 @@ class Yo extends Ia {
|
|
|
1181
1181
|
interpolate_(e, t, s, n) {
|
|
1182
1182
|
const i = this.resultBuffer, o = this.sampleValues, r = this.valueSize, a = r * 2, c = r * 3, l = n - t, h = (s - t) / l, g = h * h, d = g * h, p = e * c, m = p - c, I = -2 * d + 3 * g, b = d - g, B = 1 - I, E = b - g + h;
|
|
1183
1183
|
for (let w = 0; w !== r; w++) {
|
|
1184
|
-
const Q = o[m + w + r],
|
|
1185
|
-
i[w] = B * Q + E *
|
|
1184
|
+
const Q = o[m + w + r], _ = o[m + w + a] * l, R = o[p + w + r], x = o[p + w] * l;
|
|
1185
|
+
i[w] = B * Q + E * _ + I * R + b * x;
|
|
1186
1186
|
}
|
|
1187
1187
|
return i;
|
|
1188
1188
|
}
|
|
@@ -1202,7 +1202,7 @@ const ht = {
|
|
|
1202
1202
|
TRIANGLES: 4,
|
|
1203
1203
|
TRIANGLE_STRIP: 5,
|
|
1204
1204
|
TRIANGLE_FAN: 6
|
|
1205
|
-
},
|
|
1205
|
+
}, bn = {
|
|
1206
1206
|
5120: Int8Array,
|
|
1207
1207
|
5121: Uint8Array,
|
|
1208
1208
|
5122: Int16Array,
|
|
@@ -1213,14 +1213,14 @@ const ht = {
|
|
|
1213
1213
|
9728: Mo,
|
|
1214
1214
|
9729: mt,
|
|
1215
1215
|
9984: Do,
|
|
1216
|
-
9985:
|
|
1217
|
-
9986:
|
|
1218
|
-
9987:
|
|
1216
|
+
9985: Ro,
|
|
1217
|
+
9986: _o,
|
|
1218
|
+
9987: fs
|
|
1219
1219
|
}, Li = {
|
|
1220
|
-
33071:
|
|
1220
|
+
33071: cs,
|
|
1221
1221
|
33648: ko,
|
|
1222
|
-
10497:
|
|
1223
|
-
},
|
|
1222
|
+
10497: an
|
|
1223
|
+
}, Bs = {
|
|
1224
1224
|
SCALAR: 1,
|
|
1225
1225
|
VEC2: 2,
|
|
1226
1226
|
VEC3: 3,
|
|
@@ -1248,9 +1248,9 @@ const ht = {
|
|
|
1248
1248
|
CUBICSPLINE: void 0,
|
|
1249
1249
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
1250
1250
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
1251
|
-
LINEAR:
|
|
1251
|
+
LINEAR: qn,
|
|
1252
1252
|
STEP: fi
|
|
1253
|
-
},
|
|
1253
|
+
}, ws = {
|
|
1254
1254
|
OPAQUE: "OPAQUE",
|
|
1255
1255
|
MASK: "MASK",
|
|
1256
1256
|
BLEND: "BLEND"
|
|
@@ -1319,15 +1319,15 @@ function TA(A, e) {
|
|
|
1319
1319
|
console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
1320
1320
|
}
|
|
1321
1321
|
}
|
|
1322
|
-
function
|
|
1322
|
+
function _A(A) {
|
|
1323
1323
|
let e;
|
|
1324
1324
|
const t = A.extensions && A.extensions[oe.KHR_DRACO_MESH_COMPRESSION];
|
|
1325
|
-
if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" +
|
|
1325
|
+
if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" + ys(t.attributes) : e = A.indices + ":" + ys(A.attributes) + ":" + A.mode, A.targets !== void 0)
|
|
1326
1326
|
for (let s = 0, n = A.targets.length; s < n; s++)
|
|
1327
|
-
e += ":" +
|
|
1327
|
+
e += ":" + ys(A.targets[s]);
|
|
1328
1328
|
return e;
|
|
1329
1329
|
}
|
|
1330
|
-
function
|
|
1330
|
+
function ys(A) {
|
|
1331
1331
|
let e = "";
|
|
1332
1332
|
const t = Object.keys(A).sort();
|
|
1333
1333
|
for (let s = 0, n = t.length; s < n; s++)
|
|
@@ -1348,7 +1348,7 @@ function ti(A) {
|
|
|
1348
1348
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
1349
1349
|
}
|
|
1350
1350
|
}
|
|
1351
|
-
function
|
|
1351
|
+
function RA(A) {
|
|
1352
1352
|
return A.search(/\.jpe?g($|\?)/i) > 0 || A.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : A.search(/\.webp($|\?)/i) > 0 || A.search(/^data\:image\/webp/) === 0 ? "image/webp" : "image/png";
|
|
1353
1353
|
}
|
|
1354
1354
|
const DA = new ue();
|
|
@@ -1553,7 +1553,7 @@ class MA {
|
|
|
1553
1553
|
return Promise.resolve(this.extensions[oe.KHR_BINARY_GLTF].body);
|
|
1554
1554
|
const n = this.options;
|
|
1555
1555
|
return new Promise(function(i, o) {
|
|
1556
|
-
s.load(
|
|
1556
|
+
s.load(sn.resolveURL(t.uri, n.path), i, void 0, function() {
|
|
1557
1557
|
o(new Error('THREE.GLTFLoader: Failed to load buffer "' + t.uri + '".'));
|
|
1558
1558
|
});
|
|
1559
1559
|
});
|
|
@@ -1578,25 +1578,25 @@ class MA {
|
|
|
1578
1578
|
loadAccessor(e) {
|
|
1579
1579
|
const t = this, s = this.json, n = this.json.accessors[e];
|
|
1580
1580
|
if (n.bufferView === void 0 && n.sparse === void 0) {
|
|
1581
|
-
const o =
|
|
1581
|
+
const o = Bs[n.type], r = bn[n.componentType], a = n.normalized === !0, c = new r(n.count * o);
|
|
1582
1582
|
return Promise.resolve(new nt(c, o, a));
|
|
1583
1583
|
}
|
|
1584
1584
|
const i = [];
|
|
1585
1585
|
return n.bufferView !== void 0 ? i.push(this.getDependency("bufferView", n.bufferView)) : i.push(null), n.sparse !== void 0 && (i.push(this.getDependency("bufferView", n.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", n.sparse.values.bufferView))), Promise.all(i).then(function(o) {
|
|
1586
|
-
const r = o[0], a =
|
|
1586
|
+
const r = o[0], a = Bs[n.type], c = bn[n.componentType], l = c.BYTES_PER_ELEMENT, h = l * a, g = n.byteOffset || 0, d = n.bufferView !== void 0 ? s.bufferViews[n.bufferView].byteStride : void 0, p = n.normalized === !0;
|
|
1587
1587
|
let m, I;
|
|
1588
1588
|
if (d && d !== h) {
|
|
1589
1589
|
const b = Math.floor(g / d), B = "InterleavedBuffer:" + n.bufferView + ":" + n.componentType + ":" + b + ":" + n.count;
|
|
1590
1590
|
let E = t.cache.get(B);
|
|
1591
|
-
E || (m = new c(r, b * d, n.count * d / l), E = new fa(m, d / l), t.cache.add(B, E)), I = new
|
|
1591
|
+
E || (m = new c(r, b * d, n.count * d / l), E = new fa(m, d / l), t.cache.add(B, E)), I = new tn(E, a, g % d / l, p);
|
|
1592
1592
|
} else
|
|
1593
1593
|
r === null ? m = new c(n.count * a) : m = new c(r, g, n.count * a), I = new nt(m, a, p);
|
|
1594
1594
|
if (n.sparse !== void 0) {
|
|
1595
|
-
const b =
|
|
1595
|
+
const b = Bs.SCALAR, B = bn[n.sparse.indices.componentType], E = n.sparse.indices.byteOffset || 0, w = n.sparse.values.byteOffset || 0, Q = new B(o[1], E, n.sparse.count * b), _ = new c(o[2], w, n.sparse.count * a);
|
|
1596
1596
|
r !== null && (I = new nt(I.array.slice(), I.itemSize, I.normalized)), I.normalized = !1;
|
|
1597
|
-
for (let
|
|
1598
|
-
const v = Q[
|
|
1599
|
-
if (I.setX(v, R
|
|
1597
|
+
for (let R = 0, x = Q.length; R < x; R++) {
|
|
1598
|
+
const v = Q[R];
|
|
1599
|
+
if (I.setX(v, _[R * a]), a >= 2 && I.setY(v, _[R * a + 1]), a >= 3 && I.setZ(v, _[R * a + 2]), a >= 4 && I.setW(v, _[R * a + 3]), a >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
|
|
1600
1600
|
}
|
|
1601
1601
|
I.normalized = p;
|
|
1602
1602
|
}
|
|
@@ -1624,7 +1624,7 @@ class MA {
|
|
|
1624
1624
|
const c = this.loadImageSource(t, s).then(function(l) {
|
|
1625
1625
|
l.flipY = !1, l.name = o.name || r.name || "", l.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (l.name = r.uri);
|
|
1626
1626
|
const g = (i.samplers || {})[o.sampler] || {};
|
|
1627
|
-
return l.magFilter = Fi[g.magFilter] || mt, l.minFilter = Fi[g.minFilter] ||
|
|
1627
|
+
return l.magFilter = Fi[g.magFilter] || mt, l.minFilter = Fi[g.minFilter] || fs, l.wrapS = Li[g.wrapS] || an, l.wrapT = Li[g.wrapT] || an, l.anisotropy = 4, n.associations.set(l, { textures: e }), l;
|
|
1628
1628
|
}).catch(function() {
|
|
1629
1629
|
return null;
|
|
1630
1630
|
});
|
|
@@ -1650,10 +1650,10 @@ class MA {
|
|
|
1650
1650
|
t.isImageBitmapLoader === !0 && (p = function(m) {
|
|
1651
1651
|
const I = new Xs(m);
|
|
1652
1652
|
I.needsUpdate = !0, g(I);
|
|
1653
|
-
}), t.load(
|
|
1653
|
+
}), t.load(sn.resolveURL(h, i.path), p, void 0, d);
|
|
1654
1654
|
});
|
|
1655
1655
|
}).then(function(h) {
|
|
1656
|
-
return c === !0 && r.revokeObjectURL(a), kt(h, o), h.userData.mimeType = o.mimeType ||
|
|
1656
|
+
return c === !0 && r.revokeObjectURL(a), kt(h, o), h.userData.mimeType = o.mimeType || RA(o.uri), h;
|
|
1657
1657
|
}).catch(function(h) {
|
|
1658
1658
|
throw console.error("THREE.GLTFLoader: Couldn't load texture", a), h;
|
|
1659
1659
|
});
|
|
@@ -1695,11 +1695,11 @@ class MA {
|
|
|
1695
1695
|
if (e.isPoints) {
|
|
1696
1696
|
const r = "PointsMaterial:" + s.uuid;
|
|
1697
1697
|
let a = this.cache.get(r);
|
|
1698
|
-
a || (a = new
|
|
1698
|
+
a || (a = new Mn(), nn.prototype.copy.call(a, s), a.color.copy(s.color), a.map = s.map, a.sizeAttenuation = !1, this.cache.add(r, a)), s = a;
|
|
1699
1699
|
} else if (e.isLine) {
|
|
1700
1700
|
const r = "LineBasicMaterial:" + s.uuid;
|
|
1701
1701
|
let a = this.cache.get(r);
|
|
1702
|
-
a || (a = new Lt(),
|
|
1702
|
+
a || (a = new Lt(), nn.prototype.copy.call(a, s), a.color.copy(s.color), a.map = s.map, this.cache.add(r, a)), s = a;
|
|
1703
1703
|
}
|
|
1704
1704
|
if (n || i || o) {
|
|
1705
1705
|
let r = "ClonedMaterial:" + s.uuid + ":";
|
|
@@ -1737,8 +1737,8 @@ class MA {
|
|
|
1737
1737
|
})));
|
|
1738
1738
|
}
|
|
1739
1739
|
i.doubleSided === !0 && (r.side = gi);
|
|
1740
|
-
const l = i.alphaMode ||
|
|
1741
|
-
if (l ===
|
|
1740
|
+
const l = i.alphaMode || ws.OPAQUE;
|
|
1741
|
+
if (l === ws.BLEND ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, l === ws.MASK && (r.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && o !== Qt && (c.push(t.assignTexture(r, "normalMap", i.normalTexture)), r.normalScale = new Le(1, 1), i.normalTexture.scale !== void 0)) {
|
|
1742
1742
|
const h = i.normalTexture.scale;
|
|
1743
1743
|
r.normalScale.set(h, h);
|
|
1744
1744
|
}
|
|
@@ -1773,7 +1773,7 @@ class MA {
|
|
|
1773
1773
|
}
|
|
1774
1774
|
const o = [];
|
|
1775
1775
|
for (let r = 0, a = e.length; r < a; r++) {
|
|
1776
|
-
const c = e[r], l =
|
|
1776
|
+
const c = e[r], l = _A(c), h = n[l];
|
|
1777
1777
|
if (h)
|
|
1778
1778
|
o.push(h.promise);
|
|
1779
1779
|
else {
|
|
@@ -1803,13 +1803,13 @@ class MA {
|
|
|
1803
1803
|
if (I.mode === ht.TRIANGLES || I.mode === ht.TRIANGLE_STRIP || I.mode === ht.TRIANGLE_FAN || I.mode === void 0)
|
|
1804
1804
|
b = i.isSkinnedMesh === !0 ? new di(m, B) : new z(m, B), b.isSkinnedMesh === !0 && b.normalizeSkinWeights(), I.mode === ht.TRIANGLE_STRIP ? b.geometry = Mi(b.geometry, So) : I.mode === ht.TRIANGLE_FAN && (b.geometry = Mi(b.geometry, Js));
|
|
1805
1805
|
else if (I.mode === ht.LINES)
|
|
1806
|
-
b = new
|
|
1806
|
+
b = new ls(m, B);
|
|
1807
1807
|
else if (I.mode === ht.LINE_STRIP)
|
|
1808
1808
|
b = new dt(m, B);
|
|
1809
1809
|
else if (I.mode === ht.LINE_LOOP)
|
|
1810
1810
|
b = new ma(m, B);
|
|
1811
1811
|
else if (I.mode === ht.POINTS)
|
|
1812
|
-
b = new
|
|
1812
|
+
b = new os(m, B);
|
|
1813
1813
|
else
|
|
1814
1814
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + I.mode);
|
|
1815
1815
|
Object.keys(b.geometry.morphAttributes).length > 0 && TA(b, i), b.name = t.createUniqueName(i.name || "mesh_" + e), kt(b, i), I.extensions && Vt(n, b, I), t.assignFinalMaterial(b), h.push(b);
|
|
@@ -1821,7 +1821,7 @@ class MA {
|
|
|
1821
1821
|
});
|
|
1822
1822
|
if (h.length === 1)
|
|
1823
1823
|
return i.extensions && Vt(n, h[0], i), h[0];
|
|
1824
|
-
const g = new
|
|
1824
|
+
const g = new on();
|
|
1825
1825
|
i.extensions && Vt(n, g, i), t.associations.set(g, { meshes: e });
|
|
1826
1826
|
for (let d = 0, p = h.length; d < p; d++)
|
|
1827
1827
|
g.add(h[d]);
|
|
@@ -1840,7 +1840,7 @@ class MA {
|
|
|
1840
1840
|
console.warn("THREE.GLTFLoader: Missing camera parameters.");
|
|
1841
1841
|
return;
|
|
1842
1842
|
}
|
|
1843
|
-
return s.type === "perspective" ? t = new
|
|
1843
|
+
return s.type === "perspective" ? t = new ps(ye.radToDeg(n.yfov), n.aspectRatio || 1, n.znear || 1, n.zfar || 2e6) : s.type === "orthographic" && (t = new Fo(-n.xmag, n.xmag, n.ymag, -n.ymag, n.znear, n.zfar)), s.name && (t.name = this.createUniqueName(s.name)), kt(t, s), Promise.resolve(t);
|
|
1844
1844
|
}
|
|
1845
1845
|
/**
|
|
1846
1846
|
* Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins
|
|
@@ -1886,10 +1886,10 @@ class MA {
|
|
|
1886
1886
|
]).then(function(d) {
|
|
1887
1887
|
const p = d[0], m = d[1], I = d[2], b = d[3], B = d[4], E = [];
|
|
1888
1888
|
for (h = 0, g = p.length; h < g; h++) {
|
|
1889
|
-
const w = p[h], Q = m[h],
|
|
1889
|
+
const w = p[h], Q = m[h], _ = I[h], R = b[h], x = B[h];
|
|
1890
1890
|
if (w === void 0) continue;
|
|
1891
1891
|
w.updateMatrix && w.updateMatrix();
|
|
1892
|
-
const v = s._createAnimationTracks(w, Q,
|
|
1892
|
+
const v = s._createAnimationTracks(w, Q, _, R, x);
|
|
1893
1893
|
if (v)
|
|
1894
1894
|
for (let L = 0; L < v.length; L++)
|
|
1895
1895
|
E.push(v[L]);
|
|
@@ -1949,7 +1949,7 @@ class MA {
|
|
|
1949
1949
|
r.push(c);
|
|
1950
1950
|
}), this.nodeCache[e] = Promise.all(r).then(function(c) {
|
|
1951
1951
|
let l;
|
|
1952
|
-
if (i.isBone === !0 ? l = new Vs() : c.length > 1 ? l = new
|
|
1952
|
+
if (i.isBone === !0 ? l = new Vs() : c.length > 1 ? l = new on() : c.length === 1 ? l = c[0] : l = new xt(), l !== c[0])
|
|
1953
1953
|
for (let h = 0, g = c.length; h < g; h++)
|
|
1954
1954
|
l.add(c[h]);
|
|
1955
1955
|
if (i.name && (l.userData.name = i.name, l.name = o), kt(l, i), i.extensions && Vt(s, l, i), i.matrix !== void 0) {
|
|
@@ -1966,7 +1966,7 @@ class MA {
|
|
|
1966
1966
|
* @return {Promise<Group>}
|
|
1967
1967
|
*/
|
|
1968
1968
|
loadScene(e) {
|
|
1969
|
-
const t = this.extensions, s = this.json.scenes[e], n = this, i = new
|
|
1969
|
+
const t = this.extensions, s = this.json.scenes[e], n = this, i = new on();
|
|
1970
1970
|
s.name && (i.name = n.createUniqueName(s.name)), kt(i, s), s.extensions && Vt(t, i, s);
|
|
1971
1971
|
const o = s.nodes || [], r = [];
|
|
1972
1972
|
for (let a = 0, c = o.length; a < c; a++)
|
|
@@ -1977,7 +1977,7 @@ class MA {
|
|
|
1977
1977
|
const c = (l) => {
|
|
1978
1978
|
const h = /* @__PURE__ */ new Map();
|
|
1979
1979
|
for (const [g, d] of n.associations)
|
|
1980
|
-
(g instanceof
|
|
1980
|
+
(g instanceof nn || g instanceof Xs) && h.set(g, d);
|
|
1981
1981
|
return l.traverse((g) => {
|
|
1982
1982
|
const d = n.associations.get(g);
|
|
1983
1983
|
d != null && h.set(g, d);
|
|
@@ -1994,29 +1994,29 @@ class MA {
|
|
|
1994
1994
|
let c;
|
|
1995
1995
|
switch (Ht[i.path]) {
|
|
1996
1996
|
case Ht.weights:
|
|
1997
|
-
c =
|
|
1997
|
+
c = us;
|
|
1998
1998
|
break;
|
|
1999
1999
|
case Ht.rotation:
|
|
2000
|
-
c =
|
|
2000
|
+
c = gs;
|
|
2001
2001
|
break;
|
|
2002
2002
|
case Ht.position:
|
|
2003
2003
|
case Ht.scale:
|
|
2004
|
-
c =
|
|
2004
|
+
c = hs;
|
|
2005
2005
|
break;
|
|
2006
2006
|
default:
|
|
2007
2007
|
switch (s.itemSize) {
|
|
2008
2008
|
case 1:
|
|
2009
|
-
c =
|
|
2009
|
+
c = us;
|
|
2010
2010
|
break;
|
|
2011
2011
|
case 2:
|
|
2012
2012
|
case 3:
|
|
2013
2013
|
default:
|
|
2014
|
-
c =
|
|
2014
|
+
c = hs;
|
|
2015
2015
|
break;
|
|
2016
2016
|
}
|
|
2017
2017
|
break;
|
|
2018
2018
|
}
|
|
2019
|
-
const l = n.interpolation !== void 0 ? xA[n.interpolation] :
|
|
2019
|
+
const l = n.interpolation !== void 0 ? xA[n.interpolation] : qn, h = this._getArrayFromAccessor(s);
|
|
2020
2020
|
for (let g = 0, d = a.length; g < d; g++) {
|
|
2021
2021
|
const p = new c(
|
|
2022
2022
|
a[g] + "." + Ht[i.path],
|
|
@@ -2040,13 +2040,13 @@ class MA {
|
|
|
2040
2040
|
}
|
|
2041
2041
|
_createCubicSplineTrackInterpolant(e) {
|
|
2042
2042
|
e.createInterpolant = function(s) {
|
|
2043
|
-
const n = this instanceof
|
|
2043
|
+
const n = this instanceof gs ? QA : Yo;
|
|
2044
2044
|
return new n(this.times, this.values, this.getValueSize() / 3, s);
|
|
2045
2045
|
}, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
2046
2046
|
}
|
|
2047
2047
|
}
|
|
2048
2048
|
function kA(A, e, t) {
|
|
2049
|
-
const s = e.attributes, n = new
|
|
2049
|
+
const s = e.attributes, n = new ms();
|
|
2050
2050
|
if (s.POSITION !== void 0) {
|
|
2051
2051
|
const r = t.json.accessors[s.POSITION], a = r.min, c = r.max;
|
|
2052
2052
|
if (a !== void 0 && c !== void 0) {
|
|
@@ -2054,7 +2054,7 @@ function kA(A, e, t) {
|
|
|
2054
2054
|
new P(a[0], a[1], a[2]),
|
|
2055
2055
|
new P(c[0], c[1], c[2])
|
|
2056
2056
|
), r.normalized) {
|
|
2057
|
-
const l = ti(
|
|
2057
|
+
const l = ti(bn[r.componentType]);
|
|
2058
2058
|
n.min.multiplyScalar(l), n.max.multiplyScalar(l);
|
|
2059
2059
|
}
|
|
2060
2060
|
} else {
|
|
@@ -2072,7 +2072,7 @@ function kA(A, e, t) {
|
|
|
2072
2072
|
const g = t.json.accessors[h.POSITION], d = g.min, p = g.max;
|
|
2073
2073
|
if (d !== void 0 && p !== void 0) {
|
|
2074
2074
|
if (a.setX(Math.max(Math.abs(d[0]), Math.abs(p[0]))), a.setY(Math.max(Math.abs(d[1]), Math.abs(p[1]))), a.setZ(Math.max(Math.abs(d[2]), Math.abs(p[2]))), g.normalized) {
|
|
2075
|
-
const m = ti(
|
|
2075
|
+
const m = ti(bn[g.componentType]);
|
|
2076
2076
|
a.multiplyScalar(m);
|
|
2077
2077
|
}
|
|
2078
2078
|
r.max(a);
|
|
@@ -2107,7 +2107,7 @@ function Ni(A, e, t) {
|
|
|
2107
2107
|
return e.targets !== void 0 ? vA(A, e.targets, t) : A;
|
|
2108
2108
|
});
|
|
2109
2109
|
}
|
|
2110
|
-
var
|
|
2110
|
+
var fh = function() {
|
|
2111
2111
|
var A = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb", e = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb", t = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2, 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11]), s = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
|
|
2112
2112
|
if (typeof WebAssembly != "object")
|
|
2113
2113
|
return {
|
|
@@ -2125,11 +2125,11 @@ var ph = function() {
|
|
|
2125
2125
|
B[Q++] = B[E] < 60 ? s[B[E]] : (B[E] - 60) * 64 + B[++E];
|
|
2126
2126
|
return B.buffer.slice(0, Q);
|
|
2127
2127
|
}
|
|
2128
|
-
function a(b, B, E, w, Q,
|
|
2129
|
-
var
|
|
2128
|
+
function a(b, B, E, w, Q, _) {
|
|
2129
|
+
var R = i.exports.sbrk, x = E + 3 & -4, v = R(x * w), L = R(Q.length), N = new Uint8Array(i.exports.memory.buffer);
|
|
2130
2130
|
N.set(Q, L);
|
|
2131
2131
|
var O = b(v, E, w, L, Q.length);
|
|
2132
|
-
if (O == 0 &&
|
|
2132
|
+
if (O == 0 && _ && _(v, x, w), B.set(N.subarray(v, v + E * w)), R(v - R(0)), O != 0)
|
|
2133
2133
|
throw new Error("Malformed buffer data: " + O);
|
|
2134
2134
|
}
|
|
2135
2135
|
var c = {
|
|
@@ -2159,11 +2159,11 @@ var ph = function() {
|
|
|
2159
2159
|
URL.revokeObjectURL(w);
|
|
2160
2160
|
}
|
|
2161
2161
|
function m(b, B, E, w, Q) {
|
|
2162
|
-
for (var
|
|
2163
|
-
h[
|
|
2162
|
+
for (var _ = h[0], R = 1; R < h.length; ++R)
|
|
2163
|
+
h[R].pending < _.pending && (_ = h[R]);
|
|
2164
2164
|
return new Promise(function(x, v) {
|
|
2165
2165
|
var L = new Uint8Array(E), N = g++;
|
|
2166
|
-
|
|
2166
|
+
_.pending += b, _.requests[N] = { resolve: x, reject: v }, _.object.postMessage({ id: N, count: b, size: B, source: L, mode: w, filter: Q }, [L.buffer]);
|
|
2167
2167
|
});
|
|
2168
2168
|
}
|
|
2169
2169
|
function I(b) {
|
|
@@ -2192,19 +2192,19 @@ var ph = function() {
|
|
|
2192
2192
|
decodeIndexSequence: function(b, B, E, w) {
|
|
2193
2193
|
a(i.exports.meshopt_decodeIndexSequence, b, B, E, w);
|
|
2194
2194
|
},
|
|
2195
|
-
decodeGltfBuffer: function(b, B, E, w, Q,
|
|
2196
|
-
a(i.exports[l[Q]], b, B, E, w, i.exports[c[
|
|
2195
|
+
decodeGltfBuffer: function(b, B, E, w, Q, _) {
|
|
2196
|
+
a(i.exports[l[Q]], b, B, E, w, i.exports[c[_]]);
|
|
2197
2197
|
},
|
|
2198
2198
|
decodeGltfBufferAsync: function(b, B, E, w, Q) {
|
|
2199
2199
|
return h.length > 0 ? m(b, B, E, l[w], c[Q]) : o.then(function() {
|
|
2200
|
-
var
|
|
2201
|
-
return a(i.exports[l[w]],
|
|
2200
|
+
var _ = new Uint8Array(b * B);
|
|
2201
|
+
return a(i.exports[l[w]], _, b, B, E, i.exports[c[Q]]), _;
|
|
2202
2202
|
});
|
|
2203
2203
|
}
|
|
2204
2204
|
};
|
|
2205
2205
|
}();
|
|
2206
|
-
const
|
|
2207
|
-
class
|
|
2206
|
+
const Qs = /* @__PURE__ */ new WeakMap();
|
|
2207
|
+
class mh extends Nt {
|
|
2208
2208
|
constructor(e) {
|
|
2209
2209
|
super(e), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = {
|
|
2210
2210
|
position: "POSITION",
|
|
@@ -2249,8 +2249,8 @@ class fh extends Nt {
|
|
|
2249
2249
|
}
|
|
2250
2250
|
decodeGeometry(e, t) {
|
|
2251
2251
|
const s = JSON.stringify(t);
|
|
2252
|
-
if (
|
|
2253
|
-
const a =
|
|
2252
|
+
if (Qs.has(e)) {
|
|
2253
|
+
const a = Qs.get(e);
|
|
2254
2254
|
if (a.key === s)
|
|
2255
2255
|
return a.promise;
|
|
2256
2256
|
if (e.byteLength === 0)
|
|
@@ -2264,7 +2264,7 @@ class fh extends Nt {
|
|
|
2264
2264
|
}))).then((a) => this._createGeometry(a.geometry));
|
|
2265
2265
|
return r.catch(() => !0).then(() => {
|
|
2266
2266
|
n && i && this._releaseTask(n, i);
|
|
2267
|
-
}),
|
|
2267
|
+
}), Qs.set(e, {
|
|
2268
2268
|
key: s,
|
|
2269
2269
|
promise: r
|
|
2270
2270
|
}), r;
|
|
@@ -2482,7 +2482,7 @@ class jA {
|
|
|
2482
2482
|
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;
|
|
2483
2483
|
}
|
|
2484
2484
|
}
|
|
2485
|
-
class
|
|
2485
|
+
class Qn {
|
|
2486
2486
|
constructor(e, t, s, n) {
|
|
2487
2487
|
this._dataView = void 0, this._littleEndian = void 0, this._offset = void 0, this._dataView = new DataView(e.buffer, e.byteOffset + t, s), this._littleEndian = n, this._offset = 0;
|
|
2488
2488
|
}
|
|
@@ -2528,19 +2528,19 @@ function Pi(A) {
|
|
|
2528
2528
|
function qA(A) {
|
|
2529
2529
|
const e = new Uint8Array(A.buffer, A.byteOffset, qe.length);
|
|
2530
2530
|
if (e[0] !== qe[0] || e[1] !== qe[1] || e[2] !== qe[2] || e[3] !== qe[3] || e[4] !== qe[4] || e[5] !== qe[5] || e[6] !== qe[6] || e[7] !== qe[7] || e[8] !== qe[8] || e[9] !== qe[9] || e[10] !== qe[10] || e[11] !== qe[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
2531
|
-
const t = new jA(), s = 17 * Uint32Array.BYTES_PER_ELEMENT, n = new
|
|
2531
|
+
const t = new jA(), s = 17 * Uint32Array.BYTES_PER_ELEMENT, n = new Qn(A, qe.length, s, !0);
|
|
2532
2532
|
t.vkFormat = n._nextUint32(), t.typeSize = n._nextUint32(), t.pixelWidth = n._nextUint32(), t.pixelHeight = n._nextUint32(), t.pixelDepth = n._nextUint32(), t.layerCount = n._nextUint32(), t.faceCount = n._nextUint32();
|
|
2533
2533
|
const i = n._nextUint32();
|
|
2534
2534
|
t.supercompressionScheme = n._nextUint32();
|
|
2535
|
-
const o = n._nextUint32(), r = n._nextUint32(), a = n._nextUint32(), c = n._nextUint32(), l = n._nextUint64(), h = n._nextUint64(), g = new
|
|
2535
|
+
const o = n._nextUint32(), r = n._nextUint32(), a = n._nextUint32(), c = n._nextUint32(), l = n._nextUint64(), h = n._nextUint64(), g = new Qn(A, qe.length + s, 3 * i * 8, !0);
|
|
2536
2536
|
for (let K = 0; K < i; K++) t.levels.push({ levelData: new Uint8Array(A.buffer, A.byteOffset + g._nextUint64(), g._nextUint64()), uncompressedByteLength: g._nextUint64() });
|
|
2537
|
-
const d = new
|
|
2537
|
+
const d = new Qn(A, o, r, !0), p = { vendorId: d._skip(4)._nextUint16(), descriptorType: d._nextUint16(), versionNumber: d._nextUint16(), descriptorBlockSize: d._nextUint16(), colorModel: d._nextUint8(), colorPrimaries: d._nextUint8(), transferFunction: d._nextUint8(), flags: d._nextUint8(), texelBlockDimension: [d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8()], bytesPlane: [d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8()], samples: [] }, m = (p.descriptorBlockSize / 4 - 6) / 4;
|
|
2538
2538
|
for (let K = 0; K < m; K++) {
|
|
2539
2539
|
const ee = { bitOffset: d._nextUint16(), bitLength: d._nextUint8(), channelType: d._nextUint8(), samplePosition: [d._nextUint8(), d._nextUint8(), d._nextUint8(), d._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2540
2540
|
64 & ee.channelType ? (ee.sampleLower = d._nextInt32(), ee.sampleUpper = d._nextInt32()) : (ee.sampleLower = d._nextUint32(), ee.sampleUpper = d._nextUint32()), p.samples[K] = ee;
|
|
2541
2541
|
}
|
|
2542
2542
|
t.dataFormatDescriptor.length = 0, t.dataFormatDescriptor.push(p);
|
|
2543
|
-
const I = new
|
|
2543
|
+
const I = new Qn(A, a, c, !0);
|
|
2544
2544
|
for (; I._offset < c; ) {
|
|
2545
2545
|
const K = I._nextUint32(), ee = I._scan(K), te = Pi(ee);
|
|
2546
2546
|
if (t.keyValue[te] = I._nextUint8Array(K - ee.byteLength - 1), te.match(/^ktx/i)) {
|
|
@@ -2550,21 +2550,21 @@ function qA(A) {
|
|
|
2550
2550
|
I._skip(K % 4 ? 4 - K % 4 : 0);
|
|
2551
2551
|
}
|
|
2552
2552
|
if (h <= 0) return t;
|
|
2553
|
-
const b = new
|
|
2553
|
+
const b = new Qn(A, l, h, !0), B = b._nextUint16(), E = b._nextUint16(), w = b._nextUint32(), Q = b._nextUint32(), _ = b._nextUint32(), R = b._nextUint32(), x = [];
|
|
2554
2554
|
for (let K = 0; K < i; K++) x.push({ imageFlags: b._nextUint32(), rgbSliceByteOffset: b._nextUint32(), rgbSliceByteLength: b._nextUint32(), alphaSliceByteOffset: b._nextUint32(), alphaSliceByteLength: b._nextUint32() });
|
|
2555
|
-
const v = l + b._offset, L = v + w, N = L + Q, O = N +
|
|
2555
|
+
const v = l + b._offset, L = v + w, N = L + Q, O = N + _, Z = new Uint8Array(A.buffer, A.byteOffset + v, w), U = new Uint8Array(A.buffer, A.byteOffset + L, Q), q = new Uint8Array(A.buffer, A.byteOffset + N, _), H = new Uint8Array(A.buffer, A.byteOffset + O, R);
|
|
2556
2556
|
return t.globalData = { endpointCount: B, selectorCount: E, imageDescs: x, endpointsData: Z, selectorsData: U, tablesData: q, extendedData: H }, t;
|
|
2557
2557
|
}
|
|
2558
|
-
let
|
|
2559
|
-
const
|
|
2558
|
+
let xs, Mt, ni;
|
|
2559
|
+
const Ss = { env: { emscripten_notify_memory_growth: function(A) {
|
|
2560
2560
|
ni = new Uint8Array(Mt.exports.memory.buffer);
|
|
2561
2561
|
} } };
|
|
2562
2562
|
class zA {
|
|
2563
2563
|
init() {
|
|
2564
|
-
return
|
|
2564
|
+
return xs || (xs = typeof fetch < "u" ? fetch("data:application/wasm;base64," + Oi).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, Ss)).then(this._init) : WebAssembly.instantiate(Buffer.from(Oi, "base64"), Ss).then(this._init), xs);
|
|
2565
2565
|
}
|
|
2566
2566
|
_init(e) {
|
|
2567
|
-
Mt = e.instance,
|
|
2567
|
+
Mt = e.instance, Ss.env.emscripten_notify_memory_growth(0);
|
|
2568
2568
|
}
|
|
2569
2569
|
decode(e, t = 0) {
|
|
2570
2570
|
if (!Mt) throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
@@ -2574,8 +2574,8 @@ class zA {
|
|
|
2574
2574
|
return Mt.exports.free(n), Mt.exports.free(i), r;
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
|
-
const Oi = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ", Ss = /* @__PURE__ */ new WeakMap();
|
|
2578
|
-
let
|
|
2577
|
+
const Oi = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", vs = /* @__PURE__ */ new WeakMap();
|
|
2578
|
+
let Ts = 0, _s;
|
|
2579
2579
|
class Ft extends Nt {
|
|
2580
2580
|
constructor(e) {
|
|
2581
2581
|
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new LA(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
|
|
@@ -2638,9 +2638,9 @@ class Ft extends Nt {
|
|
|
2638
2638
|
const c = new Worker(this.workerSourceURL), l = this.transcoderBinary.slice(0);
|
|
2639
2639
|
return c.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: l }, [l]), c;
|
|
2640
2640
|
});
|
|
2641
|
-
}),
|
|
2641
|
+
}), Ts > 0 && console.warn(
|
|
2642
2642
|
"THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."
|
|
2643
|
-
),
|
|
2643
|
+
), Ts++;
|
|
2644
2644
|
}
|
|
2645
2645
|
return this.transcoderPending;
|
|
2646
2646
|
}
|
|
@@ -2655,8 +2655,8 @@ class Ft extends Nt {
|
|
|
2655
2655
|
parse(e, t, s) {
|
|
2656
2656
|
if (this.workerConfig === null)
|
|
2657
2657
|
throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
|
|
2658
|
-
if (
|
|
2659
|
-
return
|
|
2658
|
+
if (vs.has(e))
|
|
2659
|
+
return vs.get(e).promise.then(t).catch(s);
|
|
2660
2660
|
this._createTexture(e).then((n) => t ? t(n) : null).catch(s);
|
|
2661
2661
|
}
|
|
2662
2662
|
_createTextureFrom(e, t) {
|
|
@@ -2667,9 +2667,9 @@ class Ft extends Nt {
|
|
|
2667
2667
|
l = new Sa(s, o, pt);
|
|
2668
2668
|
else {
|
|
2669
2669
|
const h = s[0].mipmaps;
|
|
2670
|
-
l = t.layerCount > 1 ? new va(h, n, i, t.layerCount, o, pt) : new
|
|
2670
|
+
l = t.layerCount > 1 ? new va(h, n, i, t.layerCount, o, pt) : new Pn(h, n, i, o, pt);
|
|
2671
2671
|
}
|
|
2672
|
-
return l.minFilter = s[0].mipmaps.length === 1 ? mt :
|
|
2672
|
+
return l.minFilter = s[0].mipmaps.length === 1 ? mt : fs, l.magFilter = mt, l.generateMipmaps = !1, l.needsUpdate = !0, l.colorSpace = cr(t), l.premultiplyAlpha = !!(c & UA), l;
|
|
2673
2673
|
}
|
|
2674
2674
|
/**
|
|
2675
2675
|
* @param {ArrayBuffer} buffer
|
|
@@ -2681,10 +2681,10 @@ class Ft extends Nt {
|
|
|
2681
2681
|
if (s.vkFormat !== HA)
|
|
2682
2682
|
return YA(s);
|
|
2683
2683
|
const n = t, i = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: n }, [e])).then((o) => this._createTextureFrom(o.data, s));
|
|
2684
|
-
return
|
|
2684
|
+
return vs.set(e, { promise: i }), i;
|
|
2685
2685
|
}
|
|
2686
2686
|
dispose() {
|
|
2687
|
-
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL),
|
|
2687
|
+
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), Ts--, this;
|
|
2688
2688
|
}
|
|
2689
2689
|
}
|
|
2690
2690
|
Ft.BasisFormat = {
|
|
@@ -2734,8 +2734,8 @@ Ft.BasisWorker = function() {
|
|
|
2734
2734
|
case "transcode":
|
|
2735
2735
|
e.then(() => {
|
|
2736
2736
|
try {
|
|
2737
|
-
const { faces: I, buffers: b, width: B, height: E, hasAlpha: w, format: Q, dfdFlags:
|
|
2738
|
-
self.postMessage({ type: "transcode", id: m.id, faces: I, width: B, height: E, hasAlpha: w, format: Q, dfdFlags:
|
|
2737
|
+
const { faces: I, buffers: b, width: B, height: E, hasAlpha: w, format: Q, dfdFlags: _ } = r(m.buffer);
|
|
2738
|
+
self.postMessage({ type: "transcode", id: m.id, faces: I, width: B, height: E, hasAlpha: w, format: Q, dfdFlags: _ }, b);
|
|
2739
2739
|
} catch (I) {
|
|
2740
2740
|
console.error(I), self.postMessage({ type: "error", id: m.id, error: I.message });
|
|
2741
2741
|
}
|
|
@@ -2757,13 +2757,13 @@ Ft.BasisWorker = function() {
|
|
|
2757
2757
|
}
|
|
2758
2758
|
if (!m.isValid())
|
|
2759
2759
|
throw I(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
|
|
2760
|
-
const b = m.isUASTC() ? i.UASTC_4x4 : i.ETC1S, B = m.getWidth(), E = m.getHeight(), w = m.getLayers() || 1, Q = m.getLevels(),
|
|
2760
|
+
const b = m.isUASTC() ? i.UASTC_4x4 : i.ETC1S, B = m.getWidth(), E = m.getHeight(), w = m.getLayers() || 1, Q = m.getLevels(), _ = m.getFaces(), R = m.getHasAlpha(), x = m.getDFDFlags(), { transcoderFormat: v, engineFormat: L } = h(b, B, E, R);
|
|
2761
2761
|
if (!B || !E || !Q)
|
|
2762
2762
|
throw I(), new Error("THREE.KTX2Loader: Invalid texture");
|
|
2763
2763
|
if (!m.startTranscoding())
|
|
2764
2764
|
throw I(), new Error("THREE.KTX2Loader: .startTranscoding failed");
|
|
2765
2765
|
const N = [], O = [];
|
|
2766
|
-
for (let Z = 0; Z <
|
|
2766
|
+
for (let Z = 0; Z < _; Z++) {
|
|
2767
2767
|
const U = [];
|
|
2768
2768
|
for (let q = 0; q < Q; q++) {
|
|
2769
2769
|
const H = [];
|
|
@@ -2781,7 +2781,7 @@ Ft.BasisWorker = function() {
|
|
|
2781
2781
|
}
|
|
2782
2782
|
N.push({ mipmaps: U, width: B, height: E, format: L });
|
|
2783
2783
|
}
|
|
2784
|
-
return I(), { faces: N, buffers: O, width: B, height: E, hasAlpha:
|
|
2784
|
+
return I(), { faces: N, buffers: O, width: B, height: E, hasAlpha: R, format: L, dfdFlags: x };
|
|
2785
2785
|
}
|
|
2786
2786
|
const a = [
|
|
2787
2787
|
{
|
|
@@ -2847,9 +2847,9 @@ Ft.BasisWorker = function() {
|
|
|
2847
2847
|
let B, E;
|
|
2848
2848
|
const w = p === i.ETC1S ? c : l;
|
|
2849
2849
|
for (let Q = 0; Q < w.length; Q++) {
|
|
2850
|
-
const
|
|
2851
|
-
if (A[
|
|
2852
|
-
return B =
|
|
2850
|
+
const _ = w[Q];
|
|
2851
|
+
if (A[_.if] && _.basisFormat.includes(p) && !(b && _.transcoderFormat.length < 2) && !(_.needsPowerOfTwo && !(g(m) && g(I))))
|
|
2852
|
+
return B = _.transcoderFormat[b ? 1 : 0], E = _.engineFormat[b ? 1 : 0], { transcoderFormat: B, engineFormat: E };
|
|
2853
2853
|
}
|
|
2854
2854
|
return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."), B = n.RGBA32, E = s.RGBAFormat, { transcoderFormat: B, engineFormat: E };
|
|
2855
2855
|
}
|
|
@@ -2872,23 +2872,23 @@ Ft.BasisWorker = function() {
|
|
|
2872
2872
|
return I;
|
|
2873
2873
|
}
|
|
2874
2874
|
};
|
|
2875
|
-
const KA = /* @__PURE__ */ new Set([Kt,
|
|
2875
|
+
const KA = /* @__PURE__ */ new Set([Kt, kn, pn]), Rs = {
|
|
2876
2876
|
[or]: Kt,
|
|
2877
2877
|
[nr]: Kt,
|
|
2878
2878
|
[Zo]: Kt,
|
|
2879
2879
|
[$o]: Kt,
|
|
2880
|
-
[ir]:
|
|
2881
|
-
[tr]:
|
|
2882
|
-
[Vo]:
|
|
2883
|
-
[Xo]:
|
|
2884
|
-
[sr]:
|
|
2885
|
-
[er]:
|
|
2886
|
-
[Wo]:
|
|
2887
|
-
[Jo]:
|
|
2880
|
+
[ir]: kn,
|
|
2881
|
+
[tr]: kn,
|
|
2882
|
+
[Vo]: kn,
|
|
2883
|
+
[Xo]: kn,
|
|
2884
|
+
[sr]: pn,
|
|
2885
|
+
[er]: pn,
|
|
2886
|
+
[Wo]: pn,
|
|
2887
|
+
[Jo]: pn,
|
|
2888
2888
|
[Ar]: Uo,
|
|
2889
|
-
[ar]:
|
|
2890
|
-
[rr]:
|
|
2891
|
-
},
|
|
2889
|
+
[ar]: _i,
|
|
2890
|
+
[rr]: _i
|
|
2891
|
+
}, Ds = {
|
|
2892
2892
|
[or]: St,
|
|
2893
2893
|
[nr]: st,
|
|
2894
2894
|
[Zo]: pt,
|
|
@@ -2910,10 +2910,10 @@ async function YA(A) {
|
|
|
2910
2910
|
if (Rs[e] === void 0)
|
|
2911
2911
|
throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
|
|
2912
2912
|
let t;
|
|
2913
|
-
A.supercompressionScheme === Ui && (
|
|
2913
|
+
A.supercompressionScheme === Ui && (_s || (_s = new Promise(async (i) => {
|
|
2914
2914
|
const o = new zA();
|
|
2915
2915
|
await o.init(), i(o);
|
|
2916
|
-
})), t = await
|
|
2916
|
+
})), t = await _s);
|
|
2917
2917
|
const s = [];
|
|
2918
2918
|
for (let i = 0; i < A.levels.length; i++) {
|
|
2919
2919
|
const o = Math.max(1, A.pixelWidth >> i), r = Math.max(1, A.pixelHeight >> i), a = A.pixelDepth ? Math.max(1, A.pixelDepth >> i) : 0, c = A.levels[i];
|
|
@@ -2925,11 +2925,11 @@ async function YA(A) {
|
|
|
2925
2925
|
else
|
|
2926
2926
|
throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
2927
2927
|
let h;
|
|
2928
|
-
|
|
2928
|
+
Ds[e] === St ? h = new Float32Array(
|
|
2929
2929
|
l.buffer,
|
|
2930
2930
|
l.byteOffset,
|
|
2931
2931
|
l.byteLength / Float32Array.BYTES_PER_ELEMENT
|
|
2932
|
-
) :
|
|
2932
|
+
) : Ds[e] === st ? h = new Uint16Array(
|
|
2933
2933
|
l.buffer,
|
|
2934
2934
|
l.byteOffset,
|
|
2935
2935
|
l.byteLength / Uint16Array.BYTES_PER_ELEMENT
|
|
@@ -2942,18 +2942,18 @@ async function YA(A) {
|
|
|
2942
2942
|
}
|
|
2943
2943
|
let n;
|
|
2944
2944
|
if (KA.has(Rs[e]))
|
|
2945
|
-
n = A.pixelDepth === 0 ? new
|
|
2945
|
+
n = A.pixelDepth === 0 ? new Ra(s[0].data, A.pixelWidth, A.pixelHeight) : new Da(s[0].data, A.pixelWidth, A.pixelHeight, A.pixelDepth);
|
|
2946
2946
|
else {
|
|
2947
2947
|
if (A.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
2948
|
-
n = new
|
|
2948
|
+
n = new Pn(s, A.pixelWidth, A.pixelHeight);
|
|
2949
2949
|
}
|
|
2950
|
-
return n.mipmaps = s, n.type =
|
|
2950
|
+
return n.mipmaps = s, n.type = Ds[e], n.format = Rs[e], n.colorSpace = cr(A), n.needsUpdate = !0, Promise.resolve(n);
|
|
2951
2951
|
}
|
|
2952
2952
|
function cr(A) {
|
|
2953
2953
|
const e = A.dataFormatDescriptor[0];
|
|
2954
|
-
return e.colorPrimaries === PA ? e.transferFunction === Gi ? ge : Ve : e.colorPrimaries === OA ? e.transferFunction === Gi ? Ta :
|
|
2954
|
+
return e.colorPrimaries === PA ? e.transferFunction === Gi ? ge : Ve : e.colorPrimaries === OA ? e.transferFunction === Gi ? Ta : _a : e.colorPrimaries === GA ? ds : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), ds);
|
|
2955
2955
|
}
|
|
2956
|
-
class
|
|
2956
|
+
class Ih extends Ma {
|
|
2957
2957
|
constructor(e, t = {}) {
|
|
2958
2958
|
const s = t.font;
|
|
2959
2959
|
if (s === void 0)
|
|
@@ -2965,7 +2965,7 @@ class mh extends Ma {
|
|
|
2965
2965
|
this.type = "TextGeometry";
|
|
2966
2966
|
}
|
|
2967
2967
|
}
|
|
2968
|
-
class
|
|
2968
|
+
class bh extends Nt {
|
|
2969
2969
|
constructor(e) {
|
|
2970
2970
|
super(e);
|
|
2971
2971
|
}
|
|
@@ -3038,8 +3038,8 @@ const Xt = new Ii(), He = new P(), jt = new P(), we = new ve(), Hi = {
|
|
|
3038
3038
|
X: new P(1, 0, 0),
|
|
3039
3039
|
Y: new P(0, 1, 0),
|
|
3040
3040
|
Z: new P(0, 0, 1)
|
|
3041
|
-
},
|
|
3042
|
-
class
|
|
3041
|
+
}, Ms = { type: "change" }, ji = { type: "mouseDown", mode: null }, qi = { type: "mouseUp", mode: null }, zi = { type: "objectChange" };
|
|
3042
|
+
class Eh extends Go {
|
|
3043
3043
|
constructor(e, t = null) {
|
|
3044
3044
|
super(void 0, t);
|
|
3045
3045
|
const s = new nc(this);
|
|
@@ -3055,8 +3055,8 @@ class bh extends Go {
|
|
|
3055
3055
|
get: function() {
|
|
3056
3056
|
return Q !== void 0 ? Q : w;
|
|
3057
3057
|
},
|
|
3058
|
-
set: function(
|
|
3059
|
-
Q !==
|
|
3058
|
+
set: function(_) {
|
|
3059
|
+
Q !== _ && (Q = _, i[E] = _, n[E] = _, o.dispatchEvent({ type: E + "-changed", value: _ }), o.dispatchEvent(Ms));
|
|
3060
3060
|
}
|
|
3061
3061
|
}), o[E] = w, i[E] = w, n[E] = w;
|
|
3062
3062
|
}
|
|
@@ -3076,13 +3076,13 @@ class bh extends Go {
|
|
|
3076
3076
|
pointerHover(e) {
|
|
3077
3077
|
if (this.object === void 0 || this.dragging === !0) return;
|
|
3078
3078
|
e !== null && Xt.setFromCamera(e, this.camera);
|
|
3079
|
-
const t =
|
|
3079
|
+
const t = ks(this._gizmo.picker[this.mode], Xt);
|
|
3080
3080
|
t ? this.axis = t.object.name : this.axis = null;
|
|
3081
3081
|
}
|
|
3082
3082
|
pointerDown(e) {
|
|
3083
3083
|
if (!(this.object === void 0 || this.dragging === !0 || e != null && e.button !== 0) && this.axis !== null) {
|
|
3084
3084
|
e !== null && Xt.setFromCamera(e, this.camera);
|
|
3085
|
-
const t =
|
|
3085
|
+
const t = ks(this._plane, Xt, !0);
|
|
3086
3086
|
t && (this.object.updateMatrixWorld(), this.object.parent.updateMatrixWorld(), this._positionStart.copy(this.object.position), this._quaternionStart.copy(this.object.quaternion), this._scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart), this.pointStart.copy(t.point).sub(this.worldPositionStart)), this.dragging = !0, ji.mode = this.mode, this.dispatchEvent(ji);
|
|
3087
3087
|
}
|
|
3088
3088
|
}
|
|
@@ -3091,7 +3091,7 @@ class bh extends Go {
|
|
|
3091
3091
|
let i = this.space;
|
|
3092
3092
|
if (s === "scale" ? i = "local" : (t === "E" || t === "XYZE" || t === "XYZ") && (i = "world"), n === void 0 || t === null || this.dragging === !1 || e !== null && e.button !== -1) return;
|
|
3093
3093
|
e !== null && Xt.setFromCamera(e, this.camera);
|
|
3094
|
-
const o =
|
|
3094
|
+
const o = ks(this._plane, Xt, !0);
|
|
3095
3095
|
if (o) {
|
|
3096
3096
|
if (this.pointEnd.copy(o.point).sub(this.worldPositionStart), s === "translate")
|
|
3097
3097
|
this._offset.copy(this.pointEnd).sub(this.pointStart), i === "local" && t !== "XYZ" && this._offset.applyQuaternion(this._worldQuaternionInv), t.indexOf("X") === -1 && (this._offset.x = 0), t.indexOf("Y") === -1 && (this._offset.y = 0), t.indexOf("Z") === -1 && (this._offset.z = 0), i === "local" && t !== "XYZ" ? this._offset.applyQuaternion(this._quaternionStart).divide(this._parentScale) : this._offset.applyQuaternion(this._parentQuaternionInv).divide(this._parentScale), n.position.copy(this._offset).add(this._positionStart), this.translationSnap && (i === "local" && (n.position.applyQuaternion(we.copy(this._quaternionStart).invert()), t.search("X") !== -1 && (n.position.x = Math.round(n.position.x / this.translationSnap) * this.translationSnap), t.search("Y") !== -1 && (n.position.y = Math.round(n.position.y / this.translationSnap) * this.translationSnap), t.search("Z") !== -1 && (n.position.z = Math.round(n.position.z / this.translationSnap) * this.translationSnap), n.position.applyQuaternion(this._quaternionStart)), i === "world" && (n.parent && n.position.add(He.setFromMatrixPosition(n.parent.matrixWorld)), t.search("X") !== -1 && (n.position.x = Math.round(n.position.x / this.translationSnap) * this.translationSnap), t.search("Y") !== -1 && (n.position.y = Math.round(n.position.y / this.translationSnap) * this.translationSnap), t.search("Z") !== -1 && (n.position.z = Math.round(n.position.z / this.translationSnap) * this.translationSnap), n.parent && n.position.sub(He.setFromMatrixPosition(n.parent.matrixWorld))));
|
|
@@ -3108,7 +3108,7 @@ class bh extends Go {
|
|
|
3108
3108
|
let a = !1;
|
|
3109
3109
|
t === "XYZE" ? (this.rotationAxis.copy(this._offset).cross(this.eye).normalize(), this.rotationAngle = this._offset.dot(He.copy(this.rotationAxis).cross(this.eye)) * r) : (t === "X" || t === "Y" || t === "Z") && (this.rotationAxis.copy(Hi[t]), He.copy(Hi[t]), i === "local" && He.applyQuaternion(this.worldQuaternion), He.cross(this.eye), He.length() === 0 ? a = !0 : this.rotationAngle = this._offset.dot(He.normalize()) * r), (t === "E" || a) && (this.rotationAxis.copy(this.eye), this.rotationAngle = this.pointEnd.angleTo(this.pointStart), this._startNorm.copy(this.pointStart).normalize(), this._endNorm.copy(this.pointEnd).normalize(), this.rotationAngle *= this._endNorm.cross(this._startNorm).dot(this.eye) < 0 ? 1 : -1), this.rotationSnap && (this.rotationAngle = Math.round(this.rotationAngle / this.rotationSnap) * this.rotationSnap), i === "local" && t !== "E" && t !== "XYZE" ? (n.quaternion.copy(this._quaternionStart), n.quaternion.multiply(we.setFromAxisAngle(this.rotationAxis, this.rotationAngle)).normalize()) : (this.rotationAxis.applyQuaternion(this._parentQuaternionInv), n.quaternion.copy(we.setFromAxisAngle(this.rotationAxis, this.rotationAngle)), n.quaternion.multiply(this._quaternionStart).normalize());
|
|
3110
3110
|
}
|
|
3111
|
-
this.dispatchEvent(
|
|
3111
|
+
this.dispatchEvent(Ms), this.dispatchEvent(zi);
|
|
3112
3112
|
}
|
|
3113
3113
|
}
|
|
3114
3114
|
pointerUp(e) {
|
|
@@ -3128,7 +3128,7 @@ class bh extends Go {
|
|
|
3128
3128
|
return this.object = void 0, this.axis = null, this._root.visible = !1, this;
|
|
3129
3129
|
}
|
|
3130
3130
|
reset() {
|
|
3131
|
-
this.enabled && this.dragging && (this.object.position.copy(this._positionStart), this.object.quaternion.copy(this._quaternionStart), this.object.scale.copy(this._scaleStart), this.dispatchEvent(
|
|
3131
|
+
this.enabled && this.dragging && (this.object.position.copy(this._positionStart), this.object.quaternion.copy(this._quaternionStart), this.object.scale.copy(this._scaleStart), this.dispatchEvent(Ms), this.dispatchEvent(zi), this.pointStart.copy(this.pointEnd));
|
|
3132
3132
|
}
|
|
3133
3133
|
getRaycaster() {
|
|
3134
3134
|
return Xt;
|
|
@@ -3190,14 +3190,14 @@ function ec(A) {
|
|
|
3190
3190
|
function tc(A) {
|
|
3191
3191
|
this.enabled && (this.domElement.releasePointerCapture(A.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.pointerUp(this._getPointer(A)));
|
|
3192
3192
|
}
|
|
3193
|
-
function
|
|
3193
|
+
function ks(A, e, t) {
|
|
3194
3194
|
const s = e.intersectObject(A, !0);
|
|
3195
3195
|
for (let n = 0; n < s.length; n++)
|
|
3196
3196
|
if (s[n].object.visible || t)
|
|
3197
3197
|
return s[n];
|
|
3198
3198
|
return !1;
|
|
3199
3199
|
}
|
|
3200
|
-
const
|
|
3200
|
+
const Wn = new zt(), me = new P(0, 1, 0), Ki = new P(0, 0, 0), Yi = new ue(), Vn = new ve(), as = new ve(), Et = new P(), Ji = new ue(), Fn = new P(1, 0, 0), en = new P(0, 1, 0), Ln = new P(0, 0, 1), Xn = new P(), xn = new P(), Sn = new P();
|
|
3201
3201
|
class nc extends xt {
|
|
3202
3202
|
constructor(e) {
|
|
3203
3203
|
super(), this.isTransformControlsRoot = !0, this.controls = e, this.visible = !1;
|
|
@@ -3254,7 +3254,7 @@ class sc extends xt {
|
|
|
3254
3254
|
const B = new Ke(75e-4, 75e-4, 0.5, 3);
|
|
3255
3255
|
B.translate(0, 0.25, 0);
|
|
3256
3256
|
function E(q, H) {
|
|
3257
|
-
const K = new
|
|
3257
|
+
const K = new Bn(q, 75e-4, 3, 64, H * Math.PI * 2);
|
|
3258
3258
|
return K.rotateY(Math.PI / 2), K.rotateX(Math.PI / 2), K;
|
|
3259
3259
|
}
|
|
3260
3260
|
function w() {
|
|
@@ -3278,7 +3278,7 @@ class sc extends xt {
|
|
|
3278
3278
|
[new z(B, r), null, [Math.PI / 2, 0, 0]]
|
|
3279
3279
|
],
|
|
3280
3280
|
XYZ: [
|
|
3281
|
-
[new z(new
|
|
3281
|
+
[new z(new Jn(0.1, 0), h.clone()), [0, 0, 0]]
|
|
3282
3282
|
],
|
|
3283
3283
|
XY: [
|
|
3284
3284
|
[new z(new je(0.15, 0.15, 0.01), l.clone()), [0.15, 0.15, 0]]
|
|
@@ -3289,7 +3289,7 @@ class sc extends xt {
|
|
|
3289
3289
|
XZ: [
|
|
3290
3290
|
[new z(new je(0.15, 0.15, 0.01), c.clone()), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]]
|
|
3291
3291
|
]
|
|
3292
|
-
},
|
|
3292
|
+
}, _ = {
|
|
3293
3293
|
X: [
|
|
3294
3294
|
[new z(new Ke(0.2, 0, 0.6, 4), s), [0.3, 0, 0], [0, 0, -Math.PI / 2]],
|
|
3295
3295
|
[new z(new Ke(0.2, 0, 0.6, 4), s), [-0.3, 0, 0], [0, 0, Math.PI / 2]]
|
|
@@ -3303,7 +3303,7 @@ class sc extends xt {
|
|
|
3303
3303
|
[new z(new Ke(0.2, 0, 0.6, 4), s), [0, 0, -0.3], [-Math.PI / 2, 0, 0]]
|
|
3304
3304
|
],
|
|
3305
3305
|
XYZ: [
|
|
3306
|
-
[new z(new
|
|
3306
|
+
[new z(new Jn(0.2, 0), s)]
|
|
3307
3307
|
],
|
|
3308
3308
|
XY: [
|
|
3309
3309
|
[new z(new je(0.2, 0.2, 0.01), s), [0.15, 0.15, 0]]
|
|
@@ -3314,12 +3314,12 @@ class sc extends xt {
|
|
|
3314
3314
|
XZ: [
|
|
3315
3315
|
[new z(new je(0.2, 0.2, 0.01), s), [0.15, 0, 0.15], [-Math.PI / 2, 0, 0]]
|
|
3316
3316
|
]
|
|
3317
|
-
},
|
|
3317
|
+
}, R = {
|
|
3318
3318
|
START: [
|
|
3319
|
-
[new z(new
|
|
3319
|
+
[new z(new Jn(0.01, 2), n), null, null, null, "helper"]
|
|
3320
3320
|
],
|
|
3321
3321
|
END: [
|
|
3322
|
-
[new z(new
|
|
3322
|
+
[new z(new Jn(0.01, 2), n), null, null, null, "helper"]
|
|
3323
3323
|
],
|
|
3324
3324
|
DELTA: [
|
|
3325
3325
|
[new dt(w(), n), null, null, null, "helper"]
|
|
@@ -3358,16 +3358,16 @@ class sc extends xt {
|
|
|
3358
3358
|
[new z(new ci(0.25, 10, 8), s)]
|
|
3359
3359
|
],
|
|
3360
3360
|
X: [
|
|
3361
|
-
[new z(new
|
|
3361
|
+
[new z(new Bn(0.5, 0.1, 4, 24), s), [0, 0, 0], [0, -Math.PI / 2, -Math.PI / 2]]
|
|
3362
3362
|
],
|
|
3363
3363
|
Y: [
|
|
3364
|
-
[new z(new
|
|
3364
|
+
[new z(new Bn(0.5, 0.1, 4, 24), s), [0, 0, 0], [Math.PI / 2, 0, 0]]
|
|
3365
3365
|
],
|
|
3366
3366
|
Z: [
|
|
3367
|
-
[new z(new
|
|
3367
|
+
[new z(new Bn(0.5, 0.1, 4, 24), s), [0, 0, 0], [0, 0, -Math.PI / 2]]
|
|
3368
3368
|
],
|
|
3369
3369
|
E: [
|
|
3370
|
-
[new z(new
|
|
3370
|
+
[new z(new Bn(0.75, 0.1, 2, 24), s)]
|
|
3371
3371
|
]
|
|
3372
3372
|
}, N = {
|
|
3373
3373
|
X: [
|
|
@@ -3444,11 +3444,11 @@ class sc extends xt {
|
|
|
3444
3444
|
}
|
|
3445
3445
|
return H;
|
|
3446
3446
|
}
|
|
3447
|
-
this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = U(Q)), this.add(this.gizmo.rotate = U(x)), this.add(this.gizmo.scale = U(N)), this.add(this.picker.translate = U(
|
|
3447
|
+
this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = U(Q)), this.add(this.gizmo.rotate = U(x)), this.add(this.gizmo.scale = U(N)), this.add(this.picker.translate = U(_)), this.add(this.picker.rotate = U(L)), this.add(this.picker.scale = U(O)), this.add(this.helper.translate = U(R)), this.add(this.helper.rotate = U(v)), this.add(this.helper.scale = U(Z)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;
|
|
3448
3448
|
}
|
|
3449
3449
|
// updateMatrixWorld will update transformations and appearance of individual handles
|
|
3450
3450
|
updateMatrixWorld(e) {
|
|
3451
|
-
const s = (this.mode === "scale" ? "local" : this.space) === "local" ? this.worldQuaternion :
|
|
3451
|
+
const s = (this.mode === "scale" ? "local" : this.space) === "local" ? this.worldQuaternion : as;
|
|
3452
3452
|
this.gizmo.translate.visible = this.mode === "translate", this.gizmo.rotate.visible = this.mode === "rotate", this.gizmo.scale.visible = this.mode === "scale", this.helper.translate.visible = this.mode === "translate", this.helper.rotate.visible = this.mode === "rotate", this.helper.scale.visible = this.mode === "scale";
|
|
3453
3453
|
let n = [];
|
|
3454
3454
|
n = n.concat(this.picker[this.mode].children), n = n.concat(this.gizmo[this.mode].children), n = n.concat(this.helper[this.mode].children);
|
|
@@ -3457,10 +3457,10 @@ class sc extends xt {
|
|
|
3457
3457
|
o.visible = !0, o.rotation.set(0, 0, 0), o.position.copy(this.worldPosition);
|
|
3458
3458
|
let r;
|
|
3459
3459
|
if (this.camera.isOrthographicCamera ? r = (this.camera.top - this.camera.bottom) / this.camera.zoom : r = this.worldPosition.distanceTo(this.cameraPosition) * Math.min(1.9 * Math.tan(Math.PI * this.camera.fov / 360) / this.camera.zoom, 7), o.scale.set(1, 1, 1).multiplyScalar(r * this.size / 4), o.tag === "helper") {
|
|
3460
|
-
o.visible = !1, o.name === "AXIS" ? (o.visible = !!this.axis, this.axis === "X" && (we.setFromEuler(
|
|
3460
|
+
o.visible = !1, o.name === "AXIS" ? (o.visible = !!this.axis, this.axis === "X" && (we.setFromEuler(Wn.set(0, 0, 0)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "Y" && (we.setFromEuler(Wn.set(0, 0, Math.PI / 2)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(en).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "Z" && (we.setFromEuler(Wn.set(0, Math.PI / 2, 0)), o.quaternion.copy(s).multiply(we), Math.abs(me.copy(Ln).applyQuaternion(s).dot(this.eye)) > 0.9 && (o.visible = !1)), this.axis === "XYZE" && (we.setFromEuler(Wn.set(0, Math.PI / 2, 0)), me.copy(this.rotationAxis), o.quaternion.setFromRotationMatrix(Yi.lookAt(Ki, me, en)), o.quaternion.multiply(we), o.visible = this.dragging), this.axis === "E" && (o.visible = !1)) : o.name === "START" ? (o.position.copy(this.worldPositionStart), o.visible = this.dragging) : o.name === "END" ? (o.position.copy(this.worldPosition), o.visible = this.dragging) : o.name === "DELTA" ? (o.position.copy(this.worldPositionStart), o.quaternion.copy(this.worldQuaternionStart), He.set(1e-10, 1e-10, 1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1), He.applyQuaternion(this.worldQuaternionStart.clone().invert()), o.scale.copy(He), o.visible = this.dragging) : (o.quaternion.copy(s), this.dragging ? o.position.copy(this.worldPositionStart) : o.position.copy(this.worldPosition), this.axis && (o.visible = this.axis.search(o.name) !== -1));
|
|
3461
3461
|
continue;
|
|
3462
3462
|
}
|
|
3463
|
-
o.quaternion.copy(s), this.mode === "translate" || this.mode === "scale" ? (o.name === "X" && Math.abs(me.copy(
|
|
3463
|
+
o.quaternion.copy(s), this.mode === "translate" || this.mode === "scale" ? (o.name === "X" && Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "Y" && Math.abs(me.copy(en).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "Z" && Math.abs(me.copy(Ln).applyQuaternion(s).dot(this.eye)) > 0.99 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "XY" && Math.abs(me.copy(Ln).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "YZ" && Math.abs(me.copy(Fn).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1), o.name === "XZ" && Math.abs(me.copy(en).applyQuaternion(s).dot(this.eye)) < 0.2 && (o.scale.set(1e-10, 1e-10, 1e-10), o.visible = !1)) : this.mode === "rotate" && (Vn.copy(s), me.copy(this.eye).applyQuaternion(we.copy(s).invert()), o.name.search("E") !== -1 && o.quaternion.setFromRotationMatrix(Yi.lookAt(this.eye, Ki, en)), o.name === "X" && (we.setFromAxisAngle(Fn, Math.atan2(-me.y, me.z)), we.multiplyQuaternions(Vn, we), o.quaternion.copy(we)), o.name === "Y" && (we.setFromAxisAngle(en, Math.atan2(me.x, me.z)), we.multiplyQuaternions(Vn, we), o.quaternion.copy(we)), o.name === "Z" && (we.setFromAxisAngle(Ln, Math.atan2(me.y, me.x)), we.multiplyQuaternions(Vn, we), o.quaternion.copy(we))), o.visible = o.visible && (o.name.indexOf("X") === -1 || this.showX), o.visible = o.visible && (o.name.indexOf("Y") === -1 || this.showY), o.visible = o.visible && (o.name.indexOf("Z") === -1 || this.showZ), o.visible = o.visible && (o.name.indexOf("E") === -1 || this.showX && this.showY && this.showZ), o.material._color = o.material._color || o.material.color.clone(), o.material._opacity = o.material._opacity || o.material.opacity, o.material.color.copy(o.material._color), o.material.opacity = o.material._opacity, this.enabled && this.axis && (o.name === this.axis || this.axis.split("").some(function(a) {
|
|
3464
3464
|
return o.name === a;
|
|
3465
3465
|
})) && (o.material.color.setHex(16776960), o.material.opacity = 1);
|
|
3466
3466
|
}
|
|
@@ -3476,27 +3476,27 @@ class ic extends z {
|
|
|
3476
3476
|
}
|
|
3477
3477
|
updateMatrixWorld(e) {
|
|
3478
3478
|
let t = this.space;
|
|
3479
|
-
switch (this.position.copy(this.worldPosition), this.mode === "scale" && (t = "local"),
|
|
3479
|
+
switch (this.position.copy(this.worldPosition), this.mode === "scale" && (t = "local"), Xn.copy(Fn).applyQuaternion(t === "local" ? this.worldQuaternion : as), xn.copy(en).applyQuaternion(t === "local" ? this.worldQuaternion : as), Sn.copy(Ln).applyQuaternion(t === "local" ? this.worldQuaternion : as), me.copy(xn), this.mode) {
|
|
3480
3480
|
case "translate":
|
|
3481
3481
|
case "scale":
|
|
3482
3482
|
switch (this.axis) {
|
|
3483
3483
|
case "X":
|
|
3484
|
-
me.copy(this.eye).cross(
|
|
3484
|
+
me.copy(this.eye).cross(Xn), Et.copy(Xn).cross(me);
|
|
3485
3485
|
break;
|
|
3486
3486
|
case "Y":
|
|
3487
|
-
me.copy(this.eye).cross(
|
|
3487
|
+
me.copy(this.eye).cross(xn), Et.copy(xn).cross(me);
|
|
3488
3488
|
break;
|
|
3489
3489
|
case "Z":
|
|
3490
|
-
me.copy(this.eye).cross(
|
|
3490
|
+
me.copy(this.eye).cross(Sn), Et.copy(Sn).cross(me);
|
|
3491
3491
|
break;
|
|
3492
3492
|
case "XY":
|
|
3493
|
-
Et.copy(
|
|
3493
|
+
Et.copy(Sn);
|
|
3494
3494
|
break;
|
|
3495
3495
|
case "YZ":
|
|
3496
|
-
Et.copy(
|
|
3496
|
+
Et.copy(Xn);
|
|
3497
3497
|
break;
|
|
3498
3498
|
case "XZ":
|
|
3499
|
-
me.copy(
|
|
3499
|
+
me.copy(Sn), Et.copy(xn);
|
|
3500
3500
|
break;
|
|
3501
3501
|
case "XYZ":
|
|
3502
3502
|
case "E":
|
|
@@ -3517,7 +3517,7 @@ fflate - fast JavaScript compression/decompression
|
|
|
3517
3517
|
Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
|
|
3518
3518
|
version 0.8.2
|
|
3519
3519
|
*/
|
|
3520
|
-
var
|
|
3520
|
+
var Re = Uint8Array, it = Uint16Array, Ei = Int32Array, Is = new Re([
|
|
3521
3521
|
0,
|
|
3522
3522
|
0,
|
|
3523
3523
|
0,
|
|
@@ -3552,7 +3552,7 @@ var _e = Uint8Array, it = Uint16Array, Ei = Int32Array, ms = new _e([
|
|
|
3552
3552
|
0,
|
|
3553
3553
|
/* impossible */
|
|
3554
3554
|
0
|
|
3555
|
-
]),
|
|
3555
|
+
]), bs = new Re([
|
|
3556
3556
|
0,
|
|
3557
3557
|
0,
|
|
3558
3558
|
0,
|
|
@@ -3586,16 +3586,16 @@ var _e = Uint8Array, it = Uint16Array, Ei = Int32Array, ms = new _e([
|
|
|
3586
3586
|
/* unused */
|
|
3587
3587
|
0,
|
|
3588
3588
|
0
|
|
3589
|
-
]), si = new
|
|
3589
|
+
]), si = new Re([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), lr = function(A, e) {
|
|
3590
3590
|
for (var t = new it(31), s = 0; s < 31; ++s)
|
|
3591
3591
|
t[s] = e += 1 << A[s - 1];
|
|
3592
3592
|
for (var n = new Ei(t[30]), s = 1; s < 30; ++s)
|
|
3593
3593
|
for (var i = t[s]; i < t[s + 1]; ++i)
|
|
3594
3594
|
n[i] = i - t[s] << 5 | s;
|
|
3595
3595
|
return { b: t, r: n };
|
|
3596
|
-
}, hr = lr(
|
|
3596
|
+
}, hr = lr(Is, 2), ur = hr.b, ii = hr.r;
|
|
3597
3597
|
ur[28] = 258, ii[258] = 28;
|
|
3598
|
-
var gr = lr(
|
|
3598
|
+
var gr = lr(bs, 0), oc = gr.b, Wi = gr.r, oi = new it(32768);
|
|
3599
3599
|
for (var Be = 0; Be < 32768; ++Be) {
|
|
3600
3600
|
var qt = (Be & 43690) >> 1 | (Be & 21845) << 1;
|
|
3601
3601
|
qt = (qt & 52428) >> 2 | (qt & 13107) << 2, qt = (qt & 61680) >> 4 | (qt & 3855) << 4, oi[Be] = ((qt & 65280) >> 8 | (qt & 255) << 8) >> 1;
|
|
@@ -3618,7 +3618,7 @@ var vt = function(A, e, t) {
|
|
|
3618
3618
|
for (r = new it(s), n = 0; n < s; ++n)
|
|
3619
3619
|
A[n] && (r[n] = oi[o[A[n] - 1]++] >> 15 - A[n]);
|
|
3620
3620
|
return r;
|
|
3621
|
-
}, Yt = new
|
|
3621
|
+
}, Yt = new Re(288);
|
|
3622
3622
|
for (var Be = 0; Be < 144; ++Be)
|
|
3623
3623
|
Yt[Be] = 8;
|
|
3624
3624
|
for (var Be = 144; Be < 256; ++Be)
|
|
@@ -3627,23 +3627,23 @@ for (var Be = 256; Be < 280; ++Be)
|
|
|
3627
3627
|
Yt[Be] = 7;
|
|
3628
3628
|
for (var Be = 280; Be < 288; ++Be)
|
|
3629
3629
|
Yt[Be] = 8;
|
|
3630
|
-
var
|
|
3630
|
+
var Hn = new Re(32);
|
|
3631
3631
|
for (var Be = 0; Be < 32; ++Be)
|
|
3632
|
-
|
|
3633
|
-
var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /* @__PURE__ */ vt(
|
|
3632
|
+
Hn[Be] = 5;
|
|
3633
|
+
var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /* @__PURE__ */ vt(Hn, 5, 0), cc = /* @__PURE__ */ vt(Hn, 5, 1), Fs = function(A) {
|
|
3634
3634
|
for (var e = A[0], t = 1; t < A.length; ++t)
|
|
3635
3635
|
A[t] > e && (e = A[t]);
|
|
3636
3636
|
return e;
|
|
3637
3637
|
}, gt = function(A, e, t) {
|
|
3638
3638
|
var s = e / 8 | 0;
|
|
3639
3639
|
return (A[s] | A[s + 1] << 8) >> (e & 7) & t;
|
|
3640
|
-
},
|
|
3640
|
+
}, Ls = function(A, e) {
|
|
3641
3641
|
var t = e / 8 | 0;
|
|
3642
3642
|
return (A[t] | A[t + 1] << 8 | A[t + 2] << 16) >> (e & 7);
|
|
3643
3643
|
}, Ci = function(A) {
|
|
3644
3644
|
return (A + 7) / 8 | 0;
|
|
3645
3645
|
}, Bi = function(A, e, t) {
|
|
3646
|
-
return (t == null || t > A.length) && (t = A.length), new
|
|
3646
|
+
return (t == null || t > A.length) && (t = A.length), new Re(A.subarray(e, t));
|
|
3647
3647
|
}, lc = [
|
|
3648
3648
|
"unexpected EOF",
|
|
3649
3649
|
"invalid block type",
|
|
@@ -3668,14 +3668,14 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3668
3668
|
}, hc = function(A, e, t, s) {
|
|
3669
3669
|
var n = A.length, i = 0;
|
|
3670
3670
|
if (!n || e.f && !e.l)
|
|
3671
|
-
return t || new
|
|
3671
|
+
return t || new Re(0);
|
|
3672
3672
|
var o = !t, r = o || e.i != 2, a = e.i;
|
|
3673
|
-
o && (t = new
|
|
3673
|
+
o && (t = new Re(n * 3));
|
|
3674
3674
|
var c = function(Gt) {
|
|
3675
3675
|
var Jt = t.length;
|
|
3676
3676
|
if (Gt > Jt) {
|
|
3677
|
-
var
|
|
3678
|
-
|
|
3677
|
+
var _t = new Re(Math.max(Jt * 2, Gt));
|
|
3678
|
+
_t.set(t), t = _t;
|
|
3679
3679
|
}
|
|
3680
3680
|
}, l = e.f || 0, h = e.p || 0, g = e.b || 0, d = e.l, p = e.d, m = e.m, I = e.n, b = n * 8;
|
|
3681
3681
|
do {
|
|
@@ -3686,12 +3686,12 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3686
3686
|
if (B == 1)
|
|
3687
3687
|
d = ac, p = cc, m = 9, I = 5;
|
|
3688
3688
|
else if (B == 2) {
|
|
3689
|
-
var
|
|
3689
|
+
var _ = gt(A, h, 31) + 257, R = gt(A, h + 10, 15) + 4, x = _ + gt(A, h + 5, 31) + 1;
|
|
3690
3690
|
h += 14;
|
|
3691
|
-
for (var v = new
|
|
3691
|
+
for (var v = new Re(x), L = new Re(19), N = 0; N < R; ++N)
|
|
3692
3692
|
L[si[N]] = gt(A, h + N * 3, 7);
|
|
3693
|
-
h +=
|
|
3694
|
-
for (var O =
|
|
3693
|
+
h += R * 3;
|
|
3694
|
+
for (var O = Fs(L), Z = (1 << O) - 1, U = vt(L, O, 1), N = 0; N < x; ) {
|
|
3695
3695
|
var q = U[gt(A, h, Z)];
|
|
3696
3696
|
h += q & 15;
|
|
3697
3697
|
var E = q >> 4;
|
|
@@ -3703,8 +3703,8 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3703
3703
|
v[N++] = H;
|
|
3704
3704
|
}
|
|
3705
3705
|
}
|
|
3706
|
-
var ee = v.subarray(0,
|
|
3707
|
-
m =
|
|
3706
|
+
var ee = v.subarray(0, _), te = v.subarray(_);
|
|
3707
|
+
m = Fs(ee), I = Fs(te), d = vt(ee, m, 1), p = vt(te, I, 1);
|
|
3708
3708
|
} else
|
|
3709
3709
|
Je(1);
|
|
3710
3710
|
else {
|
|
@@ -3723,7 +3723,7 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3723
3723
|
}
|
|
3724
3724
|
r && c(g + 131072);
|
|
3725
3725
|
for (var ie = (1 << m) - 1, le = (1 << I) - 1, ae = h; ; ae = h) {
|
|
3726
|
-
var H = d[
|
|
3726
|
+
var H = d[Ls(A, h) & ie], he = H >> 4;
|
|
3727
3727
|
if (h += H & 15, h > b) {
|
|
3728
3728
|
a && Je(0);
|
|
3729
3729
|
break;
|
|
@@ -3736,15 +3736,15 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3736
3736
|
} else {
|
|
3737
3737
|
var Qe = he - 254;
|
|
3738
3738
|
if (he > 264) {
|
|
3739
|
-
var N = he - 257, be =
|
|
3739
|
+
var N = he - 257, be = Is[N];
|
|
3740
3740
|
Qe = gt(A, h, (1 << be) - 1) + ur[N], h += be;
|
|
3741
3741
|
}
|
|
3742
|
-
var Ae = p[
|
|
3742
|
+
var Ae = p[Ls(A, h) & le], Xe = Ae >> 4;
|
|
3743
3743
|
Ae || Je(3), h += Ae & 15;
|
|
3744
3744
|
var te = oc[Xe];
|
|
3745
3745
|
if (Xe > 3) {
|
|
3746
|
-
var be =
|
|
3747
|
-
te +=
|
|
3746
|
+
var be = bs[Xe];
|
|
3747
|
+
te += Ls(A, h) & (1 << be) - 1, h += be;
|
|
3748
3748
|
}
|
|
3749
3749
|
if (h > b) {
|
|
3750
3750
|
a && Je(0);
|
|
@@ -3753,9 +3753,9 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3753
3753
|
r && c(g + 131072);
|
|
3754
3754
|
var Ze = g + Qe;
|
|
3755
3755
|
if (g < te) {
|
|
3756
|
-
var
|
|
3757
|
-
for (
|
|
3758
|
-
t[g] = s[
|
|
3756
|
+
var An = i - te, cn = Math.min(te, Ze);
|
|
3757
|
+
for (An + g < 0 && Je(3); g < cn; ++g)
|
|
3758
|
+
t[g] = s[An + g];
|
|
3759
3759
|
}
|
|
3760
3760
|
for (; g < Ze; ++g)
|
|
3761
3761
|
t[g] = t[g - te];
|
|
@@ -3768,22 +3768,22 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3768
3768
|
t <<= e & 7;
|
|
3769
3769
|
var s = e / 8 | 0;
|
|
3770
3770
|
A[s] |= t, A[s + 1] |= t >> 8;
|
|
3771
|
-
},
|
|
3771
|
+
}, vn = function(A, e, t) {
|
|
3772
3772
|
t <<= e & 7;
|
|
3773
3773
|
var s = e / 8 | 0;
|
|
3774
3774
|
A[s] |= t, A[s + 1] |= t >> 8, A[s + 2] |= t >> 16;
|
|
3775
|
-
},
|
|
3775
|
+
}, Ns = function(A, e) {
|
|
3776
3776
|
for (var t = [], s = 0; s < A.length; ++s)
|
|
3777
3777
|
A[s] && t.push({ s, f: A[s] });
|
|
3778
3778
|
var n = t.length, i = t.slice();
|
|
3779
3779
|
if (!n)
|
|
3780
3780
|
return { t: pr, l: 0 };
|
|
3781
3781
|
if (n == 1) {
|
|
3782
|
-
var o = new
|
|
3782
|
+
var o = new Re(t[0].s + 1);
|
|
3783
3783
|
return o[t[0].s] = 1, { t: o, l: 1 };
|
|
3784
3784
|
}
|
|
3785
|
-
t.sort(function(Q,
|
|
3786
|
-
return Q.f -
|
|
3785
|
+
t.sort(function(Q, _) {
|
|
3786
|
+
return Q.f - _.f;
|
|
3787
3787
|
}), t.push({ s: -1, f: 25001 });
|
|
3788
3788
|
var r = t[0], a = t[1], c = 0, l = 1, h = 2;
|
|
3789
3789
|
for (t[0] = { s: -1, f: r.f + a.f, l: r, r: a }; l != n - 1; )
|
|
@@ -3793,8 +3793,8 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3793
3793
|
var d = new it(g + 1), p = ri(t[l - 1], d, 0);
|
|
3794
3794
|
if (p > e) {
|
|
3795
3795
|
var s = 0, m = 0, I = p - e, b = 1 << I;
|
|
3796
|
-
for (i.sort(function(
|
|
3797
|
-
return d[
|
|
3796
|
+
for (i.sort(function(_, R) {
|
|
3797
|
+
return d[R.s] - d[_.s] || _.f - R.f;
|
|
3798
3798
|
}); s < n; ++s) {
|
|
3799
3799
|
var B = i[s].s;
|
|
3800
3800
|
if (d[B] > e)
|
|
@@ -3812,7 +3812,7 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3812
3812
|
}
|
|
3813
3813
|
p = e;
|
|
3814
3814
|
}
|
|
3815
|
-
return { t: new
|
|
3815
|
+
return { t: new Re(d), l: p };
|
|
3816
3816
|
}, ri = function(A, e, t) {
|
|
3817
3817
|
return A.s == -1 ? Math.max(ri(A.l, e, t + 1), ri(A.r, e, t + 1)) : e[A.s] = t;
|
|
3818
3818
|
}, Vi = function(A) {
|
|
@@ -3838,7 +3838,7 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3838
3838
|
i = 1, n = A[r];
|
|
3839
3839
|
}
|
|
3840
3840
|
return { c: t.subarray(0, s), n: e };
|
|
3841
|
-
},
|
|
3841
|
+
}, Tn = function(A, e) {
|
|
3842
3842
|
for (var t = 0, s = 0; s < e.length; ++s)
|
|
3843
3843
|
t += A[s] * e[s];
|
|
3844
3844
|
return t;
|
|
@@ -3850,20 +3850,20 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3850
3850
|
return (n + 4 + s) * 8;
|
|
3851
3851
|
}, Xi = function(A, e, t, s, n, i, o, r, a, c, l) {
|
|
3852
3852
|
Dt(e, l++, t), ++n[256];
|
|
3853
|
-
for (var h =
|
|
3854
|
-
++
|
|
3853
|
+
for (var h = Ns(n, 15), g = h.t, d = h.l, p = Ns(i, 15), m = p.t, I = p.l, b = Vi(g), B = b.c, E = b.n, w = Vi(m), Q = w.c, _ = w.n, R = new it(19), x = 0; x < B.length; ++x)
|
|
3854
|
+
++R[B[x] & 31];
|
|
3855
3855
|
for (var x = 0; x < Q.length; ++x)
|
|
3856
|
-
++
|
|
3857
|
-
for (var v =
|
|
3856
|
+
++R[Q[x] & 31];
|
|
3857
|
+
for (var v = Ns(R, 7), L = v.t, N = v.l, O = 19; O > 4 && !L[si[O - 1]]; --O)
|
|
3858
3858
|
;
|
|
3859
|
-
var Z = c + 5 << 3, U =
|
|
3859
|
+
var Z = c + 5 << 3, U = Tn(n, Yt) + Tn(i, Hn) + o, q = Tn(n, g) + Tn(i, m) + o + 14 + 3 * O + Tn(R, L) + 2 * R[16] + 3 * R[17] + 7 * R[18];
|
|
3860
3860
|
if (a >= 0 && Z <= U && Z <= q)
|
|
3861
3861
|
return dr(e, l, A.subarray(a, a + c));
|
|
3862
3862
|
var H, K, ee, te;
|
|
3863
3863
|
if (Dt(e, l, 1 + (q < U)), l += 2, q < U) {
|
|
3864
3864
|
H = vt(g, d, 0), K = g, ee = vt(m, I, 0), te = m;
|
|
3865
3865
|
var ie = vt(L, N, 0);
|
|
3866
|
-
Dt(e, l, E - 257), Dt(e, l + 5,
|
|
3866
|
+
Dt(e, l, E - 257), Dt(e, l + 5, _ - 1), Dt(e, l + 10, O - 4), l += 14;
|
|
3867
3867
|
for (var x = 0; x < O; ++x)
|
|
3868
3868
|
Dt(e, l + 3 * x, L[si[x]]);
|
|
3869
3869
|
l += 3 * O;
|
|
@@ -3873,34 +3873,34 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3873
3873
|
Dt(e, l, ie[Qe]), l += L[Qe], Qe > 15 && (Dt(e, l, he[x] >> 5 & 127), l += he[x] >> 12);
|
|
3874
3874
|
}
|
|
3875
3875
|
} else
|
|
3876
|
-
H = rc, K = Yt, ee = Ac, te =
|
|
3876
|
+
H = rc, K = Yt, ee = Ac, te = Hn;
|
|
3877
3877
|
for (var x = 0; x < r; ++x) {
|
|
3878
3878
|
var be = s[x];
|
|
3879
3879
|
if (be > 255) {
|
|
3880
3880
|
var Qe = be >> 18 & 31;
|
|
3881
|
-
|
|
3881
|
+
vn(e, l, H[Qe + 257]), l += K[Qe + 257], Qe > 7 && (Dt(e, l, be >> 23 & 31), l += Is[Qe]);
|
|
3882
3882
|
var Ae = be & 31;
|
|
3883
|
-
|
|
3883
|
+
vn(e, l, ee[Ae]), l += te[Ae], Ae > 3 && (vn(e, l, be >> 5 & 8191), l += bs[Ae]);
|
|
3884
3884
|
} else
|
|
3885
|
-
|
|
3885
|
+
vn(e, l, H[be]), l += K[be];
|
|
3886
3886
|
}
|
|
3887
|
-
return
|
|
3888
|
-
}, uc = /* @__PURE__ */ new Ei([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), pr = /* @__PURE__ */ new
|
|
3889
|
-
var o = i.z || A.length, r = new
|
|
3887
|
+
return vn(e, l, H[256]), l + K[256];
|
|
3888
|
+
}, uc = /* @__PURE__ */ new Ei([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), pr = /* @__PURE__ */ new Re(0), gc = function(A, e, t, s, n, i) {
|
|
3889
|
+
var o = i.z || A.length, r = new Re(s + o + 5 * (1 + Math.ceil(o / 7e3)) + n), a = r.subarray(s, r.length - n), c = i.l, l = (i.r || 0) & 7;
|
|
3890
3890
|
if (e) {
|
|
3891
3891
|
l && (a[0] = i.r >> 3);
|
|
3892
|
-
for (var h = uc[e - 1], g = h >> 13, d = h & 8191, p = (1 << t) - 1, m = i.p || new it(32768), I = i.h || new it(p + 1), b = Math.ceil(t / 3), B = 2 * b, E = function(
|
|
3893
|
-
return (A[
|
|
3894
|
-
}, w = new Ei(25e3), Q = new it(288),
|
|
3892
|
+
for (var h = uc[e - 1], g = h >> 13, d = h & 8191, p = (1 << t) - 1, m = i.p || new it(32768), I = i.h || new it(p + 1), b = Math.ceil(t / 3), B = 2 * b, E = function(ln) {
|
|
3893
|
+
return (A[ln] ^ A[ln + 1] << b ^ A[ln + 2] << B) & p;
|
|
3894
|
+
}, w = new Ei(25e3), Q = new it(288), _ = new it(32), R = 0, x = 0, v = i.i || 0, L = 0, N = i.w || 0, O = 0; v + 2 < o; ++v) {
|
|
3895
3895
|
var Z = E(v), U = v & 32767, q = I[Z];
|
|
3896
3896
|
if (m[U] = q, I[Z] = U, N <= v) {
|
|
3897
3897
|
var H = o - v;
|
|
3898
|
-
if ((
|
|
3899
|
-
l = Xi(A, a, 0, w, Q,
|
|
3898
|
+
if ((R > 7e3 || L > 24576) && (H > 423 || !c)) {
|
|
3899
|
+
l = Xi(A, a, 0, w, Q, _, x, L, O, v - O, l), L = R = x = 0, O = v;
|
|
3900
3900
|
for (var K = 0; K < 286; ++K)
|
|
3901
3901
|
Q[K] = 0;
|
|
3902
3902
|
for (var K = 0; K < 30; ++K)
|
|
3903
|
-
|
|
3903
|
+
_[K] = 0;
|
|
3904
3904
|
}
|
|
3905
3905
|
var ee = 2, te = 0, ie = d, le = U - q & 32767;
|
|
3906
3906
|
if (H > 2 && Z == E(v - le))
|
|
@@ -3912,8 +3912,8 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3912
3912
|
if (ee = be, te = le, be > ae)
|
|
3913
3913
|
break;
|
|
3914
3914
|
for (var Ae = Math.min(le, be - 2), Xe = 0, K = 0; K < Ae; ++K) {
|
|
3915
|
-
var Ze = v - le + K & 32767,
|
|
3916
|
-
|
|
3915
|
+
var Ze = v - le + K & 32767, An = m[Ze], cn = Ze - An & 32767;
|
|
3916
|
+
cn > Xe && (Xe = cn, q = Ze);
|
|
3917
3917
|
}
|
|
3918
3918
|
}
|
|
3919
3919
|
}
|
|
@@ -3922,18 +3922,18 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3922
3922
|
if (te) {
|
|
3923
3923
|
w[L++] = 268435456 | ii[ee] << 18 | Wi[te];
|
|
3924
3924
|
var Gt = ii[ee] & 31, Jt = Wi[te] & 31;
|
|
3925
|
-
x +=
|
|
3925
|
+
x += Is[Gt] + bs[Jt], ++Q[257 + Gt], ++_[Jt], N = v + ee, ++R;
|
|
3926
3926
|
} else
|
|
3927
3927
|
w[L++] = A[v], ++Q[A[v]];
|
|
3928
3928
|
}
|
|
3929
3929
|
}
|
|
3930
3930
|
for (v = Math.max(v, N); v < o; ++v)
|
|
3931
3931
|
w[L++] = A[v], ++Q[A[v]];
|
|
3932
|
-
l = Xi(A, a, c, w, Q,
|
|
3932
|
+
l = Xi(A, a, c, w, Q, _, x, L, O, v - O, l), c || (i.r = l & 7 | a[l / 8 | 0] << 3, l -= 7, i.h = I, i.p = m, i.i = v, i.w = N);
|
|
3933
3933
|
} else {
|
|
3934
3934
|
for (var v = i.w || 0; v < o + c; v += 65535) {
|
|
3935
|
-
var
|
|
3936
|
-
|
|
3935
|
+
var _t = v + 65535;
|
|
3936
|
+
_t >= o && (a[l / 8 | 0] = c, _t = o), l = dr(a, l + 1, A.subarray(v, _t));
|
|
3937
3937
|
}
|
|
3938
3938
|
i.i = o;
|
|
3939
3939
|
}
|
|
@@ -3959,7 +3959,7 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3959
3959
|
};
|
|
3960
3960
|
}, fc = function(A, e, t, s, n) {
|
|
3961
3961
|
if (!n && (n = { l: 1 }, e.dictionary)) {
|
|
3962
|
-
var i = e.dictionary.subarray(-32768), o = new
|
|
3962
|
+
var i = e.dictionary.subarray(-32768), o = new Re(i.length + A.length);
|
|
3963
3963
|
o.set(i), o.set(A, i.length), A = o, n.w = i.length;
|
|
3964
3964
|
}
|
|
3965
3965
|
return gc(A, e.level == null ? 6 : e.level, e.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(A.length))) * 1.5) : 20 : 12 + e.mem, t, s, n);
|
|
@@ -3979,13 +3979,13 @@ var rc = /* @__PURE__ */ vt(Yt, 9, 0), ac = /* @__PURE__ */ vt(Yt, 9, 1), Ac = /
|
|
|
3979
3979
|
function Ic(A, e) {
|
|
3980
3980
|
return fc(A, e || {}, 0, 0);
|
|
3981
3981
|
}
|
|
3982
|
-
function
|
|
3982
|
+
function Nn(A, e) {
|
|
3983
3983
|
return hc(A.subarray(mc(A), -4), { i: 2 }, e, e);
|
|
3984
3984
|
}
|
|
3985
3985
|
var mr = function(A, e, t, s) {
|
|
3986
3986
|
for (var n in A) {
|
|
3987
3987
|
var i = A[n], o = e + n, r = s;
|
|
3988
|
-
Array.isArray(i) && (r = fr(s, i[1]), i = i[0]), i instanceof
|
|
3988
|
+
Array.isArray(i) && (r = fr(s, i[1]), i = i[0]), i instanceof Re ? t[o] = [i, r] : (t[o += "/"] = [new Re(0), r], mr(i, o, t, s));
|
|
3989
3989
|
}
|
|
3990
3990
|
}, Zi = typeof TextEncoder < "u" && /* @__PURE__ */ new TextEncoder(), bc = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), Ec = 0;
|
|
3991
3991
|
try {
|
|
@@ -3996,11 +3996,11 @@ function $i(A, e) {
|
|
|
3996
3996
|
var t;
|
|
3997
3997
|
if (Zi)
|
|
3998
3998
|
return Zi.encode(A);
|
|
3999
|
-
for (var s = A.length, n = new
|
|
3999
|
+
for (var s = A.length, n = new Re(A.length + (A.length >> 1)), i = 0, o = function(c) {
|
|
4000
4000
|
n[i++] = c;
|
|
4001
4001
|
}, t = 0; t < s; ++t) {
|
|
4002
4002
|
if (i + 5 > n.length) {
|
|
4003
|
-
var r = new
|
|
4003
|
+
var r = new Re(i + 8 + (s - t << 1));
|
|
4004
4004
|
r.set(n), n = r;
|
|
4005
4005
|
}
|
|
4006
4006
|
var a = A.charCodeAt(t);
|
|
@@ -4029,7 +4029,7 @@ var ai = function(A) {
|
|
|
4029
4029
|
}, Cc = function(A, e, t, s, n) {
|
|
4030
4030
|
Ge(A, e, 101010256), Ge(A, e + 8, t), Ge(A, e + 10, t), Ge(A, e + 12, s), Ge(A, e + 16, n);
|
|
4031
4031
|
};
|
|
4032
|
-
function
|
|
4032
|
+
function Ch(A, e) {
|
|
4033
4033
|
e || (e = {});
|
|
4034
4034
|
var t = {}, s = [];
|
|
4035
4035
|
mr(A, "", t, e);
|
|
@@ -4049,13 +4049,13 @@ function Eh(A, e) {
|
|
|
4049
4049
|
compression: l
|
|
4050
4050
|
})), n += 30 + g + I + B, i += 76 + 2 * (g + I) + (m || 0) + B;
|
|
4051
4051
|
}
|
|
4052
|
-
for (var w = new
|
|
4053
|
-
var h = s[
|
|
4052
|
+
for (var w = new Re(i + 22), Q = n, _ = i - n, R = 0; R < s.length; ++R) {
|
|
4053
|
+
var h = s[R];
|
|
4054
4054
|
eo(w, h.o, h, h.f, h.u, h.c.length);
|
|
4055
4055
|
var x = 30 + h.f.length + ai(h.extra);
|
|
4056
4056
|
w.set(h.c, h.o + x), eo(w, n, h, h.f, h.u, h.c.length, h.o, h.m), n += 16 + x + (h.m ? h.m.length : 0);
|
|
4057
4057
|
}
|
|
4058
|
-
return Cc(w, n, s.length,
|
|
4058
|
+
return Cc(w, n, s.length, _, Q), w;
|
|
4059
4059
|
}
|
|
4060
4060
|
class Bc extends Po {
|
|
4061
4061
|
constructor(e) {
|
|
@@ -4192,20 +4192,20 @@ class Bc extends Po {
|
|
|
4192
4192
|
const C = Qe(u), y = Qe(f), T = C - (y >> 1) & 65535, S = y + T - 32768 & 65535;
|
|
4193
4193
|
Ae.a = S, Ae.b = T;
|
|
4194
4194
|
}
|
|
4195
|
-
function
|
|
4195
|
+
function An(u, f, C, y, T, S, k) {
|
|
4196
4196
|
const G = k < 16384, F = C > T ? T : C;
|
|
4197
4197
|
let M = 1, D, j;
|
|
4198
4198
|
for (; M <= F; ) M <<= 1;
|
|
4199
4199
|
for (M >>= 1, D = M, M >>= 1; M >= 1; ) {
|
|
4200
4200
|
j = 0;
|
|
4201
4201
|
const V = j + S * (T - D), Y = S * M, $ = S * D, J = y * M, X = y * D;
|
|
4202
|
-
let ne,
|
|
4202
|
+
let ne, fe, xe, et;
|
|
4203
4203
|
for (; j <= V; j += $) {
|
|
4204
4204
|
let Ee = j;
|
|
4205
4205
|
const ce = j + y * (C - D);
|
|
4206
4206
|
for (; Ee <= ce; Ee += X) {
|
|
4207
4207
|
const De = Ee + J, At = Ee + Y, Fe = At + J;
|
|
4208
|
-
G ? (Xe(u[Ee + f], u[At + f]), ne = Ae.a, xe = Ae.b, Xe(u[De + f], u[Fe + f]),
|
|
4208
|
+
G ? (Xe(u[Ee + f], u[At + f]), ne = Ae.a, xe = Ae.b, Xe(u[De + f], u[Fe + f]), fe = Ae.a, et = Ae.b, Xe(ne, fe), u[Ee + f] = Ae.a, u[De + f] = Ae.b, Xe(xe, et), u[At + f] = Ae.a, u[Fe + f] = Ae.b) : (Ze(u[Ee + f], u[At + f]), ne = Ae.a, xe = Ae.b, Ze(u[De + f], u[Fe + f]), fe = Ae.a, et = Ae.b, Ze(ne, fe), u[Ee + f] = Ae.a, u[De + f] = Ae.b, Ze(xe, et), u[At + f] = Ae.a, u[Fe + f] = Ae.b);
|
|
4209
4209
|
}
|
|
4210
4210
|
if (C & M) {
|
|
4211
4211
|
const De = Ee + Y;
|
|
@@ -4224,7 +4224,7 @@ class Bc extends Po {
|
|
|
4224
4224
|
}
|
|
4225
4225
|
return j;
|
|
4226
4226
|
}
|
|
4227
|
-
function
|
|
4227
|
+
function cn(u, f, C, y, T, S, k, G, F) {
|
|
4228
4228
|
let M = 0, D = 0;
|
|
4229
4229
|
const j = k, V = Math.trunc(y.value + (T + 7) / 8);
|
|
4230
4230
|
for (; y.value < V; )
|
|
@@ -4270,19 +4270,19 @@ class Bc extends Po {
|
|
|
4270
4270
|
const Y = y - (C.value - G);
|
|
4271
4271
|
if (H(u, C, Y, F, M, j), D > 8 * (y - (C.value - G)))
|
|
4272
4272
|
throw new Error("Something wrong with hufUncompress");
|
|
4273
|
-
te(j, F, M, V),
|
|
4273
|
+
te(j, F, M, V), cn(j, V, u, C, D, M, S, T, k);
|
|
4274
4274
|
}
|
|
4275
4275
|
function Jt(u, f, C) {
|
|
4276
4276
|
for (let y = 0; y < C; ++y)
|
|
4277
4277
|
f[y] = u[f[y]];
|
|
4278
4278
|
}
|
|
4279
|
-
function
|
|
4279
|
+
function _t(u) {
|
|
4280
4280
|
for (let f = 1; f < u.length; f++) {
|
|
4281
4281
|
const C = u[f - 1] + u[f] - 128;
|
|
4282
4282
|
u[f] = C;
|
|
4283
4283
|
}
|
|
4284
4284
|
}
|
|
4285
|
-
function
|
|
4285
|
+
function ln(u, f) {
|
|
4286
4286
|
let C = 0, y = Math.floor((u.length + 1) / 2), T = 0;
|
|
4287
4287
|
const S = u.length - 1;
|
|
4288
4288
|
for (; !(T > S || (f[T++] = u[C++], T > S)); )
|
|
@@ -4312,36 +4312,36 @@ class Bc extends Po {
|
|
|
4312
4312
|
}
|
|
4313
4313
|
function vr(u, f, C, y, T, S) {
|
|
4314
4314
|
let k = new DataView(S.buffer);
|
|
4315
|
-
const G = C[u.idx[0]].width, F = C[u.idx[0]].height, M = 3, D = Math.floor(G / 8), j = Math.ceil(G / 8), V = Math.ceil(F / 8), Y = G - (j - 1) * 8, $ = F - (V - 1) * 8, J = { value: 0 }, X = new Array(M), ne = new Array(M),
|
|
4315
|
+
const G = C[u.idx[0]].width, F = C[u.idx[0]].height, M = 3, D = Math.floor(G / 8), j = Math.ceil(G / 8), V = Math.ceil(F / 8), Y = G - (j - 1) * 8, $ = F - (V - 1) * 8, J = { value: 0 }, X = new Array(M), ne = new Array(M), fe = new Array(M), xe = new Array(M), et = new Array(M);
|
|
4316
4316
|
for (let ce = 0; ce < M; ++ce)
|
|
4317
|
-
et[ce] = f[u.idx[ce]], X[ce] = ce < 1 ? 0 : X[ce - 1] + j * V, ne[ce] = new Float32Array(64),
|
|
4317
|
+
et[ce] = f[u.idx[ce]], X[ce] = ce < 1 ? 0 : X[ce - 1] + j * V, ne[ce] = new Float32Array(64), fe[ce] = new Uint16Array(64), xe[ce] = new Uint16Array(j * 64);
|
|
4318
4318
|
for (let ce = 0; ce < V; ++ce) {
|
|
4319
4319
|
let De = 8;
|
|
4320
4320
|
ce == V - 1 && (De = $);
|
|
4321
4321
|
let At = 8;
|
|
4322
|
-
for (let
|
|
4323
|
-
|
|
4322
|
+
for (let pe = 0; pe < j; ++pe) {
|
|
4323
|
+
pe == j - 1 && (At = Y);
|
|
4324
4324
|
for (let Ie = 0; Ie < M; ++Ie)
|
|
4325
|
-
|
|
4325
|
+
fe[Ie].fill(0), fe[Ie][0] = T[X[Ie]++], Tr(J, y, fe[Ie]), _r(fe[Ie], ne[Ie]), Rr(ne[Ie]);
|
|
4326
4326
|
Dr(ne);
|
|
4327
4327
|
for (let Ie = 0; Ie < M; ++Ie)
|
|
4328
|
-
Mr(ne[Ie], xe[Ie],
|
|
4328
|
+
Mr(ne[Ie], xe[Ie], pe * 64);
|
|
4329
4329
|
}
|
|
4330
4330
|
let Fe = 0;
|
|
4331
|
-
for (let
|
|
4332
|
-
const Ie = C[u.idx[
|
|
4333
|
-
for (let
|
|
4334
|
-
Fe = et[
|
|
4335
|
-
for (let
|
|
4336
|
-
const bt =
|
|
4337
|
-
k.setUint16(Fe + 0 * Ie, xe[
|
|
4331
|
+
for (let pe = 0; pe < M; ++pe) {
|
|
4332
|
+
const Ie = C[u.idx[pe]].type;
|
|
4333
|
+
for (let Rt = 8 * ce; Rt < 8 * ce + De; ++Rt) {
|
|
4334
|
+
Fe = et[pe][Rt];
|
|
4335
|
+
for (let Cn = 0; Cn < D; ++Cn) {
|
|
4336
|
+
const bt = Cn * 64 + (Rt & 7) * 8;
|
|
4337
|
+
k.setUint16(Fe + 0 * Ie, xe[pe][bt + 0], !0), k.setUint16(Fe + 2 * Ie, xe[pe][bt + 1], !0), k.setUint16(Fe + 4 * Ie, xe[pe][bt + 2], !0), k.setUint16(Fe + 6 * Ie, xe[pe][bt + 3], !0), k.setUint16(Fe + 8 * Ie, xe[pe][bt + 4], !0), k.setUint16(Fe + 10 * Ie, xe[pe][bt + 5], !0), k.setUint16(Fe + 12 * Ie, xe[pe][bt + 6], !0), k.setUint16(Fe + 14 * Ie, xe[pe][bt + 7], !0), Fe += 16 * Ie;
|
|
4338
4338
|
}
|
|
4339
4339
|
}
|
|
4340
4340
|
if (D != j)
|
|
4341
|
-
for (let
|
|
4342
|
-
const
|
|
4343
|
-
for (let
|
|
4344
|
-
k.setUint16(
|
|
4341
|
+
for (let Rt = 8 * ce; Rt < 8 * ce + De; ++Rt) {
|
|
4342
|
+
const Cn = et[pe][Rt] + 8 * D * 2 * Ie, bt = D * 64 + (Rt & 7) * 8;
|
|
4343
|
+
for (let Kn = 0; Kn < At; ++Kn)
|
|
4344
|
+
k.setUint16(Cn + Kn * 2 * Ie, xe[pe][bt + Kn], !0);
|
|
4345
4345
|
}
|
|
4346
4346
|
}
|
|
4347
4347
|
}
|
|
@@ -4353,10 +4353,10 @@ class Bc extends Po {
|
|
|
4353
4353
|
if (C[ce].type == 2)
|
|
4354
4354
|
for (let At = 0; At < F; ++At) {
|
|
4355
4355
|
const Fe = et[ce][At];
|
|
4356
|
-
for (let
|
|
4357
|
-
Ee[
|
|
4358
|
-
for (let
|
|
4359
|
-
k.setFloat32(Fe +
|
|
4356
|
+
for (let pe = 0; pe < G; ++pe)
|
|
4357
|
+
Ee[pe] = k.getUint16(Fe + pe * 2 * De, !0);
|
|
4358
|
+
for (let pe = 0; pe < G; ++pe)
|
|
4359
|
+
k.setFloat32(Fe + pe * 2 * De, W(Ee[pe]), !0);
|
|
4360
4360
|
}
|
|
4361
4361
|
}
|
|
4362
4362
|
}
|
|
@@ -4365,10 +4365,10 @@ class Bc extends Po {
|
|
|
4365
4365
|
for (; T < 64; )
|
|
4366
4366
|
y = f[u.value], y == 65280 ? T = 64 : y >> 8 == 255 ? T += y & 255 : (C[T] = y, T++), u.value++;
|
|
4367
4367
|
}
|
|
4368
|
-
function
|
|
4368
|
+
function _r(u, f) {
|
|
4369
4369
|
f[0] = W(u[0]), f[1] = W(u[1]), f[2] = W(u[5]), f[3] = W(u[6]), f[4] = W(u[14]), f[5] = W(u[15]), f[6] = W(u[27]), f[7] = W(u[28]), f[8] = W(u[2]), f[9] = W(u[4]), f[10] = W(u[7]), f[11] = W(u[13]), f[12] = W(u[16]), f[13] = W(u[26]), f[14] = W(u[29]), f[15] = W(u[42]), f[16] = W(u[3]), f[17] = W(u[8]), f[18] = W(u[12]), f[19] = W(u[17]), f[20] = W(u[25]), f[21] = W(u[30]), f[22] = W(u[41]), f[23] = W(u[43]), f[24] = W(u[9]), f[25] = W(u[11]), f[26] = W(u[18]), f[27] = W(u[24]), f[28] = W(u[31]), f[29] = W(u[40]), f[30] = W(u[44]), f[31] = W(u[53]), f[32] = W(u[10]), f[33] = W(u[19]), f[34] = W(u[23]), f[35] = W(u[32]), f[36] = W(u[39]), f[37] = W(u[45]), f[38] = W(u[52]), f[39] = W(u[54]), f[40] = W(u[20]), f[41] = W(u[22]), f[42] = W(u[33]), f[43] = W(u[38]), f[44] = W(u[46]), f[45] = W(u[51]), f[46] = W(u[55]), f[47] = W(u[60]), f[48] = W(u[21]), f[49] = W(u[34]), f[50] = W(u[37]), f[51] = W(u[47]), f[52] = W(u[50]), f[53] = W(u[56]), f[54] = W(u[59]), f[55] = W(u[61]), f[56] = W(u[35]), f[57] = W(u[36]), f[58] = W(u[48]), f[59] = W(u[49]), f[60] = W(u[57]), f[61] = W(u[58]), f[62] = W(u[62]), f[63] = W(u[63]);
|
|
4370
4370
|
}
|
|
4371
|
-
function
|
|
4371
|
+
function Rr(u) {
|
|
4372
4372
|
const f = 0.5 * Math.cos(0.7853975), C = 0.5 * Math.cos(3.14159 / 16), y = 0.5 * Math.cos(3.14159 / 8), T = 0.5 * Math.cos(3 * 3.14159 / 16), S = 0.5 * Math.cos(5 * 3.14159 / 16), k = 0.5 * Math.cos(3 * 3.14159 / 8), G = 0.5 * Math.cos(7 * 3.14159 / 16), F = new Array(4), M = new Array(4), D = new Array(4), j = new Array(4);
|
|
4373
4373
|
for (let V = 0; V < 8; ++V) {
|
|
4374
4374
|
const Y = V * 8;
|
|
@@ -4385,21 +4385,21 @@ class Bc extends Po {
|
|
|
4385
4385
|
}
|
|
4386
4386
|
function Mr(u, f, C) {
|
|
4387
4387
|
for (let y = 0; y < 64; ++y)
|
|
4388
|
-
f[C + y] =
|
|
4388
|
+
f[C + y] = fn.toHalfFloat(kr(u[y]));
|
|
4389
4389
|
}
|
|
4390
4390
|
function kr(u) {
|
|
4391
4391
|
return u <= 1 ? Math.sign(u) * Math.pow(Math.abs(u), 2.2) : Math.sign(u) * Math.pow(v, Math.abs(u) - 1);
|
|
4392
4392
|
}
|
|
4393
|
-
function
|
|
4393
|
+
function Es(u) {
|
|
4394
4394
|
return new DataView(u.array.buffer, u.offset.value, u.size);
|
|
4395
4395
|
}
|
|
4396
4396
|
function Fr(u) {
|
|
4397
4397
|
const f = u.viewer.buffer.slice(u.offset.value, u.offset.value + u.size), C = new Uint8Array(yi(f)), y = new Uint8Array(C.length);
|
|
4398
|
-
return
|
|
4398
|
+
return _t(C), ln(C, y), new DataView(y.buffer);
|
|
4399
4399
|
}
|
|
4400
|
-
function
|
|
4401
|
-
const f = u.array.slice(u.offset.value, u.offset.value + u.size), C =
|
|
4402
|
-
return
|
|
4400
|
+
function Cs(u) {
|
|
4401
|
+
const f = u.array.slice(u.offset.value, u.offset.value + u.size), C = Nn(f), y = new Uint8Array(C.length);
|
|
4402
|
+
return _t(C), ln(C, y), new DataView(y.buffer);
|
|
4403
4403
|
}
|
|
4404
4404
|
function Lr(u) {
|
|
4405
4405
|
const f = u.viewer, C = { value: u.offset.value }, y = new Uint16Array(u.columns * u.lines * (u.inputChannels.length * u.type)), T = new Uint8Array(8192);
|
|
@@ -4407,7 +4407,7 @@ class Bc extends Po {
|
|
|
4407
4407
|
const k = new Array(u.inputChannels.length);
|
|
4408
4408
|
for (let $ = 0, J = u.inputChannels.length; $ < J; $++)
|
|
4409
4409
|
k[$] = {}, k[$].start = S, k[$].end = k[$].start, k[$].nx = u.columns, k[$].ny = u.lines, k[$].size = u.type, S += k[$].nx * k[$].ny * k[$].size;
|
|
4410
|
-
const G =
|
|
4410
|
+
const G = En(f, C), F = En(f, C);
|
|
4411
4411
|
if (F >= 8192)
|
|
4412
4412
|
throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");
|
|
4413
4413
|
if (G <= F)
|
|
@@ -4418,7 +4418,7 @@ class Bc extends Po {
|
|
|
4418
4418
|
for (let $ = 0; $ < u.inputChannels.length; ++$) {
|
|
4419
4419
|
const J = k[$];
|
|
4420
4420
|
for (let X = 0; X < k[$].size; ++X)
|
|
4421
|
-
|
|
4421
|
+
An(
|
|
4422
4422
|
y,
|
|
4423
4423
|
J.start + X,
|
|
4424
4424
|
J.nx,
|
|
@@ -4433,13 +4433,13 @@ class Bc extends Po {
|
|
|
4433
4433
|
const Y = new Uint8Array(y.buffer.byteLength);
|
|
4434
4434
|
for (let $ = 0; $ < u.lines; $++)
|
|
4435
4435
|
for (let J = 0; J < u.inputChannels.length; J++) {
|
|
4436
|
-
const X = k[J], ne = X.nx * X.size,
|
|
4437
|
-
Y.set(
|
|
4436
|
+
const X = k[J], ne = X.nx * X.size, fe = new Uint8Array(y.buffer, X.end * 2, ne * 2);
|
|
4437
|
+
Y.set(fe, V), V += ne * 2, X.end += ne;
|
|
4438
4438
|
}
|
|
4439
4439
|
return new DataView(Y.buffer);
|
|
4440
4440
|
}
|
|
4441
4441
|
function Nr(u) {
|
|
4442
|
-
const f = u.array.slice(u.offset.value, u.offset.value + u.size), C =
|
|
4442
|
+
const f = u.array.slice(u.offset.value, u.offset.value + u.size), C = Nn(f), y = u.inputChannels.length * u.lines * u.columns * u.totalBytes, T = new ArrayBuffer(y), S = new DataView(T);
|
|
4443
4443
|
let k = 0, G = 0;
|
|
4444
4444
|
const F = new Array(4);
|
|
4445
4445
|
for (let M = 0; M < u.lines; M++)
|
|
@@ -4481,9 +4481,9 @@ class Bc extends Po {
|
|
|
4481
4481
|
if (T.version < 2)
|
|
4482
4482
|
throw new Error("EXRLoader.parse: " + Wt.compression + " version " + T.version + " is unsupported");
|
|
4483
4483
|
const S = new Array();
|
|
4484
|
-
let k =
|
|
4484
|
+
let k = En(f, C) - 2;
|
|
4485
4485
|
for (; k > 0; ) {
|
|
4486
|
-
const J =
|
|
4486
|
+
const J = zn(f.buffer, C), X = Pt(f, C), ne = X >> 2 & 3, fe = (X >> 4) - 1, xe = new Int8Array([fe])[0], et = Pt(f, C);
|
|
4487
4487
|
S.push({
|
|
4488
4488
|
name: J,
|
|
4489
4489
|
index: xe,
|
|
@@ -4502,8 +4502,8 @@ class Bc extends Po {
|
|
|
4502
4502
|
for (let J = 0; J < u.inputChannels.length; ++J) {
|
|
4503
4503
|
const X = F[J];
|
|
4504
4504
|
for (let ne = 0; ne < S.length; ++ne) {
|
|
4505
|
-
const
|
|
4506
|
-
X.name ==
|
|
4505
|
+
const fe = S[ne];
|
|
4506
|
+
X.name == fe.name && (X.compression = fe.compression, fe.index >= 0 && (M.idx[fe.index] = J), X.offset = J);
|
|
4507
4507
|
}
|
|
4508
4508
|
}
|
|
4509
4509
|
let D, j, V;
|
|
@@ -4513,7 +4513,7 @@ class Bc extends Po {
|
|
|
4513
4513
|
D = new Uint16Array(T.totalAcUncompressedCount), Gt(u.array, f, C, T.acCompressedSize, D, T.totalAcUncompressedCount);
|
|
4514
4514
|
break;
|
|
4515
4515
|
case 1:
|
|
4516
|
-
const J = u.array.slice(C.value, C.value + T.totalAcUncompressedCount), X =
|
|
4516
|
+
const J = u.array.slice(C.value, C.value + T.totalAcUncompressedCount), X = Nn(J);
|
|
4517
4517
|
D = new Uint16Array(X.buffer), C.value += T.totalAcUncompressedCount;
|
|
4518
4518
|
break;
|
|
4519
4519
|
}
|
|
@@ -4523,10 +4523,10 @@ class Bc extends Po {
|
|
|
4523
4523
|
offset: C,
|
|
4524
4524
|
size: T.dcCompressedSize
|
|
4525
4525
|
};
|
|
4526
|
-
j = new Uint16Array(
|
|
4526
|
+
j = new Uint16Array(Cs(J).buffer), C.value += T.dcCompressedSize;
|
|
4527
4527
|
}
|
|
4528
4528
|
if (T.rleRawSize > 0) {
|
|
4529
|
-
const J = u.array.slice(C.value, C.value + T.rleCompressedSize), X =
|
|
4529
|
+
const J = u.array.slice(C.value, C.value + T.rleCompressedSize), X = Nn(J);
|
|
4530
4530
|
V = yi(X.buffer), C.value += T.rleCompressedSize;
|
|
4531
4531
|
}
|
|
4532
4532
|
let Y = 0;
|
|
@@ -4542,13 +4542,13 @@ class Bc extends Po {
|
|
|
4542
4542
|
if (!X.decoded)
|
|
4543
4543
|
switch (X.compression) {
|
|
4544
4544
|
case 2:
|
|
4545
|
-
let ne = 0,
|
|
4545
|
+
let ne = 0, fe = 0;
|
|
4546
4546
|
for (let xe = 0; xe < u.lines; ++xe) {
|
|
4547
4547
|
let et = $[J][ne];
|
|
4548
4548
|
for (let Ee = 0; Ee < X.width; ++Ee) {
|
|
4549
4549
|
for (let ce = 0; ce < 2 * X.type; ++ce)
|
|
4550
|
-
y[et++] = V[
|
|
4551
|
-
|
|
4550
|
+
y[et++] = V[fe + ce * X.width * X.height];
|
|
4551
|
+
fe++;
|
|
4552
4552
|
}
|
|
4553
4553
|
ne++;
|
|
4554
4554
|
}
|
|
@@ -4561,7 +4561,7 @@ class Bc extends Po {
|
|
|
4561
4561
|
}
|
|
4562
4562
|
return new DataView(y.buffer);
|
|
4563
4563
|
}
|
|
4564
|
-
function
|
|
4564
|
+
function zn(u, f) {
|
|
4565
4565
|
const C = new Uint8Array(u);
|
|
4566
4566
|
let y = 0;
|
|
4567
4567
|
for (; C[f.value + y] != 0; )
|
|
@@ -4610,23 +4610,23 @@ class Bc extends Po {
|
|
|
4610
4610
|
return f.value += 4, C;
|
|
4611
4611
|
}
|
|
4612
4612
|
function Or(u, f) {
|
|
4613
|
-
return
|
|
4613
|
+
return fn.toHalfFloat(Oe(u, f));
|
|
4614
4614
|
}
|
|
4615
4615
|
function W(u) {
|
|
4616
4616
|
const f = (u & 31744) >> 10, C = u & 1023;
|
|
4617
4617
|
return (u >> 15 ? -1 : 1) * (f ? f === 31 ? C ? NaN : 1 / 0 : Math.pow(2, f - 15) * (1 + C / 1024) : 6103515625e-14 * (C / 1024));
|
|
4618
4618
|
}
|
|
4619
|
-
function
|
|
4619
|
+
function En(u, f) {
|
|
4620
4620
|
const C = u.getUint16(f.value, !0);
|
|
4621
4621
|
return f.value += 2, C;
|
|
4622
4622
|
}
|
|
4623
4623
|
function Hr(u, f) {
|
|
4624
|
-
return W(
|
|
4624
|
+
return W(En(u, f));
|
|
4625
4625
|
}
|
|
4626
4626
|
function jr(u, f, C, y) {
|
|
4627
4627
|
const T = C.value, S = [];
|
|
4628
4628
|
for (; C.value < T + y - 1; ) {
|
|
4629
|
-
const k =
|
|
4629
|
+
const k = zn(f, C), G = rt(u, C), F = Pt(u, C);
|
|
4630
4630
|
C.value += 3;
|
|
4631
4631
|
const M = rt(u, C), D = rt(u, C);
|
|
4632
4632
|
S.push({
|
|
@@ -4770,7 +4770,7 @@ class Bc extends Po {
|
|
|
4770
4770
|
f.value += 8, u.size = at(u.viewer, f);
|
|
4771
4771
|
const k = T * u.blockWidth, G = S * u.blockHeight;
|
|
4772
4772
|
u.columns = k + u.blockWidth > u.width ? u.width - k : u.blockWidth, u.lines = G + u.blockHeight > u.height ? u.height - G : u.blockHeight;
|
|
4773
|
-
const F = u.columns * u.totalBytes, D = u.size < u.lines * F ? u.uncompress(u) :
|
|
4773
|
+
const F = u.columns * u.totalBytes, D = u.size < u.lines * F ? u.uncompress(u) : Es(u);
|
|
4774
4774
|
f.value += u.size;
|
|
4775
4775
|
for (let j = 0; j < u.lines; j++) {
|
|
4776
4776
|
const V = j * u.columns * u.totalBytes;
|
|
@@ -4779,8 +4779,8 @@ class Bc extends Po {
|
|
|
4779
4779
|
if (X === void 0) continue;
|
|
4780
4780
|
C.value = V + J;
|
|
4781
4781
|
const ne = (u.height - (1 + G + j)) * u.outLineWidth;
|
|
4782
|
-
for (let
|
|
4783
|
-
const xe = ne + (
|
|
4782
|
+
for (let fe = 0; fe < u.columns; fe++) {
|
|
4783
|
+
const xe = ne + (fe + k) * u.outputChannels + X;
|
|
4784
4784
|
u.byteArray[xe] = u.getter(D, C);
|
|
4785
4785
|
}
|
|
4786
4786
|
}
|
|
@@ -4792,7 +4792,7 @@ class Bc extends Po {
|
|
|
4792
4792
|
for (let y = 0; y < u.height / u.blockHeight; y++) {
|
|
4793
4793
|
const T = rt(u.viewer, f) - Wt.dataWindow.yMin;
|
|
4794
4794
|
u.size = at(u.viewer, f), u.lines = T + u.blockHeight > u.height ? u.height - T : u.blockHeight;
|
|
4795
|
-
const S = u.columns * u.totalBytes, G = u.size < u.lines * S ? u.uncompress(u) :
|
|
4795
|
+
const S = u.columns * u.totalBytes, G = u.size < u.lines * S ? u.uncompress(u) : Es(u);
|
|
4796
4796
|
f.value += u.size;
|
|
4797
4797
|
for (let F = 0; F < u.blockHeight; F++) {
|
|
4798
4798
|
const M = y * u.blockHeight, D = F + u.scanOrder(M);
|
|
@@ -4803,8 +4803,8 @@ class Bc extends Po {
|
|
|
4803
4803
|
if (X !== void 0) {
|
|
4804
4804
|
C.value = j + J;
|
|
4805
4805
|
for (let ne = 0; ne < u.columns; ne++) {
|
|
4806
|
-
const
|
|
4807
|
-
u.byteArray[
|
|
4806
|
+
const fe = V + ne * u.outputChannels + X;
|
|
4807
|
+
u.byteArray[fe] = u.getter(G, C);
|
|
4808
4808
|
}
|
|
4809
4809
|
}
|
|
4810
4810
|
}
|
|
@@ -4825,11 +4825,11 @@ class Bc extends Po {
|
|
|
4825
4825
|
}, C.value = 8;
|
|
4826
4826
|
let S = !0;
|
|
4827
4827
|
for (; S; ) {
|
|
4828
|
-
const k =
|
|
4828
|
+
const k = zn(f, C);
|
|
4829
4829
|
if (k == 0)
|
|
4830
4830
|
S = !1;
|
|
4831
4831
|
else {
|
|
4832
|
-
const G =
|
|
4832
|
+
const G = zn(f, C), F = at(u, C), M = Zr(u, f, C, G, F);
|
|
4833
4833
|
M === void 0 ? console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${G}'.`) : y[k] = M;
|
|
4834
4834
|
}
|
|
4835
4835
|
}
|
|
@@ -4859,16 +4859,16 @@ class Bc extends Po {
|
|
|
4859
4859
|
};
|
|
4860
4860
|
switch (u.compression) {
|
|
4861
4861
|
case "NO_COMPRESSION":
|
|
4862
|
-
S.blockHeight = 1, S.uncompress =
|
|
4862
|
+
S.blockHeight = 1, S.uncompress = Es;
|
|
4863
4863
|
break;
|
|
4864
4864
|
case "RLE_COMPRESSION":
|
|
4865
4865
|
S.blockHeight = 1, S.uncompress = Fr;
|
|
4866
4866
|
break;
|
|
4867
4867
|
case "ZIPS_COMPRESSION":
|
|
4868
|
-
S.blockHeight = 1, S.uncompress =
|
|
4868
|
+
S.blockHeight = 1, S.uncompress = Cs;
|
|
4869
4869
|
break;
|
|
4870
4870
|
case "ZIP_COMPRESSION":
|
|
4871
|
-
S.blockHeight = 16, S.uncompress =
|
|
4871
|
+
S.blockHeight = 16, S.uncompress = Cs;
|
|
4872
4872
|
break;
|
|
4873
4873
|
case "PIZ_COMPRESSION":
|
|
4874
4874
|
S.blockHeight = 32, S.uncompress = Lr;
|
|
@@ -4908,7 +4908,7 @@ class Bc extends Po {
|
|
|
4908
4908
|
S.getter = Hr;
|
|
4909
4909
|
break;
|
|
4910
4910
|
case st:
|
|
4911
|
-
S.getter =
|
|
4911
|
+
S.getter = En;
|
|
4912
4912
|
break;
|
|
4913
4913
|
}
|
|
4914
4914
|
else if (S.type == 2)
|
|
@@ -4937,7 +4937,7 @@ class Bc extends Po {
|
|
|
4937
4937
|
let M = 0;
|
|
4938
4938
|
for (const D of u.channels)
|
|
4939
4939
|
S.decodeChannels[D.name] !== void 0 && (S.channelByteOffsets[D.name] = M), M += D.pixelType * 2;
|
|
4940
|
-
if (S.totalBytes = M, S.outLineWidth = S.width * S.outputChannels, u.lineOrder === "INCREASING_Y" ? S.scanOrder = (D) => D : S.scanOrder = (D) => S.height - 1 - D, S.outputChannels == 4 ? (S.format = Kt, S.colorSpace = Ve) : (S.format =
|
|
4940
|
+
if (S.totalBytes = M, S.outLineWidth = S.width * S.outputChannels, u.lineOrder === "INCREASING_Y" ? S.scanOrder = (D) => D : S.scanOrder = (D) => S.height - 1 - D, S.outputChannels == 4 ? (S.format = Kt, S.colorSpace = Ve) : (S.format = pn, S.colorSpace = ds), u.spec.singleTile) {
|
|
4941
4941
|
S.blockHeight = u.tiles.ySize, S.blockWidth = u.tiles.xSize;
|
|
4942
4942
|
const D = ea(u.tiles, S.width, S.height), j = Si(D, S.width, u.tiles.xSize, u.tiles.roundingMode), V = Si(D, S.height, u.tiles.ySize, u.tiles.roundingMode);
|
|
4943
4943
|
S.tileCount = j[0] * V[0];
|
|
@@ -4955,14 +4955,14 @@ class Bc extends Po {
|
|
|
4955
4955
|
}
|
|
4956
4956
|
return S;
|
|
4957
4957
|
}
|
|
4958
|
-
const vi = { value: 0 }, Ti = new DataView(e), oa = new Uint8Array(e), Wt = sa(Ti, e, vi),
|
|
4959
|
-
return
|
|
4958
|
+
const vi = { value: 0 }, Ti = new DataView(e), oa = new Uint8Array(e), Wt = sa(Ti, e, vi), hn = ia(Wt, Ti, oa, vi, this.type);
|
|
4959
|
+
return hn.decode(), {
|
|
4960
4960
|
header: Wt,
|
|
4961
|
-
width:
|
|
4962
|
-
height:
|
|
4963
|
-
data:
|
|
4964
|
-
format:
|
|
4965
|
-
colorSpace:
|
|
4961
|
+
width: hn.width,
|
|
4962
|
+
height: hn.height,
|
|
4963
|
+
data: hn.byteArray,
|
|
4964
|
+
format: hn.format,
|
|
4965
|
+
colorSpace: hn.colorSpace,
|
|
4966
4966
|
type: this.type
|
|
4967
4967
|
};
|
|
4968
4968
|
}
|
|
@@ -4976,7 +4976,7 @@ class Bc extends Po {
|
|
|
4976
4976
|
return super.load(e, i, s, n);
|
|
4977
4977
|
}
|
|
4978
4978
|
}
|
|
4979
|
-
const
|
|
4979
|
+
const Bh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
4980
4980
|
__proto__: null,
|
|
4981
4981
|
EXRLoader: Bc
|
|
4982
4982
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -5077,25 +5077,25 @@ class wc extends Po {
|
|
|
5077
5077
|
L[N + 0] = x[v + 0] * Z, L[N + 1] = x[v + 1] * Z, L[N + 2] = x[v + 2] * Z, L[N + 3] = 1;
|
|
5078
5078
|
}, m = function(x, v, L, N) {
|
|
5079
5079
|
const O = x[v + 3], Z = Math.pow(2, O - 128) / 255;
|
|
5080
|
-
L[N + 0] =
|
|
5080
|
+
L[N + 0] = fn.toHalfFloat(Math.min(x[v + 0] * Z, 65504)), L[N + 1] = fn.toHalfFloat(Math.min(x[v + 1] * Z, 65504)), L[N + 2] = fn.toHalfFloat(Math.min(x[v + 2] * Z, 65504)), L[N + 3] = fn.toHalfFloat(1);
|
|
5081
5081
|
}, I = new Uint8Array(e);
|
|
5082
5082
|
I.pos = 0;
|
|
5083
5083
|
const b = g(I), B = b.width, E = b.height, w = d(I.subarray(I.pos), B, E);
|
|
5084
|
-
let Q,
|
|
5084
|
+
let Q, _, R;
|
|
5085
5085
|
switch (this.type) {
|
|
5086
5086
|
case St:
|
|
5087
|
-
|
|
5088
|
-
const x = new Float32Array(
|
|
5089
|
-
for (let L = 0; L <
|
|
5087
|
+
R = w.length / 4;
|
|
5088
|
+
const x = new Float32Array(R * 4);
|
|
5089
|
+
for (let L = 0; L < R; L++)
|
|
5090
5090
|
p(w, L * 4, x, L * 4);
|
|
5091
|
-
Q = x,
|
|
5091
|
+
Q = x, _ = St;
|
|
5092
5092
|
break;
|
|
5093
5093
|
case st:
|
|
5094
|
-
|
|
5095
|
-
const v = new Uint16Array(
|
|
5096
|
-
for (let L = 0; L <
|
|
5094
|
+
R = w.length / 4;
|
|
5095
|
+
const v = new Uint16Array(R * 4);
|
|
5096
|
+
for (let L = 0; L < R; L++)
|
|
5097
5097
|
m(w, L * 4, v, L * 4);
|
|
5098
|
-
Q = v,
|
|
5098
|
+
Q = v, _ = st;
|
|
5099
5099
|
break;
|
|
5100
5100
|
default:
|
|
5101
5101
|
throw new Error("THREE.RGBELoader: Unsupported type: " + this.type);
|
|
@@ -5107,7 +5107,7 @@ class wc extends Po {
|
|
|
5107
5107
|
header: b.string,
|
|
5108
5108
|
gamma: b.gamma,
|
|
5109
5109
|
exposure: b.exposure,
|
|
5110
|
-
type:
|
|
5110
|
+
type: _
|
|
5111
5111
|
};
|
|
5112
5112
|
}
|
|
5113
5113
|
setDataType(e) {
|
|
@@ -5126,7 +5126,7 @@ class wc extends Po {
|
|
|
5126
5126
|
return super.load(e, i, s, n);
|
|
5127
5127
|
}
|
|
5128
5128
|
}
|
|
5129
|
-
const
|
|
5129
|
+
const wh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
5130
5130
|
__proto__: null,
|
|
5131
5131
|
RGBELoader: wc
|
|
5132
5132
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -5199,8 +5199,8 @@ function xc(A, e, t, s, n) {
|
|
|
5199
5199
|
const b = h - m, B = t - m;
|
|
5200
5200
|
h >= m && (p[d][0] = p[g][0] / r[B + 1][b], I = p[d][0] * r[b][B]);
|
|
5201
5201
|
const E = b >= -1 ? 1 : -b, w = h - 1 <= B ? m - 1 : t - h;
|
|
5202
|
-
for (let
|
|
5203
|
-
p[d][
|
|
5202
|
+
for (let _ = E; _ <= w; ++_)
|
|
5203
|
+
p[d][_] = (p[g][_] - p[g][_ - 1]) / r[B + 1][b + _], I += p[d][_] * r[b + _][B];
|
|
5204
5204
|
h <= B && (p[d][m] = -p[g][m - 1] / r[B + 1][h], I += p[d][m] * r[h][B]), o[m][h] = I;
|
|
5205
5205
|
const Q = g;
|
|
5206
5206
|
g = d, d = Q;
|
|
@@ -5256,11 +5256,11 @@ function Tc(A) {
|
|
|
5256
5256
|
}
|
|
5257
5257
|
return n;
|
|
5258
5258
|
}
|
|
5259
|
-
function
|
|
5259
|
+
function _c(A, e, t, s, n) {
|
|
5260
5260
|
const i = Sc(A, e, t, s, n);
|
|
5261
5261
|
return Tc(i);
|
|
5262
5262
|
}
|
|
5263
|
-
class
|
|
5263
|
+
class Rc extends Fa {
|
|
5264
5264
|
constructor(e, t, s, n, i) {
|
|
5265
5265
|
super(), this.degree = e, this.knots = t, this.controlPoints = [], this.startKnot = n || 0, this.endKnot = i || this.knots.length - 1;
|
|
5266
5266
|
for (let o = 0; o < s.length; ++o) {
|
|
@@ -5273,17 +5273,17 @@ class _c extends Fa {
|
|
|
5273
5273
|
return i.w !== 1 && i.divideScalar(i.w), s.set(i.x, i.y, i.z);
|
|
5274
5274
|
}
|
|
5275
5275
|
getTangent(e, t = new P()) {
|
|
5276
|
-
const s = t, n = this.knots[0] + e * (this.knots[this.knots.length - 1] - this.knots[0]), i =
|
|
5276
|
+
const s = t, n = this.knots[0] + e * (this.knots[this.knots.length - 1] - this.knots[0]), i = _c(this.degree, this.knots, this.controlPoints, n, 1);
|
|
5277
5277
|
return s.copy(i[1]).normalize(), s;
|
|
5278
5278
|
}
|
|
5279
5279
|
}
|
|
5280
|
-
let se,
|
|
5281
|
-
class
|
|
5280
|
+
let se, _e, ze;
|
|
5281
|
+
class yh extends Nt {
|
|
5282
5282
|
constructor(e) {
|
|
5283
5283
|
super(e);
|
|
5284
5284
|
}
|
|
5285
5285
|
load(e, t, s, n) {
|
|
5286
|
-
const i = this, o = i.path === "" ?
|
|
5286
|
+
const i = this, o = i.path === "" ? sn.extractUrlBase(e) : i.path, r = new ft(this.manager);
|
|
5287
5287
|
r.setPath(i.path), r.setResponseType("arraybuffer"), r.setRequestHeader(i.requestHeader), r.setWithCredentials(i.withCredentials), r.load(e, function(a) {
|
|
5288
5288
|
try {
|
|
5289
5289
|
t(i.parse(a, o));
|
|
@@ -5315,7 +5315,7 @@ class Dc {
|
|
|
5315
5315
|
this.textureLoader = e, this.manager = t;
|
|
5316
5316
|
}
|
|
5317
5317
|
parse() {
|
|
5318
|
-
|
|
5318
|
+
_e = this.parseConnections();
|
|
5319
5319
|
const e = this.parseImages(), t = this.parseTextures(e), s = this.parseMaterials(t), n = this.parseDeformers(), i = new Mc().parse(n);
|
|
5320
5320
|
return this.parseScene(n, i, s), ze;
|
|
5321
5321
|
}
|
|
@@ -5413,7 +5413,7 @@ class Dc {
|
|
|
5413
5413
|
const s = this.loadTexture(e, t);
|
|
5414
5414
|
s.ID = e.id, s.name = e.attrName;
|
|
5415
5415
|
const n = e.WrapModeU, i = e.WrapModeV, o = n !== void 0 ? n.value : 0, r = i !== void 0 ? i.value : 0;
|
|
5416
|
-
if (s.wrapS = o === 0 ?
|
|
5416
|
+
if (s.wrapS = o === 0 ? an : cs, s.wrapT = r === 0 ? an : cs, "Scaling" in e) {
|
|
5417
5417
|
const a = e.Scaling.value;
|
|
5418
5418
|
s.repeat.x = a[0], s.repeat.y = a[1];
|
|
5419
5419
|
}
|
|
@@ -5433,7 +5433,7 @@ class Dc {
|
|
|
5433
5433
|
), new Xs();
|
|
5434
5434
|
const o = i.path;
|
|
5435
5435
|
o || i.setPath(this.textureLoader.path);
|
|
5436
|
-
const r =
|
|
5436
|
+
const r = _e.get(e.id).children;
|
|
5437
5437
|
let a;
|
|
5438
5438
|
r !== void 0 && r.length > 0 && t[r[0].ID] !== void 0 && (a = t[r[0].ID], (a.indexOf("blob:") === 0 || a.indexOf("data:") === 0) && i.setPath(void 0));
|
|
5439
5439
|
const c = i.load(a);
|
|
@@ -5457,18 +5457,18 @@ class Dc {
|
|
|
5457
5457
|
parseMaterial(e, t) {
|
|
5458
5458
|
const s = e.id, n = e.attrName;
|
|
5459
5459
|
let i = e.ShadingModel;
|
|
5460
|
-
if (typeof i == "object" && (i = i.value), !
|
|
5460
|
+
if (typeof i == "object" && (i = i.value), !_e.has(s)) return null;
|
|
5461
5461
|
const o = this.parseParameters(e, t, s);
|
|
5462
5462
|
let r;
|
|
5463
5463
|
switch (i.toLowerCase()) {
|
|
5464
5464
|
case "phong":
|
|
5465
|
-
r = new
|
|
5465
|
+
r = new On();
|
|
5466
5466
|
break;
|
|
5467
5467
|
case "lambert":
|
|
5468
5468
|
r = new La();
|
|
5469
5469
|
break;
|
|
5470
5470
|
default:
|
|
5471
|
-
console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.', i), r = new
|
|
5471
|
+
console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.', i), r = new On();
|
|
5472
5472
|
break;
|
|
5473
5473
|
}
|
|
5474
5474
|
return r.setValues(o), r.name = n, r;
|
|
@@ -5479,7 +5479,7 @@ class Dc {
|
|
|
5479
5479
|
const n = {};
|
|
5480
5480
|
e.BumpFactor && (n.bumpScale = e.BumpFactor.value), e.Diffuse ? n.color = We.toWorkingColorSpace(new Se().fromArray(e.Diffuse.value), ge) : e.DiffuseColor && (e.DiffuseColor.type === "Color" || e.DiffuseColor.type === "ColorRGB") && (n.color = We.toWorkingColorSpace(new Se().fromArray(e.DiffuseColor.value), ge)), e.DisplacementFactor && (n.displacementScale = e.DisplacementFactor.value), e.Emissive ? n.emissive = We.toWorkingColorSpace(new Se().fromArray(e.Emissive.value), ge) : e.EmissiveColor && (e.EmissiveColor.type === "Color" || e.EmissiveColor.type === "ColorRGB") && (n.emissive = We.toWorkingColorSpace(new Se().fromArray(e.EmissiveColor.value), ge)), e.EmissiveFactor && (n.emissiveIntensity = parseFloat(e.EmissiveFactor.value)), e.Opacity && (n.opacity = parseFloat(e.Opacity.value)), n.opacity < 1 && (n.transparent = !0), e.ReflectionFactor && (n.reflectivity = e.ReflectionFactor.value), e.Shininess && (n.shininess = e.Shininess.value), e.Specular ? n.specular = We.toWorkingColorSpace(new Se().fromArray(e.Specular.value), ge) : e.SpecularColor && e.SpecularColor.type === "Color" && (n.specular = We.toWorkingColorSpace(new Se().fromArray(e.SpecularColor.value), ge));
|
|
5481
5481
|
const i = this;
|
|
5482
|
-
return
|
|
5482
|
+
return _e.get(s).children.forEach(function(o) {
|
|
5483
5483
|
const r = o.relationship;
|
|
5484
5484
|
switch (r) {
|
|
5485
5485
|
case "Bump":
|
|
@@ -5527,7 +5527,7 @@ class Dc {
|
|
|
5527
5527
|
}
|
|
5528
5528
|
// get a texture from the textureMap for use by a material.
|
|
5529
5529
|
getTexture(e, t) {
|
|
5530
|
-
return "LayeredTexture" in se.Objects && t in se.Objects.LayeredTexture && (console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."), t =
|
|
5530
|
+
return "LayeredTexture" in se.Objects && t in se.Objects.LayeredTexture && (console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."), t = _e.get(t).children[0].ID), e.get(t);
|
|
5531
5531
|
}
|
|
5532
5532
|
// Parse nodes in FBXTree.Objects.Deformer
|
|
5533
5533
|
// Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here
|
|
@@ -5537,7 +5537,7 @@ class Dc {
|
|
|
5537
5537
|
if ("Deformer" in se.Objects) {
|
|
5538
5538
|
const s = se.Objects.Deformer;
|
|
5539
5539
|
for (const n in s) {
|
|
5540
|
-
const i = s[n], o =
|
|
5540
|
+
const i = s[n], o = _e.get(parseInt(n));
|
|
5541
5541
|
if (i.attrType === "Skin") {
|
|
5542
5542
|
const r = this.parseSkeleton(o, s);
|
|
5543
5543
|
r.ID = n, o.parents.length > 1 && console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."), r.geometryID = o.parents[0].ID, e[n] = r;
|
|
@@ -5587,7 +5587,7 @@ class Dc {
|
|
|
5587
5587
|
fullWeights: o.FullWeights.a
|
|
5588
5588
|
};
|
|
5589
5589
|
if (o.attrType !== "BlendShapeChannel") return;
|
|
5590
|
-
r.geoID =
|
|
5590
|
+
r.geoID = _e.get(parseInt(i.ID)).children.filter(function(a) {
|
|
5591
5591
|
return a.relationship === void 0;
|
|
5592
5592
|
})[0].ID, s.push(r);
|
|
5593
5593
|
}
|
|
@@ -5595,13 +5595,13 @@ class Dc {
|
|
|
5595
5595
|
}
|
|
5596
5596
|
// create the main Group() to be returned by the loader
|
|
5597
5597
|
parseScene(e, t, s) {
|
|
5598
|
-
ze = new
|
|
5598
|
+
ze = new on();
|
|
5599
5599
|
const n = this.parseModels(e.skeletons, t, s), i = se.Objects.Model, o = this;
|
|
5600
5600
|
n.forEach(function(a) {
|
|
5601
5601
|
var h;
|
|
5602
5602
|
const c = i[a.ID];
|
|
5603
5603
|
o.setLookAtProperties(a, c);
|
|
5604
|
-
const l = (h =
|
|
5604
|
+
const l = (h = _e.get(a.ID)) == null ? void 0 : h.parents;
|
|
5605
5605
|
l == null || l.forEach(function(g) {
|
|
5606
5606
|
const d = n.get(g.ID);
|
|
5607
5607
|
d !== void 0 && d.add(a);
|
|
@@ -5621,7 +5621,7 @@ class Dc {
|
|
|
5621
5621
|
parseModels(e, t, s) {
|
|
5622
5622
|
const n = /* @__PURE__ */ new Map(), i = se.Objects.Model;
|
|
5623
5623
|
for (const o in i) {
|
|
5624
|
-
const r = parseInt(o), a = i[o], c =
|
|
5624
|
+
const r = parseInt(o), a = i[o], c = _e.get(r);
|
|
5625
5625
|
let l = this.buildSkeleton(c, e, r, a.attrName);
|
|
5626
5626
|
if (!l) {
|
|
5627
5627
|
switch (a.attrType) {
|
|
@@ -5643,7 +5643,7 @@ class Dc {
|
|
|
5643
5643
|
break;
|
|
5644
5644
|
case "Null":
|
|
5645
5645
|
default:
|
|
5646
|
-
l = new
|
|
5646
|
+
l = new on();
|
|
5647
5647
|
break;
|
|
5648
5648
|
}
|
|
5649
5649
|
l.name = a.attrName ? It.sanitizeNodeName(a.attrName) : "", l.userData.originalName = a.attrName, l.ID = r;
|
|
@@ -5689,7 +5689,7 @@ class Dc {
|
|
|
5689
5689
|
const h = s.FocalLength ? s.FocalLength.value : null;
|
|
5690
5690
|
switch (n) {
|
|
5691
5691
|
case 0:
|
|
5692
|
-
t = new
|
|
5692
|
+
t = new ps(l, c, i, o), h !== null && t.setFocalLength(h);
|
|
5693
5693
|
break;
|
|
5694
5694
|
case 1:
|
|
5695
5695
|
console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."), t = new xt();
|
|
@@ -5745,7 +5745,7 @@ class Dc {
|
|
|
5745
5745
|
const r = [];
|
|
5746
5746
|
if (e.children.forEach(function(a) {
|
|
5747
5747
|
t.has(a.ID) && (i = t.get(a.ID)), s.has(a.ID) && r.push(s.get(a.ID));
|
|
5748
|
-
}), r.length > 1 ? o = r : r.length > 0 ? o = r[0] : (o = new
|
|
5748
|
+
}), r.length > 1 ? o = r : r.length > 0 ? o = r[0] : (o = new On({
|
|
5749
5749
|
name: Nt.DEFAULT_MATERIAL_NAME,
|
|
5750
5750
|
color: 13421772
|
|
5751
5751
|
}), r.push(o)), "color" in i.attributes && r.forEach(function(a) {
|
|
@@ -5776,10 +5776,10 @@ class Dc {
|
|
|
5776
5776
|
// parse the model node for transform data
|
|
5777
5777
|
getTransformData(e, t) {
|
|
5778
5778
|
const s = {};
|
|
5779
|
-
"InheritType" in t && (s.inheritType = parseInt(t.InheritType.value)), "RotationOrder" in t ? s.eulerOrder =
|
|
5779
|
+
"InheritType" in t && (s.inheritType = parseInt(t.InheritType.value)), "RotationOrder" in t ? s.eulerOrder = jn(t.RotationOrder.value) : s.eulerOrder = jn(0), "Lcl_Translation" in t && (s.translation = t.Lcl_Translation.value), "PreRotation" in t && (s.preRotation = t.PreRotation.value), "Lcl_Rotation" in t && (s.rotation = t.Lcl_Rotation.value), "PostRotation" in t && (s.postRotation = t.PostRotation.value), "Lcl_Scaling" in t && (s.scale = t.Lcl_Scaling.value), "ScalingOffset" in t && (s.scalingOffset = t.ScalingOffset.value), "ScalingPivot" in t && (s.scalingPivot = t.ScalingPivot.value), "RotationOffset" in t && (s.rotationOffset = t.RotationOffset.value), "RotationPivot" in t && (s.rotationPivot = t.RotationPivot.value), e.userData.transformData = s;
|
|
5780
5780
|
}
|
|
5781
5781
|
setLookAtProperties(e, t) {
|
|
5782
|
-
"LookAtProperty" in t &&
|
|
5782
|
+
"LookAtProperty" in t && _e.get(e.ID).children.forEach(function(n) {
|
|
5783
5783
|
if (n.relationship === "LookAtProperty") {
|
|
5784
5784
|
const i = se.Objects.Model[n.ID];
|
|
5785
5785
|
if ("Lcl_Translation" in i) {
|
|
@@ -5793,10 +5793,10 @@ class Dc {
|
|
|
5793
5793
|
const n = this.parsePoseNodes();
|
|
5794
5794
|
for (const i in e) {
|
|
5795
5795
|
const o = e[i];
|
|
5796
|
-
|
|
5796
|
+
_e.get(parseInt(o.ID)).parents.forEach(function(a) {
|
|
5797
5797
|
if (t.has(a.ID)) {
|
|
5798
5798
|
const c = a.ID;
|
|
5799
|
-
|
|
5799
|
+
_e.get(c).parents.forEach(function(h) {
|
|
5800
5800
|
s.has(h.ID) && s.get(h.ID).bind(new Lo(o.bones), n[h.ID]);
|
|
5801
5801
|
});
|
|
5802
5802
|
}
|
|
@@ -5840,7 +5840,7 @@ class Mc {
|
|
|
5840
5840
|
if ("Geometry" in se.Objects) {
|
|
5841
5841
|
const s = se.Objects.Geometry;
|
|
5842
5842
|
for (const n in s) {
|
|
5843
|
-
const i =
|
|
5843
|
+
const i = _e.get(parseInt(n)), o = this.parseGeometry(i, s[n], e);
|
|
5844
5844
|
t.set(parseInt(n), o);
|
|
5845
5845
|
}
|
|
5846
5846
|
}
|
|
@@ -5868,7 +5868,7 @@ class Mc {
|
|
|
5868
5868
|
s.morphTargets[h.ID] !== void 0 && i.push(s.morphTargets[h.ID]);
|
|
5869
5869
|
});
|
|
5870
5870
|
const a = o[0], c = {};
|
|
5871
|
-
"RotationOrder" in a && (c.eulerOrder =
|
|
5871
|
+
"RotationOrder" in a && (c.eulerOrder = jn(a.RotationOrder.value)), "InheritType" in a && (c.inheritType = parseInt(a.InheritType.value)), "GeometricTranslation" in a && (c.translation = a.GeometricTranslation.value), "GeometricRotation" in a && (c.rotation = a.GeometricRotation.value), "GeometricScaling" in a && (c.scale = a.GeometricScaling.value);
|
|
5872
5872
|
const l = Er(c);
|
|
5873
5873
|
return this.genGeometry(t, r, i, l);
|
|
5874
5874
|
}
|
|
@@ -5930,7 +5930,7 @@ class Mc {
|
|
|
5930
5930
|
d < 0 && (d = d ^ -1, I = !0);
|
|
5931
5931
|
let b = [], B = [];
|
|
5932
5932
|
if (o.push(d * 3, d * 3 + 1, d * 3 + 2), e.color) {
|
|
5933
|
-
const E =
|
|
5933
|
+
const E = Zn(p, s, d, e.color);
|
|
5934
5934
|
a.push(E[0], E[1], E[2]);
|
|
5935
5935
|
}
|
|
5936
5936
|
if (e.skeleton) {
|
|
@@ -5939,11 +5939,11 @@ class Mc {
|
|
|
5939
5939
|
}), B.length > 4) {
|
|
5940
5940
|
i || (console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."), i = !0);
|
|
5941
5941
|
const E = [0, 0, 0, 0], w = [0, 0, 0, 0];
|
|
5942
|
-
B.forEach(function(Q,
|
|
5943
|
-
let
|
|
5942
|
+
B.forEach(function(Q, _) {
|
|
5943
|
+
let R = Q, x = b[_];
|
|
5944
5944
|
w.forEach(function(v, L, N) {
|
|
5945
|
-
if (
|
|
5946
|
-
N[L] =
|
|
5945
|
+
if (R > v) {
|
|
5946
|
+
N[L] = R, R = v;
|
|
5947
5947
|
const O = E[L];
|
|
5948
5948
|
E[L] = x, x = O;
|
|
5949
5949
|
}
|
|
@@ -5956,11 +5956,11 @@ class Mc {
|
|
|
5956
5956
|
l.push(B[E]), h.push(b[E]);
|
|
5957
5957
|
}
|
|
5958
5958
|
if (e.normal) {
|
|
5959
|
-
const E =
|
|
5959
|
+
const E = Zn(p, s, d, e.normal);
|
|
5960
5960
|
r.push(E[0], E[1], E[2]);
|
|
5961
5961
|
}
|
|
5962
|
-
e.material && e.material.mappingType !== "AllSame" && (m =
|
|
5963
|
-
const Q =
|
|
5962
|
+
e.material && e.material.mappingType !== "AllSame" && (m = Zn(p, s, d, e.material)[0], m < 0 && (g.negativeMaterialIndices = !0, m = 0)), e.uv && e.uv.forEach(function(E, w) {
|
|
5963
|
+
const Q = Zn(p, s, d, E);
|
|
5964
5964
|
c[w] === void 0 && (c[w] = []), c[w].push(Q[0]), c[w].push(Q[1]);
|
|
5965
5965
|
}), n++, I && (g.genFace(t, e, o, m, r, a, c, l, h, n), s++, n = 0, o = [], r = [], a = [], c = [], l = [], h = []);
|
|
5966
5966
|
}), t;
|
|
@@ -6005,8 +6005,7 @@ class Mc {
|
|
|
6005
6005
|
for (const b of g)
|
|
6006
6006
|
I.push(this.flattenVertex(b, p, m));
|
|
6007
6007
|
h = Pa.triangulateShape(I, []);
|
|
6008
|
-
} else
|
|
6009
|
-
h = [[0, 1, 2]];
|
|
6008
|
+
} else l === 2 ? (console.warn("THREE.FBXLoader: Edge topology detected. This is currently not supported. The resulting mesh will not be correct."), h = [[0, 1, 2]]) : h = [[0, 1, 2]];
|
|
6010
6009
|
for (const [g, d, p] of h)
|
|
6011
6010
|
e.vertex.push(t.vertexPositions[s[g * 3]]), e.vertex.push(t.vertexPositions[s[g * 3 + 1]]), e.vertex.push(t.vertexPositions[s[g * 3 + 2]]), e.vertex.push(t.vertexPositions[s[d * 3]]), e.vertex.push(t.vertexPositions[s[d * 3 + 1]]), e.vertex.push(t.vertexPositions[s[d * 3 + 2]]), e.vertex.push(t.vertexPositions[s[p * 3]]), e.vertex.push(t.vertexPositions[s[p * 3 + 1]]), e.vertex.push(t.vertexPositions[s[p * 3 + 2]]), t.skeleton && (e.vertexWeights.push(a[g * 4]), e.vertexWeights.push(a[g * 4 + 1]), e.vertexWeights.push(a[g * 4 + 2]), e.vertexWeights.push(a[g * 4 + 3]), e.vertexWeights.push(a[d * 4]), e.vertexWeights.push(a[d * 4 + 1]), e.vertexWeights.push(a[d * 4 + 2]), e.vertexWeights.push(a[d * 4 + 3]), e.vertexWeights.push(a[p * 4]), e.vertexWeights.push(a[p * 4 + 1]), e.vertexWeights.push(a[p * 4 + 2]), e.vertexWeights.push(a[p * 4 + 3]), e.weightsIndices.push(c[g * 4]), e.weightsIndices.push(c[g * 4 + 1]), e.weightsIndices.push(c[g * 4 + 2]), e.weightsIndices.push(c[g * 4 + 3]), e.weightsIndices.push(c[d * 4]), e.weightsIndices.push(c[d * 4 + 1]), e.weightsIndices.push(c[d * 4 + 2]), e.weightsIndices.push(c[d * 4 + 3]), e.weightsIndices.push(c[p * 4]), e.weightsIndices.push(c[p * 4 + 1]), e.weightsIndices.push(c[p * 4 + 2]), e.weightsIndices.push(c[p * 4 + 3])), t.color && (e.colors.push(o[g * 3]), e.colors.push(o[g * 3 + 1]), e.colors.push(o[g * 3 + 2]), e.colors.push(o[d * 3]), e.colors.push(o[d * 3 + 1]), e.colors.push(o[d * 3 + 2]), e.colors.push(o[p * 3]), e.colors.push(o[p * 3 + 1]), e.colors.push(o[p * 3 + 2])), t.material && t.material.mappingType !== "AllSame" && (e.materialIndex.push(n), e.materialIndex.push(n), e.materialIndex.push(n)), t.normal && (e.normal.push(i[g * 3]), e.normal.push(i[g * 3 + 1]), e.normal.push(i[g * 3 + 2]), e.normal.push(i[d * 3]), e.normal.push(i[d * 3 + 1]), e.normal.push(i[d * 3 + 2]), e.normal.push(i[p * 3]), e.normal.push(i[p * 3 + 1]), e.normal.push(i[p * 3 + 2])), t.uv && t.uv.forEach(function(m, I) {
|
|
6012
6011
|
e.uvs[I] === void 0 && (e.uvs[I] = []), e.uvs[I].push(r[I][g * 2]), e.uvs[I].push(r[I][g * 2 + 1]), e.uvs[I].push(r[I][d * 2]), e.uvs[I].push(r[I][d * 2 + 1]), e.uvs[I].push(r[I][p * 2]), e.uvs[I].push(r[I][p * 2 + 1]);
|
|
@@ -6118,7 +6117,7 @@ class Mc {
|
|
|
6118
6117
|
for (let h = 0; h < s; ++h)
|
|
6119
6118
|
i.push(i[h]);
|
|
6120
6119
|
}
|
|
6121
|
-
const l = new
|
|
6120
|
+
const l = new Rc(s, n, i, r, a).getPoints(i.length * 12);
|
|
6122
6121
|
return new ut().setFromPoints(l);
|
|
6123
6122
|
}
|
|
6124
6123
|
}
|
|
@@ -6168,7 +6167,7 @@ class kc {
|
|
|
6168
6167
|
id: t[s].id,
|
|
6169
6168
|
times: t[s].KeyTime.a.map(Gc),
|
|
6170
6169
|
values: t[s].KeyValueFloat.a
|
|
6171
|
-
}, i =
|
|
6170
|
+
}, i = _e.get(n.id);
|
|
6172
6171
|
if (i !== void 0) {
|
|
6173
6172
|
const o = i.parents[0].ID, r = i.parents[0].relationship;
|
|
6174
6173
|
r.match(/X/) ? e.get(o).curves.x = n : r.match(/Y/) ? e.get(o).curves.y = n : r.match(/Z/) ? e.get(o).curves.z = n : r.match(/DeformPercent/) && e.has(o) && (e.get(o).curves.morph = n);
|
|
@@ -6181,13 +6180,13 @@ class kc {
|
|
|
6181
6180
|
parseAnimationLayers(e) {
|
|
6182
6181
|
const t = se.Objects.AnimationLayer, s = /* @__PURE__ */ new Map();
|
|
6183
6182
|
for (const n in t) {
|
|
6184
|
-
const i = [], o =
|
|
6183
|
+
const i = [], o = _e.get(parseInt(n));
|
|
6185
6184
|
o !== void 0 && (o.children.forEach(function(a, c) {
|
|
6186
6185
|
if (e.has(a.ID)) {
|
|
6187
6186
|
const l = e.get(a.ID);
|
|
6188
6187
|
if (l.curves.x !== void 0 || l.curves.y !== void 0 || l.curves.z !== void 0) {
|
|
6189
6188
|
if (i[c] === void 0) {
|
|
6190
|
-
const h =
|
|
6189
|
+
const h = _e.get(a.ID).parents.filter(function(g) {
|
|
6191
6190
|
return g.relationship !== void 0;
|
|
6192
6191
|
})[0].ID;
|
|
6193
6192
|
if (h !== void 0) {
|
|
@@ -6211,9 +6210,9 @@ class kc {
|
|
|
6211
6210
|
i[c] && (i[c][l.attr] = l);
|
|
6212
6211
|
} else if (l.curves.morph !== void 0) {
|
|
6213
6212
|
if (i[c] === void 0) {
|
|
6214
|
-
const h =
|
|
6213
|
+
const h = _e.get(a.ID).parents.filter(function(b) {
|
|
6215
6214
|
return b.relationship !== void 0;
|
|
6216
|
-
})[0].ID, g =
|
|
6215
|
+
})[0].ID, g = _e.get(h).parents[0].ID, d = _e.get(g).parents[0].ID, p = _e.get(d).parents[0].ID, m = se.Objects.Model[p], I = {
|
|
6217
6216
|
modelName: m.attrName ? It.sanitizeNodeName(m.attrName) : "",
|
|
6218
6217
|
morphName: se.Objects.Deformer[h].attrName
|
|
6219
6218
|
};
|
|
@@ -6231,7 +6230,7 @@ class kc {
|
|
|
6231
6230
|
parseAnimStacks(e) {
|
|
6232
6231
|
const t = se.Objects.AnimationStack, s = {};
|
|
6233
6232
|
for (const n in t) {
|
|
6234
|
-
const i =
|
|
6233
|
+
const i = _e.get(parseInt(n)).children;
|
|
6235
6234
|
i.length > 1 && console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");
|
|
6236
6235
|
const o = e.get(i[0].ID);
|
|
6237
6236
|
s[n] = {
|
|
@@ -6271,7 +6270,7 @@ class kc {
|
|
|
6271
6270
|
}
|
|
6272
6271
|
generateVectorTrack(e, t, s, n) {
|
|
6273
6272
|
const i = this.getTimesForAllAxes(t), o = this.getKeyframeTrackValues(i, t, s);
|
|
6274
|
-
return new
|
|
6273
|
+
return new hs(e + "." + n, i, o);
|
|
6275
6274
|
}
|
|
6276
6275
|
generateRotationTrack(e, t, s, n, i) {
|
|
6277
6276
|
let o, r;
|
|
@@ -6283,7 +6282,7 @@ class kc {
|
|
|
6283
6282
|
const g = this.interpolateRotations(t.x, t.y, t.z, i);
|
|
6284
6283
|
o = g[0], r = g[1];
|
|
6285
6284
|
}
|
|
6286
|
-
const a =
|
|
6285
|
+
const a = jn(0);
|
|
6287
6286
|
s !== void 0 && (s = s.map(ye.degToRad), s.push(a), s = new zt().fromArray(s), s = new ve().setFromEuler(s)), n !== void 0 && (n = n.map(ye.degToRad), n.push(a), n = new zt().fromArray(n), n = new ve().setFromEuler(n).invert());
|
|
6288
6287
|
const c = new ve(), l = new zt(), h = [];
|
|
6289
6288
|
if (!(!r || !o)) {
|
|
@@ -6292,14 +6291,14 @@ class kc {
|
|
|
6292
6291
|
h,
|
|
6293
6292
|
(g - 3) / 3 * 4
|
|
6294
6293
|
).dot(c) < 0 && c.set(-c.x, -c.y, -c.z, -c.w), c.toArray(h, g / 3 * 4);
|
|
6295
|
-
return new
|
|
6294
|
+
return new gs(e + ".quaternion", o, h);
|
|
6296
6295
|
}
|
|
6297
6296
|
}
|
|
6298
6297
|
generateMorphTrack(e) {
|
|
6299
6298
|
const t = e.DeformPercent.curves.morph, s = t.values.map(function(i) {
|
|
6300
6299
|
return i / 100;
|
|
6301
6300
|
}), n = ze.getObjectByName(e.modelName).morphTargetDictionary[e.morphName];
|
|
6302
|
-
return new
|
|
6301
|
+
return new us(e.modelName + ".morphTargetInfluences[" + n + "]", t.times, s);
|
|
6303
6302
|
}
|
|
6304
6303
|
// For all animated objects, times are defined separately for each axis
|
|
6305
6304
|
// Here we'll combine the times into one sorted array without duplicates
|
|
@@ -6371,9 +6370,9 @@ class kc {
|
|
|
6371
6370
|
if (d[0] >= 180 || d[1] >= 180 || d[2] >= 180) {
|
|
6372
6371
|
const m = Math.max(...d) / 180, I = new zt(...c, n), b = new zt(...h, n), B = new ve().setFromEuler(I), E = new ve().setFromEuler(b);
|
|
6373
6372
|
B.dot(E) && E.set(-E.x, -E.y, -E.z, -E.w);
|
|
6374
|
-
const w = e.times[r - 1], Q = e.times[r] - w,
|
|
6373
|
+
const w = e.times[r - 1], Q = e.times[r] - w, _ = new ve(), R = new zt();
|
|
6375
6374
|
for (let x = 0; x < 1; x += 1 / m)
|
|
6376
|
-
|
|
6375
|
+
_.copy(B.clone().slerp(E.clone(), x)), i.push(w + x * Q), R.setFromQuaternion(_, n), o.push(R.x), o.push(R.y), o.push(R.z);
|
|
6377
6376
|
} else
|
|
6378
6377
|
i.push(e.times[r]), o.push(ye.degToRad(e.values[r])), o.push(ye.degToRad(t.values[r])), o.push(ye.degToRad(s.values[r]));
|
|
6379
6378
|
}
|
|
@@ -6436,11 +6435,11 @@ class Fc {
|
|
|
6436
6435
|
return g.trim().replace(/^"/, "");
|
|
6437
6436
|
}), n = "connections", i = [c, l], Oc(i, h), o[n] === void 0 && (o[n] = []);
|
|
6438
6437
|
}
|
|
6439
|
-
n === "Node" && (o.id = i), n in o && Array.isArray(o[n]) ? o[n].push(i) : n !== "a" ? o[n] = i : o.a = i, this.setCurrentProp(o, n), n === "a" && i.slice(-1) !== "," && (o.a =
|
|
6438
|
+
n === "Node" && (o.id = i), n in o && Array.isArray(o[n]) ? o[n].push(i) : n !== "a" ? o[n] = i : o.a = i, this.setCurrentProp(o, n), n === "a" && i.slice(-1) !== "," && (o.a = Gs(i));
|
|
6440
6439
|
}
|
|
6441
6440
|
parseNodePropertyContinued(e) {
|
|
6442
6441
|
const t = this.getCurrentNode();
|
|
6443
|
-
t.a += e, e.slice(-1) !== "," && (t.a =
|
|
6442
|
+
t.a += e, e.slice(-1) !== "," && (t.a = Gs(t.a));
|
|
6444
6443
|
}
|
|
6445
6444
|
// parse "Property70"
|
|
6446
6445
|
parseNodeSpecialProperty(e, t, s) {
|
|
@@ -6464,7 +6463,7 @@ class Fc {
|
|
|
6464
6463
|
case "Lcl_Translation":
|
|
6465
6464
|
case "Lcl_Rotation":
|
|
6466
6465
|
case "Lcl_Scaling":
|
|
6467
|
-
c =
|
|
6466
|
+
c = Gs(c);
|
|
6468
6467
|
break;
|
|
6469
6468
|
}
|
|
6470
6469
|
this.getPrevNode()[i] = {
|
|
@@ -6579,7 +6578,7 @@ class Lc {
|
|
|
6579
6578
|
case "l":
|
|
6580
6579
|
return e.getInt64Array(n);
|
|
6581
6580
|
}
|
|
6582
|
-
const r =
|
|
6581
|
+
const r = Nn(new Uint8Array(e.getArrayBuffer(o))), a = new to(r.buffer);
|
|
6583
6582
|
switch (t) {
|
|
6584
6583
|
case "b":
|
|
6585
6584
|
case "c":
|
|
@@ -6730,7 +6729,7 @@ function Gc(A) {
|
|
|
6730
6729
|
return A / 46186158e3;
|
|
6731
6730
|
}
|
|
6732
6731
|
const Pc = [];
|
|
6733
|
-
function
|
|
6732
|
+
function Zn(A, e, t, s) {
|
|
6734
6733
|
let n;
|
|
6735
6734
|
switch (s.mappingType) {
|
|
6736
6735
|
case "ByPolygonVertex":
|
|
@@ -6752,24 +6751,24 @@ function Xn(A, e, t, s) {
|
|
|
6752
6751
|
const i = n * s.dataSize, o = i + s.dataSize;
|
|
6753
6752
|
return Hc(Pc, s.buffer, i, o);
|
|
6754
6753
|
}
|
|
6755
|
-
const
|
|
6754
|
+
const Us = new zt(), un = new P();
|
|
6756
6755
|
function Er(A) {
|
|
6757
6756
|
const e = new ue(), t = new ue(), s = new ue(), n = new ue(), i = new ue(), o = new ue(), r = new ue(), a = new ue(), c = new ue(), l = new ue(), h = new ue(), g = new ue(), d = A.inheritType ? A.inheritType : 0;
|
|
6758
|
-
A.translation && e.setPosition(
|
|
6759
|
-
const p =
|
|
6757
|
+
A.translation && e.setPosition(un.fromArray(A.translation));
|
|
6758
|
+
const p = jn(0);
|
|
6760
6759
|
if (A.preRotation) {
|
|
6761
6760
|
const N = A.preRotation.map(ye.degToRad);
|
|
6762
|
-
N.push(p), t.makeRotationFromEuler(
|
|
6761
|
+
N.push(p), t.makeRotationFromEuler(Us.fromArray(N));
|
|
6763
6762
|
}
|
|
6764
6763
|
if (A.rotation) {
|
|
6765
6764
|
const N = A.rotation.map(ye.degToRad);
|
|
6766
|
-
N.push(A.eulerOrder || p), s.makeRotationFromEuler(
|
|
6765
|
+
N.push(A.eulerOrder || p), s.makeRotationFromEuler(Us.fromArray(N));
|
|
6767
6766
|
}
|
|
6768
6767
|
if (A.postRotation) {
|
|
6769
6768
|
const N = A.postRotation.map(ye.degToRad);
|
|
6770
|
-
N.push(p), n.makeRotationFromEuler(
|
|
6769
|
+
N.push(p), n.makeRotationFromEuler(Us.fromArray(N)), n.invert();
|
|
6771
6770
|
}
|
|
6772
|
-
A.scale && i.scale(
|
|
6771
|
+
A.scale && i.scale(un.fromArray(A.scale)), A.scalingOffset && r.setPosition(un.fromArray(A.scalingOffset)), A.scalingPivot && o.setPosition(un.fromArray(A.scalingPivot)), A.rotationOffset && a.setPosition(un.fromArray(A.rotationOffset)), A.rotationPivot && c.setPosition(un.fromArray(A.rotationPivot)), A.parentMatrixWorld && (h.copy(A.parentMatrix), l.copy(A.parentMatrixWorld));
|
|
6773
6772
|
const m = t.clone().multiply(s).multiply(n), I = new ue();
|
|
6774
6773
|
I.extractRotation(l);
|
|
6775
6774
|
const b = new ue();
|
|
@@ -6783,12 +6782,12 @@ function Er(A) {
|
|
|
6783
6782
|
const O = new ue().scale(new P().setFromMatrixScale(h)).clone().invert(), Z = E.clone().multiply(O);
|
|
6784
6783
|
Q.copy(I).multiply(m).multiply(Z).multiply(w);
|
|
6785
6784
|
}
|
|
6786
|
-
const
|
|
6787
|
-
let x = e.clone().multiply(a).multiply(c).multiply(t).multiply(s).multiply(n).multiply(
|
|
6785
|
+
const _ = c.clone().invert(), R = o.clone().invert();
|
|
6786
|
+
let x = e.clone().multiply(a).multiply(c).multiply(t).multiply(s).multiply(n).multiply(_).multiply(r).multiply(o).multiply(i).multiply(R);
|
|
6788
6787
|
const v = new ue().copyPosition(x), L = l.clone().multiply(v);
|
|
6789
6788
|
return g.copyPosition(L), x = g.clone().multiply(Q), x.premultiply(l.invert()), x;
|
|
6790
6789
|
}
|
|
6791
|
-
function
|
|
6790
|
+
function jn(A) {
|
|
6792
6791
|
A = A || 0;
|
|
6793
6792
|
const e = [
|
|
6794
6793
|
"ZYX",
|
|
@@ -6807,7 +6806,7 @@ function Hn(A) {
|
|
|
6807
6806
|
];
|
|
6808
6807
|
return A === 6 ? (console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."), e[0]) : e[A];
|
|
6809
6808
|
}
|
|
6810
|
-
function
|
|
6809
|
+
function Gs(A) {
|
|
6811
6810
|
return A.split(",").map(function(t) {
|
|
6812
6811
|
return parseFloat(t);
|
|
6813
6812
|
});
|
|
@@ -6842,7 +6841,7 @@ class jc extends Nt {
|
|
|
6842
6841
|
* you must call setResourcePath() explicitly prior to load.
|
|
6843
6842
|
*/
|
|
6844
6843
|
load(e, t, s, n) {
|
|
6845
|
-
const i = this, o = this.path === "" ?
|
|
6844
|
+
const i = this, o = this.path === "" ? sn.extractUrlBase(e) : this.path, r = new ft(this.manager);
|
|
6846
6845
|
r.setPath(this.path), r.setRequestHeader(this.requestHeader), r.setWithCredentials(this.withCredentials), r.load(e, function(a) {
|
|
6847
6846
|
try {
|
|
6848
6847
|
t(i.parse(a, o));
|
|
@@ -6892,7 +6891,7 @@ class jc extends Nt {
|
|
|
6892
6891
|
}
|
|
6893
6892
|
class qc {
|
|
6894
6893
|
constructor(e = "", t = {}) {
|
|
6895
|
-
this.baseUrl = e, this.options = t, this.materialsInfo = {}, this.materials = {}, this.materialsArray = [], this.nameLookup = {}, this.crossOrigin = "anonymous", this.side = this.options.side !== void 0 ? this.options.side : No, this.wrap = this.options.wrap !== void 0 ? this.options.wrap :
|
|
6894
|
+
this.baseUrl = e, this.options = t, this.materialsInfo = {}, this.materials = {}, this.materialsArray = [], this.nameLookup = {}, this.crossOrigin = "anonymous", this.side = this.options.side !== void 0 ? this.options.side : No, this.wrap = this.options.wrap !== void 0 ? this.options.wrap : an;
|
|
6896
6895
|
}
|
|
6897
6896
|
setCrossOrigin(e) {
|
|
6898
6897
|
return this.crossOrigin = e, this;
|
|
@@ -6998,7 +6997,7 @@ class qc {
|
|
|
6998
6997
|
break;
|
|
6999
6998
|
}
|
|
7000
6999
|
}
|
|
7001
|
-
return this.materials[e] = new
|
|
7000
|
+
return this.materials[e] = new On(n), this.materials[e];
|
|
7002
7001
|
}
|
|
7003
7002
|
getTextureParams(e, t) {
|
|
7004
7003
|
const s = {
|
|
@@ -7016,7 +7015,7 @@ class qc {
|
|
|
7016
7015
|
return t !== void 0 && (a.mapping = t), a;
|
|
7017
7016
|
}
|
|
7018
7017
|
}
|
|
7019
|
-
const zc = /^[og]\s*(.+)?/, Kc = /^mtllib /, Yc = /^usemtl /, Jc = /^usemap /, so = /\s+/, io = new P(),
|
|
7018
|
+
const zc = /^[og]\s*(.+)?/, Kc = /^mtllib /, Yc = /^usemtl /, Jc = /^usemap /, so = /\s+/, io = new P(), Ps = new P(), oo = new P(), ro = new P(), ct = new P(), $n = new Se();
|
|
7020
7019
|
function Wc() {
|
|
7021
7020
|
const A = {
|
|
7022
7021
|
objects: [],
|
|
@@ -7126,7 +7125,7 @@ function Wc() {
|
|
|
7126
7125
|
},
|
|
7127
7126
|
addFaceNormal: function(e, t, s) {
|
|
7128
7127
|
const n = this.vertices, i = this.object.geometry.normals;
|
|
7129
|
-
io.fromArray(n, e),
|
|
7128
|
+
io.fromArray(n, e), Ps.fromArray(n, t), oo.fromArray(n, s), ct.subVectors(oo, Ps), ro.subVectors(io, Ps), ct.cross(ro), ct.normalize(), i.push(ct.x, ct.y, ct.z), i.push(ct.x, ct.y, ct.z), i.push(ct.x, ct.y, ct.z);
|
|
7130
7129
|
},
|
|
7131
7130
|
addColor: function(e, t, s) {
|
|
7132
7131
|
const n = this.colors, i = this.object.geometry.colors;
|
|
@@ -7177,7 +7176,7 @@ function Wc() {
|
|
|
7177
7176
|
};
|
|
7178
7177
|
return A.startObject("", !1), A;
|
|
7179
7178
|
}
|
|
7180
|
-
class
|
|
7179
|
+
class Qh extends Nt {
|
|
7181
7180
|
constructor(e) {
|
|
7182
7181
|
super(e), this.materials = null, this.materialsLoader = new jc(e);
|
|
7183
7182
|
}
|
|
@@ -7228,12 +7227,12 @@ class yh extends Nt {
|
|
|
7228
7227
|
parseFloat(l[1]),
|
|
7229
7228
|
parseFloat(l[2]),
|
|
7230
7229
|
parseFloat(l[3])
|
|
7231
|
-
), l.length >= 7 ? (
|
|
7230
|
+
), l.length >= 7 ? ($n.setRGB(
|
|
7232
7231
|
parseFloat(l[4]),
|
|
7233
7232
|
parseFloat(l[5]),
|
|
7234
7233
|
parseFloat(l[6]),
|
|
7235
7234
|
ge
|
|
7236
|
-
), s.colors.push(
|
|
7235
|
+
), s.colors.push($n.r, $n.g, $n.b)) : s.colors.push(void 0, void 0, void 0);
|
|
7237
7236
|
break;
|
|
7238
7237
|
case "vn":
|
|
7239
7238
|
s.normals.push(
|
|
@@ -7313,7 +7312,7 @@ class yh extends Nt {
|
|
|
7313
7312
|
return s.finalize(), t ? s : this.createObjects(s);
|
|
7314
7313
|
}
|
|
7315
7314
|
createObjects(e) {
|
|
7316
|
-
const t = new
|
|
7315
|
+
const t = new on();
|
|
7317
7316
|
if (t.materialLibraries = [].concat(e.materialLibraries), !(e.objects.length === 1 && e.objects[0].geometry.vertices.length === 0) === !0)
|
|
7318
7317
|
for (let n = 0, i = e.objects.length; n < i; n++) {
|
|
7319
7318
|
const o = e.objects[n], r = o.geometry, a = o.materials, c = r.type === "Line", l = r.type === "Points";
|
|
@@ -7328,13 +7327,13 @@ class yh extends Nt {
|
|
|
7328
7327
|
if (this.materials !== null) {
|
|
7329
7328
|
if (E = this.materials.create(b.name), c && E && !(E instanceof Lt)) {
|
|
7330
7329
|
const w = new Lt();
|
|
7331
|
-
|
|
7332
|
-
} else if (l && E && !(E instanceof
|
|
7333
|
-
const w = new
|
|
7334
|
-
|
|
7330
|
+
nn.prototype.copy.call(w, E), w.color.copy(E.color), E = w;
|
|
7331
|
+
} else if (l && E && !(E instanceof Mn)) {
|
|
7332
|
+
const w = new Mn({ size: 10, sizeAttenuation: !1 });
|
|
7333
|
+
nn.prototype.copy.call(w, E), w.color.copy(E.color), w.map = E.map, E = w;
|
|
7335
7334
|
}
|
|
7336
7335
|
}
|
|
7337
|
-
E === void 0 && (c ? E = new Lt() : l ? E = new
|
|
7336
|
+
E === void 0 && (c ? E = new Lt() : l ? E = new Mn({ size: 1, sizeAttenuation: !1 }) : E = new On(), E.name = b.name, E.flatShading = !b.smooth, E.vertexColors = h, e.materials[B] = E), d.push(E);
|
|
7338
7337
|
}
|
|
7339
7338
|
let p;
|
|
7340
7339
|
if (d.length > 1) {
|
|
@@ -7342,23 +7341,23 @@ class yh extends Nt {
|
|
|
7342
7341
|
const b = a[m];
|
|
7343
7342
|
g.addGroup(b.groupStart, b.groupCount, m);
|
|
7344
7343
|
}
|
|
7345
|
-
c ? p = new
|
|
7344
|
+
c ? p = new ls(g, d) : l ? p = new os(g, d) : p = new z(g, d);
|
|
7346
7345
|
} else
|
|
7347
|
-
c ? p = new
|
|
7346
|
+
c ? p = new ls(g, d[0]) : l ? p = new os(g, d[0]) : p = new z(g, d[0]);
|
|
7348
7347
|
p.name = o.name, t.add(p);
|
|
7349
7348
|
}
|
|
7350
7349
|
else if (e.vertices.length > 0) {
|
|
7351
|
-
const n = new
|
|
7350
|
+
const n = new Mn({ size: 1, sizeAttenuation: !1 }), i = new ut();
|
|
7352
7351
|
i.setAttribute("position", new ke(e.vertices, 3)), e.colors.length > 0 && e.colors[0] !== void 0 && (i.setAttribute("color", new ke(e.colors, 3)), n.vertexColors = !0);
|
|
7353
|
-
const o = new
|
|
7352
|
+
const o = new os(i, n);
|
|
7354
7353
|
t.add(o);
|
|
7355
7354
|
}
|
|
7356
7355
|
return t;
|
|
7357
7356
|
}
|
|
7358
7357
|
}
|
|
7359
|
-
const ao = { type: "change" }, wi = { type: "start" }, Br = { type: "end" },
|
|
7358
|
+
const ao = { type: "change" }, wi = { type: "start" }, Br = { type: "end" }, Vc = { type: "endMovement" }, es = new Ha(), Ao = new ja(), Xc = Math.cos(70 * ye.DEG2RAD), Me = new P();
|
|
7360
7359
|
new P();
|
|
7361
|
-
const Ye = 2 * Math.PI,
|
|
7360
|
+
const Ye = 2 * Math.PI, de = {
|
|
7362
7361
|
NONE: -1,
|
|
7363
7362
|
ROTATE: 0,
|
|
7364
7363
|
DOLLY: 1,
|
|
@@ -7367,10 +7366,10 @@ const Ye = 2 * Math.PI, fe = {
|
|
|
7367
7366
|
TOUCH_PAN: 4,
|
|
7368
7367
|
TOUCH_DOLLY_PAN: 5,
|
|
7369
7368
|
TOUCH_DOLLY_ROTATE: 6
|
|
7370
|
-
},
|
|
7371
|
-
let
|
|
7369
|
+
}, Zt = 1e-6;
|
|
7370
|
+
let xh = class extends Go {
|
|
7372
7371
|
constructor(e, t = null) {
|
|
7373
|
-
super(e, t), this.state =
|
|
7372
|
+
super(e, t), this.state = de.NONE, this.enabled = !0, this.target = new P(), this.cursor = new P(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: In.ROTATE, MIDDLE: In.DOLLY, RIGHT: In.PAN }, this.touches = { ONE: mn.ROTATE, TWO: mn.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new P(), this._lastQuaternion = new ve(), this._lastTargetPosition = new P(), this._quat = new ve().setFromUnitVectors(e.up, new P(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new Ri(), this._sphericalDelta = new Ri(), this._scale = 1, this._currentScale = 1, this._panOffset = new P(), this._rotateStart = new Le(), this._rotateEnd = new Le(), this._rotateDelta = new Le(), this._panStart = new Le(), this._panEnd = new Le(), this._panDelta = new Le(), this._dollyStart = new Le(), this._dollyEnd = new Le(), this._dollyDelta = new Le(), this._dollyDirection = new P(), this._mouse = new Le(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._lastIsDamping = !1, this._isDamping = !1, this._onPointerMove = $c.bind(this), this._onPointerDown = Zc.bind(this), this._onPointerUp = el.bind(this), this._onContextMenu = al.bind(this), this._onMouseWheel = sl.bind(this), this._onKeyDown = il.bind(this), this._onTouchStart = ol.bind(this), this._onTouchMove = rl.bind(this), this._onMouseDown = tl.bind(this), this._onMouseMove = nl.bind(this), this._interceptControlDown = Al.bind(this), this._interceptControlUp = cl.bind(this), this.domElement !== null && this.connect(), this.update();
|
|
7374
7373
|
}
|
|
7375
7374
|
connect() {
|
|
7376
7375
|
this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
|
|
@@ -7400,11 +7399,12 @@ let Qh = class extends Go {
|
|
|
7400
7399
|
this.target0.copy(this.target), this.position0.copy(this.object.position), this.zoom0 = this.object.zoom;
|
|
7401
7400
|
}
|
|
7402
7401
|
reset() {
|
|
7403
|
-
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(ao), this.update(), this.state =
|
|
7402
|
+
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(ao), this.update(), this.state = de.NONE, this._isDamping = !1;
|
|
7404
7403
|
}
|
|
7405
7404
|
update(e = null) {
|
|
7405
|
+
if (this.enableDamping && e === null) return;
|
|
7406
7406
|
const t = this.object.getWorldPosition(this.object.position);
|
|
7407
|
-
Me.copy(t).sub(this.target), Me.applyQuaternion(this._quat), this._spherical.setFromVector3(Me), this.autoRotate && this.state ===
|
|
7407
|
+
Me.copy(t).sub(this.target), Me.applyQuaternion(this._quat), this._spherical.setFromVector3(Me), this.autoRotate && this.state === de.NONE && this._rotateLeft(this._getAutoRotationAngle(e)), this.enableDamping ? (this._spherical.theta += this._sphericalDelta.theta * this.dampingFactor, this._spherical.phi += this._sphericalDelta.phi * this.dampingFactor) : (this._spherical.theta += this._sphericalDelta.theta, this._spherical.phi += this._sphericalDelta.phi);
|
|
7408
7408
|
let s = this.minAzimuthAngle, n = this.maxAzimuthAngle;
|
|
7409
7409
|
isFinite(s) && isFinite(n) && (s < -Math.PI ? s += Ye : s > Math.PI && (s -= Ye), n < -Math.PI ? n += Ye : n > Math.PI && (n -= Ye), s <= n ? this._spherical.theta = Math.max(s, Math.min(n, this._spherical.theta)) : this._spherical.theta = this._spherical.theta > (s + n) / 2 ? Math.max(s, this._spherical.theta) : Math.min(n, this._spherical.theta)), this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)), this._spherical.makeSafe(), this.enableDamping === !0 ? this.target.addScaledVector(this._panOffset, this.dampingFactor) : this.target.add(this._panOffset), this.target.sub(this.cursor), this.target.clampLength(this.minTargetRadius, this.maxTargetRadius), this.target.add(this.cursor);
|
|
7410
7410
|
let i = !1;
|
|
@@ -7412,7 +7412,7 @@ let Qh = class extends Go {
|
|
|
7412
7412
|
this._spherical.radius = this._clampDistance(this._spherical.radius);
|
|
7413
7413
|
else {
|
|
7414
7414
|
const o = this._spherical.radius;
|
|
7415
|
-
this._spherical.radius = this._clampDistance(this._spherical.radius * this._currentScale), i = o
|
|
7415
|
+
this._spherical.radius = this._clampDistance(this._spherical.radius * this._currentScale), i = Math.abs(o - this._spherical.radius) > Zt * 100;
|
|
7416
7416
|
}
|
|
7417
7417
|
if (Me.setFromSpherical(this._spherical), Me.applyQuaternion(this._quatInverse), t.copy(this.target).add(Me), this.object.parent ? this.object.parent.worldToLocal(t) : this.object.position.copy(t), this.object.lookAt(this.target), this.enableDamping === !0 ? (this._sphericalDelta.theta *= 1 - this.dampingFactor, this._sphericalDelta.phi *= 1 - this.dampingFactor, this._panOffset.multiplyScalar(1 - this.dampingFactor)) : (this._sphericalDelta.set(0, 0, 0), this._panOffset.set(0, 0, 0)), this.zoomToCursor && this._performCursorZoom) {
|
|
7418
7418
|
let o = null;
|
|
@@ -7420,22 +7420,22 @@ let Qh = class extends Go {
|
|
|
7420
7420
|
const r = Me.length();
|
|
7421
7421
|
o = this._clampDistance(r * this._currentScale);
|
|
7422
7422
|
const a = r - o;
|
|
7423
|
-
this.object.position.addScaledVector(this._dollyDirection, a), this.object.updateMatrixWorld(), i =
|
|
7423
|
+
this.object.position.addScaledVector(this._dollyDirection, a), this.object.updateMatrixWorld(), i = Math.abs(a) > Zt;
|
|
7424
7424
|
} else if (this.object.isOrthographicCamera) {
|
|
7425
7425
|
const r = new P(this._mouse.x, this._mouse.y, 0);
|
|
7426
7426
|
r.unproject(this.object);
|
|
7427
7427
|
const a = this.object.zoom;
|
|
7428
|
-
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._currentScale)), this.object.updateProjectionMatrix(), i = a
|
|
7428
|
+
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._currentScale)), this.object.updateProjectionMatrix(), i = Math.abs(a - this.object.zoom) > Zt;
|
|
7429
7429
|
const c = new P(this._mouse.x, this._mouse.y, 0);
|
|
7430
7430
|
c.unproject(this.object), this.object.position.sub(c).add(r), this.object.updateMatrixWorld(), o = Me.length();
|
|
7431
7431
|
} else
|
|
7432
7432
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
|
|
7433
|
-
o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : (
|
|
7433
|
+
o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : (es.origin.copy(this.object.position), es.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(es.direction)) < Xc ? this.object.lookAt(this.target) : (Ao.setFromNormalAndCoplanarPoint(this.object.up, this.target), es.intersectPlane(Ao, this.target))));
|
|
7434
7434
|
} else if (this.object.isOrthographicCamera) {
|
|
7435
7435
|
const o = this.object.zoom;
|
|
7436
|
-
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), o
|
|
7436
|
+
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), Math.abs(o - this.object.zoom) > Zt && (this.object.updateProjectionMatrix(), i = !0);
|
|
7437
7437
|
}
|
|
7438
|
-
return this._scale = 1, i || this._lastPosition.distanceToSquared(this.object.position) >
|
|
7438
|
+
return this._scale = 1, i || this._lastPosition.distanceToSquared(this.object.position) > Zt || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > Zt || this._lastTargetPosition.distanceToSquared(this.target) > Zt ? (this.dispatchEvent(ao), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), this._lastIsDamping = !0, this._isDamping = !0, !0) : (this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), this.state === de.NONE && (this._lastIsDamping = this._isDamping, this._isDamping = !1), this._lastIsDamping && !this._isDamping && this.state === de.NONE && (this._isDamping = !1, this._lastIsDamping = !1, this.dispatchEvent(Vc)), this._performCursorZoom = !1, !1);
|
|
7439
7439
|
}
|
|
7440
7440
|
_getAutoRotationAngle(e) {
|
|
7441
7441
|
return e !== null ? Ye / 60 * this.autoRotateSpeed * e : Ye / 60 / 60 * this.autoRotateSpeed;
|
|
@@ -7626,16 +7626,16 @@ let Qh = class extends Go {
|
|
|
7626
7626
|
return e.ctrlKey && !this._controlActive && (s.deltaY *= 10), s;
|
|
7627
7627
|
}
|
|
7628
7628
|
};
|
|
7629
|
-
function
|
|
7629
|
+
function Zc(A) {
|
|
7630
7630
|
this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(A.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), window.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(A) && (this._addPointer(A), A.pointerType === "touch" ? this._onTouchStart(A) : this._onMouseDown(A)));
|
|
7631
7631
|
}
|
|
7632
|
-
function
|
|
7632
|
+
function $c(A) {
|
|
7633
7633
|
this.enabled !== !1 && (A.pointerType === "touch" ? this._onTouchMove(A) : this._onMouseMove(A));
|
|
7634
7634
|
}
|
|
7635
|
-
function
|
|
7635
|
+
function el(A) {
|
|
7636
7636
|
switch (this._removePointer(A), this._pointers.length) {
|
|
7637
7637
|
case 0:
|
|
7638
|
-
this.domElement.releasePointerCapture(A.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), window.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(Br), this.state =
|
|
7638
|
+
this.domElement.releasePointerCapture(A.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), window.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(Br), this.state = de.NONE;
|
|
7639
7639
|
break;
|
|
7640
7640
|
case 1:
|
|
7641
7641
|
const e = this._pointers[0], t = this._pointerPositions[e];
|
|
@@ -7643,7 +7643,7 @@ function $c(A) {
|
|
|
7643
7643
|
break;
|
|
7644
7644
|
}
|
|
7645
7645
|
}
|
|
7646
|
-
function
|
|
7646
|
+
function tl(A) {
|
|
7647
7647
|
let e;
|
|
7648
7648
|
switch (A.button) {
|
|
7649
7649
|
case 0:
|
|
@@ -7659,122 +7659,122 @@ function el(A) {
|
|
|
7659
7659
|
e = -1;
|
|
7660
7660
|
}
|
|
7661
7661
|
switch (e) {
|
|
7662
|
-
case
|
|
7662
|
+
case In.DOLLY:
|
|
7663
7663
|
if (this.enableZoom === !1) return;
|
|
7664
|
-
this._handleMouseDownDolly(A), this.state =
|
|
7664
|
+
this._handleMouseDownDolly(A), this.state = de.DOLLY;
|
|
7665
7665
|
break;
|
|
7666
|
-
case
|
|
7666
|
+
case In.ROTATE:
|
|
7667
7667
|
if (A.ctrlKey || A.metaKey || A.shiftKey) {
|
|
7668
7668
|
if (this.enablePan === !1) return;
|
|
7669
|
-
this._handleMouseDownPan(A), this.state =
|
|
7669
|
+
this._handleMouseDownPan(A), this.state = de.PAN;
|
|
7670
7670
|
} else {
|
|
7671
7671
|
if (this.enableRotate === !1) return;
|
|
7672
|
-
this._handleMouseDownRotate(A), this.state =
|
|
7672
|
+
this._handleMouseDownRotate(A), this.state = de.ROTATE;
|
|
7673
7673
|
}
|
|
7674
7674
|
break;
|
|
7675
|
-
case
|
|
7675
|
+
case In.PAN:
|
|
7676
7676
|
if (A.ctrlKey || A.metaKey || A.shiftKey) {
|
|
7677
7677
|
if (this.enableRotate === !1) return;
|
|
7678
|
-
this._handleMouseDownRotate(A), this.state =
|
|
7678
|
+
this._handleMouseDownRotate(A), this.state = de.ROTATE;
|
|
7679
7679
|
} else {
|
|
7680
7680
|
if (this.enablePan === !1) return;
|
|
7681
|
-
this._handleMouseDownPan(A), this.state =
|
|
7681
|
+
this._handleMouseDownPan(A), this.state = de.PAN;
|
|
7682
7682
|
}
|
|
7683
7683
|
break;
|
|
7684
7684
|
default:
|
|
7685
|
-
this.state =
|
|
7685
|
+
this.state = de.NONE;
|
|
7686
7686
|
}
|
|
7687
|
-
this.state !==
|
|
7687
|
+
this.state !== de.NONE && this.dispatchEvent(wi);
|
|
7688
7688
|
}
|
|
7689
|
-
function
|
|
7689
|
+
function nl(A) {
|
|
7690
7690
|
switch (this.state) {
|
|
7691
|
-
case
|
|
7691
|
+
case de.ROTATE:
|
|
7692
7692
|
if (this.enableRotate === !1) return;
|
|
7693
7693
|
this._handleMouseMoveRotate(A);
|
|
7694
7694
|
break;
|
|
7695
|
-
case
|
|
7695
|
+
case de.DOLLY:
|
|
7696
7696
|
if (this.enableZoom === !1) return;
|
|
7697
7697
|
this._handleMouseMoveDolly(A);
|
|
7698
7698
|
break;
|
|
7699
|
-
case
|
|
7699
|
+
case de.PAN:
|
|
7700
7700
|
if (this.enablePan === !1) return;
|
|
7701
7701
|
this._handleMouseMovePan(A);
|
|
7702
7702
|
break;
|
|
7703
7703
|
}
|
|
7704
7704
|
}
|
|
7705
|
-
function nl(A) {
|
|
7706
|
-
this.enabled === !1 || this.enableZoom === !1 || this.state !== fe.NONE || (A.preventDefault(), this.dispatchEvent(wi), this._handleMouseWheel(this._customWheelEvent(A)), this.dispatchEvent(Br));
|
|
7707
|
-
}
|
|
7708
7705
|
function sl(A) {
|
|
7709
|
-
this.enabled === !1 || this.
|
|
7706
|
+
this.enabled === !1 || this.enableZoom === !1 || this.state !== de.NONE || (A.preventDefault(), this.dispatchEvent(wi), this._handleMouseWheel(this._customWheelEvent(A)), this.dispatchEvent(Br));
|
|
7710
7707
|
}
|
|
7711
7708
|
function il(A) {
|
|
7709
|
+
this.enabled === !1 || this.enablePan === !1 || this._handleKeyDown(A);
|
|
7710
|
+
}
|
|
7711
|
+
function ol(A) {
|
|
7712
7712
|
switch (this._trackPointer(A), this._pointers.length) {
|
|
7713
7713
|
case 1:
|
|
7714
7714
|
switch (this.touches.ONE) {
|
|
7715
|
-
case
|
|
7715
|
+
case mn.ROTATE:
|
|
7716
7716
|
if (this.enableRotate === !1) return;
|
|
7717
|
-
this._handleTouchStartRotate(A), this.state =
|
|
7717
|
+
this._handleTouchStartRotate(A), this.state = de.TOUCH_ROTATE;
|
|
7718
7718
|
break;
|
|
7719
|
-
case
|
|
7719
|
+
case mn.PAN:
|
|
7720
7720
|
if (this.enablePan === !1) return;
|
|
7721
|
-
this._handleTouchStartPan(A), this.state =
|
|
7721
|
+
this._handleTouchStartPan(A), this.state = de.TOUCH_PAN;
|
|
7722
7722
|
break;
|
|
7723
7723
|
default:
|
|
7724
|
-
this.state =
|
|
7724
|
+
this.state = de.NONE;
|
|
7725
7725
|
}
|
|
7726
7726
|
break;
|
|
7727
7727
|
case 2:
|
|
7728
7728
|
switch (this.touches.TWO) {
|
|
7729
|
-
case
|
|
7729
|
+
case mn.DOLLY_PAN:
|
|
7730
7730
|
if (this.enableZoom === !1 && this.enablePan === !1) return;
|
|
7731
|
-
this._handleTouchStartDollyPan(A), this.state =
|
|
7731
|
+
this._handleTouchStartDollyPan(A), this.state = de.TOUCH_DOLLY_PAN;
|
|
7732
7732
|
break;
|
|
7733
|
-
case
|
|
7733
|
+
case mn.DOLLY_ROTATE:
|
|
7734
7734
|
if (this.enableZoom === !1 && this.enableRotate === !1) return;
|
|
7735
|
-
this._handleTouchStartDollyRotate(A), this.state =
|
|
7735
|
+
this._handleTouchStartDollyRotate(A), this.state = de.TOUCH_DOLLY_ROTATE;
|
|
7736
7736
|
break;
|
|
7737
7737
|
default:
|
|
7738
|
-
this.state =
|
|
7738
|
+
this.state = de.NONE;
|
|
7739
7739
|
}
|
|
7740
7740
|
break;
|
|
7741
7741
|
default:
|
|
7742
|
-
this.state =
|
|
7742
|
+
this.state = de.NONE;
|
|
7743
7743
|
}
|
|
7744
|
-
this.state !==
|
|
7744
|
+
this.state !== de.NONE && this.dispatchEvent(wi);
|
|
7745
7745
|
}
|
|
7746
|
-
function
|
|
7746
|
+
function rl(A) {
|
|
7747
7747
|
switch (this._trackPointer(A), this.state) {
|
|
7748
|
-
case
|
|
7748
|
+
case de.TOUCH_ROTATE:
|
|
7749
7749
|
if (this.enableRotate === !1) return;
|
|
7750
7750
|
this._handleTouchMoveRotate(A), this.update();
|
|
7751
7751
|
break;
|
|
7752
|
-
case
|
|
7752
|
+
case de.TOUCH_PAN:
|
|
7753
7753
|
if (this.enablePan === !1) return;
|
|
7754
7754
|
this._handleTouchMovePan(A), this.update();
|
|
7755
7755
|
break;
|
|
7756
|
-
case
|
|
7756
|
+
case de.TOUCH_DOLLY_PAN:
|
|
7757
7757
|
if (this.enableZoom === !1 && this.enablePan === !1) return;
|
|
7758
7758
|
this._handleTouchMoveDollyPan(A), this.update();
|
|
7759
7759
|
break;
|
|
7760
|
-
case
|
|
7760
|
+
case de.TOUCH_DOLLY_ROTATE:
|
|
7761
7761
|
if (this.enableZoom === !1 && this.enableRotate === !1) return;
|
|
7762
7762
|
this._handleTouchMoveDollyRotate(A), this.update();
|
|
7763
7763
|
break;
|
|
7764
7764
|
default:
|
|
7765
|
-
this.state =
|
|
7765
|
+
this.state = de.NONE;
|
|
7766
7766
|
}
|
|
7767
7767
|
}
|
|
7768
|
-
function
|
|
7768
|
+
function al(A) {
|
|
7769
7769
|
this.enabled !== !1 && A.preventDefault();
|
|
7770
7770
|
}
|
|
7771
|
-
function
|
|
7771
|
+
function Al(A) {
|
|
7772
7772
|
A.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
7773
7773
|
}
|
|
7774
|
-
function
|
|
7774
|
+
function cl(A) {
|
|
7775
7775
|
A.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
7776
7776
|
}
|
|
7777
|
-
class
|
|
7777
|
+
class vh extends dt {
|
|
7778
7778
|
constructor(e, t = 1, s = 16, n = 2) {
|
|
7779
7779
|
const i = new ut(), o = s + n * 2, r = new Float32Array((o * 3 + 3) * 3);
|
|
7780
7780
|
i.setAttribute("position", new nt(r, 3));
|
|
@@ -7798,7 +7798,7 @@ class Sh extends dt {
|
|
|
7798
7798
|
this.geometry.dispose(), this.material[0].dispose(), this.material[1].dispose();
|
|
7799
7799
|
}
|
|
7800
7800
|
}
|
|
7801
|
-
const
|
|
7801
|
+
const Th = {
|
|
7802
7802
|
name: "HorizontalBlurShader",
|
|
7803
7803
|
uniforms: {
|
|
7804
7804
|
tDiffuse: { value: null },
|
|
@@ -7844,7 +7844,7 @@ const vh = {
|
|
|
7844
7844
|
|
|
7845
7845
|
}`
|
|
7846
7846
|
)
|
|
7847
|
-
},
|
|
7847
|
+
}, _h = {
|
|
7848
7848
|
name: "VerticalBlurShader",
|
|
7849
7849
|
uniforms: {
|
|
7850
7850
|
tDiffuse: { value: null },
|
|
@@ -7891,9 +7891,9 @@ const vh = {
|
|
|
7891
7891
|
}`
|
|
7892
7892
|
)
|
|
7893
7893
|
};
|
|
7894
|
-
let
|
|
7894
|
+
let _n, Os, gn, ts;
|
|
7895
7895
|
function Hs(A, e = 1 / 0, t = null) {
|
|
7896
|
-
Os || (Os = new bi(2, 2, 1, 1)),
|
|
7896
|
+
Os || (Os = new bi(2, 2, 1, 1)), gn || (gn = new Ho({
|
|
7897
7897
|
uniforms: { blitTexture: new qa(A) },
|
|
7898
7898
|
vertexShader: `
|
|
7899
7899
|
varying vec2 vUv;
|
|
@@ -7914,15 +7914,15 @@ function Hs(A, e = 1 / 0, t = null) {
|
|
|
7914
7914
|
gl_FragColor = texture2D( blitTexture, vUv);
|
|
7915
7915
|
#endif
|
|
7916
7916
|
}`
|
|
7917
|
-
})),
|
|
7918
|
-
const s = new
|
|
7919
|
-
n.add(
|
|
7917
|
+
})), gn.uniforms.blitTexture.value = A, gn.defines.IS_SRGB = A.colorSpace == ge, gn.needsUpdate = !0, ts || (ts = new z(Os, gn), ts.frustumCulled = !1);
|
|
7918
|
+
const s = new ps(), n = new Zs();
|
|
7919
|
+
n.add(ts), t === null && (t = _n = new za({ antialias: !1 }));
|
|
7920
7920
|
const i = Math.min(A.image.width, e), o = Math.min(A.image.height, e);
|
|
7921
7921
|
t.setSize(i, o), t.clear(), t.render(n, s);
|
|
7922
7922
|
const r = document.createElement("canvas"), a = r.getContext("2d");
|
|
7923
7923
|
r.width = i, r.height = o, a.drawImage(t.domElement, 0, 0, i, o);
|
|
7924
7924
|
const c = new jo(r);
|
|
7925
|
-
return c.minFilter = A.minFilter, c.magFilter = A.magFilter, c.wrapS = A.wrapS, c.wrapT = A.wrapT, c.colorSpace = A.colorSpace, c.name = A.name,
|
|
7925
|
+
return c.minFilter = A.minFilter, c.magFilter = A.magFilter, c.wrapS = A.wrapS, c.wrapT = A.wrapT, c.colorSpace = A.colorSpace, c.name = A.name, _n && (_n.forceContextLoss(), _n.dispose(), _n = null), c;
|
|
7926
7926
|
}
|
|
7927
7927
|
const co = {
|
|
7928
7928
|
POSITION: [
|
|
@@ -7955,11 +7955,9 @@ const co = {
|
|
|
7955
7955
|
class wr {
|
|
7956
7956
|
constructor() {
|
|
7957
7957
|
this.pluginCallbacks = [], this.register(function(e) {
|
|
7958
|
-
return new Il(e);
|
|
7959
|
-
}), this.register(function(e) {
|
|
7960
7958
|
return new bl(e);
|
|
7961
7959
|
}), this.register(function(e) {
|
|
7962
|
-
return new
|
|
7960
|
+
return new El(e);
|
|
7963
7961
|
}), this.register(function(e) {
|
|
7964
7962
|
return new yl(e);
|
|
7965
7963
|
}), this.register(function(e) {
|
|
@@ -7967,21 +7965,23 @@ class wr {
|
|
|
7967
7965
|
}), this.register(function(e) {
|
|
7968
7966
|
return new xl(e);
|
|
7969
7967
|
}), this.register(function(e) {
|
|
7970
|
-
return new
|
|
7968
|
+
return new Sl(e);
|
|
7971
7969
|
}), this.register(function(e) {
|
|
7972
7970
|
return new Cl(e);
|
|
7973
7971
|
}), this.register(function(e) {
|
|
7974
7972
|
return new Bl(e);
|
|
7975
7973
|
}), this.register(function(e) {
|
|
7976
|
-
return new
|
|
7974
|
+
return new wl(e);
|
|
7977
7975
|
}), this.register(function(e) {
|
|
7978
7976
|
return new vl(e);
|
|
7979
7977
|
}), this.register(function(e) {
|
|
7980
7978
|
return new Tl(e);
|
|
7979
|
+
}), this.register(function(e) {
|
|
7980
|
+
return new _l(e);
|
|
7981
7981
|
}), this.register(function(e) {
|
|
7982
7982
|
return new Rl(e);
|
|
7983
7983
|
}), this.register(function(e) {
|
|
7984
|
-
return new
|
|
7984
|
+
return new Dl(e);
|
|
7985
7985
|
});
|
|
7986
7986
|
}
|
|
7987
7987
|
register(e) {
|
|
@@ -7998,7 +7998,7 @@ class wr {
|
|
|
7998
7998
|
* @param {Object} options options
|
|
7999
7999
|
*/
|
|
8000
8000
|
parse(e, t, s, n) {
|
|
8001
|
-
const i = new
|
|
8001
|
+
const i = new Il(), o = [];
|
|
8002
8002
|
for (let r = 0, a = this.pluginCallbacks.length; r < a; r++)
|
|
8003
8003
|
o.push(this.pluginCallbacks[r](i));
|
|
8004
8004
|
i.setPlugins(o), i.write(e, t, n).catch(s);
|
|
@@ -8037,31 +8037,31 @@ const re = {
|
|
|
8037
8037
|
}, js = "KHR_mesh_quantization", ot = {};
|
|
8038
8038
|
ot[Mo] = re.NEAREST;
|
|
8039
8039
|
ot[Do] = re.NEAREST_MIPMAP_NEAREST;
|
|
8040
|
-
ot[
|
|
8040
|
+
ot[_o] = re.NEAREST_MIPMAP_LINEAR;
|
|
8041
8041
|
ot[mt] = re.LINEAR;
|
|
8042
|
-
ot[
|
|
8043
|
-
ot[
|
|
8044
|
-
ot[
|
|
8045
|
-
ot[
|
|
8042
|
+
ot[Ro] = re.LINEAR_MIPMAP_NEAREST;
|
|
8043
|
+
ot[fs] = re.LINEAR_MIPMAP_LINEAR;
|
|
8044
|
+
ot[cs] = re.CLAMP_TO_EDGE;
|
|
8045
|
+
ot[an] = re.REPEAT;
|
|
8046
8046
|
ot[ko] = re.MIRRORED_REPEAT;
|
|
8047
8047
|
const lo = {
|
|
8048
8048
|
scale: "scale",
|
|
8049
8049
|
position: "translation",
|
|
8050
8050
|
quaternion: "rotation",
|
|
8051
8051
|
morphTargetInfluences: "weights"
|
|
8052
|
-
},
|
|
8053
|
-
function
|
|
8052
|
+
}, ll = new Se(), ho = 12, hl = 1179937895, ul = 2, uo = 8, gl = 1313821514, dl = 5130562;
|
|
8053
|
+
function Un(A, e) {
|
|
8054
8054
|
return A.length === e.length && A.every(function(t, s) {
|
|
8055
8055
|
return t === e[s];
|
|
8056
8056
|
});
|
|
8057
8057
|
}
|
|
8058
|
-
function
|
|
8058
|
+
function pl(A) {
|
|
8059
8059
|
return new TextEncoder().encode(A).buffer;
|
|
8060
8060
|
}
|
|
8061
|
-
function
|
|
8062
|
-
return
|
|
8061
|
+
function fl(A) {
|
|
8062
|
+
return Un(A.elements, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
8063
8063
|
}
|
|
8064
|
-
function
|
|
8064
|
+
function ml(A, e, t) {
|
|
8065
8065
|
const s = {
|
|
8066
8066
|
min: new Array(A.itemSize).fill(Number.POSITIVE_INFINITY),
|
|
8067
8067
|
max: new Array(A.itemSize).fill(Number.NEGATIVE_INFINITY)
|
|
@@ -8099,7 +8099,7 @@ function po(A, e) {
|
|
|
8099
8099
|
quality: t
|
|
8100
8100
|
});
|
|
8101
8101
|
}
|
|
8102
|
-
class
|
|
8102
|
+
class Il {
|
|
8103
8103
|
constructor() {
|
|
8104
8104
|
this.plugins = [], this.options = {}, this.pending = [], this.buffers = [], this.byteOffset = 0, this.buffers = [], this.nodeMap = /* @__PURE__ */ new Map(), this.skins = [], this.extensionsUsed = {}, this.extensionsRequired = {}, this.uids = /* @__PURE__ */ new Map(), this.uid = 0, this.json = {
|
|
8105
8105
|
asset: {
|
|
@@ -8141,11 +8141,11 @@ class ml {
|
|
|
8141
8141
|
const g = new FileReader();
|
|
8142
8142
|
g.readAsArrayBuffer(c), g.onloadend = function() {
|
|
8143
8143
|
const d = qs(g.result), p = new DataView(new ArrayBuffer(uo));
|
|
8144
|
-
p.setUint32(0, d.byteLength, !0), p.setUint32(4,
|
|
8145
|
-
const m = qs(
|
|
8146
|
-
I.setUint32(0, m.byteLength, !0), I.setUint32(4,
|
|
8144
|
+
p.setUint32(0, d.byteLength, !0), p.setUint32(4, dl, !0);
|
|
8145
|
+
const m = qs(pl(JSON.stringify(o)), 32), I = new DataView(new ArrayBuffer(uo));
|
|
8146
|
+
I.setUint32(0, m.byteLength, !0), I.setUint32(4, gl, !0);
|
|
8147
8147
|
const b = new ArrayBuffer(ho), B = new DataView(b);
|
|
8148
|
-
B.setUint32(0,
|
|
8148
|
+
B.setUint32(0, hl, !0), B.setUint32(4, ul, !0);
|
|
8149
8149
|
const E = ho + I.byteLength + m.byteLength + p.byteLength + d.byteLength;
|
|
8150
8150
|
B.setUint32(8, E, !0);
|
|
8151
8151
|
const w = new Blob([
|
|
@@ -8251,7 +8251,7 @@ class ml {
|
|
|
8251
8251
|
return m;
|
|
8252
8252
|
};
|
|
8253
8253
|
}
|
|
8254
|
-
console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."), e instanceof
|
|
8254
|
+
console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."), e instanceof Pn && (e = Hs(e)), t instanceof Pn && (t = Hs(t));
|
|
8255
8255
|
const n = e ? e.image : null, i = t ? t.image : null, o = Math.max(n ? n.width : 0, i ? i.width : 0), r = Math.max(n ? n.height : 0, i ? i.height : 0), a = go();
|
|
8256
8256
|
a.width = o, a.height = r;
|
|
8257
8257
|
const c = a.getContext("2d", {
|
|
@@ -8273,7 +8273,7 @@ class ml {
|
|
|
8273
8273
|
}
|
|
8274
8274
|
c.putImageData(l, 0, 0);
|
|
8275
8275
|
const g = (e || t).clone();
|
|
8276
|
-
return g.source = new Ya(a), g.colorSpace =
|
|
8276
|
+
return g.source = new Ya(a), g.colorSpace = ds, g.channel = (e || t).channel, e && t && e.channel !== t.channel && console.warn("THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match."), g;
|
|
8277
8277
|
}
|
|
8278
8278
|
/**
|
|
8279
8279
|
* Process a buffer to append to the default one.
|
|
@@ -8353,8 +8353,8 @@ class ml {
|
|
|
8353
8353
|
* Process attribute to generate an accessor
|
|
8354
8354
|
* @param {BufferAttribute} attribute Attribute to process
|
|
8355
8355
|
* @param {THREE.BufferGeometry} geometry (Optional) Geometry used for truncated draw range
|
|
8356
|
-
* @param {Integer} start (Optional)
|
|
8357
|
-
* @param {Integer} count (Optional)
|
|
8356
|
+
* @param {Integer|undefined} start (Optional)
|
|
8357
|
+
* @param {Integer|undefined} count (Optional)
|
|
8358
8358
|
* @return {Integer|null} Index of the processed accessor on the "accessors" array
|
|
8359
8359
|
*/
|
|
8360
8360
|
processAccessor(e, t, s, n) {
|
|
@@ -8384,7 +8384,7 @@ class ml {
|
|
|
8384
8384
|
else
|
|
8385
8385
|
throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: " + e.array.constructor.name);
|
|
8386
8386
|
if (s === void 0 && (s = 0), (n === void 0 || n === 1 / 0) && (n = e.count), n === 0) return null;
|
|
8387
|
-
const a =
|
|
8387
|
+
const a = ml(e, s, n);
|
|
8388
8388
|
let c;
|
|
8389
8389
|
t !== void 0 && (c = e === t.index ? re.ELEMENT_ARRAY_BUFFER : re.ARRAY_BUFFER);
|
|
8390
8390
|
const l = this.processBufferView(e, r, s, n, c), h = {
|
|
@@ -8470,7 +8470,7 @@ class ml {
|
|
|
8470
8470
|
if (this._invokeAll(function(l) {
|
|
8471
8471
|
l.beforeWriteTexture && l.beforeWriteTexture(e, o);
|
|
8472
8472
|
}), o.keep === !1) return null;
|
|
8473
|
-
o.newTexture != null && (e = o.newTexture), i.textures || (i.textures = []), e instanceof
|
|
8473
|
+
o.newTexture != null && (e = o.newTexture), i.textures || (i.textures = []), e instanceof Pn && (e = Hs(e, s.maxTextureSize));
|
|
8474
8474
|
let r = e.userData.mimeType;
|
|
8475
8475
|
r === "image/webp" && (r = "image/png");
|
|
8476
8476
|
const a = {
|
|
@@ -8498,7 +8498,7 @@ class ml {
|
|
|
8498
8498
|
const n = { pbrMetallicRoughness: {} };
|
|
8499
8499
|
e.isMeshStandardMaterial !== !0 && e.isMeshBasicMaterial !== !0 && console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");
|
|
8500
8500
|
const i = e.color.toArray().concat([e.opacity]);
|
|
8501
|
-
|
|
8501
|
+
Un(i, [1, 1, 1, 1]) || (n.pbrMetallicRoughness.baseColorFactor = i), e.isMeshStandardMaterial ? (n.pbrMetallicRoughness.metallicFactor = e.metalness, n.pbrMetallicRoughness.roughnessFactor = e.roughness) : (n.pbrMetallicRoughness.metallicFactor = 0.5, n.pbrMetallicRoughness.roughnessFactor = 0.5);
|
|
8502
8502
|
const o = (c = e.metalnessMap) != null && c.image ? e.metalnessMap : void 0, r = (l = e.roughnessMap) != null && l.image ? e.roughnessMap : void 0;
|
|
8503
8503
|
if (o || r) {
|
|
8504
8504
|
const p = this.buildMetalRoughTexture(o, r), m = {
|
|
@@ -8557,7 +8557,7 @@ class ml {
|
|
|
8557
8557
|
return null;
|
|
8558
8558
|
const s = this.cache, n = this.json, i = [e.geometry.uuid];
|
|
8559
8559
|
if (Array.isArray(e.material))
|
|
8560
|
-
for (let Q = 0,
|
|
8560
|
+
for (let Q = 0, _ = e.material.length; Q < _; Q++)
|
|
8561
8561
|
i.push(e.material[Q].uuid);
|
|
8562
8562
|
else
|
|
8563
8563
|
i.push(e.material.uuid);
|
|
@@ -8579,32 +8579,32 @@ class ml {
|
|
|
8579
8579
|
let m = null;
|
|
8580
8580
|
for (let Q in r.attributes) {
|
|
8581
8581
|
if (Q.slice(0, 5) === "morph") continue;
|
|
8582
|
-
const
|
|
8583
|
-
if (Q = d[Q] || Q.toUpperCase(), /^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(Q) || (Q = "_" + Q), s.attributes.has(this.getUID(
|
|
8584
|
-
l[Q] = s.attributes.get(this.getUID(
|
|
8582
|
+
const _ = r.attributes[Q];
|
|
8583
|
+
if (Q = d[Q] || Q.toUpperCase(), /^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(Q) || (Q = "_" + Q), s.attributes.has(this.getUID(_))) {
|
|
8584
|
+
l[Q] = s.attributes.get(this.getUID(_));
|
|
8585
8585
|
continue;
|
|
8586
8586
|
}
|
|
8587
8587
|
m = null;
|
|
8588
|
-
const x =
|
|
8589
|
-
Q === "JOINTS_0" && !(x instanceof Uint16Array) && !(x instanceof Uint8Array) && (console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'), m = new nt(new Uint16Array(x),
|
|
8590
|
-
const v = this.processAccessor(m ||
|
|
8591
|
-
v !== null && (Q.startsWith("_") || this.detectMeshQuantization(Q,
|
|
8588
|
+
const x = _.array;
|
|
8589
|
+
Q === "JOINTS_0" && !(x instanceof Uint16Array) && !(x instanceof Uint8Array) && (console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'), m = new nt(new Uint16Array(x), _.itemSize, _.normalized));
|
|
8590
|
+
const v = this.processAccessor(m || _, r);
|
|
8591
|
+
v !== null && (Q.startsWith("_") || this.detectMeshQuantization(Q, _), l[Q] = v, s.attributes.set(this.getUID(_), v));
|
|
8592
8592
|
}
|
|
8593
8593
|
if (p !== void 0 && r.setAttribute("normal", p), Object.keys(l).length === 0) return null;
|
|
8594
8594
|
if (e.morphTargetInfluences !== void 0 && e.morphTargetInfluences.length > 0) {
|
|
8595
|
-
const Q = [],
|
|
8595
|
+
const Q = [], _ = [], R = {};
|
|
8596
8596
|
if (e.morphTargetDictionary !== void 0)
|
|
8597
8597
|
for (const x in e.morphTargetDictionary)
|
|
8598
|
-
|
|
8598
|
+
R[e.morphTargetDictionary[x]] = x;
|
|
8599
8599
|
for (let x = 0; x < e.morphTargetInfluences.length; ++x) {
|
|
8600
8600
|
const v = {};
|
|
8601
8601
|
let L = !1;
|
|
8602
8602
|
for (const N in r.morphAttributes) {
|
|
8603
|
-
if (N !== "position" && N !== "normal") {
|
|
8604
|
-
L || (console.warn("GLTFExporter: Only POSITION and
|
|
8603
|
+
if (N !== "position" && N !== "normal" && N !== "color") {
|
|
8604
|
+
L || (console.warn("GLTFExporter: Only POSITION, NORMAL and COLOR morph are supported."), L = !0);
|
|
8605
8605
|
continue;
|
|
8606
8606
|
}
|
|
8607
|
-
const O = r.morphAttributes[N][x], Z = N.toUpperCase(), U = r.attributes[N];
|
|
8607
|
+
const O = r.morphAttributes[N][x], Z = N.toUpperCase() + (N === "color" ? "_0" : ""), U = r.attributes[N];
|
|
8608
8608
|
if (s.attributes.has(this.getUID(O, !0))) {
|
|
8609
8609
|
v[Z] = s.attributes.get(this.getUID(O, !0));
|
|
8610
8610
|
continue;
|
|
@@ -8616,31 +8616,31 @@ class ml {
|
|
|
8616
8616
|
ee === 0 && q.setX(H, O.getX(H) - U.getX(H)), ee === 1 && q.setY(H, O.getY(H) - U.getY(H)), ee === 2 && q.setZ(H, O.getZ(H) - U.getZ(H)), ee === 3 && q.setW(H, O.getW(H) - U.getW(H));
|
|
8617
8617
|
v[Z] = this.processAccessor(q, r), s.attributes.set(this.getUID(U, !0), v[Z]);
|
|
8618
8618
|
}
|
|
8619
|
-
g.push(v), Q.push(e.morphTargetInfluences[x]), e.morphTargetDictionary !== void 0 &&
|
|
8619
|
+
g.push(v), Q.push(e.morphTargetInfluences[x]), e.morphTargetDictionary !== void 0 && _.push(R[x]);
|
|
8620
8620
|
}
|
|
8621
|
-
c.weights = Q,
|
|
8621
|
+
c.weights = Q, _.length > 0 && (c.extras = {}, c.extras.targetNames = _);
|
|
8622
8622
|
}
|
|
8623
8623
|
const I = Array.isArray(e.material);
|
|
8624
8624
|
if (I && r.groups.length === 0) return null;
|
|
8625
8625
|
let b = !1;
|
|
8626
8626
|
if (I && r.index === null) {
|
|
8627
8627
|
const Q = [];
|
|
8628
|
-
for (let
|
|
8629
|
-
Q[
|
|
8628
|
+
for (let _ = 0, R = r.attributes.position.count; _ < R; _++)
|
|
8629
|
+
Q[_] = _;
|
|
8630
8630
|
r.setIndex(Q), b = !0;
|
|
8631
8631
|
}
|
|
8632
8632
|
const B = I ? e.material : [e.material], E = I ? r.groups : [{ materialIndex: 0, start: void 0, count: void 0 }];
|
|
8633
|
-
for (let Q = 0,
|
|
8634
|
-
const
|
|
8633
|
+
for (let Q = 0, _ = E.length; Q < _; Q++) {
|
|
8634
|
+
const R = {
|
|
8635
8635
|
mode: a,
|
|
8636
8636
|
attributes: l
|
|
8637
8637
|
};
|
|
8638
|
-
if (this.serializeUserData(r,
|
|
8638
|
+
if (this.serializeUserData(r, R), g.length > 0 && (R.targets = g), r.index !== null) {
|
|
8639
8639
|
let v = this.getUID(r.index);
|
|
8640
|
-
(E[Q].start !== void 0 || E[Q].count !== void 0) && (v += ":" + E[Q].start + ":" + E[Q].count), s.attributes.has(v) ?
|
|
8640
|
+
(E[Q].start !== void 0 || E[Q].count !== void 0) && (v += ":" + E[Q].start + ":" + E[Q].count), s.attributes.has(v) ? R.indices = s.attributes.get(v) : (R.indices = this.processAccessor(r.index, r, E[Q].start, E[Q].count), s.attributes.set(v, R.indices)), R.indices === null && delete R.indices;
|
|
8641
8641
|
}
|
|
8642
8642
|
const x = this.processMaterial(B[E[Q].materialIndex]);
|
|
8643
|
-
x !== null && (
|
|
8643
|
+
x !== null && (R.material = x), h.push(R);
|
|
8644
8644
|
}
|
|
8645
8645
|
b === !0 && r.setIndex(null), c.primitives = h, n.meshes || (n.meshes = []), this._invokeAll(function(Q) {
|
|
8646
8646
|
Q.writeMesh && Q.writeMesh(e, c);
|
|
@@ -8783,9 +8783,9 @@ class ml {
|
|
|
8783
8783
|
const o = {};
|
|
8784
8784
|
if (n.trs) {
|
|
8785
8785
|
const a = e.quaternion.toArray(), c = e.position.toArray(), l = e.scale.toArray();
|
|
8786
|
-
|
|
8786
|
+
Un(a, [0, 0, 0, 1]) || (o.rotation = a), Un(c, [0, 0, 0]) || (o.translation = c), Un(l, [1, 1, 1]) || (o.scale = l);
|
|
8787
8787
|
} else
|
|
8788
|
-
e.matrixAutoUpdate && e.updateMatrix(),
|
|
8788
|
+
e.matrixAutoUpdate && e.updateMatrix(), fl(e.matrix) === !1 && (o.matrix = e.matrix.elements);
|
|
8789
8789
|
if (e.name !== "" && (o.name = String(e.name)), this.serializeUserData(e, o), e.isMesh || e.isLine || e.isPoints) {
|
|
8790
8790
|
const a = this.processMesh(e);
|
|
8791
8791
|
a !== null && (o.mesh = a);
|
|
@@ -8862,7 +8862,7 @@ class ml {
|
|
|
8862
8862
|
e(this.plugins[t]);
|
|
8863
8863
|
}
|
|
8864
8864
|
}
|
|
8865
|
-
class
|
|
8865
|
+
class bl {
|
|
8866
8866
|
constructor(e) {
|
|
8867
8867
|
this.writer = e, this.name = "KHR_lights_punctual";
|
|
8868
8868
|
}
|
|
@@ -8878,7 +8878,7 @@ class Il {
|
|
|
8878
8878
|
r.push(o), t.extensions = t.extensions || {}, t.extensions[this.name] = { light: r.length - 1 };
|
|
8879
8879
|
}
|
|
8880
8880
|
}
|
|
8881
|
-
class
|
|
8881
|
+
class El {
|
|
8882
8882
|
constructor(e) {
|
|
8883
8883
|
this.writer = e, this.name = "KHR_materials_unlit";
|
|
8884
8884
|
}
|
|
@@ -8888,7 +8888,7 @@ class bl {
|
|
|
8888
8888
|
t.extensions = t.extensions || {}, t.extensions[this.name] = {}, n[this.name] = !0, t.pbrMetallicRoughness.metallicFactor = 0, t.pbrMetallicRoughness.roughnessFactor = 0.9;
|
|
8889
8889
|
}
|
|
8890
8890
|
}
|
|
8891
|
-
class
|
|
8891
|
+
class Cl {
|
|
8892
8892
|
constructor(e) {
|
|
8893
8893
|
this.writer = e, this.name = "KHR_materials_clearcoat";
|
|
8894
8894
|
}
|
|
@@ -8919,7 +8919,7 @@ class El {
|
|
|
8919
8919
|
t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
8920
8920
|
}
|
|
8921
8921
|
}
|
|
8922
|
-
class
|
|
8922
|
+
class Bl {
|
|
8923
8923
|
constructor(e) {
|
|
8924
8924
|
this.writer = e, this.name = "KHR_materials_dispersion";
|
|
8925
8925
|
}
|
|
@@ -8929,7 +8929,7 @@ class Cl {
|
|
|
8929
8929
|
i.dispersion = e.dispersion, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
8930
8930
|
}
|
|
8931
8931
|
}
|
|
8932
|
-
class
|
|
8932
|
+
class wl {
|
|
8933
8933
|
constructor(e) {
|
|
8934
8934
|
this.writer = e, this.name = "KHR_materials_iridescence";
|
|
8935
8935
|
}
|
|
@@ -8953,7 +8953,7 @@ class Bl {
|
|
|
8953
8953
|
t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
8954
8954
|
}
|
|
8955
8955
|
}
|
|
8956
|
-
class
|
|
8956
|
+
class yl {
|
|
8957
8957
|
constructor(e) {
|
|
8958
8958
|
this.writer = e, this.name = "KHR_materials_transmission";
|
|
8959
8959
|
}
|
|
@@ -8970,7 +8970,7 @@ class wl {
|
|
|
8970
8970
|
t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
8971
8971
|
}
|
|
8972
8972
|
}
|
|
8973
|
-
class
|
|
8973
|
+
class Ql {
|
|
8974
8974
|
constructor(e) {
|
|
8975
8975
|
this.writer = e, this.name = "KHR_materials_volume";
|
|
8976
8976
|
}
|
|
@@ -8987,7 +8987,7 @@ class yl {
|
|
|
8987
8987
|
e.attenuationDistance !== 1 / 0 && (i.attenuationDistance = e.attenuationDistance), i.attenuationColor = e.attenuationColor.toArray(), t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
8988
8988
|
}
|
|
8989
8989
|
}
|
|
8990
|
-
class
|
|
8990
|
+
class xl {
|
|
8991
8991
|
constructor(e) {
|
|
8992
8992
|
this.writer = e, this.name = "KHR_materials_ior";
|
|
8993
8993
|
}
|
|
@@ -8997,12 +8997,12 @@ class Ql {
|
|
|
8997
8997
|
i.ior = e.ior, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
8998
8998
|
}
|
|
8999
8999
|
}
|
|
9000
|
-
class
|
|
9000
|
+
class Sl {
|
|
9001
9001
|
constructor(e) {
|
|
9002
9002
|
this.writer = e, this.name = "KHR_materials_specular";
|
|
9003
9003
|
}
|
|
9004
9004
|
writeMaterial(e, t) {
|
|
9005
|
-
if (!e.isMeshPhysicalMaterial || e.specularIntensity === 1 && e.specularColor.equals(
|
|
9005
|
+
if (!e.isMeshPhysicalMaterial || e.specularIntensity === 1 && e.specularColor.equals(ll) && !e.specularIntensityMap && !e.specularColorMap) return;
|
|
9006
9006
|
const s = this.writer, n = s.extensionsUsed, i = {};
|
|
9007
9007
|
if (e.specularIntensityMap) {
|
|
9008
9008
|
const o = {
|
|
@@ -9021,7 +9021,7 @@ class xl {
|
|
|
9021
9021
|
i.specularFactor = e.specularIntensity, i.specularColorFactor = e.specularColor.toArray(), t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
9022
9022
|
}
|
|
9023
9023
|
}
|
|
9024
|
-
class
|
|
9024
|
+
class vl {
|
|
9025
9025
|
constructor(e) {
|
|
9026
9026
|
this.writer = e, this.name = "KHR_materials_sheen";
|
|
9027
9027
|
}
|
|
@@ -9045,7 +9045,7 @@ class Sl {
|
|
|
9045
9045
|
i.sheenRoughnessFactor = e.sheenRoughness, i.sheenColorFactor = e.sheenColor.toArray(), t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
9046
9046
|
}
|
|
9047
9047
|
}
|
|
9048
|
-
class
|
|
9048
|
+
class Tl {
|
|
9049
9049
|
constructor(e) {
|
|
9050
9050
|
this.writer = e, this.name = "KHR_materials_anisotropy";
|
|
9051
9051
|
}
|
|
@@ -9059,7 +9059,7 @@ class vl {
|
|
|
9059
9059
|
i.anisotropyStrength = e.anisotropy, i.anisotropyRotation = e.anisotropyRotation, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
9060
9060
|
}
|
|
9061
9061
|
}
|
|
9062
|
-
class
|
|
9062
|
+
class _l {
|
|
9063
9063
|
constructor(e) {
|
|
9064
9064
|
this.writer = e, this.name = "KHR_materials_emissive_strength";
|
|
9065
9065
|
}
|
|
@@ -9086,7 +9086,7 @@ class Rl {
|
|
|
9086
9086
|
i.bumpFactor = e.bumpScale, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
|
|
9087
9087
|
}
|
|
9088
9088
|
}
|
|
9089
|
-
class
|
|
9089
|
+
class Dl {
|
|
9090
9090
|
constructor(e) {
|
|
9091
9091
|
this.writer = e, this.name = "EXT_mesh_gpu_instancing";
|
|
9092
9092
|
}
|
|
@@ -9141,7 +9141,7 @@ wr.Utils = {
|
|
|
9141
9141
|
if (o.createInterpolant !== o.InterpolantFactoryMethodDiscrete && o.createInterpolant !== o.InterpolantFactoryMethodLinear) {
|
|
9142
9142
|
if (o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline)
|
|
9143
9143
|
throw new Error("THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.");
|
|
9144
|
-
console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead."), o = o.clone(), o.setInterpolation(
|
|
9144
|
+
console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead."), o = o.clone(), o.setInterpolation(qn);
|
|
9145
9145
|
}
|
|
9146
9146
|
const c = a.morphTargetInfluences.length, l = a.morphTargetDictionary[r.propertyIndex];
|
|
9147
9147
|
if (l === void 0)
|
|
@@ -9199,17 +9199,17 @@ async function Qr(A) {
|
|
|
9199
9199
|
return e.json();
|
|
9200
9200
|
throw new Error(e.statusText);
|
|
9201
9201
|
}
|
|
9202
|
-
async function
|
|
9202
|
+
async function Ml(A) {
|
|
9203
9203
|
if (!A)
|
|
9204
9204
|
throw new Error("No basePath supplied");
|
|
9205
9205
|
return await Qr(`${A}/profilesList.json`);
|
|
9206
9206
|
}
|
|
9207
|
-
async function
|
|
9207
|
+
async function kl(A, e, t = null, s = !0) {
|
|
9208
9208
|
if (!A)
|
|
9209
9209
|
throw new Error("No xrInputSource supplied");
|
|
9210
9210
|
if (!e)
|
|
9211
9211
|
throw new Error("No basePath supplied");
|
|
9212
|
-
const n = await
|
|
9212
|
+
const n = await Ml(e);
|
|
9213
9213
|
let i;
|
|
9214
9214
|
if (A.profiles.some((a) => {
|
|
9215
9215
|
const c = n[a];
|
|
@@ -9242,13 +9242,13 @@ async function Ml(A, e, t = null, s = !0) {
|
|
|
9242
9242
|
}
|
|
9243
9243
|
return { profile: o, assetPath: r };
|
|
9244
9244
|
}
|
|
9245
|
-
const
|
|
9245
|
+
const Fl = {
|
|
9246
9246
|
xAxis: 0,
|
|
9247
9247
|
yAxis: 0,
|
|
9248
9248
|
button: 0,
|
|
9249
9249
|
state: Te.ComponentState.DEFAULT
|
|
9250
9250
|
};
|
|
9251
|
-
function
|
|
9251
|
+
function Ll(A = 0, e = 0) {
|
|
9252
9252
|
let t = A, s = e;
|
|
9253
9253
|
if (Math.sqrt(A * A + e * e) > 1) {
|
|
9254
9254
|
const o = Math.atan2(e, A);
|
|
@@ -9259,9 +9259,9 @@ function Fl(A = 0, e = 0) {
|
|
|
9259
9259
|
normalizedYAxis: s * 0.5 + 0.5
|
|
9260
9260
|
};
|
|
9261
9261
|
}
|
|
9262
|
-
class
|
|
9262
|
+
class Nl {
|
|
9263
9263
|
constructor(e) {
|
|
9264
|
-
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === Te.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(
|
|
9264
|
+
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === Te.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Fl);
|
|
9265
9265
|
}
|
|
9266
9266
|
/**
|
|
9267
9267
|
* Computes the visual response's interpolation weight based on component state
|
|
@@ -9277,7 +9277,7 @@ class Ll {
|
|
|
9277
9277
|
button: s,
|
|
9278
9278
|
state: n
|
|
9279
9279
|
}) {
|
|
9280
|
-
const { normalizedXAxis: i, normalizedYAxis: o } =
|
|
9280
|
+
const { normalizedXAxis: i, normalizedYAxis: o } = Ll(e, t);
|
|
9281
9281
|
switch (this.componentProperty) {
|
|
9282
9282
|
case Te.ComponentProperty.X_AXIS:
|
|
9283
9283
|
this.value = this.states.includes(n) ? i : 0.5;
|
|
@@ -9296,7 +9296,7 @@ class Ll {
|
|
|
9296
9296
|
}
|
|
9297
9297
|
}
|
|
9298
9298
|
}
|
|
9299
|
-
class
|
|
9299
|
+
class Ul {
|
|
9300
9300
|
/**
|
|
9301
9301
|
* @param {Object} componentId - Id of the component
|
|
9302
9302
|
* @param {Object} componentDescription - Description of the component to be created
|
|
@@ -9305,7 +9305,7 @@ class Nl {
|
|
|
9305
9305
|
if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0)
|
|
9306
9306
|
throw new Error("Invalid arguments supplied");
|
|
9307
9307
|
this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((s) => {
|
|
9308
|
-
const n = new
|
|
9308
|
+
const n = new Nl(t.visualResponses[s]);
|
|
9309
9309
|
this.visualResponses[s] = n;
|
|
9310
9310
|
}), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
|
|
9311
9311
|
state: Te.ComponentState.DEFAULT,
|
|
@@ -9331,7 +9331,7 @@ class Nl {
|
|
|
9331
9331
|
});
|
|
9332
9332
|
}
|
|
9333
9333
|
}
|
|
9334
|
-
class
|
|
9334
|
+
class Gl {
|
|
9335
9335
|
/**
|
|
9336
9336
|
* @param {Object} xrInputSource - The XRInputSource to build the MotionController around
|
|
9337
9337
|
* @param {Object} profile - The best matched profile description for the supplied xrInputSource
|
|
@@ -9344,7 +9344,7 @@ class Ul {
|
|
|
9344
9344
|
throw new Error("No profile supplied");
|
|
9345
9345
|
this.xrInputSource = e, this.assetUrl = s, this.id = t.profileId, this.layoutDescription = t.layouts[e.handedness], this.components = {}, Object.keys(this.layoutDescription.components).forEach((n) => {
|
|
9346
9346
|
const i = this.layoutDescription.components[n];
|
|
9347
|
-
this.components[n] = new
|
|
9347
|
+
this.components[n] = new Ul(n, i);
|
|
9348
9348
|
}), this.updateFromGamepad();
|
|
9349
9349
|
}
|
|
9350
9350
|
get gripSpace() {
|
|
@@ -9371,8 +9371,8 @@ class Ul {
|
|
|
9371
9371
|
});
|
|
9372
9372
|
}
|
|
9373
9373
|
}
|
|
9374
|
-
const
|
|
9375
|
-
class
|
|
9374
|
+
const Pl = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", Ol = "generic-trigger";
|
|
9375
|
+
class Hl extends xt {
|
|
9376
9376
|
constructor() {
|
|
9377
9377
|
super(), this.motionController = null, this.envMap = null;
|
|
9378
9378
|
}
|
|
@@ -9402,7 +9402,7 @@ class Ol extends xt {
|
|
|
9402
9402
|
}));
|
|
9403
9403
|
}
|
|
9404
9404
|
}
|
|
9405
|
-
function
|
|
9405
|
+
function jl(A, e) {
|
|
9406
9406
|
Object.values(A.components).forEach((t) => {
|
|
9407
9407
|
const { type: s, touchPointNodeName: n, visualResponses: i } = t;
|
|
9408
9408
|
if (s === Te.ComponentType.TOUCHPAD)
|
|
@@ -9428,7 +9428,7 @@ function Hl(A, e) {
|
|
|
9428
9428
|
});
|
|
9429
9429
|
}
|
|
9430
9430
|
function fo(A, e) {
|
|
9431
|
-
|
|
9431
|
+
jl(A.motionController, e), A.envMap && e.traverse((t) => {
|
|
9432
9432
|
t.isMesh && (t.material.envMap = A.envMap, t.material.needsUpdate = !0);
|
|
9433
9433
|
}), A.layers.mask != 0 && e.traverse((t) => {
|
|
9434
9434
|
t.layers.mask = A.layers.mask;
|
|
@@ -9436,18 +9436,18 @@ function fo(A, e) {
|
|
|
9436
9436
|
}
|
|
9437
9437
|
class Rh {
|
|
9438
9438
|
constructor(e = null, t = null) {
|
|
9439
|
-
this.gltfLoader = e, this.path =
|
|
9439
|
+
this.gltfLoader = e, this.path = Pl, this._assetCache = {}, this.onLoad = t, this.gltfLoader || (this.gltfLoader = new zo());
|
|
9440
9440
|
}
|
|
9441
9441
|
setPath(e) {
|
|
9442
9442
|
return this.path = e, this;
|
|
9443
9443
|
}
|
|
9444
9444
|
createControllerModel(e) {
|
|
9445
|
-
const t = new
|
|
9445
|
+
const t = new Hl();
|
|
9446
9446
|
let s = null;
|
|
9447
9447
|
return e.addEventListener("connected", (n) => {
|
|
9448
9448
|
const i = n.data;
|
|
9449
|
-
i.targetRayMode !== "tracked-pointer" || !i.gamepad || i.hand ||
|
|
9450
|
-
t.motionController = new
|
|
9449
|
+
i.targetRayMode !== "tracked-pointer" || !i.gamepad || i.hand || kl(i, this.path, Ol).then(({ profile: o, assetPath: r }) => {
|
|
9450
|
+
t.motionController = new Gl(
|
|
9451
9451
|
i,
|
|
9452
9452
|
o,
|
|
9453
9453
|
r
|
|
@@ -9477,10 +9477,10 @@ class Rh {
|
|
|
9477
9477
|
}), t;
|
|
9478
9478
|
}
|
|
9479
9479
|
}
|
|
9480
|
-
const
|
|
9481
|
-
class
|
|
9480
|
+
const ql = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/";
|
|
9481
|
+
class Dh {
|
|
9482
9482
|
constructor(e, t, s, n, i = null, o = null) {
|
|
9483
|
-
this.controller = t, this.handModel = e, this.bones = [], i === null && (i = new zo(), i.setPath(s ||
|
|
9483
|
+
this.controller = t, this.handModel = e, this.bones = [], i === null && (i = new zo(), i.setPath(s || ql)), i.load(`${n}.glb`, (r) => {
|
|
9484
9484
|
const a = r.scene.children[0];
|
|
9485
9485
|
this.handModel.add(a), a.layers.mask = this.handModel.layers.mask;
|
|
9486
9486
|
const c = a.getObjectByProperty("type", "SkinnedMesh");
|
|
@@ -9530,7 +9530,7 @@ class _h {
|
|
|
9530
9530
|
}
|
|
9531
9531
|
}
|
|
9532
9532
|
}
|
|
9533
|
-
const mo = new
|
|
9533
|
+
const mo = new ms(), ns = new P();
|
|
9534
9534
|
class xr extends Ja {
|
|
9535
9535
|
constructor() {
|
|
9536
9536
|
super(), this.isLineSegmentsGeometry = !0, this.type = "LineSegmentsGeometry";
|
|
@@ -9545,13 +9545,13 @@ class xr extends Ja {
|
|
|
9545
9545
|
let t;
|
|
9546
9546
|
e instanceof Float32Array ? t = e : Array.isArray(e) && (t = new Float32Array(e));
|
|
9547
9547
|
const s = new $s(t, 6, 1);
|
|
9548
|
-
return this.setAttribute("instanceStart", new
|
|
9548
|
+
return this.setAttribute("instanceStart", new tn(s, 3, 0)), this.setAttribute("instanceEnd", new tn(s, 3, 3)), this.computeBoundingBox(), this.computeBoundingSphere(), this;
|
|
9549
9549
|
}
|
|
9550
9550
|
setColors(e) {
|
|
9551
9551
|
let t;
|
|
9552
9552
|
e instanceof Float32Array ? t = e : Array.isArray(e) && (t = new Float32Array(e));
|
|
9553
9553
|
const s = new $s(t, 6, 1);
|
|
9554
|
-
return this.setAttribute("instanceColorStart", new
|
|
9554
|
+
return this.setAttribute("instanceColorStart", new tn(s, 3, 0)), this.setAttribute("instanceColorEnd", new tn(s, 3, 3)), this;
|
|
9555
9555
|
}
|
|
9556
9556
|
fromWireframeGeometry(e) {
|
|
9557
9557
|
return this.setPositions(e.attributes.position.array), this;
|
|
@@ -9567,7 +9567,7 @@ class xr extends Ja {
|
|
|
9567
9567
|
return this.setPositions(t.attributes.position.array), this;
|
|
9568
9568
|
}
|
|
9569
9569
|
computeBoundingBox() {
|
|
9570
|
-
this.boundingBox === null && (this.boundingBox = new
|
|
9570
|
+
this.boundingBox === null && (this.boundingBox = new ms());
|
|
9571
9571
|
const e = this.attributes.instanceStart, t = this.attributes.instanceEnd;
|
|
9572
9572
|
e !== void 0 && t !== void 0 && (this.boundingBox.setFromBufferAttribute(e), mo.setFromBufferAttribute(t), this.boundingBox.union(mo));
|
|
9573
9573
|
}
|
|
@@ -9579,7 +9579,7 @@ class xr extends Ja {
|
|
|
9579
9579
|
this.boundingBox.getCenter(s);
|
|
9580
9580
|
let n = 0;
|
|
9581
9581
|
for (let i = 0, o = e.count; i < o; i++)
|
|
9582
|
-
|
|
9582
|
+
ns.fromBufferAttribute(e, i), n = Math.max(n, s.distanceToSquared(ns)), ns.fromBufferAttribute(t, i), n = Math.max(n, s.distanceToSquared(ns));
|
|
9583
9583
|
this.boundingSphere.radius = Math.sqrt(n), isNaN(this.boundingSphere.radius) && console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.", this);
|
|
9584
9584
|
}
|
|
9585
9585
|
}
|
|
@@ -9589,7 +9589,7 @@ class xr extends Ja {
|
|
|
9589
9589
|
return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."), this.applyMatrix4(e);
|
|
9590
9590
|
}
|
|
9591
9591
|
}
|
|
9592
|
-
|
|
9592
|
+
Gn.line = {
|
|
9593
9593
|
worldUnits: { value: 1 },
|
|
9594
9594
|
linewidth: { value: 1 },
|
|
9595
9595
|
resolution: { value: new Le(1, 1) },
|
|
@@ -9601,9 +9601,9 @@ Un.line = {
|
|
|
9601
9601
|
};
|
|
9602
9602
|
wt.line = {
|
|
9603
9603
|
uniforms: li.merge([
|
|
9604
|
-
|
|
9605
|
-
|
|
9606
|
-
|
|
9604
|
+
Gn.common,
|
|
9605
|
+
Gn.fog,
|
|
9606
|
+
Gn.line
|
|
9607
9607
|
]),
|
|
9608
9608
|
vertexShader: (
|
|
9609
9609
|
/* glsl */
|
|
@@ -10062,17 +10062,17 @@ class Sr extends Ho {
|
|
|
10062
10062
|
this.defines && (e === !0 !== this.alphaToCoverage && (this.needsUpdate = !0), e === !0 ? this.defines.USE_ALPHA_TO_COVERAGE = "" : delete this.defines.USE_ALPHA_TO_COVERAGE);
|
|
10063
10063
|
}
|
|
10064
10064
|
}
|
|
10065
|
-
const zs = new Ut(), Io = new P(), bo = new P(), Ne = new Ut(), Ue = new Ut(), Ct = new Ut(), Ks = new P(), Ys = new ue(), Pe = new Va(), Eo = new P(),
|
|
10066
|
-
let yt,
|
|
10065
|
+
const zs = new Ut(), Io = new P(), bo = new P(), Ne = new Ut(), Ue = new Ut(), Ct = new Ut(), Ks = new P(), Ys = new ue(), Pe = new Va(), Eo = new P(), ss = new ms(), is = new mi(), Bt = new Ut();
|
|
10066
|
+
let yt, rn;
|
|
10067
10067
|
function Co(A, e, t) {
|
|
10068
|
-
return Bt.set(0, 0, -e, 1).applyMatrix4(A.projectionMatrix), Bt.multiplyScalar(1 / Bt.w), Bt.x =
|
|
10068
|
+
return Bt.set(0, 0, -e, 1).applyMatrix4(A.projectionMatrix), Bt.multiplyScalar(1 / Bt.w), Bt.x = rn / t.width, Bt.y = rn / t.height, Bt.applyMatrix4(A.projectionMatrixInverse), Bt.multiplyScalar(1 / Bt.w), Math.abs(Math.max(Bt.x, Bt.y));
|
|
10069
10069
|
}
|
|
10070
|
-
function
|
|
10070
|
+
function zl(A, e) {
|
|
10071
10071
|
const t = A.matrixWorld, s = A.geometry, n = s.attributes.instanceStart, i = s.attributes.instanceEnd, o = Math.min(s.instanceCount, n.count);
|
|
10072
10072
|
for (let r = 0, a = o; r < a; r++) {
|
|
10073
10073
|
Pe.start.fromBufferAttribute(n, r), Pe.end.fromBufferAttribute(i, r), Pe.applyMatrix4(t);
|
|
10074
10074
|
const c = new P(), l = new P();
|
|
10075
|
-
yt.distanceSqToSegment(Pe.start, Pe.end, l, c), l.distanceTo(c) <
|
|
10075
|
+
yt.distanceSqToSegment(Pe.start, Pe.end, l, c), l.distanceTo(c) < rn * 0.5 && e.push({
|
|
10076
10076
|
point: l,
|
|
10077
10077
|
pointOnLine: c,
|
|
10078
10078
|
distance: yt.origin.distanceTo(l),
|
|
@@ -10084,7 +10084,7 @@ function ql(A, e) {
|
|
|
10084
10084
|
});
|
|
10085
10085
|
}
|
|
10086
10086
|
}
|
|
10087
|
-
function
|
|
10087
|
+
function Kl(A, e, t) {
|
|
10088
10088
|
const s = e.projectionMatrix, i = A.material.resolution, o = A.matrixWorld, r = A.geometry, a = r.attributes.instanceStart, c = r.attributes.instanceEnd, l = Math.min(r.instanceCount, a.count), h = -e.near;
|
|
10089
10089
|
yt.at(1, Ct), Ct.w = 1, Ct.applyMatrix4(e.matrixWorldInverse), Ct.applyMatrix4(s), Ct.multiplyScalar(1 / Ct.w), Ct.x *= i.x / 2, Ct.y *= i.y / 2, Ct.z = 0, Ks.copy(Ct), Ys.multiplyMatrices(e.matrixWorldInverse, o);
|
|
10090
10090
|
for (let g = 0, d = l; g < d; g++) {
|
|
@@ -10100,7 +10100,7 @@ function zl(A, e, t) {
|
|
|
10100
10100
|
Ne.applyMatrix4(s), Ue.applyMatrix4(s), Ne.multiplyScalar(1 / Ne.w), Ue.multiplyScalar(1 / Ue.w), Ne.x *= i.x / 2, Ne.y *= i.y / 2, Ue.x *= i.x / 2, Ue.y *= i.y / 2, Pe.start.copy(Ne), Pe.start.z = 0, Pe.end.copy(Ue), Pe.end.z = 0;
|
|
10101
10101
|
const m = Pe.closestPointToPointParameter(Ks, !0);
|
|
10102
10102
|
Pe.at(m, Eo);
|
|
10103
|
-
const I = ye.lerp(Ne.z, Ue.z, m), b = I >= -1 && I <= 1, B = Ks.distanceTo(Eo) <
|
|
10103
|
+
const I = ye.lerp(Ne.z, Ue.z, m), b = I >= -1 && I <= 1, B = Ks.distanceTo(Eo) < rn * 0.5;
|
|
10104
10104
|
if (b && B) {
|
|
10105
10105
|
Pe.start.fromBufferAttribute(a, g), Pe.end.fromBufferAttribute(c, g), Pe.start.applyMatrix4(o), Pe.end.applyMatrix4(o);
|
|
10106
10106
|
const E = new P(), w = new P();
|
|
@@ -10117,7 +10117,7 @@ function zl(A, e, t) {
|
|
|
10117
10117
|
}
|
|
10118
10118
|
}
|
|
10119
10119
|
}
|
|
10120
|
-
class
|
|
10120
|
+
class Yl extends z {
|
|
10121
10121
|
constructor(e = new xr(), t = new Sr({ color: Math.random() * 16777215 })) {
|
|
10122
10122
|
super(e, t), this.isLineSegments2 = !0, this.type = "LineSegments2";
|
|
10123
10123
|
}
|
|
@@ -10127,7 +10127,7 @@ class Kl extends z {
|
|
|
10127
10127
|
for (let o = 0, r = 0, a = t.count; o < a; o++, r += 2)
|
|
10128
10128
|
Io.fromBufferAttribute(t, o), bo.fromBufferAttribute(s, o), n[r] = r === 0 ? 0 : n[r - 1], n[r + 1] = n[r] + Io.distanceTo(bo);
|
|
10129
10129
|
const i = new $s(n, 2, 1);
|
|
10130
|
-
return e.setAttribute("instanceDistanceStart", new
|
|
10130
|
+
return e.setAttribute("instanceDistanceStart", new tn(i, 1, 0)), e.setAttribute("instanceDistanceEnd", new tn(i, 1, 1)), this;
|
|
10131
10131
|
}
|
|
10132
10132
|
raycast(e, t) {
|
|
10133
10133
|
const s = this.material.worldUnits, n = e.camera;
|
|
@@ -10135,32 +10135,32 @@ class Kl extends z {
|
|
|
10135
10135
|
const i = e.params.Line2 !== void 0 && e.params.Line2.threshold || 0;
|
|
10136
10136
|
yt = e.ray;
|
|
10137
10137
|
const o = this.matrixWorld, r = this.geometry, a = this.material;
|
|
10138
|
-
|
|
10138
|
+
rn = a.linewidth + i, r.boundingSphere === null && r.computeBoundingSphere(), is.copy(r.boundingSphere).applyMatrix4(o);
|
|
10139
10139
|
let c;
|
|
10140
10140
|
if (s)
|
|
10141
|
-
c =
|
|
10141
|
+
c = rn * 0.5;
|
|
10142
10142
|
else {
|
|
10143
|
-
const h = Math.max(n.near,
|
|
10143
|
+
const h = Math.max(n.near, is.distanceToPoint(yt.origin));
|
|
10144
10144
|
c = Co(n, h, a.resolution);
|
|
10145
10145
|
}
|
|
10146
|
-
if (
|
|
10146
|
+
if (is.radius += c, yt.intersectsSphere(is) === !1)
|
|
10147
10147
|
return;
|
|
10148
|
-
r.boundingBox === null && r.computeBoundingBox(),
|
|
10148
|
+
r.boundingBox === null && r.computeBoundingBox(), ss.copy(r.boundingBox).applyMatrix4(o);
|
|
10149
10149
|
let l;
|
|
10150
10150
|
if (s)
|
|
10151
|
-
l =
|
|
10151
|
+
l = rn * 0.5;
|
|
10152
10152
|
else {
|
|
10153
|
-
const h = Math.max(n.near,
|
|
10153
|
+
const h = Math.max(n.near, ss.distanceToPoint(yt.origin));
|
|
10154
10154
|
l = Co(n, h, a.resolution);
|
|
10155
10155
|
}
|
|
10156
|
-
|
|
10156
|
+
ss.expandByScalar(l), yt.intersectsBox(ss) !== !1 && (s ? zl(this, t) : Kl(this, n, t));
|
|
10157
10157
|
}
|
|
10158
10158
|
onBeforeRender(e) {
|
|
10159
10159
|
const t = this.material.uniforms;
|
|
10160
10160
|
t && t.resolution && (e.getViewport(zs), this.material.uniforms.resolution.value.set(zs.z, zs.w));
|
|
10161
10161
|
}
|
|
10162
10162
|
}
|
|
10163
|
-
class
|
|
10163
|
+
class Jl extends xr {
|
|
10164
10164
|
constructor() {
|
|
10165
10165
|
super(), this.isLineGeometry = !0, this.type = "LineGeometry";
|
|
10166
10166
|
}
|
|
@@ -10181,14 +10181,14 @@ class Yl extends xr {
|
|
|
10181
10181
|
return this.setPositions(t.attributes.position.array), this;
|
|
10182
10182
|
}
|
|
10183
10183
|
}
|
|
10184
|
-
class
|
|
10185
|
-
constructor(e = new
|
|
10184
|
+
class Mh extends Yl {
|
|
10185
|
+
constructor(e = new Jl(), t = new Sr({ color: Math.random() * 16777215 })) {
|
|
10186
10186
|
super(e, t), this.isLine2 = !0, this.type = "Line2";
|
|
10187
10187
|
}
|
|
10188
10188
|
}
|
|
10189
|
-
class
|
|
10189
|
+
class kh extends z {
|
|
10190
10190
|
constructor(e) {
|
|
10191
|
-
const t = new
|
|
10191
|
+
const t = new Wl(e), s = new bi(t.image.width * 1e-3, t.image.height * 1e-3), n = new Qt({ map: t, toneMapped: !1, transparent: !0 });
|
|
10192
10192
|
super(s, n);
|
|
10193
10193
|
function i(o) {
|
|
10194
10194
|
n.map.dispatchDOMEvent(o);
|
|
@@ -10198,7 +10198,7 @@ class Mh extends z {
|
|
|
10198
10198
|
};
|
|
10199
10199
|
}
|
|
10200
10200
|
}
|
|
10201
|
-
class
|
|
10201
|
+
class Wl extends jo {
|
|
10202
10202
|
constructor(e) {
|
|
10203
10203
|
super(Bo(e)), this.dom = e, this.anisotropy = 16, this.colorSpace = ge, this.minFilter = mt, this.magFilter = mt;
|
|
10204
10204
|
const t = new MutationObserver(() => {
|
|
@@ -10207,7 +10207,7 @@ class Jl extends jo {
|
|
|
10207
10207
|
t.observe(e, s), this.observer = t;
|
|
10208
10208
|
}
|
|
10209
10209
|
dispatchDOMEvent(e) {
|
|
10210
|
-
e.data &&
|
|
10210
|
+
e.data && Vl(this.dom, e.type, e.data.x, e.data.y);
|
|
10211
10211
|
}
|
|
10212
10212
|
update() {
|
|
10213
10213
|
this.image = Bo(this.dom), this.needsUpdate = !0, this.scheduleUpdate = null;
|
|
@@ -10272,12 +10272,12 @@ function Bo(A) {
|
|
|
10272
10272
|
const w = d.backgroundColor;
|
|
10273
10273
|
w !== "transparent" && w !== "rgba(0, 0, 0, 0)" && (l.fillStyle = w, l.fill());
|
|
10274
10274
|
const Q = ["borderTop", "borderLeft", "borderBottom", "borderRight"];
|
|
10275
|
-
let
|
|
10275
|
+
let _ = !0, R = null;
|
|
10276
10276
|
for (const x of Q) {
|
|
10277
|
-
if (
|
|
10278
|
-
|
|
10277
|
+
if (R !== null && (_ = d[x + "Width"] === d[R + "Width"] && d[x + "Color"] === d[R + "Color"] && d[x + "Style"] === d[R + "Style"]), _ === !1) break;
|
|
10278
|
+
R = x;
|
|
10279
10279
|
}
|
|
10280
|
-
if (
|
|
10280
|
+
if (_ === !0) {
|
|
10281
10281
|
const x = parseFloat(d.borderTopWidth);
|
|
10282
10282
|
d.borderTopWidth !== "0px" && d.borderTopStyle !== "none" && d.borderTopColor !== "transparent" && d.borderTopColor !== "rgba(0, 0, 0, 0)" && (l.strokeStyle = d.borderTopColor, l.lineWidth = x, l.stroke());
|
|
10283
10283
|
} else
|
|
@@ -10319,7 +10319,7 @@ function Bo(A) {
|
|
|
10319
10319
|
), h = new s(l);
|
|
10320
10320
|
return l.clearRect(0, 0, c.width, c.height), r(A), c;
|
|
10321
10321
|
}
|
|
10322
|
-
function
|
|
10322
|
+
function Vl(A, e, t, s) {
|
|
10323
10323
|
const n = {
|
|
10324
10324
|
clientX: t * A.offsetWidth + A.offsetLeft,
|
|
10325
10325
|
clientY: s * A.offsetHeight + A.offsetTop,
|
|
@@ -10341,18 +10341,18 @@ function Wl(A, e, t, s) {
|
|
|
10341
10341
|
}
|
|
10342
10342
|
o(A);
|
|
10343
10343
|
}
|
|
10344
|
-
const
|
|
10345
|
-
class
|
|
10344
|
+
const As = new Le(), dn = { type: "", data: As }, wo = new Ii();
|
|
10345
|
+
class Fh extends on {
|
|
10346
10346
|
listenToPointerEvents(e, t) {
|
|
10347
10347
|
const s = this, n = new Ii(), i = e.domElement;
|
|
10348
10348
|
function o(r) {
|
|
10349
10349
|
r.stopPropagation();
|
|
10350
10350
|
const a = e.domElement.getBoundingClientRect();
|
|
10351
|
-
|
|
10351
|
+
As.x = (r.clientX - a.left) / a.width * 2 - 1, As.y = -(r.clientY - a.top) / a.height * 2 + 1, n.setFromCamera(As, t);
|
|
10352
10352
|
const c = n.intersectObjects(s.children, !1);
|
|
10353
10353
|
if (c.length > 0) {
|
|
10354
10354
|
const l = c[0], h = l.object, g = l.uv;
|
|
10355
|
-
|
|
10355
|
+
dn.type = r.type, dn.data.set(g.x, 1 - g.y), h.dispatchEvent(dn);
|
|
10356
10356
|
}
|
|
10357
10357
|
}
|
|
10358
10358
|
i.addEventListener("pointerdown", o), i.addEventListener("pointerup", o), i.addEventListener("pointermove", o), i.addEventListener("mousedown", o), i.addEventListener("mouseup", o), i.addEventListener("mousemove", o), i.addEventListener("click", o);
|
|
@@ -10370,14 +10370,14 @@ class kh extends sn {
|
|
|
10370
10370
|
const r = wo.intersectObjects(t.children, !1);
|
|
10371
10371
|
if (r.length > 0) {
|
|
10372
10372
|
const a = r[0], c = a.object, l = a.uv;
|
|
10373
|
-
|
|
10373
|
+
dn.type = s[i.type], dn.data.set(l.x, 1 - l.y), c.dispatchEvent(dn);
|
|
10374
10374
|
}
|
|
10375
10375
|
}
|
|
10376
10376
|
e.addEventListener("move", n), e.addEventListener("select", n), e.addEventListener("selectstart", n), e.addEventListener("selectend", n);
|
|
10377
10377
|
}
|
|
10378
10378
|
}
|
|
10379
|
-
const Rn = new P(),
|
|
10380
|
-
class
|
|
10379
|
+
const Rn = new P(), Dn = new P(), yo = new Oo();
|
|
10380
|
+
class Lh extends ls {
|
|
10381
10381
|
constructor(e, t = 1, s = 16711680) {
|
|
10382
10382
|
const n = new ut(), i = e.geometry.attributes.normal.count, o = new ke(i * 2 * 3, 3);
|
|
10383
10383
|
n.setAttribute("position", o), super(n, new Lt({ color: s, toneMapped: !1 })), this.object = e, this.size = t, this.type = "VertexNormalsHelper", this.matrixAutoUpdate = !1, this.update();
|
|
@@ -10389,7 +10389,7 @@ class Fh extends cs {
|
|
|
10389
10389
|
const n = s.attributes.position, i = s.attributes.normal;
|
|
10390
10390
|
let o = 0;
|
|
10391
10391
|
for (let r = 0, a = n.count; r < a; r++)
|
|
10392
|
-
Rn.fromBufferAttribute(n, r).applyMatrix4(e),
|
|
10392
|
+
Rn.fromBufferAttribute(n, r).applyMatrix4(e), Dn.fromBufferAttribute(i, r), Dn.applyMatrix3(yo).normalize().multiplyScalar(this.size).add(Rn), t.setXYZ(o, Rn.x, Rn.y, Rn.z), o = o + 1, t.setXYZ(o, Dn.x, Dn.y, Dn.z), o = o + 1;
|
|
10393
10393
|
}
|
|
10394
10394
|
t.needsUpdate = !0;
|
|
10395
10395
|
}
|
|
@@ -10397,7 +10397,7 @@ class Fh extends cs {
|
|
|
10397
10397
|
this.geometry.dispose(), this.material.dispose();
|
|
10398
10398
|
}
|
|
10399
10399
|
}
|
|
10400
|
-
class
|
|
10400
|
+
class Nh {
|
|
10401
10401
|
constructor() {
|
|
10402
10402
|
this.isPass = !0, this.enabled = !0, this.needsSwap = !0, this.clear = !1, this.renderToScreen = !1;
|
|
10403
10403
|
}
|
|
@@ -10410,28 +10410,28 @@ class Lh {
|
|
|
10410
10410
|
}
|
|
10411
10411
|
}
|
|
10412
10412
|
new Fo(-1, 1, 1, -1, 0, 1);
|
|
10413
|
-
class
|
|
10413
|
+
class Xl extends ut {
|
|
10414
10414
|
constructor() {
|
|
10415
10415
|
super(), this.setAttribute("position", new ke([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new ke([0, 2, 0, 0, 2, 0], 2));
|
|
10416
10416
|
}
|
|
10417
10417
|
}
|
|
10418
|
-
new
|
|
10418
|
+
new Xl();
|
|
10419
10419
|
const lt = {
|
|
10420
10420
|
node: "node",
|
|
10421
10421
|
material: "material",
|
|
10422
10422
|
camera: "camera",
|
|
10423
10423
|
light: "light"
|
|
10424
|
-
},
|
|
10424
|
+
}, $t = "KHR_animation_pointer", Zl = {
|
|
10425
10425
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
10426
10426
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
10427
10427
|
CUBICSPLINE: void 0,
|
|
10428
|
-
LINEAR:
|
|
10428
|
+
LINEAR: qn,
|
|
10429
10429
|
STEP: fi
|
|
10430
10430
|
}, Qo = It.findNode;
|
|
10431
10431
|
let xo = !1;
|
|
10432
|
-
class
|
|
10432
|
+
class $l {
|
|
10433
10433
|
constructor(e) {
|
|
10434
|
-
this.parser = e, this.name =
|
|
10434
|
+
this.parser = e, this.name = $t, this.animationPointerResolver = null;
|
|
10435
10435
|
}
|
|
10436
10436
|
setAnimationPointerResolver(e) {
|
|
10437
10437
|
return this.animationPointerResolver = e, this;
|
|
@@ -10462,7 +10462,7 @@ class Zl {
|
|
|
10462
10462
|
}
|
|
10463
10463
|
if (!n) {
|
|
10464
10464
|
const i = Qo(e, s[2]);
|
|
10465
|
-
return i || console.warn(
|
|
10465
|
+
return i || console.warn($t + ": Property binding not found", t, e, e.name, s), i;
|
|
10466
10466
|
}
|
|
10467
10467
|
return n;
|
|
10468
10468
|
}
|
|
@@ -10476,11 +10476,11 @@ class Zl {
|
|
|
10476
10476
|
}
|
|
10477
10477
|
loadAnimationTargetFromChannelWithAnimationPointer(e) {
|
|
10478
10478
|
this._havePatchedPropertyBindings || this._patchPropertyBindingFindNode();
|
|
10479
|
-
const t = e.target, s = t.extensions && t.extensions[
|
|
10479
|
+
const t = e.target, s = t.extensions && t.extensions[$t] && t.path && t.path === "pointer";
|
|
10480
10480
|
if (!s) return null;
|
|
10481
10481
|
let n, i = lt.node, o;
|
|
10482
10482
|
if (s) {
|
|
10483
|
-
const a = t.extensions[
|
|
10483
|
+
const a = t.extensions[$t];
|
|
10484
10484
|
let c = a.pointer;
|
|
10485
10485
|
if (!c) {
|
|
10486
10486
|
console.warn("Invalid path", a, t);
|
|
@@ -10656,7 +10656,7 @@ class Zl {
|
|
|
10656
10656
|
break;
|
|
10657
10657
|
}
|
|
10658
10658
|
const l = this.animationPointerResolver;
|
|
10659
|
-
l && l.resolvePath && (c = l.resolvePath(c)), t.extensions[
|
|
10659
|
+
l && l.resolvePath && (c = l.resolvePath(c)), t.extensions[$t].pointer = c;
|
|
10660
10660
|
}
|
|
10661
10661
|
if (o === null || isNaN(o)) {
|
|
10662
10662
|
console.warn("Failed resolving animation node id: " + o, t);
|
|
@@ -10666,8 +10666,8 @@ class Zl {
|
|
|
10666
10666
|
return i === lt.node ? r = this.parser.getDependency("node", o) : i === lt.material ? r = this.parser.getDependency("material", o) : i === lt.light ? r = this.parser.getDependency("light", o) : i === lt.camera ? r = this.parser.getDependency("camera", o) : console.error("Unhandled type", i), r;
|
|
10667
10667
|
}
|
|
10668
10668
|
createAnimationTracksWithAnimationPointer(e, t, s, n, i) {
|
|
10669
|
-
if (!(i.extensions && i.extensions[
|
|
10670
|
-
let r = i.extensions[
|
|
10669
|
+
if (!(i.extensions && i.extensions[$t] && i.path && i.path === "pointer")) return null;
|
|
10670
|
+
let r = i.extensions[$t].pointer;
|
|
10671
10671
|
if (!r) return null;
|
|
10672
10672
|
const a = [];
|
|
10673
10673
|
r = r.replaceAll("/", ".");
|
|
@@ -10684,17 +10684,17 @@ class Zl {
|
|
|
10684
10684
|
let p;
|
|
10685
10685
|
switch (s.itemSize) {
|
|
10686
10686
|
case 1:
|
|
10687
|
-
p =
|
|
10687
|
+
p = us;
|
|
10688
10688
|
break;
|
|
10689
10689
|
case 2:
|
|
10690
10690
|
case 3:
|
|
10691
|
-
p =
|
|
10691
|
+
p = hs;
|
|
10692
10692
|
break;
|
|
10693
10693
|
case 4:
|
|
10694
|
-
r.endsWith(".quaternion") ? p =
|
|
10694
|
+
r.endsWith(".quaternion") ? p = gs : p = Xa;
|
|
10695
10695
|
break;
|
|
10696
10696
|
}
|
|
10697
|
-
const m = n.interpolation !== void 0 ?
|
|
10697
|
+
const m = n.interpolation !== void 0 ? Zl[n.interpolation] : qn;
|
|
10698
10698
|
let I = d._getArrayFromAccessor(s);
|
|
10699
10699
|
r.endsWith(".fov") && (I = I.map((B) => B / Math.PI * 180));
|
|
10700
10700
|
const b = new p(
|
|
@@ -10744,11 +10744,11 @@ class Zl {
|
|
|
10744
10744
|
]).then(function(g) {
|
|
10745
10745
|
const d = g[0], p = g[1], m = g[2], I = g[3], b = g[4], B = [];
|
|
10746
10746
|
for (let E = 0, w = d.length; E < w; E++) {
|
|
10747
|
-
const Q = d[E],
|
|
10747
|
+
const Q = d[E], _ = p[E], R = m[E], x = I[E], v = b[E];
|
|
10748
10748
|
if (Q === void 0) continue;
|
|
10749
10749
|
Q.updateMatrix && (Q.updateMatrix(), Q.matrixAutoUpdate = !0);
|
|
10750
|
-
let L = t.createAnimationTracksWithAnimationPointer(Q,
|
|
10751
|
-
if (L || (L = n._createAnimationTracks(Q,
|
|
10750
|
+
let L = t.createAnimationTracksWithAnimationPointer(Q, _, R, x, v);
|
|
10751
|
+
if (L || (L = n._createAnimationTracks(Q, _, R, x, v)), L)
|
|
10752
10752
|
for (let N = 0; N < L.length; N++)
|
|
10753
10753
|
B.push(L[N]);
|
|
10754
10754
|
}
|
|
@@ -10756,45 +10756,45 @@ class Zl {
|
|
|
10756
10756
|
});
|
|
10757
10757
|
}
|
|
10758
10758
|
}
|
|
10759
|
-
const
|
|
10759
|
+
const Uh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10760
10760
|
__proto__: null,
|
|
10761
|
-
GLTFAnimationPointerExtension:
|
|
10761
|
+
GLTFAnimationPointerExtension: $l
|
|
10762
10762
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
10763
10763
|
export {
|
|
10764
|
-
|
|
10764
|
+
mh as DRACOLoader,
|
|
10765
10765
|
Bc as EXRLoader,
|
|
10766
|
-
|
|
10767
|
-
|
|
10766
|
+
Bh as EXRLoader$1,
|
|
10767
|
+
yh as FBXLoader,
|
|
10768
10768
|
JA as Font,
|
|
10769
|
-
|
|
10769
|
+
bh as FontLoader,
|
|
10770
10770
|
wr as GLTFExporter,
|
|
10771
10771
|
zo as GLTFLoader,
|
|
10772
|
-
|
|
10773
|
-
|
|
10774
|
-
|
|
10775
|
-
|
|
10776
|
-
|
|
10772
|
+
Uh as GLTFLoaderAnimationPointer,
|
|
10773
|
+
th as GroundedSkybox,
|
|
10774
|
+
kh as HTMLMesh,
|
|
10775
|
+
Th as HorizontalBlurShader,
|
|
10776
|
+
Fh as InteractiveGroup,
|
|
10777
10777
|
Ft as KTX2Loader,
|
|
10778
|
-
|
|
10779
|
-
|
|
10778
|
+
Mh as Line2,
|
|
10779
|
+
Jl as LineGeometry,
|
|
10780
10780
|
Sr as LineMaterial,
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10781
|
+
fh as MeshoptDecoder,
|
|
10782
|
+
Qh as OBJLoader,
|
|
10783
|
+
xh as OrbitControls,
|
|
10784
|
+
Nh as Pass,
|
|
10785
|
+
vh as PositionalAudioHelper,
|
|
10786
10786
|
wc as RGBELoader,
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10787
|
+
wh as RGBELoader$1,
|
|
10788
|
+
rs as Stats,
|
|
10789
|
+
Ih as TextGeometry,
|
|
10790
|
+
Eh as TransformControls,
|
|
10791
10791
|
sc as TransformControlsGizmo,
|
|
10792
|
-
|
|
10793
|
-
|
|
10792
|
+
Lh as VertexNormalsHelper,
|
|
10793
|
+
_h as VerticalBlurShader,
|
|
10794
10794
|
Rh as XRControllerModelFactory,
|
|
10795
|
-
|
|
10796
|
-
|
|
10795
|
+
Dh as XRHandMeshModel,
|
|
10796
|
+
nh as mergeVertices,
|
|
10797
10797
|
tt as nodeFrame,
|
|
10798
10798
|
$i as strToU8,
|
|
10799
|
-
|
|
10799
|
+
Ch as zipSync
|
|
10800
10800
|
};
|