@jdultra/threedtiles 13.0.9 → 13.0.11
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/dist/threedtiles.cjs.js +9 -14
- package/dist/threedtiles.cjs.js.map +1 -1
- package/dist/threedtiles.es.js +368 -370
- package/dist/threedtiles.es.js.map +1 -1
- package/dist/threedtiles.umd.js +9 -14
- package/dist/threedtiles.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/threedtiles.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var Je = (o, e, t) =>
|
|
1
|
+
var UA = Object.defineProperty;
|
|
2
|
+
var GA = (o, e, t) => e in o ? UA(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
|
|
3
|
+
var Je = (o, e, t) => GA(o, typeof e != "symbol" ? e + "" : e, t);
|
|
4
4
|
import * as j from "three";
|
|
5
|
-
import { Matrix3 as
|
|
6
|
-
function
|
|
5
|
+
import { Matrix3 as ia, Vector3 as K, Box3 as sa, Matrix4 as it, Ray as NA, BufferGeometry as ra, BufferAttribute as Pe, TrianglesDrawMode as _A, TriangleFanDrawMode as Vt, TriangleStripDrawMode as $a, Loader as na, LoaderUtils as lt, FileLoader as Xe, Color as Oe, LinearSRGBColorSpace as be, SpotLight as PA, PointLight as OA, DirectionalLight as HA, MeshBasicMaterial as ot, SRGBColorSpace as ve, MeshPhysicalMaterial as me, Vector2 as eA, Quaternion as tA, InstancedMesh as qA, InstancedBufferAttribute as Yt, Object3D as aA, TextureLoader as JA, ImageBitmapLoader as KA, InterleavedBuffer as zA, InterleavedBufferAttribute as VA, LinearFilter as ft, LinearMipmapLinearFilter as oa, RepeatWrapping as Wt, NearestFilter as P, PointsMaterial as YA, Material as wt, LineBasicMaterial as WA, MeshStandardMaterial as ga, DoubleSide as XA, PropertyBinding as ZA, SkinnedMesh as $A, Mesh as Xt, LineSegments as ei, Line as ti, LineLoop as ai, Points as Ai, Group as xt, PerspectiveCamera as ii, MathUtils as si, OrthographicCamera as AA, Skeleton as ri, AnimationClip as ni, Bone as oi, InterpolateLinear as iA, ColorManagement as Zt, NearestMipmapNearestFilter as ci, LinearMipmapNearestFilter as di, NearestMipmapLinearFilter as hi, ClampToEdgeWrapping as li, MirroredRepeatWrapping as bi, InterpolateDiscrete as gi, FrontSide as Et, Texture as fa, VectorKeyframeTrack as ua, NumberKeyframeTrack as Ia, QuaternionKeyframeTrack as pa, Sphere as fi, Interpolant as ui, CompressedCubeTexture as Ii, CompressedArrayTexture as pi, CompressedTexture as Ba, RGBAFormat as Be, RGBA_ASTC_4x4_Format as sA, RGB_BPTC_UNSIGNED_Format as Bi, RGBA_BPTC_Format as mi, RGBA_ETC2_EAC_Format as Ci, RGBA_PVRTC_4BPPV1_Format as Ei, RGBA_S3TC_DXT5_Format as Qi, RGB_ETC1_Format as yi, RGB_ETC2_Format as wi, RGB_PVRTC_4BPPV1_Format as xi, RGBA_S3TC_DXT1_Format as ki, UnsignedByteType as ue, HalfFloatType as et, FloatType as W, DataTexture as ct, Data3DTexture as Di, NoColorSpace as ji, RGFormat as dt, RedFormat as ht, RGBA_ASTC_6x6_Format as ma, WebGL3DRenderTarget as Ue, ShaderMaterial as kt, AlwaysDepth as Ri, InstancedBufferGeometry as Ca, DynamicDrawUsage as Ea, Scene as Mi, PlaneGeometry as vi } from "three";
|
|
6
|
+
function ca(o, e) {
|
|
7
7
|
for (var t = 0; t < e.length; t++) {
|
|
8
8
|
const a = e[t];
|
|
9
9
|
if (typeof a != "string" && !Array.isArray(a)) {
|
|
@@ -15,7 +15,7 @@ function It(o, e) {
|
|
|
15
15
|
}
|
|
16
16
|
return Object.freeze(Object.defineProperty(o, Symbol.toStringTag, { value: "Module" }));
|
|
17
17
|
}
|
|
18
|
-
class
|
|
18
|
+
class Ks {
|
|
19
19
|
constructor() {
|
|
20
20
|
this.cullMap = [], this.cullMaterial = new j.MeshBasicMaterial({ vertexColors: !0 }), this.cullMaterial.side = j.FrontSide, this.cullTarget = this._createCullTarget(), this.cullPixels = new Uint8Array(4 * this.cullTarget.width * this.cullTarget.height);
|
|
21
21
|
}
|
|
@@ -38,10 +38,10 @@ class $s {
|
|
|
38
38
|
return this.cullMap[e];
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
const le = new
|
|
41
|
+
const le = new ia(), te = new K(), Qa = new K(), ya = new sa(), ut = new it(), wa = new it(), xa = new NA();
|
|
42
42
|
class Re {
|
|
43
43
|
constructor(e) {
|
|
44
|
-
this.center = new K(e[0], e[1], e[2]), this.e1 = new K(e[3], e[4], e[5]), this.e2 = new K(e[6], e[7], e[8]), this.e3 = new K(e[9], e[10], e[11]), this.halfSize = new K(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new
|
|
44
|
+
this.center = new K(e[0], e[1], e[2]), this.e1 = new K(e[3], e[4], e[5]), this.e2 = new K(e[6], e[7], e[8]), this.e3 = new K(e[9], e[10], e[11]), this.halfSize = new K(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new ia(), this.rotationMatrix.set(this.e1.x, this.e1.y, this.e1.z, this.e2.x, this.e2.y, this.e2.z, this.e3.x, this.e3.y, this.e3.z);
|
|
45
45
|
}
|
|
46
46
|
copy(e) {
|
|
47
47
|
this.center.copy(e.center), this.rotationMatrix.copy(e.rotationMatrix), this.halfSize.copy(e.halfSize);
|
|
@@ -58,7 +58,7 @@ class Re {
|
|
|
58
58
|
return le.elements[0] *= i, le.elements[1] *= i, le.elements[2] *= i, le.elements[3] *= n, le.elements[4] *= n, le.elements[5] *= n, le.elements[6] *= l, le.elements[7] *= l, le.elements[8] *= l, this.rotationMatrix.multiply(le), this.halfSize.x *= a, this.halfSize.y *= A, this.halfSize.z *= s, te.setFromMatrixPosition(e), this.center.applyMatrix4(e), this;
|
|
59
59
|
}
|
|
60
60
|
intersectRay(e, t) {
|
|
61
|
-
return this.getSize(
|
|
61
|
+
return this.getSize(Qa), ya.setFromCenterAndSize(te.set(0, 0, 0), Qa), ut.setFromMatrix3(this.rotationMatrix), ut.setPosition(this.center), wa.copy(ut).invert(), xa.copy(e).applyMatrix4(wa), xa.intersectBox(ya, t) ? t.applyMatrix4(ut) : null;
|
|
62
62
|
}
|
|
63
63
|
intersectsRay(e) {
|
|
64
64
|
return this.intersectRay(e, te) !== null;
|
|
@@ -81,10 +81,10 @@ class Re {
|
|
|
81
81
|
return Math.sqrt(t * t + a * a + A * A);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function yt(o) {
|
|
85
85
|
return o && o.__esModule && Object.prototype.hasOwnProperty.call(o, "default") ? o.default : o;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function da(o) {
|
|
88
88
|
if (o.__esModule) return o;
|
|
89
89
|
var e = o.default;
|
|
90
90
|
if (typeof e == "function") {
|
|
@@ -108,7 +108,7 @@ function pt(o) {
|
|
|
108
108
|
* Parent is math.floor((m - 1) / 2) where m is is the child index
|
|
109
109
|
* @class Heap
|
|
110
110
|
*/
|
|
111
|
-
var
|
|
111
|
+
var ka = class {
|
|
112
112
|
constructor(o, e) {
|
|
113
113
|
if (this._data = [], this._comparator = function(t, a) {
|
|
114
114
|
return t >= a;
|
|
@@ -156,8 +156,8 @@ var Da = class {
|
|
|
156
156
|
this._comparator(this._data[o], this._data[a]) && (this.swap(o, a), this.heapifyDown(a));
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
|
-
const
|
|
160
|
-
var
|
|
159
|
+
const Ti = da(ca({ __proto__: null, default: yt(ka) }, [ka]));
|
|
160
|
+
var Da = class {
|
|
161
161
|
constructor(o, e) {
|
|
162
162
|
if (this._data = [], this._head = 0, this._cap = null, o != null) {
|
|
163
163
|
if (!Array.isArray(o)) throw Error("Constructor expects data to be an array");
|
|
@@ -195,8 +195,8 @@ var ja = class {
|
|
|
195
195
|
return this._data.slice(this._head);
|
|
196
196
|
}
|
|
197
197
|
};
|
|
198
|
-
const
|
|
199
|
-
var
|
|
198
|
+
const Si = da(ca({ __proto__: null, default: yt(Da) }, [Da]));
|
|
199
|
+
var ja = class {
|
|
200
200
|
constructor() {
|
|
201
201
|
this._data = /* @__PURE__ */ new Map(), this._link = /* @__PURE__ */ new Map(), this._head = void 0, this._tail = void 0;
|
|
202
202
|
}
|
|
@@ -279,15 +279,15 @@ var Ra = class {
|
|
|
279
279
|
}
|
|
280
280
|
return Array.from(this.keys()).map((e) => ({ key: e, value: this.get(e) }));
|
|
281
281
|
}
|
|
282
|
-
},
|
|
283
|
-
const
|
|
284
|
-
class
|
|
282
|
+
}, rA = { Heap: Ti, Queue: Si, LinkedHashMap: da(ca({ __proto__: null, default: yt(ja) }, [ja])) };
|
|
283
|
+
const Fi = new TextDecoder();
|
|
284
|
+
class nA {
|
|
285
285
|
constructor(e, t, a, A) {
|
|
286
286
|
this.buffer = e, this.binOffset = t + a, this.binLength = A;
|
|
287
287
|
let s = null;
|
|
288
288
|
if (a !== 0) try {
|
|
289
289
|
const i = new Uint8Array(e, t, a);
|
|
290
|
-
s = JSON.parse(
|
|
290
|
+
s = JSON.parse(Fi.decode(i));
|
|
291
291
|
} catch {
|
|
292
292
|
s = {};
|
|
293
293
|
}
|
|
@@ -359,7 +359,7 @@ class oA {
|
|
|
359
359
|
return i;
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
|
-
class
|
|
362
|
+
class Li extends nA {
|
|
363
363
|
constructor(e, t, a, A, s) {
|
|
364
364
|
super(e, a, A, s), this.batchSize = t;
|
|
365
365
|
}
|
|
@@ -367,7 +367,7 @@ class Ui extends oA {
|
|
|
367
367
|
return super.getData(e, this.batchSize, t, a);
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
|
-
function
|
|
370
|
+
function Ra(o) {
|
|
371
371
|
let e, t, a, A = -1, s = 0;
|
|
372
372
|
for (let h = 0; h < o.length; ++h) {
|
|
373
373
|
const b = o[h];
|
|
@@ -392,9 +392,9 @@ function Ma(o) {
|
|
|
392
392
|
}
|
|
393
393
|
return A !== void 0 && (n.gpuType = A), n;
|
|
394
394
|
}
|
|
395
|
-
function
|
|
396
|
-
if (e ===
|
|
397
|
-
if (e ===
|
|
395
|
+
function Ma(o, e) {
|
|
396
|
+
if (e === _A) return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), o;
|
|
397
|
+
if (e === Vt || e === $a) {
|
|
398
398
|
let t = o.getIndex();
|
|
399
399
|
if (t === null) {
|
|
400
400
|
const i = [], n = o.getAttribute("position");
|
|
@@ -403,7 +403,7 @@ function va(o, e) {
|
|
|
403
403
|
o.setIndex(i), t = o.getIndex();
|
|
404
404
|
}
|
|
405
405
|
const a = t.count - 2, A = [];
|
|
406
|
-
if (e ===
|
|
406
|
+
if (e === Vt) for (let i = 1; i <= a; i++) A.push(t.getX(0)), A.push(t.getX(i)), A.push(t.getX(i + 1));
|
|
407
407
|
else for (let i = 0; i < a; i++) i % 2 == 0 ? (A.push(t.getX(i)), A.push(t.getX(i + 1)), A.push(t.getX(i + 2))) : (A.push(t.getX(i + 2)), A.push(t.getX(i + 1)), A.push(t.getX(i)));
|
|
408
408
|
A.length / 3 !== a && console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");
|
|
409
409
|
const s = o.clone();
|
|
@@ -411,7 +411,7 @@ function va(o, e) {
|
|
|
411
411
|
}
|
|
412
412
|
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", e), o;
|
|
413
413
|
}
|
|
414
|
-
class
|
|
414
|
+
class oA {
|
|
415
415
|
constructor(e) {
|
|
416
416
|
Je(this, "checkLoaderInitialized", async () => new Promise((e) => {
|
|
417
417
|
const t = setInterval(() => {
|
|
@@ -425,8 +425,8 @@ class cA {
|
|
|
425
425
|
console.assert(n === "b3dm");
|
|
426
426
|
const l = i.getUint32(8, !0);
|
|
427
427
|
console.assert(l === e.byteLength);
|
|
428
|
-
const h = i.getUint32(12, !0), b = i.getUint32(16, !0), g = i.getUint32(20, !0), f = i.getUint32(24, !0), I = new
|
|
429
|
-
new
|
|
428
|
+
const h = i.getUint32(12, !0), b = i.getUint32(16, !0), g = i.getUint32(20, !0), f = i.getUint32(24, !0), I = new nA(e, 28, h, b), u = 28 + h + b;
|
|
429
|
+
new Li(e, I.getData("BATCH_LENGTH"), u, g, f);
|
|
430
430
|
const p = u + g + f, m = new Uint8Array(e, p, l - p).slice().buffer;
|
|
431
431
|
return new Promise(async (C, E) => {
|
|
432
432
|
await this.checkLoaderInitialized(), this.gltfLoader.parse(m, null, (x) => {
|
|
@@ -469,7 +469,7 @@ class cA {
|
|
|
469
469
|
}
|
|
470
470
|
});
|
|
471
471
|
}), function(u, p = !1) {
|
|
472
|
-
const m = u[0].index !== null, C = new Set(Object.keys(u[0].attributes)), E = new Set(Object.keys(u[0].morphAttributes)), x = {}, w = {}, M = u[0].morphTargetsRelative, T = new
|
|
472
|
+
const m = u[0].index !== null, C = new Set(Object.keys(u[0].attributes)), E = new Set(Object.keys(u[0].morphAttributes)), x = {}, w = {}, M = u[0].morphTargetsRelative, T = new ra();
|
|
473
473
|
let v = 0;
|
|
474
474
|
for (let k = 0; k < u.length; ++k) {
|
|
475
475
|
const R = u[k];
|
|
@@ -506,7 +506,7 @@ class cA {
|
|
|
506
506
|
T.setIndex(R);
|
|
507
507
|
}
|
|
508
508
|
for (const k in x) {
|
|
509
|
-
const R =
|
|
509
|
+
const R = Ra(x[k]);
|
|
510
510
|
if (!R) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + k + " attribute."), null;
|
|
511
511
|
T.setAttribute(k, R);
|
|
512
512
|
}
|
|
@@ -517,7 +517,7 @@ class cA {
|
|
|
517
517
|
for (let S = 0; S < R; ++S) {
|
|
518
518
|
const F = [];
|
|
519
519
|
for (let Ae = 0; Ae < w[k].length; ++Ae) F.push(w[k][Ae][S]);
|
|
520
|
-
const z =
|
|
520
|
+
const z = Ra(F);
|
|
521
521
|
if (!z) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + k + " morphAttribute."), null;
|
|
522
522
|
T.morphAttributes[k].push(z);
|
|
523
523
|
}
|
|
@@ -529,25 +529,25 @@ class cA {
|
|
|
529
529
|
});
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
|
-
var
|
|
533
|
-
function
|
|
534
|
-
if (!
|
|
535
|
-
return
|
|
532
|
+
var Dt, Ui = new Uint8Array(16);
|
|
533
|
+
function Gi() {
|
|
534
|
+
if (!Dt && !(Dt = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto < "u" && typeof msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto))) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
535
|
+
return Dt(Ui);
|
|
536
536
|
}
|
|
537
|
-
const
|
|
538
|
-
for (var $ = [],
|
|
539
|
-
function
|
|
537
|
+
const Ni = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
538
|
+
for (var $ = [], jt = 0; jt < 256; ++jt) $.push((jt + 256).toString(16).substr(1));
|
|
539
|
+
function _i(o) {
|
|
540
540
|
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, t = ($[o[e + 0]] + $[o[e + 1]] + $[o[e + 2]] + $[o[e + 3]] + "-" + $[o[e + 4]] + $[o[e + 5]] + "-" + $[o[e + 6]] + $[o[e + 7]] + "-" + $[o[e + 8]] + $[o[e + 9]] + "-" + $[o[e + 10]] + $[o[e + 11]] + $[o[e + 12]] + $[o[e + 13]] + $[o[e + 14]] + $[o[e + 15]]).toLowerCase();
|
|
541
541
|
if (!function(a) {
|
|
542
|
-
return typeof a == "string" &&
|
|
542
|
+
return typeof a == "string" && Ni.test(a);
|
|
543
543
|
}(t)) throw TypeError("Stringified UUID is invalid");
|
|
544
544
|
return t;
|
|
545
545
|
}
|
|
546
|
-
function
|
|
547
|
-
var a = (o = o || {}).random || (o.rng ||
|
|
548
|
-
return a[6] = 15 & a[6] | 64, a[8] = 63 & a[8] | 128,
|
|
546
|
+
function cA(o, e, t) {
|
|
547
|
+
var a = (o = o || {}).random || (o.rng || Gi)();
|
|
548
|
+
return a[6] = 15 & a[6] | 64, a[8] = 63 & a[8] | 128, _i(a);
|
|
549
549
|
}
|
|
550
|
-
class
|
|
550
|
+
class Pi {
|
|
551
551
|
constructor(e, t) {
|
|
552
552
|
Je(this, "checkLoaderInitialized", async () => {
|
|
553
553
|
const e = this;
|
|
@@ -574,18 +574,20 @@ class Oi {
|
|
|
574
574
|
});
|
|
575
575
|
}
|
|
576
576
|
}
|
|
577
|
-
class
|
|
577
|
+
class dA extends na {
|
|
578
578
|
constructor(e) {
|
|
579
579
|
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
|
|
580
|
+
return new Ki(t);
|
|
581
|
+
}), this.register(function(t) {
|
|
580
582
|
return new zi(t);
|
|
581
583
|
}), this.register(function(t) {
|
|
582
|
-
return new
|
|
584
|
+
return new as(t);
|
|
583
585
|
}), this.register(function(t) {
|
|
584
586
|
return new As(t);
|
|
585
587
|
}), this.register(function(t) {
|
|
586
588
|
return new is(t);
|
|
587
589
|
}), this.register(function(t) {
|
|
588
|
-
return new
|
|
590
|
+
return new Yi(t);
|
|
589
591
|
}), this.register(function(t) {
|
|
590
592
|
return new Wi(t);
|
|
591
593
|
}), this.register(function(t) {
|
|
@@ -593,23 +595,21 @@ class hA extends da {
|
|
|
593
595
|
}), this.register(function(t) {
|
|
594
596
|
return new Zi(t);
|
|
595
597
|
}), this.register(function(t) {
|
|
596
|
-
return new
|
|
598
|
+
return new Ji(t);
|
|
597
599
|
}), this.register(function(t) {
|
|
598
|
-
return new
|
|
600
|
+
return new $i(t);
|
|
599
601
|
}), this.register(function(t) {
|
|
600
|
-
return new
|
|
602
|
+
return new Vi(t);
|
|
601
603
|
}), this.register(function(t) {
|
|
602
|
-
return new
|
|
604
|
+
return new ts(t);
|
|
603
605
|
}), this.register(function(t) {
|
|
604
|
-
return new
|
|
606
|
+
return new es(t);
|
|
605
607
|
}), this.register(function(t) {
|
|
606
|
-
return new
|
|
608
|
+
return new Hi(t);
|
|
607
609
|
}), this.register(function(t) {
|
|
608
|
-
return new
|
|
610
|
+
return new ss(t);
|
|
609
611
|
}), this.register(function(t) {
|
|
610
612
|
return new rs(t);
|
|
611
|
-
}), this.register(function(t) {
|
|
612
|
-
return new ns(t);
|
|
613
613
|
});
|
|
614
614
|
}
|
|
615
615
|
load(e, t, a, A) {
|
|
@@ -654,9 +654,9 @@ class hA extends da {
|
|
|
654
654
|
const i = {}, n = {}, l = new TextDecoder();
|
|
655
655
|
if (typeof e == "string") s = JSON.parse(e);
|
|
656
656
|
else if (e instanceof ArrayBuffer)
|
|
657
|
-
if (l.decode(new Uint8Array(e, 0, 4)) ===
|
|
657
|
+
if (l.decode(new Uint8Array(e, 0, 4)) === hA) {
|
|
658
658
|
try {
|
|
659
|
-
i[U.KHR_BINARY_GLTF] = new
|
|
659
|
+
i[U.KHR_BINARY_GLTF] = new cs(e);
|
|
660
660
|
} catch (b) {
|
|
661
661
|
return void (A && A(b));
|
|
662
662
|
}
|
|
@@ -664,7 +664,7 @@ class hA extends da {
|
|
|
664
664
|
} else s = JSON.parse(l.decode(e));
|
|
665
665
|
else s = e;
|
|
666
666
|
if (s.asset === void 0 || s.asset.version[0] < 2) return void (A && A(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));
|
|
667
|
-
const h = new
|
|
667
|
+
const h = new Es(s, { path: t || this.resourcePath || "", crossOrigin: this.crossOrigin, requestHeader: this.requestHeader, manager: this.manager, ktx2Loader: this.ktx2Loader, meshoptDecoder: this.meshoptDecoder });
|
|
668
668
|
h.fileLoader.setRequestHeader(this.requestHeader);
|
|
669
669
|
for (let b = 0; b < this.pluginCallbacks.length; b++) {
|
|
670
670
|
const g = this.pluginCallbacks[b](h);
|
|
@@ -674,16 +674,16 @@ class hA extends da {
|
|
|
674
674
|
const g = s.extensionsUsed[b], f = s.extensionsRequired || [];
|
|
675
675
|
switch (g) {
|
|
676
676
|
case U.KHR_MATERIALS_UNLIT:
|
|
677
|
-
i[g] = new
|
|
677
|
+
i[g] = new qi();
|
|
678
678
|
break;
|
|
679
679
|
case U.KHR_DRACO_MESH_COMPRESSION:
|
|
680
|
-
i[g] = new
|
|
680
|
+
i[g] = new ds(s, this.dracoLoader);
|
|
681
681
|
break;
|
|
682
682
|
case U.KHR_TEXTURE_TRANSFORM:
|
|
683
|
-
i[g] = new
|
|
683
|
+
i[g] = new hs();
|
|
684
684
|
break;
|
|
685
685
|
case U.KHR_MESH_QUANTIZATION:
|
|
686
|
-
i[g] = new
|
|
686
|
+
i[g] = new ls();
|
|
687
687
|
break;
|
|
688
688
|
default:
|
|
689
689
|
f.indexOf(g) >= 0 && n[g] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + g + '".');
|
|
@@ -698,7 +698,7 @@ class hA extends da {
|
|
|
698
698
|
});
|
|
699
699
|
}
|
|
700
700
|
}
|
|
701
|
-
function
|
|
701
|
+
function Oi() {
|
|
702
702
|
let o = {};
|
|
703
703
|
return { get: function(e) {
|
|
704
704
|
return o[e];
|
|
@@ -711,7 +711,7 @@ function Hi() {
|
|
|
711
711
|
} };
|
|
712
712
|
}
|
|
713
713
|
const U = { KHR_BINARY_GLTF: "KHR_binary_glTF", KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression", KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual", KHR_MATERIALS_CLEARCOAT: "KHR_materials_clearcoat", KHR_MATERIALS_DISPERSION: "KHR_materials_dispersion", KHR_MATERIALS_IOR: "KHR_materials_ior", KHR_MATERIALS_SHEEN: "KHR_materials_sheen", KHR_MATERIALS_SPECULAR: "KHR_materials_specular", KHR_MATERIALS_TRANSMISSION: "KHR_materials_transmission", KHR_MATERIALS_IRIDESCENCE: "KHR_materials_iridescence", KHR_MATERIALS_ANISOTROPY: "KHR_materials_anisotropy", KHR_MATERIALS_UNLIT: "KHR_materials_unlit", KHR_MATERIALS_VOLUME: "KHR_materials_volume", KHR_TEXTURE_BASISU: "KHR_texture_basisu", KHR_TEXTURE_TRANSFORM: "KHR_texture_transform", KHR_MESH_QUANTIZATION: "KHR_mesh_quantization", KHR_MATERIALS_EMISSIVE_STRENGTH: "KHR_materials_emissive_strength", EXT_MATERIALS_BUMP: "EXT_materials_bump", EXT_TEXTURE_WEBP: "EXT_texture_webp", EXT_TEXTURE_AVIF: "EXT_texture_avif", EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression", EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing" };
|
|
714
|
-
class
|
|
714
|
+
class Hi {
|
|
715
715
|
constructor(e) {
|
|
716
716
|
this.parser = e, this.name = U.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
717
717
|
}
|
|
@@ -733,13 +733,13 @@ class qi {
|
|
|
733
733
|
const h = i.range !== void 0 ? i.range : 0;
|
|
734
734
|
switch (i.type) {
|
|
735
735
|
case "directional":
|
|
736
|
-
n = new
|
|
736
|
+
n = new HA(l), n.target.position.set(0, 0, -1), n.add(n.target);
|
|
737
737
|
break;
|
|
738
738
|
case "point":
|
|
739
|
-
n = new
|
|
739
|
+
n = new OA(l), n.distance = h;
|
|
740
740
|
break;
|
|
741
741
|
case "spot":
|
|
742
|
-
n = new
|
|
742
|
+
n = new PA(l), n.distance = h, i.spot = i.spot || {}, i.spot.innerConeAngle = i.spot.innerConeAngle !== void 0 ? i.spot.innerConeAngle : 0, i.spot.outerConeAngle = i.spot.outerConeAngle !== void 0 ? i.spot.outerConeAngle : Math.PI / 4, n.angle = i.spot.outerConeAngle, n.penumbra = 1 - i.spot.innerConeAngle / i.spot.outerConeAngle, n.target.position.set(0, 0, -1), n.add(n.target);
|
|
743
743
|
break;
|
|
744
744
|
default:
|
|
745
745
|
throw new Error("THREE.GLTFLoader: Unexpected light type: " + i.type);
|
|
@@ -756,7 +756,7 @@ class qi {
|
|
|
756
756
|
});
|
|
757
757
|
}
|
|
758
758
|
}
|
|
759
|
-
class
|
|
759
|
+
class qi {
|
|
760
760
|
constructor() {
|
|
761
761
|
this.name = U.KHR_MATERIALS_UNLIT;
|
|
762
762
|
}
|
|
@@ -777,7 +777,7 @@ class Ji {
|
|
|
777
777
|
return Promise.all(A);
|
|
778
778
|
}
|
|
779
779
|
}
|
|
780
|
-
class
|
|
780
|
+
class Ji {
|
|
781
781
|
constructor(e) {
|
|
782
782
|
this.parser = e, this.name = U.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
783
783
|
}
|
|
@@ -788,7 +788,7 @@ class Ki {
|
|
|
788
788
|
return A !== void 0 && (t.emissiveIntensity = A), Promise.resolve();
|
|
789
789
|
}
|
|
790
790
|
}
|
|
791
|
-
class
|
|
791
|
+
class Ki {
|
|
792
792
|
constructor(e) {
|
|
793
793
|
this.parser = e, this.name = U.KHR_MATERIALS_CLEARCOAT;
|
|
794
794
|
}
|
|
@@ -802,12 +802,12 @@ class zi {
|
|
|
802
802
|
const s = [], i = A.extensions[this.name];
|
|
803
803
|
if (i.clearcoatFactor !== void 0 && (t.clearcoat = i.clearcoatFactor), i.clearcoatTexture !== void 0 && s.push(a.assignTexture(t, "clearcoatMap", i.clearcoatTexture)), i.clearcoatRoughnessFactor !== void 0 && (t.clearcoatRoughness = i.clearcoatRoughnessFactor), i.clearcoatRoughnessTexture !== void 0 && s.push(a.assignTexture(t, "clearcoatRoughnessMap", i.clearcoatRoughnessTexture)), i.clearcoatNormalTexture !== void 0 && (s.push(a.assignTexture(t, "clearcoatNormalMap", i.clearcoatNormalTexture)), i.clearcoatNormalTexture.scale !== void 0)) {
|
|
804
804
|
const n = i.clearcoatNormalTexture.scale;
|
|
805
|
-
t.clearcoatNormalScale = new
|
|
805
|
+
t.clearcoatNormalScale = new eA(n, n);
|
|
806
806
|
}
|
|
807
807
|
return Promise.all(s);
|
|
808
808
|
}
|
|
809
809
|
}
|
|
810
|
-
class
|
|
810
|
+
class zi {
|
|
811
811
|
constructor(e) {
|
|
812
812
|
this.parser = e, this.name = U.KHR_MATERIALS_DISPERSION;
|
|
813
813
|
}
|
|
@@ -822,7 +822,7 @@ class Vi {
|
|
|
822
822
|
return t.dispersion = A.dispersion !== void 0 ? A.dispersion : 0, Promise.resolve();
|
|
823
823
|
}
|
|
824
824
|
}
|
|
825
|
-
class
|
|
825
|
+
class Vi {
|
|
826
826
|
constructor(e) {
|
|
827
827
|
this.parser = e, this.name = U.KHR_MATERIALS_IRIDESCENCE;
|
|
828
828
|
}
|
|
@@ -837,7 +837,7 @@ class Yi {
|
|
|
837
837
|
return i.iridescenceFactor !== void 0 && (t.iridescence = i.iridescenceFactor), i.iridescenceTexture !== void 0 && s.push(a.assignTexture(t, "iridescenceMap", i.iridescenceTexture)), i.iridescenceIor !== void 0 && (t.iridescenceIOR = i.iridescenceIor), t.iridescenceThicknessRange === void 0 && (t.iridescenceThicknessRange = [100, 400]), i.iridescenceThicknessMinimum !== void 0 && (t.iridescenceThicknessRange[0] = i.iridescenceThicknessMinimum), i.iridescenceThicknessMaximum !== void 0 && (t.iridescenceThicknessRange[1] = i.iridescenceThicknessMaximum), i.iridescenceThicknessTexture !== void 0 && s.push(a.assignTexture(t, "iridescenceThicknessMap", i.iridescenceThicknessTexture)), Promise.all(s);
|
|
838
838
|
}
|
|
839
839
|
}
|
|
840
|
-
class
|
|
840
|
+
class Yi {
|
|
841
841
|
constructor(e) {
|
|
842
842
|
this.parser = e, this.name = U.KHR_MATERIALS_SHEEN;
|
|
843
843
|
}
|
|
@@ -858,7 +858,7 @@ class Wi {
|
|
|
858
858
|
return i.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = i.sheenRoughnessFactor), i.sheenColorTexture !== void 0 && s.push(a.assignTexture(t, "sheenColorMap", i.sheenColorTexture, ve)), i.sheenRoughnessTexture !== void 0 && s.push(a.assignTexture(t, "sheenRoughnessMap", i.sheenRoughnessTexture)), Promise.all(s);
|
|
859
859
|
}
|
|
860
860
|
}
|
|
861
|
-
class
|
|
861
|
+
class Wi {
|
|
862
862
|
constructor(e) {
|
|
863
863
|
this.parser = e, this.name = U.KHR_MATERIALS_TRANSMISSION;
|
|
864
864
|
}
|
|
@@ -873,7 +873,7 @@ class Xi {
|
|
|
873
873
|
return i.transmissionFactor !== void 0 && (t.transmission = i.transmissionFactor), i.transmissionTexture !== void 0 && s.push(a.assignTexture(t, "transmissionMap", i.transmissionTexture)), Promise.all(s);
|
|
874
874
|
}
|
|
875
875
|
}
|
|
876
|
-
class
|
|
876
|
+
class Xi {
|
|
877
877
|
constructor(e) {
|
|
878
878
|
this.parser = e, this.name = U.KHR_MATERIALS_VOLUME;
|
|
879
879
|
}
|
|
@@ -890,7 +890,7 @@ class Zi {
|
|
|
890
890
|
return t.attenuationColor = new Oe().setRGB(n[0], n[1], n[2], be), Promise.all(s);
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
|
-
class
|
|
893
|
+
class Zi {
|
|
894
894
|
constructor(e) {
|
|
895
895
|
this.parser = e, this.name = U.KHR_MATERIALS_IOR;
|
|
896
896
|
}
|
|
@@ -905,7 +905,7 @@ class $i {
|
|
|
905
905
|
return t.ior = A.ior !== void 0 ? A.ior : 1.5, Promise.resolve();
|
|
906
906
|
}
|
|
907
907
|
}
|
|
908
|
-
class
|
|
908
|
+
class $i {
|
|
909
909
|
constructor(e) {
|
|
910
910
|
this.parser = e, this.name = U.KHR_MATERIALS_SPECULAR;
|
|
911
911
|
}
|
|
@@ -922,7 +922,7 @@ class es {
|
|
|
922
922
|
return t.specularColor = new Oe().setRGB(n[0], n[1], n[2], be), i.specularColorTexture !== void 0 && s.push(a.assignTexture(t, "specularColorMap", i.specularColorTexture, ve)), Promise.all(s);
|
|
923
923
|
}
|
|
924
924
|
}
|
|
925
|
-
class
|
|
925
|
+
class es {
|
|
926
926
|
constructor(e) {
|
|
927
927
|
this.parser = e, this.name = U.EXT_MATERIALS_BUMP;
|
|
928
928
|
}
|
|
@@ -937,7 +937,7 @@ class ts {
|
|
|
937
937
|
return t.bumpScale = i.bumpFactor !== void 0 ? i.bumpFactor : 1, i.bumpTexture !== void 0 && s.push(a.assignTexture(t, "bumpMap", i.bumpTexture)), Promise.all(s);
|
|
938
938
|
}
|
|
939
939
|
}
|
|
940
|
-
class
|
|
940
|
+
class ts {
|
|
941
941
|
constructor(e) {
|
|
942
942
|
this.parser = e, this.name = U.KHR_MATERIALS_ANISOTROPY;
|
|
943
943
|
}
|
|
@@ -952,7 +952,7 @@ class as {
|
|
|
952
952
|
return i.anisotropyStrength !== void 0 && (t.anisotropy = i.anisotropyStrength), i.anisotropyRotation !== void 0 && (t.anisotropyRotation = i.anisotropyRotation), i.anisotropyTexture !== void 0 && s.push(a.assignTexture(t, "anisotropyMap", i.anisotropyTexture)), Promise.all(s);
|
|
953
953
|
}
|
|
954
954
|
}
|
|
955
|
-
class
|
|
955
|
+
class as {
|
|
956
956
|
constructor(e) {
|
|
957
957
|
this.parser = e, this.name = U.KHR_TEXTURE_BASISU;
|
|
958
958
|
}
|
|
@@ -967,7 +967,7 @@ class As {
|
|
|
967
967
|
return t.loadTextureImage(e, s.source, i);
|
|
968
968
|
}
|
|
969
969
|
}
|
|
970
|
-
class
|
|
970
|
+
class As {
|
|
971
971
|
constructor(e) {
|
|
972
972
|
this.parser = e, this.name = U.EXT_TEXTURE_WEBP, this.isSupported = null;
|
|
973
973
|
}
|
|
@@ -995,7 +995,7 @@ class is {
|
|
|
995
995
|
})), this.isSupported;
|
|
996
996
|
}
|
|
997
997
|
}
|
|
998
|
-
class
|
|
998
|
+
class is {
|
|
999
999
|
constructor(e) {
|
|
1000
1000
|
this.parser = e, this.name = U.EXT_TEXTURE_AVIF, this.isSupported = null;
|
|
1001
1001
|
}
|
|
@@ -1023,7 +1023,7 @@ class ss {
|
|
|
1023
1023
|
})), this.isSupported;
|
|
1024
1024
|
}
|
|
1025
1025
|
}
|
|
1026
|
-
class
|
|
1026
|
+
class ss {
|
|
1027
1027
|
constructor(e) {
|
|
1028
1028
|
this.name = U.EXT_MESHOPT_COMPRESSION, this.parser = e;
|
|
1029
1029
|
}
|
|
@@ -1048,7 +1048,7 @@ class rs {
|
|
|
1048
1048
|
return null;
|
|
1049
1049
|
}
|
|
1050
1050
|
}
|
|
1051
|
-
class
|
|
1051
|
+
class rs {
|
|
1052
1052
|
constructor(e) {
|
|
1053
1053
|
this.name = U.EXT_MESH_GPU_INSTANCING, this.parser = e;
|
|
1054
1054
|
}
|
|
@@ -1062,24 +1062,24 @@ class ns {
|
|
|
1062
1062
|
return i.length < 1 ? null : (i.push(this.parser.createNodeMesh(e)), Promise.all(i).then((l) => {
|
|
1063
1063
|
const h = l.pop(), b = h.isGroup ? h.children : [h], g = l[0].count, f = [];
|
|
1064
1064
|
for (const I of b) {
|
|
1065
|
-
const u = new it(), p = new K(), m = new
|
|
1065
|
+
const u = new it(), p = new K(), m = new tA(), C = new K(1, 1, 1), E = new qA(I.geometry, I.material, g);
|
|
1066
1066
|
for (let x = 0; x < g; x++) n.TRANSLATION && p.fromBufferAttribute(n.TRANSLATION, x), n.ROTATION && m.fromBufferAttribute(n.ROTATION, x), n.SCALE && C.fromBufferAttribute(n.SCALE, x), E.setMatrixAt(x, u.compose(p, m, C));
|
|
1067
1067
|
for (const x in n) if (x === "_COLOR_0") {
|
|
1068
1068
|
const w = n[x];
|
|
1069
|
-
E.instanceColor = new
|
|
1069
|
+
E.instanceColor = new Yt(w.array, w.itemSize, w.normalized);
|
|
1070
1070
|
} else x !== "TRANSLATION" && x !== "ROTATION" && x !== "SCALE" && I.geometry.setAttribute(x, n[x]);
|
|
1071
|
-
|
|
1071
|
+
aA.prototype.copy.call(E, I), this.parser.assignFinalMaterial(E), f.push(E);
|
|
1072
1072
|
}
|
|
1073
1073
|
return h.isGroup ? (h.clear(), h.add(...f), h) : f[0];
|
|
1074
1074
|
}));
|
|
1075
1075
|
}
|
|
1076
1076
|
}
|
|
1077
|
-
const
|
|
1078
|
-
class
|
|
1077
|
+
const hA = "glTF", ns = 1313821514, os = 5130562;
|
|
1078
|
+
class cs {
|
|
1079
1079
|
constructor(e) {
|
|
1080
1080
|
this.name = U.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
1081
1081
|
const t = new DataView(e, 0, 12), a = new TextDecoder();
|
|
1082
|
-
if (this.header = { magic: a.decode(new Uint8Array(e.slice(0, 4))), version: t.getUint32(4, !0), length: t.getUint32(8, !0) }, this.header.magic !==
|
|
1082
|
+
if (this.header = { magic: a.decode(new Uint8Array(e.slice(0, 4))), version: t.getUint32(4, !0), length: t.getUint32(8, !0) }, this.header.magic !== hA) throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
|
|
1083
1083
|
if (this.header.version < 2) throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
|
|
1084
1084
|
const A = this.header.length - 12, s = new DataView(e, 12);
|
|
1085
1085
|
let i = 0;
|
|
@@ -1087,10 +1087,10 @@ class ds {
|
|
|
1087
1087
|
const n = s.getUint32(i, !0);
|
|
1088
1088
|
i += 4;
|
|
1089
1089
|
const l = s.getUint32(i, !0);
|
|
1090
|
-
if (i += 4, l ===
|
|
1090
|
+
if (i += 4, l === ns) {
|
|
1091
1091
|
const h = new Uint8Array(e, 12 + i, n);
|
|
1092
1092
|
this.content = a.decode(h);
|
|
1093
|
-
} else if (l ===
|
|
1093
|
+
} else if (l === os) {
|
|
1094
1094
|
const h = 12 + i;
|
|
1095
1095
|
this.body = e.slice(h, h + n);
|
|
1096
1096
|
}
|
|
@@ -1099,7 +1099,7 @@ class ds {
|
|
|
1099
1099
|
if (this.content === null) throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
1100
1100
|
}
|
|
1101
1101
|
}
|
|
1102
|
-
class
|
|
1102
|
+
class ds {
|
|
1103
1103
|
constructor(e, t) {
|
|
1104
1104
|
if (!t) throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
1105
1105
|
this.name = U.KHR_DRACO_MESH_COMPRESSION, this.json = e, this.dracoLoader = t, this.dracoLoader.preload();
|
|
@@ -1107,11 +1107,11 @@ class hs {
|
|
|
1107
1107
|
decodePrimitive(e, t) {
|
|
1108
1108
|
const a = this.json, A = this.dracoLoader, s = e.extensions[this.name].bufferView, i = e.extensions[this.name].attributes, n = {}, l = {}, h = {};
|
|
1109
1109
|
for (const b in i) {
|
|
1110
|
-
const g =
|
|
1110
|
+
const g = $t[b] || b.toLowerCase();
|
|
1111
1111
|
n[g] = i[b];
|
|
1112
1112
|
}
|
|
1113
1113
|
for (const b in e.attributes) {
|
|
1114
|
-
const g =
|
|
1114
|
+
const g = $t[b] || b.toLowerCase();
|
|
1115
1115
|
if (i[b] !== void 0) {
|
|
1116
1116
|
const f = a.accessors[e.attributes[b]], I = tt[f.componentType];
|
|
1117
1117
|
h[g] = I.name, l[g] = f.normalized === !0;
|
|
@@ -1130,7 +1130,7 @@ class hs {
|
|
|
1130
1130
|
});
|
|
1131
1131
|
}
|
|
1132
1132
|
}
|
|
1133
|
-
class
|
|
1133
|
+
class hs {
|
|
1134
1134
|
constructor() {
|
|
1135
1135
|
this.name = U.KHR_TEXTURE_TRANSFORM;
|
|
1136
1136
|
}
|
|
@@ -1138,12 +1138,12 @@ class ls {
|
|
|
1138
1138
|
return (t.texCoord !== void 0 && t.texCoord !== e.channel || t.offset !== void 0 || t.rotation !== void 0 || t.scale !== void 0) && (e = e.clone(), t.texCoord !== void 0 && (e.channel = t.texCoord), t.offset !== void 0 && e.offset.fromArray(t.offset), t.rotation !== void 0 && (e.rotation = t.rotation), t.scale !== void 0 && e.repeat.fromArray(t.scale), e.needsUpdate = !0), e;
|
|
1139
1139
|
}
|
|
1140
1140
|
}
|
|
1141
|
-
class
|
|
1141
|
+
class ls {
|
|
1142
1142
|
constructor() {
|
|
1143
1143
|
this.name = U.KHR_MESH_QUANTIZATION;
|
|
1144
1144
|
}
|
|
1145
1145
|
}
|
|
1146
|
-
class
|
|
1146
|
+
class lA extends ui {
|
|
1147
1147
|
constructor(e, t, a, A) {
|
|
1148
1148
|
super(e, t, a, A);
|
|
1149
1149
|
}
|
|
@@ -1161,21 +1161,21 @@ class bA extends Ii {
|
|
|
1161
1161
|
return s;
|
|
1162
1162
|
}
|
|
1163
1163
|
}
|
|
1164
|
-
const
|
|
1165
|
-
class
|
|
1164
|
+
const bs = new tA();
|
|
1165
|
+
class gs extends lA {
|
|
1166
1166
|
interpolate_(e, t, a, A) {
|
|
1167
1167
|
const s = super.interpolate_(e, t, a, A);
|
|
1168
|
-
return
|
|
1168
|
+
return bs.fromArray(s).normalize().toArray(s), s;
|
|
1169
1169
|
}
|
|
1170
1170
|
}
|
|
1171
|
-
const ce = { FLOAT: 5126, FLOAT_MAT3: 35675, FLOAT_MAT4: 35676, FLOAT_VEC2: 35664, FLOAT_VEC3: 35665, FLOAT_VEC4: 35666, LINEAR: 9729, REPEAT: 10497, SAMPLER_2D: 35678, POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4, TRIANGLE_STRIP: 5, TRIANGLE_FAN: 6, UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123 }, tt = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, 5123: Uint16Array, 5125: Uint32Array, 5126: Float32Array },
|
|
1171
|
+
const ce = { FLOAT: 5126, FLOAT_MAT3: 35675, FLOAT_MAT4: 35676, FLOAT_VEC2: 35664, FLOAT_VEC3: 35665, FLOAT_VEC4: 35666, LINEAR: 9729, REPEAT: 10497, SAMPLER_2D: 35678, POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4, TRIANGLE_STRIP: 5, TRIANGLE_FAN: 6, UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123 }, tt = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, 5123: Uint16Array, 5125: Uint32Array, 5126: Float32Array }, va = { 9728: P, 9729: ft, 9984: ci, 9985: di, 9986: hi, 9987: oa }, Ta = { 33071: li, 33648: bi, 10497: Wt }, Rt = { SCALAR: 1, VEC2: 2, VEC3: 3, VEC4: 4, MAT2: 4, MAT3: 9, MAT4: 16 }, $t = { POSITION: "position", NORMAL: "normal", TANGENT: "tangent", TEXCOORD_0: "uv", TEXCOORD_1: "uv1", TEXCOORD_2: "uv2", TEXCOORD_3: "uv3", COLOR_0: "color", WEIGHTS_0: "skinWeight", JOINTS_0: "skinIndex" }, Ge = { scale: "scale", translation: "position", rotation: "quaternion", weights: "morphTargetInfluences" }, fs = { CUBICSPLINE: void 0, LINEAR: iA, STEP: gi }, us = "OPAQUE", Is = "MASK", ps = "BLEND";
|
|
1172
1172
|
function Ke(o, e, t) {
|
|
1173
1173
|
for (const a in t.extensions) o[a] === void 0 && (e.userData.gltfExtensions = e.userData.gltfExtensions || {}, e.userData.gltfExtensions[a] = t.extensions[a]);
|
|
1174
1174
|
}
|
|
1175
1175
|
function ke(o, e) {
|
|
1176
1176
|
e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(o.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
|
|
1177
1177
|
}
|
|
1178
|
-
function
|
|
1178
|
+
function Bs(o, e) {
|
|
1179
1179
|
if (o.updateMorphTargets(), e.weights !== void 0) for (let t = 0, a = e.weights.length; t < a; t++) o.morphTargetInfluences[t] = e.weights[t];
|
|
1180
1180
|
if (e.extras && Array.isArray(e.extras.targetNames)) {
|
|
1181
1181
|
const t = e.extras.targetNames;
|
|
@@ -1185,19 +1185,19 @@ function ms(o, e) {
|
|
|
1185
1185
|
} else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
1186
1186
|
}
|
|
1187
1187
|
}
|
|
1188
|
-
function
|
|
1188
|
+
function ms(o) {
|
|
1189
1189
|
let e;
|
|
1190
1190
|
const t = o.extensions && o.extensions[U.KHR_DRACO_MESH_COMPRESSION];
|
|
1191
|
-
if (e = t ? "draco:" + t.bufferView + ":" + t.indices + ":" +
|
|
1191
|
+
if (e = t ? "draco:" + t.bufferView + ":" + t.indices + ":" + Mt(t.attributes) : o.indices + ":" + Mt(o.attributes) + ":" + o.mode, o.targets !== void 0) for (let a = 0, A = o.targets.length; a < A; a++) e += ":" + Mt(o.targets[a]);
|
|
1192
1192
|
return e;
|
|
1193
1193
|
}
|
|
1194
|
-
function
|
|
1194
|
+
function Mt(o) {
|
|
1195
1195
|
let e = "";
|
|
1196
1196
|
const t = Object.keys(o).sort();
|
|
1197
1197
|
for (let a = 0, A = t.length; a < A; a++) e += t[a] + ":" + o[t[a]] + ";";
|
|
1198
1198
|
return e;
|
|
1199
1199
|
}
|
|
1200
|
-
function
|
|
1200
|
+
function ea(o) {
|
|
1201
1201
|
switch (o) {
|
|
1202
1202
|
case Int8Array:
|
|
1203
1203
|
return 1 / 127;
|
|
@@ -1211,10 +1211,10 @@ function Aa(o) {
|
|
|
1211
1211
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
1212
1212
|
}
|
|
1213
1213
|
}
|
|
1214
|
-
const
|
|
1215
|
-
class
|
|
1214
|
+
const Cs = new it();
|
|
1215
|
+
class Es {
|
|
1216
1216
|
constructor(e = {}, t = {}) {
|
|
1217
|
-
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new
|
|
1217
|
+
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new Oi(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
|
|
1218
1218
|
let a = !1, A = -1, s = !1, i = -1;
|
|
1219
1219
|
if (typeof navigator < "u") {
|
|
1220
1220
|
const n = navigator.userAgent;
|
|
@@ -1222,7 +1222,7 @@ class Qs {
|
|
|
1222
1222
|
const l = n.match(/Version\/(\d+)/);
|
|
1223
1223
|
A = a && l ? parseInt(l[1], 10) : -1, s = n.indexOf("Firefox") > -1, i = s ? n.match(/Firefox\/([0-9]+)\./)[1] : -1;
|
|
1224
1224
|
}
|
|
1225
|
-
typeof createImageBitmap > "u" || a && A < 17 || s && i < 98 ? this.textureLoader = new
|
|
1225
|
+
typeof createImageBitmap > "u" || a && A < 17 || s && i < 98 ? this.textureLoader = new JA(this.options.manager) : this.textureLoader = new KA(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new Xe(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(!0);
|
|
1226
1226
|
}
|
|
1227
1227
|
setExtensions(e) {
|
|
1228
1228
|
this.extensions = e;
|
|
@@ -1380,20 +1380,20 @@ class Qs {
|
|
|
1380
1380
|
loadAccessor(e) {
|
|
1381
1381
|
const t = this, a = this.json, A = this.json.accessors[e];
|
|
1382
1382
|
if (A.bufferView === void 0 && A.sparse === void 0) {
|
|
1383
|
-
const i =
|
|
1383
|
+
const i = Rt[A.type], n = tt[A.componentType], l = A.normalized === !0, h = new n(A.count * i);
|
|
1384
1384
|
return Promise.resolve(new Pe(h, i, l));
|
|
1385
1385
|
}
|
|
1386
1386
|
const s = [];
|
|
1387
1387
|
return A.bufferView !== void 0 ? s.push(this.getDependency("bufferView", A.bufferView)) : s.push(null), A.sparse !== void 0 && (s.push(this.getDependency("bufferView", A.sparse.indices.bufferView)), s.push(this.getDependency("bufferView", A.sparse.values.bufferView))), Promise.all(s).then(function(i) {
|
|
1388
|
-
const n = i[0], l =
|
|
1388
|
+
const n = i[0], l = Rt[A.type], h = tt[A.componentType], b = h.BYTES_PER_ELEMENT, g = b * l, f = A.byteOffset || 0, I = A.bufferView !== void 0 ? a.bufferViews[A.bufferView].byteStride : void 0, u = A.normalized === !0;
|
|
1389
1389
|
let p, m;
|
|
1390
1390
|
if (I && I !== g) {
|
|
1391
1391
|
const C = Math.floor(f / I), E = "InterleavedBuffer:" + A.bufferView + ":" + A.componentType + ":" + C + ":" + A.count;
|
|
1392
1392
|
let x = t.cache.get(E);
|
|
1393
|
-
x || (p = new h(n, C * I, A.count * I / b), x = new
|
|
1393
|
+
x || (p = new h(n, C * I, A.count * I / b), x = new zA(p, I / b), t.cache.add(E, x)), m = new VA(x, l, f % I / b, u);
|
|
1394
1394
|
} else p = n === null ? new h(A.count * l) : new h(n, f, A.count * l), m = new Pe(p, l, u);
|
|
1395
1395
|
if (A.sparse !== void 0) {
|
|
1396
|
-
const C =
|
|
1396
|
+
const C = Rt.SCALAR, E = tt[A.sparse.indices.componentType], x = A.sparse.indices.byteOffset || 0, w = A.sparse.values.byteOffset || 0, M = new E(i[1], x, A.sparse.count * C), T = new h(i[2], w, A.sparse.count * l);
|
|
1397
1397
|
n !== null && (m = new Pe(m.array.slice(), m.itemSize, m.normalized)), m.normalized = !1;
|
|
1398
1398
|
for (let v = 0, k = M.length; v < k; v++) {
|
|
1399
1399
|
const R = M[v];
|
|
@@ -1419,7 +1419,7 @@ class Qs {
|
|
|
1419
1419
|
const h = this.loadImageSource(t, a).then(function(b) {
|
|
1420
1420
|
b.flipY = !1, b.name = i.name || n.name || "", b.name === "" && typeof n.uri == "string" && n.uri.startsWith("data:image/") === !1 && (b.name = n.uri);
|
|
1421
1421
|
const g = (s.samplers || {})[i.sampler] || {};
|
|
1422
|
-
return b.magFilter =
|
|
1422
|
+
return b.magFilter = va[g.magFilter] || ft, b.minFilter = va[g.minFilter] || oa, b.wrapS = Ta[g.wrapS] || Wt, b.wrapT = Ta[g.wrapT] || Wt, b.generateMipmaps = !b.isCompressedTexture && b.minFilter !== P && b.minFilter !== ft, A.associations.set(b, { textures: e }), b;
|
|
1423
1423
|
}).catch(function() {
|
|
1424
1424
|
return null;
|
|
1425
1425
|
});
|
|
@@ -1440,7 +1440,7 @@ class Qs {
|
|
|
1440
1440
|
return new Promise(function(f, I) {
|
|
1441
1441
|
let u = f;
|
|
1442
1442
|
t.isImageBitmapLoader === !0 && (u = function(p) {
|
|
1443
|
-
const m = new
|
|
1443
|
+
const m = new fa(p);
|
|
1444
1444
|
m.needsUpdate = !0, f(m);
|
|
1445
1445
|
}), t.load(lt.resolveURL(g, s.path), u, void 0, I);
|
|
1446
1446
|
});
|
|
@@ -1473,11 +1473,11 @@ class Qs {
|
|
|
1473
1473
|
if (e.isPoints) {
|
|
1474
1474
|
const n = "PointsMaterial:" + a.uuid;
|
|
1475
1475
|
let l = this.cache.get(n);
|
|
1476
|
-
l || (l = new
|
|
1476
|
+
l || (l = new YA(), wt.prototype.copy.call(l, a), l.color.copy(a.color), l.map = a.map, l.sizeAttenuation = !1, this.cache.add(n, l)), a = l;
|
|
1477
1477
|
} else if (e.isLine) {
|
|
1478
1478
|
const n = "LineBasicMaterial:" + a.uuid;
|
|
1479
1479
|
let l = this.cache.get(n);
|
|
1480
|
-
l || (l = new
|
|
1480
|
+
l || (l = new WA(), wt.prototype.copy.call(l, a), l.color.copy(a.color), l.map = a.map, this.cache.add(n, l)), a = l;
|
|
1481
1481
|
}
|
|
1482
1482
|
if (A || s || i) {
|
|
1483
1483
|
let n = "ClonedMaterial:" + a.uuid + ":";
|
|
@@ -1488,7 +1488,7 @@ class Qs {
|
|
|
1488
1488
|
e.material = a;
|
|
1489
1489
|
}
|
|
1490
1490
|
getMaterialType() {
|
|
1491
|
-
return
|
|
1491
|
+
return ga;
|
|
1492
1492
|
}
|
|
1493
1493
|
loadMaterial(e) {
|
|
1494
1494
|
const t = this, a = this.json, A = this.extensions, s = a.materials[e];
|
|
@@ -1509,9 +1509,9 @@ class Qs {
|
|
|
1509
1509
|
return g.extendMaterialParams && g.extendMaterialParams(e, n);
|
|
1510
1510
|
})));
|
|
1511
1511
|
}
|
|
1512
|
-
s.doubleSided === !0 && (n.side =
|
|
1513
|
-
const h = s.alphaMode ||
|
|
1514
|
-
if (h ===
|
|
1512
|
+
s.doubleSided === !0 && (n.side = XA);
|
|
1513
|
+
const h = s.alphaMode || us;
|
|
1514
|
+
if (h === ps ? (n.transparent = !0, n.depthWrite = !1) : (n.transparent = !1, h === Is && (n.alphaTest = s.alphaCutoff !== void 0 ? s.alphaCutoff : 0.5)), s.normalTexture !== void 0 && i !== ot && (l.push(t.assignTexture(n, "normalMap", s.normalTexture)), n.normalScale = new eA(1, 1), s.normalTexture.scale !== void 0)) {
|
|
1515
1515
|
const b = s.normalTexture.scale;
|
|
1516
1516
|
n.normalScale.set(b, b);
|
|
1517
1517
|
}
|
|
@@ -1525,23 +1525,23 @@ class Qs {
|
|
|
1525
1525
|
});
|
|
1526
1526
|
}
|
|
1527
1527
|
createUniqueName(e) {
|
|
1528
|
-
const t =
|
|
1528
|
+
const t = ZA.sanitizeNodeName(e || "");
|
|
1529
1529
|
return t in this.nodeNamesUsed ? t + "_" + ++this.nodeNamesUsed[t] : (this.nodeNamesUsed[t] = 0, t);
|
|
1530
1530
|
}
|
|
1531
1531
|
loadGeometries(e) {
|
|
1532
1532
|
const t = this, a = this.extensions, A = this.primitiveCache;
|
|
1533
1533
|
function s(n) {
|
|
1534
1534
|
return a[U.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(n, t).then(function(l) {
|
|
1535
|
-
return
|
|
1535
|
+
return Sa(l, n, t);
|
|
1536
1536
|
});
|
|
1537
1537
|
}
|
|
1538
1538
|
const i = [];
|
|
1539
1539
|
for (let n = 0, l = e.length; n < l; n++) {
|
|
1540
|
-
const h = e[n], b =
|
|
1540
|
+
const h = e[n], b = ms(h), g = A[b];
|
|
1541
1541
|
if (g) i.push(g.promise);
|
|
1542
1542
|
else {
|
|
1543
1543
|
let f;
|
|
1544
|
-
f = h.extensions && h.extensions[U.KHR_DRACO_MESH_COMPRESSION] ? s(h) :
|
|
1544
|
+
f = h.extensions && h.extensions[U.KHR_DRACO_MESH_COMPRESSION] ? s(h) : Sa(new ra(), h, t), A[b] = { primitive: h, promise: f }, i.push(f);
|
|
1545
1545
|
}
|
|
1546
1546
|
}
|
|
1547
1547
|
return Promise.all(i);
|
|
@@ -1549,7 +1549,7 @@ class Qs {
|
|
|
1549
1549
|
loadMesh(e) {
|
|
1550
1550
|
const t = this, a = this.json, A = this.extensions, s = a.meshes[e], i = s.primitives, n = [];
|
|
1551
1551
|
for (let h = 0, b = i.length; h < b; h++) {
|
|
1552
|
-
const g = i[h].material === void 0 ? ((l = this.cache).DefaultMaterial === void 0 && (l.DefaultMaterial = new
|
|
1552
|
+
const g = i[h].material === void 0 ? ((l = this.cache).DefaultMaterial === void 0 && (l.DefaultMaterial = new ga({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: Et })), l.DefaultMaterial) : this.getDependency("material", i[h].material);
|
|
1553
1553
|
n.push(g);
|
|
1554
1554
|
}
|
|
1555
1555
|
var l;
|
|
@@ -1559,19 +1559,19 @@ class Qs {
|
|
|
1559
1559
|
const m = g[u], C = i[u];
|
|
1560
1560
|
let E;
|
|
1561
1561
|
const x = b[u];
|
|
1562
|
-
if (C.mode === ce.TRIANGLES || C.mode === ce.TRIANGLE_STRIP || C.mode === ce.TRIANGLE_FAN || C.mode === void 0) E = s.isSkinnedMesh === !0 ? new
|
|
1563
|
-
else if (C.mode === ce.LINES) E = new
|
|
1564
|
-
else if (C.mode === ce.LINE_STRIP) E = new
|
|
1565
|
-
else if (C.mode === ce.LINE_LOOP) E = new
|
|
1562
|
+
if (C.mode === ce.TRIANGLES || C.mode === ce.TRIANGLE_STRIP || C.mode === ce.TRIANGLE_FAN || C.mode === void 0) E = s.isSkinnedMesh === !0 ? new $A(m, x) : new Xt(m, x), E.isSkinnedMesh === !0 && E.normalizeSkinWeights(), C.mode === ce.TRIANGLE_STRIP ? E.geometry = Ma(E.geometry, $a) : C.mode === ce.TRIANGLE_FAN && (E.geometry = Ma(E.geometry, Vt));
|
|
1563
|
+
else if (C.mode === ce.LINES) E = new ei(m, x);
|
|
1564
|
+
else if (C.mode === ce.LINE_STRIP) E = new ti(m, x);
|
|
1565
|
+
else if (C.mode === ce.LINE_LOOP) E = new ai(m, x);
|
|
1566
1566
|
else {
|
|
1567
1567
|
if (C.mode !== ce.POINTS) throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + C.mode);
|
|
1568
|
-
E = new
|
|
1568
|
+
E = new Ai(m, x);
|
|
1569
1569
|
}
|
|
1570
|
-
Object.keys(E.geometry.morphAttributes).length > 0 &&
|
|
1570
|
+
Object.keys(E.geometry.morphAttributes).length > 0 && Bs(E, s), E.name = t.createUniqueName(s.name || "mesh_" + e), ke(E, s), C.extensions && Ke(A, E, C), t.assignFinalMaterial(E), f.push(E);
|
|
1571
1571
|
}
|
|
1572
1572
|
for (let u = 0, p = f.length; u < p; u++) t.associations.set(f[u], { meshes: e, primitives: u });
|
|
1573
1573
|
if (f.length === 1) return s.extensions && Ke(A, f[0], s), f[0];
|
|
1574
|
-
const I = new
|
|
1574
|
+
const I = new xt();
|
|
1575
1575
|
s.extensions && Ke(A, I, s), t.associations.set(I, { meshes: e });
|
|
1576
1576
|
for (let u = 0, p = f.length; u < p; u++) I.add(f[u]);
|
|
1577
1577
|
return I;
|
|
@@ -1580,7 +1580,7 @@ class Qs {
|
|
|
1580
1580
|
loadCamera(e) {
|
|
1581
1581
|
let t;
|
|
1582
1582
|
const a = this.json.cameras[e], A = a[a.type];
|
|
1583
|
-
if (A) return a.type === "perspective" ? t = new si
|
|
1583
|
+
if (A) return a.type === "perspective" ? t = new ii(si.radToDeg(A.yfov), A.aspectRatio || 1, A.znear || 1, A.zfar || 2e6) : a.type === "orthographic" && (t = new AA(-A.xmag, A.xmag, A.ymag, -A.ymag, A.znear, A.zfar)), a.name && (t.name = this.createUniqueName(a.name)), ke(t, a), Promise.resolve(t);
|
|
1584
1584
|
console.warn("THREE.GLTFLoader: Missing camera parameters.");
|
|
1585
1585
|
}
|
|
1586
1586
|
loadSkin(e) {
|
|
@@ -1596,7 +1596,7 @@ class Qs {
|
|
|
1596
1596
|
s !== null && f.fromArray(s.array, 16 * h), l.push(f);
|
|
1597
1597
|
} else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', t.joints[h]);
|
|
1598
1598
|
}
|
|
1599
|
-
return new
|
|
1599
|
+
return new ri(n, l);
|
|
1600
1600
|
});
|
|
1601
1601
|
}
|
|
1602
1602
|
loadAnimation(e) {
|
|
@@ -1614,7 +1614,7 @@ class Qs {
|
|
|
1614
1614
|
const R = a._createAnimationTracks(w, M, T, v, k);
|
|
1615
1615
|
if (R) for (let S = 0; S < R.length; S++) C.push(R[S]);
|
|
1616
1616
|
}
|
|
1617
|
-
return new
|
|
1617
|
+
return new ni(s, void 0, C);
|
|
1618
1618
|
});
|
|
1619
1619
|
}
|
|
1620
1620
|
createNodeMesh(e) {
|
|
@@ -1633,7 +1633,7 @@ class Qs {
|
|
|
1633
1633
|
return Promise.all([A, Promise.all(s), n]).then(function(l) {
|
|
1634
1634
|
const h = l[0], b = l[1], g = l[2];
|
|
1635
1635
|
g !== null && h.traverse(function(f) {
|
|
1636
|
-
f.isSkinnedMesh && f.bind(g,
|
|
1636
|
+
f.isSkinnedMesh && f.bind(g, Cs);
|
|
1637
1637
|
});
|
|
1638
1638
|
for (let f = 0, I = b.length; f < I; f++) h.add(b[f]);
|
|
1639
1639
|
return h;
|
|
@@ -1653,7 +1653,7 @@ class Qs {
|
|
|
1653
1653
|
n.push(h);
|
|
1654
1654
|
}), this.nodeCache[e] = Promise.all(n).then(function(h) {
|
|
1655
1655
|
let b;
|
|
1656
|
-
if (b = s.isBone === !0 ? new
|
|
1656
|
+
if (b = s.isBone === !0 ? new oi() : h.length > 1 ? new xt() : h.length === 1 ? h[0] : new aA(), b !== h[0]) for (let g = 0, f = h.length; g < f; g++) b.add(h[g]);
|
|
1657
1657
|
if (s.name && (b.userData.name = s.name, b.name = i), ke(b, s), s.extensions && Ke(a, b, s), s.matrix !== void 0) {
|
|
1658
1658
|
const g = new it();
|
|
1659
1659
|
g.fromArray(s.matrix), b.applyMatrix4(g);
|
|
@@ -1662,7 +1662,7 @@ class Qs {
|
|
|
1662
1662
|
}), this.nodeCache[e];
|
|
1663
1663
|
}
|
|
1664
1664
|
loadScene(e) {
|
|
1665
|
-
const t = this.extensions, a = this.json.scenes[e], A = this, s = new
|
|
1665
|
+
const t = this.extensions, a = this.json.scenes[e], A = this, s = new xt();
|
|
1666
1666
|
a.name && (s.name = A.createUniqueName(a.name)), ke(s, a), a.extensions && Ke(t, s, a);
|
|
1667
1667
|
const i = a.nodes || [], n = [];
|
|
1668
1668
|
for (let l = 0, h = i.length; l < h; l++) n.push(A.getDependency("node", i[l]));
|
|
@@ -1670,7 +1670,7 @@ class Qs {
|
|
|
1670
1670
|
for (let h = 0, b = l.length; h < b; h++) s.add(l[h]);
|
|
1671
1671
|
return A.associations = ((h) => {
|
|
1672
1672
|
const b = /* @__PURE__ */ new Map();
|
|
1673
|
-
for (const [g, f] of A.associations) (g instanceof
|
|
1673
|
+
for (const [g, f] of A.associations) (g instanceof wt || g instanceof fa) && b.set(g, f);
|
|
1674
1674
|
return h.traverse((g) => {
|
|
1675
1675
|
const f = A.associations.get(g);
|
|
1676
1676
|
f != null && b.set(g, f);
|
|
@@ -1685,19 +1685,19 @@ class Qs {
|
|
|
1685
1685
|
f.morphTargetInfluences && l.push(f.name ? f.name : f.uuid);
|
|
1686
1686
|
}) : l.push(n), Ge[s.path]) {
|
|
1687
1687
|
case Ge.weights:
|
|
1688
|
-
h =
|
|
1688
|
+
h = Ia;
|
|
1689
1689
|
break;
|
|
1690
1690
|
case Ge.rotation:
|
|
1691
|
-
h =
|
|
1691
|
+
h = pa;
|
|
1692
1692
|
break;
|
|
1693
1693
|
case Ge.position:
|
|
1694
1694
|
case Ge.scale:
|
|
1695
|
-
h =
|
|
1695
|
+
h = ua;
|
|
1696
1696
|
break;
|
|
1697
1697
|
default:
|
|
1698
|
-
a.itemSize === 1 ? h =
|
|
1698
|
+
a.itemSize === 1 ? h = Ia : h = ua;
|
|
1699
1699
|
}
|
|
1700
|
-
const b = A.interpolation !== void 0 ?
|
|
1700
|
+
const b = A.interpolation !== void 0 ? fs[A.interpolation] : iA, g = this._getArrayFromAccessor(a);
|
|
1701
1701
|
for (let f = 0, I = l.length; f < I; f++) {
|
|
1702
1702
|
const u = new h(l[f] + "." + Ge[s.path], t.array, g, b);
|
|
1703
1703
|
A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(u), i.push(u);
|
|
@@ -1707,7 +1707,7 @@ class Qs {
|
|
|
1707
1707
|
_getArrayFromAccessor(e) {
|
|
1708
1708
|
let t = e.array;
|
|
1709
1709
|
if (e.normalized) {
|
|
1710
|
-
const a =
|
|
1710
|
+
const a = ea(t.constructor), A = new Float32Array(t.length);
|
|
1711
1711
|
for (let s = 0, i = t.length; s < i; s++) A[s] = t[s] * a;
|
|
1712
1712
|
t = A;
|
|
1713
1713
|
}
|
|
@@ -1715,11 +1715,11 @@ class Qs {
|
|
|
1715
1715
|
}
|
|
1716
1716
|
_createCubicSplineTrackInterpolant(e) {
|
|
1717
1717
|
e.createInterpolant = function(t) {
|
|
1718
|
-
return new (this instanceof
|
|
1718
|
+
return new (this instanceof pa ? gs : lA)(this.times, this.values, this.getValueSize() / 3, t);
|
|
1719
1719
|
}, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
1720
1720
|
}
|
|
1721
1721
|
}
|
|
1722
|
-
function
|
|
1722
|
+
function Sa(o, e, t) {
|
|
1723
1723
|
const a = e.attributes, A = [];
|
|
1724
1724
|
function s(i, n) {
|
|
1725
1725
|
return t.getDependency("accessor", i).then(function(l) {
|
|
@@ -1727,7 +1727,7 @@ function Fa(o, e, t) {
|
|
|
1727
1727
|
});
|
|
1728
1728
|
}
|
|
1729
1729
|
for (const i in a) {
|
|
1730
|
-
const n =
|
|
1730
|
+
const n = $t[i] || i.toLowerCase();
|
|
1731
1731
|
n in o.attributes || A.push(s(a[i], n));
|
|
1732
1732
|
}
|
|
1733
1733
|
if (e.indices !== void 0 && !o.index) {
|
|
@@ -1736,14 +1736,14 @@ function Fa(o, e, t) {
|
|
|
1736
1736
|
});
|
|
1737
1737
|
A.push(i);
|
|
1738
1738
|
}
|
|
1739
|
-
return
|
|
1740
|
-
const h = n.attributes, b = new
|
|
1739
|
+
return Zt.workingColorSpace !== be && "COLOR_0" in a && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Zt.workingColorSpace}" not supported.`), ke(o, e), function(i, n, l) {
|
|
1740
|
+
const h = n.attributes, b = new sa();
|
|
1741
1741
|
if (h.POSITION === void 0) return;
|
|
1742
1742
|
{
|
|
1743
1743
|
const I = l.json.accessors[h.POSITION], u = I.min, p = I.max;
|
|
1744
1744
|
if (u === void 0 || p === void 0) return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1745
1745
|
if (b.set(new K(u[0], u[1], u[2]), new K(p[0], p[1], p[2])), I.normalized) {
|
|
1746
|
-
const m =
|
|
1746
|
+
const m = ea(tt[I.componentType]);
|
|
1747
1747
|
b.min.multiplyScalar(m), b.max.multiplyScalar(m);
|
|
1748
1748
|
}
|
|
1749
1749
|
}
|
|
@@ -1756,7 +1756,7 @@ function Fa(o, e, t) {
|
|
|
1756
1756
|
const E = l.json.accessors[C.POSITION], x = E.min, w = E.max;
|
|
1757
1757
|
if (x !== void 0 && w !== void 0) {
|
|
1758
1758
|
if (u.setX(Math.max(Math.abs(x[0]), Math.abs(w[0]))), u.setY(Math.max(Math.abs(x[1]), Math.abs(w[1]))), u.setZ(Math.max(Math.abs(x[2]), Math.abs(w[2]))), E.normalized) {
|
|
1759
|
-
const M =
|
|
1759
|
+
const M = ea(tt[E.componentType]);
|
|
1760
1760
|
u.multiplyScalar(M);
|
|
1761
1761
|
}
|
|
1762
1762
|
I.max(u);
|
|
@@ -1766,7 +1766,7 @@ function Fa(o, e, t) {
|
|
|
1766
1766
|
b.expandByVector(I);
|
|
1767
1767
|
}
|
|
1768
1768
|
i.boundingBox = b;
|
|
1769
|
-
const f = new
|
|
1769
|
+
const f = new fi();
|
|
1770
1770
|
b.getCenter(f.center), f.radius = b.min.distanceTo(b.max) / 2, i.boundingSphere = f;
|
|
1771
1771
|
}(o, e, t), Promise.all(A).then(function() {
|
|
1772
1772
|
return e.targets !== void 0 ? function(i, n, l) {
|
|
@@ -1799,8 +1799,8 @@ function Fa(o, e, t) {
|
|
|
1799
1799
|
}(o, e.targets, t) : o;
|
|
1800
1800
|
});
|
|
1801
1801
|
}
|
|
1802
|
-
const
|
|
1803
|
-
class
|
|
1802
|
+
const vt = /* @__PURE__ */ new WeakMap();
|
|
1803
|
+
class bA extends na {
|
|
1804
1804
|
constructor(e) {
|
|
1805
1805
|
super(e), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = { position: "POSITION", normal: "NORMAL", color: "COLOR", uv: "TEX_COORD" }, this.defaultAttributeTypes = { position: "Float32Array", normal: "Float32Array", color: "Float32Array", uv: "Float32Array" };
|
|
1806
1806
|
}
|
|
@@ -1830,8 +1830,8 @@ class gA extends da {
|
|
|
1830
1830
|
}
|
|
1831
1831
|
decodeGeometry(e, t) {
|
|
1832
1832
|
const a = JSON.stringify(t);
|
|
1833
|
-
if (
|
|
1834
|
-
const l =
|
|
1833
|
+
if (vt.has(e)) {
|
|
1834
|
+
const l = vt.get(e);
|
|
1835
1835
|
if (l.key === a) return l.promise;
|
|
1836
1836
|
if (e.byteLength === 0) throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.");
|
|
1837
1837
|
}
|
|
@@ -1841,10 +1841,10 @@ class gA extends da {
|
|
|
1841
1841
|
}))).then((l) => this._createGeometry(l.geometry));
|
|
1842
1842
|
return n.catch(() => !0).then(() => {
|
|
1843
1843
|
A && s && this._releaseTask(A, s);
|
|
1844
|
-
}),
|
|
1844
|
+
}), vt.set(e, { key: a, promise: n }), n;
|
|
1845
1845
|
}
|
|
1846
1846
|
_createGeometry(e) {
|
|
1847
|
-
const t = new
|
|
1847
|
+
const t = new ra();
|
|
1848
1848
|
e.index && t.setIndex(new Pe(e.index.array, 1));
|
|
1849
1849
|
for (let a = 0; a < e.attributes.length; a++) {
|
|
1850
1850
|
const A = e.attributes[a], s = A.name, i = A.array, n = A.itemSize, l = new Pe(i, n);
|
|
@@ -1855,7 +1855,7 @@ class gA extends da {
|
|
|
1855
1855
|
_assignVertexColorSpace(e, t) {
|
|
1856
1856
|
if (t !== ve) return;
|
|
1857
1857
|
const a = new Oe();
|
|
1858
|
-
for (let A = 0, s = e.count; A < s; A++) a.fromBufferAttribute(e, A),
|
|
1858
|
+
for (let A = 0, s = e.count; A < s; A++) a.fromBufferAttribute(e, A), Zt.toWorkingColorSpace(a, ve), e.setXYZ(A, a.r, a.g, a.b);
|
|
1859
1859
|
}
|
|
1860
1860
|
_loadLibrary(e, t) {
|
|
1861
1861
|
const a = new Xe(this.manager);
|
|
@@ -1872,7 +1872,7 @@ class gA extends da {
|
|
|
1872
1872
|
return e ? t.push(this._loadLibrary("draco_decoder.js", "text")) : (t.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), t.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(t).then((a) => {
|
|
1873
1873
|
const A = a[0];
|
|
1874
1874
|
e || (this.decoderConfig.wasmBinary = a[1]);
|
|
1875
|
-
const s =
|
|
1875
|
+
const s = Qs.toString(), i = ["/* draco decoder */", A, "", "/* worker */", s.substring(s.indexOf("{") + 1, s.lastIndexOf("}"))].join(`
|
|
1876
1876
|
`);
|
|
1877
1877
|
this.workerSourceURL = URL.createObjectURL(new Blob([i]));
|
|
1878
1878
|
}), this.decoderPending;
|
|
@@ -1912,7 +1912,7 @@ class gA extends da {
|
|
|
1912
1912
|
return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
|
|
1913
1913
|
}
|
|
1914
1914
|
}
|
|
1915
|
-
function
|
|
1915
|
+
function Qs() {
|
|
1916
1916
|
let o, e;
|
|
1917
1917
|
function t(a, A, s, i, n, l) {
|
|
1918
1918
|
const h = l.num_components(), b = s.num_points() * h, g = b * n.BYTES_PER_ELEMENT, f = function(p, m) {
|
|
@@ -1991,7 +1991,7 @@ function ys() {
|
|
|
1991
1991
|
}
|
|
1992
1992
|
};
|
|
1993
1993
|
}
|
|
1994
|
-
class
|
|
1994
|
+
class ys {
|
|
1995
1995
|
constructor(e = 4) {
|
|
1996
1996
|
this.pool = e, this.queue = [], this.workers = [], this.workersResolve = [], this.workerStatus = 0;
|
|
1997
1997
|
}
|
|
@@ -2028,8 +2028,8 @@ class ws {
|
|
|
2028
2028
|
this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
2029
2029
|
}
|
|
2030
2030
|
}
|
|
2031
|
-
const
|
|
2032
|
-
class
|
|
2031
|
+
const gA = 9, fA = 15, uA = 16, IA = 22, pA = 37, BA = 43, mA = 76, CA = 83, EA = 97, QA = 100, yA = 103, wA = 109, xA = 165, kA = 166, ha = 1000066e3;
|
|
2032
|
+
class ws {
|
|
2033
2033
|
constructor() {
|
|
2034
2034
|
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;
|
|
2035
2035
|
}
|
|
@@ -2074,35 +2074,37 @@ class rt {
|
|
|
2074
2074
|
}
|
|
2075
2075
|
}
|
|
2076
2076
|
const ae = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
2077
|
-
function
|
|
2077
|
+
function Fa(o) {
|
|
2078
2078
|
return new TextDecoder().decode(o);
|
|
2079
2079
|
}
|
|
2080
|
-
for (var
|
|
2081
|
-
var e =
|
|
2080
|
+
for (var DA = {}, xs = { byteLength: function(o) {
|
|
2081
|
+
var e = Ua(o), t = e[0], a = e[1];
|
|
2082
2082
|
return 3 * (t + a) / 4 - a;
|
|
2083
|
-
},
|
|
2084
|
-
var e, t, a =
|
|
2083
|
+
}, toByteArray: function(o) {
|
|
2084
|
+
var e, t, a = Ua(o), A = a[0], s = a[1], i = new ks(function(h, b, g) {
|
|
2085
2085
|
return 3 * (b + g) / 4 - g;
|
|
2086
2086
|
}(0, A, s)), n = 0, l = s > 0 ? A - 4 : A;
|
|
2087
2087
|
for (t = 0; t < l; t += 4) e = oe[o.charCodeAt(t)] << 18 | oe[o.charCodeAt(t + 1)] << 12 | oe[o.charCodeAt(t + 2)] << 6 | oe[o.charCodeAt(t + 3)], i[n++] = e >> 16 & 255, i[n++] = e >> 8 & 255, i[n++] = 255 & e;
|
|
2088
2088
|
return s === 2 && (e = oe[o.charCodeAt(t)] << 2 | oe[o.charCodeAt(t + 1)] >> 4, i[n++] = 255 & e), s === 1 && (e = oe[o.charCodeAt(t)] << 10 | oe[o.charCodeAt(t + 1)] << 4 | oe[o.charCodeAt(t + 2)] >> 2, i[n++] = e >> 8 & 255, i[n++] = 255 & e), i;
|
|
2089
|
-
},
|
|
2090
|
-
for (var e, t = o.length, a = t % 3, A = [], s = 16383, i = 0, n = t - a; i < n; i += s) A.push(
|
|
2089
|
+
}, fromByteArray: function(o) {
|
|
2090
|
+
for (var e, t = o.length, a = t % 3, A = [], s = 16383, i = 0, n = t - a; i < n; i += s) A.push(Ds(o, i, i + s > n ? n : i + s));
|
|
2091
2091
|
return a === 1 ? (e = o[t - 1], A.push(pe[e >> 2] + pe[e << 4 & 63] + "==")) : a === 2 && (e = (o[t - 2] << 8) + o[t - 1], A.push(pe[e >> 10] + pe[e >> 4 & 63] + pe[e << 2 & 63] + "=")), A.join("");
|
|
2092
|
-
}, pe = [], oe = [],
|
|
2093
|
-
function
|
|
2092
|
+
} }, pe = [], oe = [], ks = typeof Uint8Array < "u" ? Uint8Array : Array, La = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Ze = 0; Ze < 64; ++Ze) pe[Ze] = La[Ze], oe[La.charCodeAt(Ze)] = Ze;
|
|
2093
|
+
function Ua(o) {
|
|
2094
2094
|
var e = o.length;
|
|
2095
2095
|
if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
|
|
2096
2096
|
var t = o.indexOf("=");
|
|
2097
2097
|
return t === -1 && (t = e), [t, t === e ? 0 : 4 - t % 4];
|
|
2098
2098
|
}
|
|
2099
|
-
function
|
|
2099
|
+
function Ds(o, e, t) {
|
|
2100
2100
|
for (var a, A, s = [], i = e; i < t; i += 3) a = (o[i] << 16 & 16711680) + (o[i + 1] << 8 & 65280) + (255 & o[i + 2]), s.push(pe[(A = a) >> 18 & 63] + pe[A >> 12 & 63] + pe[A >> 6 & 63] + pe[63 & A]);
|
|
2101
2101
|
return s.join("");
|
|
2102
2102
|
}
|
|
2103
2103
|
oe[45] = 62, oe[95] = 63;
|
|
2104
|
-
|
|
2105
|
-
|
|
2104
|
+
var Tt = {};
|
|
2105
|
+
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
2106
|
+
let St, xe, ta;
|
|
2107
|
+
Tt.read = function(o, e, t, a, A) {
|
|
2106
2108
|
var s, i, n = 8 * A - a - 1, l = (1 << n) - 1, h = l >> 1, b = -7, g = t ? A - 1 : 0, f = t ? -1 : 1, I = o[e + g];
|
|
2107
2109
|
for (g += f, s = I & (1 << -b) - 1, I >>= -b, b += n; b > 0; s = 256 * s + o[e + g], g += f, b -= 8) ;
|
|
2108
2110
|
for (i = s & (1 << -b) - 1, s >>= -b, b += a; b > 0; i = 256 * i + o[e + g], g += f, b -= 8) ;
|
|
@@ -2112,23 +2114,19 @@ var kt = {}, Ts = kt.read = function(o, e, t, a, A) {
|
|
|
2112
2114
|
i += Math.pow(2, a), s -= h;
|
|
2113
2115
|
}
|
|
2114
2116
|
return (I ? -1 : 1) * i * Math.pow(2, s - a);
|
|
2115
|
-
},
|
|
2117
|
+
}, Tt.write = function(o, e, t, a, A, s) {
|
|
2116
2118
|
var i, n, l, h = 8 * s - A - 1, b = (1 << h) - 1, g = b >> 1, f = A === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, I = a ? 0 : s - 1, u = a ? 1 : -1, p = e < 0 || e === 0 && 1 / e < 0 ? 1 : 0;
|
|
2117
2119
|
for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (n = isNaN(e) ? 1 : 0, i = b) : (i = Math.floor(Math.log(e) / Math.LN2), e * (l = Math.pow(2, -i)) < 1 && (i--, l *= 2), (e += i + g >= 1 ? f / l : f * Math.pow(2, 1 - g)) * l >= 2 && (i++, l /= 2), i + g >= b ? (n = 0, i = b) : i + g >= 1 ? (n = (e * l - 1) * Math.pow(2, A), i += g) : (n = e * Math.pow(2, g - 1) * Math.pow(2, A), i = 0)); A >= 8; o[t + I] = 255 & n, I += u, n /= 256, A -= 8) ;
|
|
2118
2120
|
for (i = i << A | n, h += A; h > 0; o[t + I] = 255 & i, I += u, i /= 256, h -= 8) ;
|
|
2119
2121
|
o[t + I - u] |= 128 * p;
|
|
2120
|
-
}
|
|
2121
|
-
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
2122
|
-
const Fs = pt(It({ __proto__: null, default: kt, read: Ts, write: Ss }, [kt]));
|
|
2123
|
-
let Ut, xe, ia;
|
|
2124
|
-
/*!
|
|
2122
|
+
}, /*!
|
|
2125
2123
|
* The buffer module from node.js, for the browser.
|
|
2126
2124
|
*
|
|
2127
2125
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
2128
2126
|
* @license MIT
|
|
2129
2127
|
*/
|
|
2130
|
-
|
|
2131
|
-
const e =
|
|
2128
|
+
function(o) {
|
|
2129
|
+
const e = xs, t = Tt, a = typeof Symbol == "function" && typeof Symbol.for == "function" ? Symbol.for("nodejs.util.inspect.custom") : null;
|
|
2132
2130
|
o.Buffer = i, o.SlowBuffer = function(r) {
|
|
2133
2131
|
return +r != r && (r = 0), i.alloc(+r);
|
|
2134
2132
|
}, o.INSPECT_MAX_BYTES = 50;
|
|
@@ -2530,7 +2528,7 @@ let Ut, xe, ia;
|
|
|
2530
2528
|
const B = r.length;
|
|
2531
2529
|
(!c || c < 0) && (c = 0), (!d || d < 0 || d > B) && (d = B);
|
|
2532
2530
|
let Q = "";
|
|
2533
|
-
for (let y = c; y < d; ++y) Q +=
|
|
2531
|
+
for (let y = c; y < d; ++y) Q += FA[r[y]];
|
|
2534
2532
|
return Q;
|
|
2535
2533
|
}
|
|
2536
2534
|
function Ae(r, c, d) {
|
|
@@ -2853,7 +2851,7 @@ let Ut, xe, ia;
|
|
|
2853
2851
|
function st(r) {
|
|
2854
2852
|
return r != r;
|
|
2855
2853
|
}
|
|
2856
|
-
const
|
|
2854
|
+
const FA = function() {
|
|
2857
2855
|
const r = "0123456789abcdef", c = new Array(256);
|
|
2858
2856
|
for (let d = 0; d < 16; ++d) {
|
|
2859
2857
|
const B = 16 * d;
|
|
@@ -2862,35 +2860,35 @@ let Ut, xe, ia;
|
|
|
2862
2860
|
return c;
|
|
2863
2861
|
}();
|
|
2864
2862
|
function Le(r) {
|
|
2865
|
-
return typeof BigInt > "u" ?
|
|
2863
|
+
return typeof BigInt > "u" ? LA : r;
|
|
2866
2864
|
}
|
|
2867
|
-
function
|
|
2865
|
+
function LA() {
|
|
2868
2866
|
throw new Error("BigInt not supported");
|
|
2869
2867
|
}
|
|
2870
|
-
}
|
|
2871
|
-
const
|
|
2872
|
-
|
|
2868
|
+
}(DA);
|
|
2869
|
+
const Ft = { env: { emscripten_notify_memory_growth: function(o) {
|
|
2870
|
+
ta = new Uint8Array(xe.exports.memory.buffer);
|
|
2873
2871
|
} } };
|
|
2874
|
-
class
|
|
2872
|
+
class js {
|
|
2875
2873
|
init() {
|
|
2876
|
-
return
|
|
2874
|
+
return St || (St = typeof fetch < "u" ? fetch("data:application/wasm;base64," + Ga).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, Ft)).then(this._init) : WebAssembly.instantiate(DA.Buffer.from(Ga, "base64"), Ft).then(this._init), St);
|
|
2877
2875
|
}
|
|
2878
2876
|
_init(e) {
|
|
2879
|
-
xe = e.instance,
|
|
2877
|
+
xe = e.instance, Ft.env.emscripten_notify_memory_growth(0);
|
|
2880
2878
|
}
|
|
2881
2879
|
decode(e, t = 0) {
|
|
2882
2880
|
if (!xe) throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
2883
2881
|
const a = e.byteLength, A = xe.exports.malloc(a);
|
|
2884
|
-
|
|
2885
|
-
const s = xe.exports.malloc(t), i = xe.exports.ZSTD_decompress(s, t, A, a), n =
|
|
2882
|
+
ta.set(e, A), t = t || Number(xe.exports.ZSTD_findDecompressedSize(A, a));
|
|
2883
|
+
const s = xe.exports.malloc(t), i = xe.exports.ZSTD_decompress(s, t, A, a), n = ta.slice(s, s + i);
|
|
2886
2884
|
return xe.exports.free(A), xe.exports.free(s), n;
|
|
2887
2885
|
}
|
|
2888
2886
|
}
|
|
2889
|
-
const Na = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", Nt = /* @__PURE__ */ new WeakMap();
|
|
2890
|
-
let
|
|
2891
|
-
class re extends
|
|
2887
|
+
const Ga = "AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/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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", Lt = /* @__PURE__ */ new WeakMap();
|
|
2888
|
+
let Ut, Gt = 0;
|
|
2889
|
+
class re extends na {
|
|
2892
2890
|
constructor(e) {
|
|
2893
|
-
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new
|
|
2891
|
+
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new ys(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.');
|
|
2894
2892
|
}
|
|
2895
2893
|
setTranscoderPath(e) {
|
|
2896
2894
|
return this.transcoderPath = e, this;
|
|
@@ -2918,7 +2916,7 @@ class re extends da {
|
|
|
2918
2916
|
const h = new Worker(this.workerSourceURL), b = this.transcoderBinary.slice(0);
|
|
2919
2917
|
return h.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: b }, [b]), h;
|
|
2920
2918
|
});
|
|
2921
|
-
}),
|
|
2919
|
+
}), Gt > 0 && console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."), Gt++;
|
|
2922
2920
|
}
|
|
2923
2921
|
return this.transcoderPending;
|
|
2924
2922
|
}
|
|
@@ -2931,26 +2929,26 @@ class re extends da {
|
|
|
2931
2929
|
}
|
|
2932
2930
|
parse(e, t, a) {
|
|
2933
2931
|
if (this.workerConfig === null) throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
|
|
2934
|
-
if (
|
|
2935
|
-
return
|
|
2932
|
+
if (Lt.has(e))
|
|
2933
|
+
return Lt.get(e).promise.then(t).catch(a);
|
|
2936
2934
|
this._createTexture(e).then((A) => t ? t(A) : null).catch(a);
|
|
2937
2935
|
}
|
|
2938
2936
|
_createTextureFrom(e, t) {
|
|
2939
2937
|
const { type: a, error: A, data: { faces: s, width: i, height: n, format: l, type: h, dfdFlags: b } } = e;
|
|
2940
2938
|
if (a === "error") return Promise.reject(A);
|
|
2941
2939
|
let g;
|
|
2942
|
-
if (t.faceCount === 6) g = new
|
|
2940
|
+
if (t.faceCount === 6) g = new Ii(s, l, h);
|
|
2943
2941
|
else {
|
|
2944
2942
|
const f = s[0].mipmaps;
|
|
2945
|
-
g = t.layerCount > 1 ? new
|
|
2943
|
+
g = t.layerCount > 1 ? new pi(f, i, n, t.layerCount, l, h) : new Ba(f, i, n, l, h);
|
|
2946
2944
|
}
|
|
2947
|
-
return g.minFilter = s[0].mipmaps.length === 1 ?
|
|
2945
|
+
return g.minFilter = s[0].mipmaps.length === 1 ? ft : oa, g.magFilter = ft, g.generateMipmaps = !1, g.needsUpdate = !0, g.colorSpace = Na(t), g.premultiplyAlpha = !!(1 & b), g;
|
|
2948
2946
|
}
|
|
2949
2947
|
async _createTexture(e, t = {}) {
|
|
2950
2948
|
const a = function(n) {
|
|
2951
2949
|
const l = new Uint8Array(n.buffer, n.byteOffset, ae.length);
|
|
2952
2950
|
if (l[0] !== ae[0] || l[1] !== ae[1] || l[2] !== ae[2] || l[3] !== ae[3] || l[4] !== ae[4] || l[5] !== ae[5] || l[6] !== ae[6] || l[7] !== ae[7] || l[8] !== ae[8] || l[9] !== ae[9] || l[10] !== ae[10] || l[11] !== ae[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
2953
|
-
const h = new
|
|
2951
|
+
const h = new ws(), b = 17 * Uint32Array.BYTES_PER_ELEMENT, g = new rt(n, ae.length, b, !0);
|
|
2954
2952
|
h.vkFormat = g._nextUint32(), h.typeSize = g._nextUint32(), h.pixelWidth = g._nextUint32(), h.pixelHeight = g._nextUint32(), h.pixelDepth = g._nextUint32(), h.layerCount = g._nextUint32(), h.faceCount = g._nextUint32();
|
|
2955
2953
|
const f = g._nextUint32();
|
|
2956
2954
|
h.supercompressionScheme = g._nextUint32();
|
|
@@ -2964,9 +2962,9 @@ class re extends da {
|
|
|
2964
2962
|
h.dataFormatDescriptor.length = 0, h.dataFormatDescriptor.push(M);
|
|
2965
2963
|
const v = new rt(n, p, m, !0);
|
|
2966
2964
|
for (; v._offset < m; ) {
|
|
2967
|
-
const _ = v._nextUint32(), O = v._scan(_), X =
|
|
2965
|
+
const _ = v._nextUint32(), O = v._scan(_), X = Fa(O);
|
|
2968
2966
|
if (h.keyValue[X] = v._nextUint8Array(_ - O.byteLength - 1), X.match(/^ktx/i)) {
|
|
2969
|
-
const ne =
|
|
2967
|
+
const ne = Fa(h.keyValue[X]);
|
|
2970
2968
|
h.keyValue[X] = ne.substring(0, ne.lastIndexOf("\0"));
|
|
2971
2969
|
}
|
|
2972
2970
|
v._skip(_ % 4 ? 4 - _ % 4 : 0);
|
|
@@ -2976,15 +2974,15 @@ class re extends da {
|
|
|
2976
2974
|
for (let _ = 0; _ < f; _++) V.push({ imageFlags: k._nextUint32(), rgbSliceByteOffset: k._nextUint32(), rgbSliceByteLength: k._nextUint32(), alphaSliceByteOffset: k._nextUint32(), alphaSliceByteLength: k._nextUint32() });
|
|
2977
2975
|
const He = C + k._offset, Te = He + F, Se = Te + z, Fe = Se + Ae, qe = new Uint8Array(n.buffer, n.byteOffset + He, F), de = new Uint8Array(n.buffer, n.byteOffset + Te, z), ie = new Uint8Array(n.buffer, n.byteOffset + Se, Ae), Ce = new Uint8Array(n.buffer, n.byteOffset + Fe, H);
|
|
2978
2976
|
return h.globalData = { endpointCount: R, selectorCount: S, imageDescs: V, endpointsData: qe, selectorsData: de, tablesData: ie, extendedData: Ce }, h;
|
|
2979
|
-
}(new Uint8Array(e)), A = a.vkFormat ===
|
|
2977
|
+
}(new Uint8Array(e)), A = a.vkFormat === ha && a.dataFormatDescriptor[0].colorModel === 167;
|
|
2980
2978
|
if (!(a.vkFormat === 0 || A && !this.workerConfig.astcHDRSupported)) return async function(n) {
|
|
2981
2979
|
const { vkFormat: l } = n;
|
|
2982
|
-
if (
|
|
2980
|
+
if (Nt[l] === void 0) throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
|
|
2983
2981
|
let h;
|
|
2984
|
-
n.supercompressionScheme === 2 && (
|
|
2985
|
-
const I = new
|
|
2982
|
+
n.supercompressionScheme === 2 && (Ut || (Ut = new Promise(async (f) => {
|
|
2983
|
+
const I = new js();
|
|
2986
2984
|
await I.init(), f(I);
|
|
2987
|
-
})), h = await
|
|
2985
|
+
})), h = await Ut);
|
|
2988
2986
|
const b = [];
|
|
2989
2987
|
for (let f = 0; f < n.levels.length; f++) {
|
|
2990
2988
|
const I = Math.max(1, n.pixelWidth >> f), u = Math.max(1, n.pixelHeight >> f), p = n.pixelDepth ? Math.max(1, n.pixelDepth >> f) : 0, m = n.levels[f];
|
|
@@ -2994,24 +2992,24 @@ class re extends da {
|
|
|
2994
2992
|
if (n.supercompressionScheme !== 2) throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
2995
2993
|
C = h.decode(m.levelData, m.uncompressedByteLength);
|
|
2996
2994
|
}
|
|
2997
|
-
E =
|
|
2995
|
+
E = _t[l] === W ? new Float32Array(C.buffer, C.byteOffset, C.byteLength / Float32Array.BYTES_PER_ELEMENT) : _t[l] === et ? new Uint16Array(C.buffer, C.byteOffset, C.byteLength / Uint16Array.BYTES_PER_ELEMENT) : C, b.push({ data: E, width: I, height: u, depth: p });
|
|
2998
2996
|
}
|
|
2999
2997
|
let g;
|
|
3000
|
-
if (
|
|
2998
|
+
if (Rs.has(Nt[l])) g = n.pixelDepth === 0 ? new ct(b[0].data, n.pixelWidth, n.pixelHeight) : new Di(b[0].data, n.pixelWidth, n.pixelHeight, n.pixelDepth);
|
|
3001
2999
|
else {
|
|
3002
3000
|
if (n.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
3003
|
-
g = new
|
|
3001
|
+
g = new Ba(b, n.pixelWidth, n.pixelHeight);
|
|
3004
3002
|
}
|
|
3005
|
-
return g.mipmaps = b, g.type =
|
|
3003
|
+
return g.mipmaps = b, g.type = _t[l], g.format = Nt[l], g.colorSpace = Na(n), g.needsUpdate = !0, Promise.resolve(g);
|
|
3006
3004
|
}(a);
|
|
3007
3005
|
const s = t, i = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: s }, [e])).then((n) => this._createTextureFrom(n.data, a));
|
|
3008
|
-
return
|
|
3006
|
+
return Lt.set(e, { promise: i }), i;
|
|
3009
3007
|
}
|
|
3010
3008
|
dispose() {
|
|
3011
|
-
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL),
|
|
3009
|
+
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), Gt--, this;
|
|
3012
3010
|
}
|
|
3013
3011
|
}
|
|
3014
|
-
re.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, re.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, re.EngineFormat = { RGBAFormat: Be, RGBA_ASTC_4x4_Format:
|
|
3012
|
+
re.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, re.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, re.EngineFormat = { RGBAFormat: Be, RGBA_ASTC_4x4_Format: sA, RGB_BPTC_UNSIGNED_Format: Bi, RGBA_BPTC_Format: mi, RGBA_ETC2_EAC_Format: Ci, RGBA_PVRTC_4BPPV1_Format: Ei, RGBA_S3TC_DXT5_Format: Qi, RGB_ETC1_Format: yi, RGB_ETC2_Format: wi, RGB_PVRTC_4BPPV1_Format: xi, RGBA_S3TC_DXT1_Format: ki }, re.EngineType = { UnsignedByteType: ue, HalfFloatType: et, FloatType: W }, re.BasisWorker = function() {
|
|
3015
3013
|
let o, e, t;
|
|
3016
3014
|
const a = _EngineFormat, A = _EngineType, s = _TranscoderFormat, i = _BasisFormat;
|
|
3017
3015
|
self.addEventListener("message", function(g) {
|
|
@@ -3098,17 +3096,17 @@ re.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, re.TranscoderFormat = { E
|
|
|
3098
3096
|
return I;
|
|
3099
3097
|
}
|
|
3100
3098
|
};
|
|
3101
|
-
const
|
|
3102
|
-
function
|
|
3099
|
+
const Rs = /* @__PURE__ */ new Set([Be, dt, ht]), Nt = { [wA]: Be, [EA]: Be, [pA]: Be, [BA]: Be, [yA]: dt, [CA]: dt, [uA]: dt, [IA]: dt, [QA]: ht, [mA]: ht, [fA]: ht, [gA]: ht, [ha]: sA, [kA]: ma, [xA]: ma }, _t = { [wA]: W, [EA]: et, [pA]: ue, [BA]: ue, [yA]: W, [CA]: et, [uA]: ue, [IA]: ue, [QA]: W, [mA]: et, [fA]: ue, [gA]: ue, [ha]: et, [kA]: ue, [xA]: ue };
|
|
3100
|
+
function Na(o) {
|
|
3103
3101
|
const e = o.dataFormatDescriptor[0];
|
|
3104
|
-
return e.colorPrimaries === 1 ? e.transferFunction === 2 ? ve : be : e.colorPrimaries === 10 ? e.transferFunction === 2 ? "display-p3" : "display-p3-linear" : (e.colorPrimaries === 0 || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`),
|
|
3102
|
+
return e.colorPrimaries === 1 ? e.transferFunction === 2 ? ve : be : e.colorPrimaries === 10 ? e.transferFunction === 2 ? "display-p3" : "display-p3-linear" : (e.colorPrimaries === 0 || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), ji);
|
|
3105
3103
|
}
|
|
3106
|
-
async function
|
|
3104
|
+
async function _a(o) {
|
|
3107
3105
|
const e = o.split("?")[0].split(".").pop(), t = await fetch(o);
|
|
3108
3106
|
if (!t.ok) throw new Error(`Failed to fetch ${o}: ${t.statusText}`);
|
|
3109
3107
|
if (e === "json") {
|
|
3110
3108
|
const a = await t.json();
|
|
3111
|
-
return handleJSONSubtree(a,
|
|
3109
|
+
return handleJSONSubtree(a, Pa(o));
|
|
3112
3110
|
}
|
|
3113
3111
|
if (e === "subtree")
|
|
3114
3112
|
return async function(a, A) {
|
|
@@ -3140,11 +3138,11 @@ async function Pa(o) {
|
|
|
3140
3138
|
}
|
|
3141
3139
|
function M(k) {
|
|
3142
3140
|
let R = 0;
|
|
3143
|
-
return R = k.z == null ?
|
|
3141
|
+
return R = k.z == null ? Pt(k.x, k.y, k.level) : Ht(k.x, k.y, k.z, k.level), x(C.tileAvailability, R);
|
|
3144
3142
|
}
|
|
3145
3143
|
function T(k) {
|
|
3146
3144
|
let R = 0;
|
|
3147
|
-
R = k.z == null ?
|
|
3145
|
+
R = k.z == null ? Pt(k.x, k.y, k.level) : Ht(k.x, k.y, k.z, k.level);
|
|
3148
3146
|
const S = [];
|
|
3149
3147
|
return C.contentAvailability.forEach((F) => {
|
|
3150
3148
|
S.push(x(F, R));
|
|
@@ -3152,33 +3150,33 @@ async function Pa(o) {
|
|
|
3152
3150
|
}
|
|
3153
3151
|
function v(k) {
|
|
3154
3152
|
let R = 0;
|
|
3155
|
-
return R = k.z == null ?
|
|
3153
|
+
return R = k.z == null ? Pt(k.x, k.y) : Ht(k.x, k.y, k.z), x(C.childSubtreeAvailability, R);
|
|
3156
3154
|
}
|
|
3157
3155
|
return { isTileAvailable: M, isContentAvailable: T, isChildSubtreeAvailable: v };
|
|
3158
3156
|
}(u, m);
|
|
3159
|
-
}(await t.arrayBuffer(),
|
|
3157
|
+
}(await t.arrayBuffer(), Pa(o));
|
|
3160
3158
|
throw new Error(`Unsupported file extension: ${e}`);
|
|
3161
3159
|
}
|
|
3162
|
-
function
|
|
3160
|
+
function Pa(o) {
|
|
3163
3161
|
const e = o.split("?")[0];
|
|
3164
3162
|
return e.substring(0, e.lastIndexOf("/") + 1);
|
|
3165
3163
|
}
|
|
3166
|
-
function
|
|
3164
|
+
function Oa(o) {
|
|
3167
3165
|
return o = 1431655765 & ((o = 858993459 & ((o = 252645135 & ((o = 16711935 & ((o &= 65535) ^ o << 8)) ^ o << 4)) ^ o << 2)) ^ o << 1);
|
|
3168
3166
|
}
|
|
3169
|
-
function
|
|
3167
|
+
function Pt(o, e, t) {
|
|
3170
3168
|
let a = 0;
|
|
3171
|
-
return t && (a = (Math.pow(4, t) - 1) / 3), a + (
|
|
3169
|
+
return t && (a = (Math.pow(4, t) - 1) / 3), a + (Oa(o) | Oa(e) << 1);
|
|
3172
3170
|
}
|
|
3173
|
-
function
|
|
3171
|
+
function Ot(o) {
|
|
3174
3172
|
return o = 153391689 & ((o = 51130563 & ((o = 50393103 & ((o = 4278190335 & ((o &= 1023) ^ o << 16)) ^ o << 8)) ^ o << 4)) ^ o << 2);
|
|
3175
3173
|
}
|
|
3176
|
-
function
|
|
3174
|
+
function Ht(o, e, t, a) {
|
|
3177
3175
|
let A = 0;
|
|
3178
|
-
return a && (A = (Math.pow(8, a) - 1) / 7), A + (
|
|
3176
|
+
return a && (A = (Math.pow(8, a) - 1) / 7), A + (Ot(o) | Ot(e) << 1 | Ot(t) << 2);
|
|
3179
3177
|
}
|
|
3180
3178
|
const nt = /* @__PURE__ */ new Map();
|
|
3181
|
-
async function
|
|
3179
|
+
async function la(o, e) {
|
|
3182
3180
|
if (!o.root || !o.root.implicitTiling) return o;
|
|
3183
3181
|
if (!o.root.content && !o.root.contents) throw new Error("implicit tiling requires a Template URI");
|
|
3184
3182
|
let t = !0;
|
|
@@ -3196,7 +3194,7 @@ async function ba(o, e) {
|
|
|
3196
3194
|
let i;
|
|
3197
3195
|
t && (i = a.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0)), t || (i = a.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0).replace("{z}", 0));
|
|
3198
3196
|
const n = { level: 0, x: 0, y: 0 }, l = { level: 0, x: 0, y: 0 };
|
|
3199
|
-
t || (n.z = 0, l.z = 0), nt.set(i, await
|
|
3197
|
+
t || (n.z = 0, l.z = 0), nt.set(i, await _a(s + i));
|
|
3200
3198
|
const h = nt.get(i), b = [];
|
|
3201
3199
|
h.isContentAvailable(l) && A.forEach((I) => {
|
|
3202
3200
|
let u;
|
|
@@ -3208,10 +3206,10 @@ async function ba(o, e) {
|
|
|
3208
3206
|
const u = [];
|
|
3209
3207
|
if (I.localAddress.level == o.root.implicitTiling.availableLevels - 1) return u;
|
|
3210
3208
|
if ((I.localAddress.level + 1) % o.root.implicitTiling.subtreeLevels == 0) {
|
|
3211
|
-
const p =
|
|
3209
|
+
const p = It(I.localAddress), m = It(I.globalAddress), C = Ha(t, o.root.boundingVolume, m);
|
|
3212
3210
|
for (let E = 0; E < p.length; E++) {
|
|
3213
3211
|
const x = p[E], w = m[E];
|
|
3214
|
-
I.subtree.isChildSubtreeAvailable(x) && (t && a.replace("{level}", w.level).replace("{x}", w.x).replace("{y}", w.y), t || a.replace("{level}", w.level).replace("{x}", w.x).replace("{y}", w.y).replace("{z}", w.z)), nt.has(i) || nt.set(i, await
|
|
3212
|
+
I.subtree.isChildSubtreeAvailable(x) && (t && a.replace("{level}", w.level).replace("{x}", w.x).replace("{y}", w.y), t || a.replace("{level}", w.level).replace("{x}", w.x).replace("{y}", w.y).replace("{z}", w.z)), nt.has(i) || nt.set(i, await _a(s + i));
|
|
3215
3213
|
const M = nt.get(i), T = { level: 0, x: 0, y: 0 };
|
|
3216
3214
|
t || (T.z = 0);
|
|
3217
3215
|
const v = [];
|
|
@@ -3223,7 +3221,7 @@ async function ba(o, e) {
|
|
|
3223
3221
|
u.push(k);
|
|
3224
3222
|
}
|
|
3225
3223
|
} else {
|
|
3226
|
-
const p =
|
|
3224
|
+
const p = It(I.localAddress), m = It(I.globalAddress), C = Ha(t, o.root.boundingVolume, m);
|
|
3227
3225
|
for (let E = 0; E < p.length; E++) {
|
|
3228
3226
|
const x = p[E], w = m[E];
|
|
3229
3227
|
if (!I.subtree.isTileAvailable(x)) continue;
|
|
@@ -3241,17 +3239,17 @@ async function ba(o, e) {
|
|
|
3241
3239
|
return u.length > 0 ? u : void 0;
|
|
3242
3240
|
}
|
|
3243
3241
|
}
|
|
3244
|
-
function
|
|
3242
|
+
function It(o) {
|
|
3245
3243
|
const { level: e, x: t, y: a, z: A } = o, s = e + 1;
|
|
3246
3244
|
let i = [];
|
|
3247
3245
|
return i = A === void 0 ? [{ level: s, x: 2 * t, y: 2 * a }, { level: s, x: 2 * t + 1, y: 2 * a }, { level: s, x: 2 * t, y: 2 * a + 1 }, { level: s, x: 2 * t + 1, y: 2 * a + 1 }] : [{ level: s, x: 2 * t, y: 2 * a, z: 2 * A }, { level: s, x: 2 * t + 1, y: 2 * a, z: 2 * A }, { level: s, x: 2 * t, y: 2 * a + 1, z: 2 * A }, { level: s, x: 2 * t + 1, y: 2 * a + 1, z: 2 * A }, { level: s, x: 2 * t, y: 2 * a, z: 2 * A + 1 }, { level: s, x: 2 * t + 1, y: 2 * a, z: 2 * A + 1 }, { level: s, x: 2 * t, y: 2 * a + 1, z: 2 * A + 1 }, { level: s, x: 2 * t + 1, y: 2 * a + 1, z: 2 * A + 1 }], i;
|
|
3248
3246
|
}
|
|
3249
|
-
function
|
|
3247
|
+
function Ha(o, e, t) {
|
|
3250
3248
|
const a = [];
|
|
3251
|
-
for (let A = 0; A < t.length; A++) a.push(
|
|
3249
|
+
for (let A = 0; A < t.length; A++) a.push(Ms(o, e, t[A]));
|
|
3252
3250
|
return a;
|
|
3253
3251
|
}
|
|
3254
|
-
function
|
|
3252
|
+
function Ms(o, e, t) {
|
|
3255
3253
|
if (e.region) return function(a, A, s) {
|
|
3256
3254
|
const [i, n, l, h, b, g] = A, f = (l - i) / 2 ** s.level, I = (h - n) / 2 ** s.level, u = a ? 0 : (g - b) / 2 ** s.level, p = i + f * s.x, m = n + I * s.y, C = p + f, E = m + I, x = a ? b : b + u * s.z, w = a ? g : x + u;
|
|
3257
3255
|
return { region: [p, m, C, E, x, w] };
|
|
@@ -3305,7 +3303,7 @@ function Gs(o, e, t) {
|
|
|
3305
3303
|
return w.set(x.subarray(C, C + g * f)), m(C - m(0)), w;
|
|
3306
3304
|
}
|
|
3307
3305
|
})();
|
|
3308
|
-
var
|
|
3306
|
+
var jA = function() {
|
|
3309
3307
|
var o = 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]), e = 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]);
|
|
3310
3308
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
3311
3309
|
var t, a = WebAssembly.validate(o) ? "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;b9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;e8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincbhHalhOcbhAdninaraO9RaP6miavcj;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:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAcd0hHalhOaAcefgAclSmdxekkcbhlaHceGTmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;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;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;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;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb" : "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;d8Yqdbk:yzeHu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlcbhOinalgic9WfgAawcj;cbffhldndndndndnaHaAco4fRbbaOcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgAco4gCaCciSgCE86bbawcj;cbfaifglcGfaoclfaCfgCRbbaAcl4ciGgXaXciSgXE86bbalcVfaCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc7faCaXfgCRbbaAciGgAaAciSgAE86bbalctfaCaAfgCRbbaoRbegAco4gXaXciSgXE86bbalc91faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc4faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc93faCaXfgCRbbaAciGgAaAciSgAE86bbalc94faCaAfgCRbbaoRbdgAco4gXaXciSgXE86bbalc95faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc96faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc97faCaXfgCRbbaAciGgAaAciSgAE86bbalc98faCaAfgARbbaoRbigoco4gCaCciSgCE86bbalc99faAaCfgARbbaocl4ciGgCaCciSgCE86bbalc9:faAaCfgARbbaocd4ciGgCaCciSgCE86bbalcufaAaCfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgAcl4gCaCcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgCRbbaAcsGgAaAcsSgAE86bbalcVfaCaAfgARbbaoRbegCcl4gXaXcsSgXE86bbalc7faAaXfgARbbaCcsGgCaCcsSgCE86bbalctfaAaCfgARbbaoRbdgCcl4gXaXcsSgXE86bbalc91faAaXfgARbbaCcsGgCaCcsSgCE86bbalc4faAaCfgARbbaoRbigCcl4gXaXcsSgXE86bbalc93faAaXfgARbbaCcsGgCaCcsSgCE86bbalc94faAaCfgARbbaoRblgCcl4gXaXcsSgXE86bbalc95faAaXfgARbbaCcsGgCaCcsSgCE86bbalc96faAaCfgARbbaoRbvgCcl4gXaXcsSgXE86bbalc97faAaXfgARbbaCcsGgCaCcsSgCE86bbalc98faAaCfgARbbaoRbogCcl4gXaXcsSgXE86bbalc99faAaXfgARbbaCcsGgCaCcsSgCE86bbalc9:faAaCfgARbbaoRbrgocl4gCaCcsSgCE86bbalcufaAaCfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaOcdfhOaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhXdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkaCcefhCamcefgmad6hsamad9hmbkaXhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaXhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok: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:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabaiavcdfciGfcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabaiavcufciGfcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabaiavciGfcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb", A = WebAssembly.instantiate(s(a), {}).then(function(I) {
|
|
@@ -3404,11 +3402,11 @@ var RA = function() {
|
|
|
3404
3402
|
var i = { LockBorder: 1 };
|
|
3405
3403
|
})();
|
|
3406
3404
|
let Qe = 0;
|
|
3407
|
-
class
|
|
3405
|
+
class vs {
|
|
3408
3406
|
constructor(e) {
|
|
3409
|
-
if (this.renderer = e.renderer, this.zUpToYUpMatrix = new j.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.proxy = e.proxy, e && (this.meshCallback = e.meshCallback, this.pointsCallback = e.pointsCallback, e.maxCachedItems != null && (this.maxCachedItems = e.maxCachedItems)), this.gltfLoader = new
|
|
3407
|
+
if (this.renderer = e.renderer, this.zUpToYUpMatrix = new j.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.proxy = e.proxy, e && (this.meshCallback = e.meshCallback, this.pointsCallback = e.pointsCallback, e.maxCachedItems != null && (this.maxCachedItems = e.maxCachedItems)), this.gltfLoader = new dA(), e && e.dracoLoader) this.gltfLoader.setDRACOLoader(e.dracoLoader), this.hasDracoLoader = !0;
|
|
3410
3408
|
else {
|
|
3411
|
-
const t = new
|
|
3409
|
+
const t = new bA();
|
|
3412
3410
|
t.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"), this.gltfLoader.setDRACOLoader(t), this.gltfLoader.hasDracoLoader = !0;
|
|
3413
3411
|
}
|
|
3414
3412
|
if (e && e.ktx2Loader) this.gltfLoader.setKTX2Loader(e.ktx2Loader), this.hasKTX2Loader = !0;
|
|
@@ -3416,7 +3414,7 @@ class Ns {
|
|
|
3416
3414
|
const t = new re();
|
|
3417
3415
|
t.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer), this.gltfLoader.setKTX2Loader(t), this.gltfLoader.hasKTX2Loader = !0;
|
|
3418
3416
|
}
|
|
3419
|
-
this.gltfLoader.setMeshoptDecoder(
|
|
3417
|
+
this.gltfLoader.setMeshoptDecoder(jA), this.hasMeshOptDecoder = !0, this.b3dmDecoder = new oA(this.gltfLoader), this.splatsDecoder = new Pi(this.gltfLoader, this.renderer), this.cache = new rA.LinkedHashMap(), this.register = {}, this.ready = [], this.downloads = [], this.nextReady = [], this.nextDownloads = [];
|
|
3420
3418
|
}
|
|
3421
3419
|
update() {
|
|
3422
3420
|
const e = this;
|
|
@@ -3478,7 +3476,7 @@ class Ns {
|
|
|
3478
3476
|
}
|
|
3479
3477
|
}
|
|
3480
3478
|
get(e, t, a, A, s, i, n, l, h, b, g) {
|
|
3481
|
-
const f = this, I =
|
|
3479
|
+
const f = this, I = qa(a), u = new AbortController();
|
|
3482
3480
|
if (e.signal.addEventListener("abort", () => {
|
|
3483
3481
|
f.register[I] && Object.keys(f.register[I]).length != 0 || u.abort("user abort");
|
|
3484
3482
|
}), !(a.includes(".b3dm") || a.includes(".json") || a.includes(".gltf") || a.includes(".glb"))) return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");
|
|
@@ -3536,7 +3534,7 @@ class Ns {
|
|
|
3536
3534
|
m = f.proxy ? () => fetch(f.proxy, { method: "POST", body: a, signal: u.signal }) : () => fetch(a, { signal: u.signal }), Qe++, m().then((C) => {
|
|
3537
3535
|
if (!C.ok) throw console.error("could not load tile with path : " + a), new Error(`couldn't load "${a}". Request failed with status ${C.status} : ${C.statusText}`);
|
|
3538
3536
|
return C.json();
|
|
3539
|
-
}).then((C) =>
|
|
3537
|
+
}).then((C) => la(C, a)).then((C) => {
|
|
3540
3538
|
f.cache.put(I, C), f._checkSize(), f._meshReceived(f.cache, f.register, I);
|
|
3541
3539
|
}).catch((C) => {
|
|
3542
3540
|
}).finally(() => {
|
|
@@ -3550,7 +3548,7 @@ class Ns {
|
|
|
3550
3548
|
this.maxCachedItems = 0, this._checkSize(), this.maxCachedItems = e;
|
|
3551
3549
|
}
|
|
3552
3550
|
invalidate(e, t) {
|
|
3553
|
-
const a =
|
|
3551
|
+
const a = qa(e);
|
|
3554
3552
|
this.register[a] && (delete this.register[a][t], this._checkSize());
|
|
3555
3553
|
}
|
|
3556
3554
|
_checkSize() {
|
|
@@ -3567,7 +3565,7 @@ class Ns {
|
|
|
3567
3565
|
}
|
|
3568
3566
|
}
|
|
3569
3567
|
}
|
|
3570
|
-
function
|
|
3568
|
+
function qa(o) {
|
|
3571
3569
|
for (var e = o.split("/"), t = [], a = 0, A = 0; A < e.length; A++) {
|
|
3572
3570
|
var s = e[A];
|
|
3573
3571
|
s !== "." && s !== "" && s !== ".." ? t[a++] = s : s === ".." && a > 0 && a--;
|
|
@@ -3577,16 +3575,16 @@ function Ja(o) {
|
|
|
3577
3575
|
for (A = 0; A < a; A++) i += "/" + t[A];
|
|
3578
3576
|
return i;
|
|
3579
3577
|
}
|
|
3580
|
-
var De, je,
|
|
3581
|
-
function
|
|
3578
|
+
var De, je, RA = { exports: {} }, J = RA.exports = {};
|
|
3579
|
+
function aa() {
|
|
3582
3580
|
throw new Error("setTimeout has not been defined");
|
|
3583
3581
|
}
|
|
3584
|
-
function
|
|
3582
|
+
function Aa() {
|
|
3585
3583
|
throw new Error("clearTimeout has not been defined");
|
|
3586
3584
|
}
|
|
3587
|
-
function
|
|
3585
|
+
function MA(o) {
|
|
3588
3586
|
if (De === setTimeout) return setTimeout(o, 0);
|
|
3589
|
-
if ((De ===
|
|
3587
|
+
if ((De === aa || !De) && setTimeout) return De = setTimeout, setTimeout(o, 0);
|
|
3590
3588
|
try {
|
|
3591
3589
|
return De(o, 0);
|
|
3592
3590
|
} catch {
|
|
@@ -3599,31 +3597,31 @@ function vA(o) {
|
|
|
3599
3597
|
}
|
|
3600
3598
|
(function() {
|
|
3601
3599
|
try {
|
|
3602
|
-
De = typeof setTimeout == "function" ? setTimeout :
|
|
3600
|
+
De = typeof setTimeout == "function" ? setTimeout : aa;
|
|
3603
3601
|
} catch {
|
|
3604
|
-
De =
|
|
3602
|
+
De = aa;
|
|
3605
3603
|
}
|
|
3606
3604
|
try {
|
|
3607
|
-
je = typeof clearTimeout == "function" ? clearTimeout :
|
|
3605
|
+
je = typeof clearTimeout == "function" ? clearTimeout : Aa;
|
|
3608
3606
|
} catch {
|
|
3609
|
-
je =
|
|
3607
|
+
je = Aa;
|
|
3610
3608
|
}
|
|
3611
3609
|
})();
|
|
3612
|
-
var We, Me = [], at = !1,
|
|
3613
|
-
function
|
|
3614
|
-
at && We && (at = !1, We.length ? Me = We.concat(Me) :
|
|
3610
|
+
var We, Me = [], at = !1, Qt = -1;
|
|
3611
|
+
function Ts() {
|
|
3612
|
+
at && We && (at = !1, We.length ? Me = We.concat(Me) : Qt = -1, Me.length && vA());
|
|
3615
3613
|
}
|
|
3616
|
-
function
|
|
3614
|
+
function vA() {
|
|
3617
3615
|
if (!at) {
|
|
3618
|
-
var o =
|
|
3616
|
+
var o = MA(Ts);
|
|
3619
3617
|
at = !0;
|
|
3620
3618
|
for (var e = Me.length; e; ) {
|
|
3621
|
-
for (We = Me, Me = []; ++
|
|
3622
|
-
|
|
3619
|
+
for (We = Me, Me = []; ++Qt < e; ) We && We[Qt].run();
|
|
3620
|
+
Qt = -1, e = Me.length;
|
|
3623
3621
|
}
|
|
3624
3622
|
We = null, at = !1, function(t) {
|
|
3625
3623
|
if (je === clearTimeout) return clearTimeout(t);
|
|
3626
|
-
if ((je ===
|
|
3624
|
+
if ((je === Aa || !je) && clearTimeout) return je = clearTimeout, clearTimeout(t);
|
|
3627
3625
|
try {
|
|
3628
3626
|
return je(t);
|
|
3629
3627
|
} catch {
|
|
@@ -3636,7 +3634,7 @@ function TA() {
|
|
|
3636
3634
|
}(o);
|
|
3637
3635
|
}
|
|
3638
3636
|
}
|
|
3639
|
-
function
|
|
3637
|
+
function Ja(o, e) {
|
|
3640
3638
|
this.fun = o, this.array = e;
|
|
3641
3639
|
}
|
|
3642
3640
|
function ye() {
|
|
@@ -3644,8 +3642,8 @@ function ye() {
|
|
|
3644
3642
|
J.nextTick = function(o) {
|
|
3645
3643
|
var e = new Array(arguments.length - 1);
|
|
3646
3644
|
if (arguments.length > 1) for (var t = 1; t < arguments.length; t++) e[t - 1] = arguments[t];
|
|
3647
|
-
Me.push(new
|
|
3648
|
-
},
|
|
3645
|
+
Me.push(new Ja(o, e)), Me.length !== 1 || at || MA(vA);
|
|
3646
|
+
}, Ja.prototype.run = function() {
|
|
3649
3647
|
this.fun.apply(null, this.array);
|
|
3650
3648
|
}, J.title = "browser", J.browser = !0, J.env = {}, J.argv = [], J.version = "", J.versions = {}, J.on = ye, J.addListener = ye, J.once = ye, J.off = ye, J.removeListener = ye, J.removeAllListeners = ye, J.emit = ye, J.prependListener = ye, J.prependOnceListener = ye, J.listeners = function(o) {
|
|
3651
3649
|
return [];
|
|
@@ -3658,11 +3656,11 @@ J.nextTick = function(o) {
|
|
|
3658
3656
|
}, J.umask = function() {
|
|
3659
3657
|
return 0;
|
|
3660
3658
|
};
|
|
3661
|
-
const
|
|
3659
|
+
const Ss = yt(RA.exports);
|
|
3662
3660
|
function ge(o) {
|
|
3663
3661
|
if (typeof o != "string") throw new TypeError("Path must be a string. Received " + JSON.stringify(o));
|
|
3664
3662
|
}
|
|
3665
|
-
function
|
|
3663
|
+
function Ka(o, e) {
|
|
3666
3664
|
for (var t, a = "", A = 0, s = -1, i = 0, n = 0; n <= o.length; ++n) {
|
|
3667
3665
|
if (n < o.length) t = o.charCodeAt(n);
|
|
3668
3666
|
else {
|
|
@@ -3690,16 +3688,16 @@ function za(o, e) {
|
|
|
3690
3688
|
}
|
|
3691
3689
|
return a;
|
|
3692
3690
|
}
|
|
3693
|
-
var
|
|
3691
|
+
var za, At = { resolve: function() {
|
|
3694
3692
|
for (var o, e = "", t = !1, a = arguments.length - 1; a >= -1 && !t; a--) {
|
|
3695
3693
|
var A;
|
|
3696
|
-
a >= 0 ? A = arguments[a] : (o === void 0 && (o =
|
|
3694
|
+
a >= 0 ? A = arguments[a] : (o === void 0 && (o = Ss.cwd()), A = o), ge(A), A.length !== 0 && (e = A + "/" + e, t = A.charCodeAt(0) === 47);
|
|
3697
3695
|
}
|
|
3698
|
-
return e =
|
|
3696
|
+
return e = Ka(e, !t), t ? e.length > 0 ? "/" + e : "/" : e.length > 0 ? e : ".";
|
|
3699
3697
|
}, normalize: function(o) {
|
|
3700
3698
|
if (ge(o), o.length === 0) return ".";
|
|
3701
3699
|
var e = o.charCodeAt(0) === 47, t = o.charCodeAt(o.length - 1) === 47;
|
|
3702
|
-
return (o =
|
|
3700
|
+
return (o = Ka(o, !e)).length !== 0 || e || (o = "."), o.length > 0 && t && (o += "/"), e ? "/" + o : o;
|
|
3703
3701
|
}, isAbsolute: function(o) {
|
|
3704
3702
|
return ge(o), o.length > 0 && o.charCodeAt(0) === 47;
|
|
3705
3703
|
}, join: function() {
|
|
@@ -3795,7 +3793,7 @@ var Va, At = { resolve: function() {
|
|
|
3795
3793
|
return s === -1 || n === -1 || b === 0 || b === 1 && s === n - 1 && s === i + 1 ? n !== -1 && (e.base = e.name = i === 0 && A ? o.slice(1, n) : o.slice(i, n)) : (i === 0 && A ? (e.name = o.slice(1, s), e.base = o.slice(1, n)) : (e.name = o.slice(i, s), e.base = o.slice(i, n)), e.ext = o.slice(s, n)), i > 0 ? e.dir = o.slice(0, i - 1) : A && (e.dir = "/"), e;
|
|
3796
3794
|
}, sep: "/", delimiter: ":", win32: null, posix: null };
|
|
3797
3795
|
At.posix = At, module.exports = At;
|
|
3798
|
-
class
|
|
3796
|
+
class Fs {
|
|
3799
3797
|
constructor(e) {
|
|
3800
3798
|
Je(this, "_toElementFn");
|
|
3801
3799
|
if (e) {
|
|
@@ -3853,7 +3851,7 @@ class Os {
|
|
|
3853
3851
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
3854
3852
|
* @license MIT License
|
|
3855
3853
|
*/
|
|
3856
|
-
class Ye extends
|
|
3854
|
+
class Ye extends Fs {
|
|
3857
3855
|
constructor(t = [], a) {
|
|
3858
3856
|
super(a);
|
|
3859
3857
|
Je(this, "_elements", []);
|
|
@@ -3974,51 +3972,51 @@ class Ye extends Os {
|
|
|
3974
3972
|
}
|
|
3975
3973
|
(function(o) {
|
|
3976
3974
|
o[o.VISIT = 0] = "VISIT", o[o.PROCESS = 1] = "PROCESS";
|
|
3977
|
-
})(
|
|
3978
|
-
class
|
|
3975
|
+
})(za || (za = {}));
|
|
3976
|
+
class bt extends Ye {
|
|
3979
3977
|
constructor(e = [], t) {
|
|
3980
3978
|
super(e, t);
|
|
3981
3979
|
}
|
|
3982
3980
|
clone() {
|
|
3983
|
-
return new
|
|
3981
|
+
return new bt(this, { comparator: this.comparator, toElementFn: this.toElementFn });
|
|
3984
3982
|
}
|
|
3985
3983
|
filter(e, t) {
|
|
3986
|
-
const a = new
|
|
3984
|
+
const a = new bt([], { toElementFn: this.toElementFn, comparator: this.comparator });
|
|
3987
3985
|
let A = 0;
|
|
3988
3986
|
for (const s of this) e.call(t, s, A, this) && a.add(s), A++;
|
|
3989
3987
|
return a;
|
|
3990
3988
|
}
|
|
3991
3989
|
map(e, t, a, A) {
|
|
3992
|
-
const s = new
|
|
3990
|
+
const s = new bt([], { comparator: t, toElementFn: a });
|
|
3993
3991
|
let i = 0;
|
|
3994
3992
|
for (const n of this) s.add(e.call(A, n, i, this)), i++;
|
|
3995
3993
|
return s;
|
|
3996
3994
|
}
|
|
3997
3995
|
}
|
|
3998
|
-
class
|
|
3996
|
+
class gt extends bt {
|
|
3999
3997
|
constructor(e = [], t) {
|
|
4000
3998
|
super(e, t);
|
|
4001
3999
|
}
|
|
4002
4000
|
clone() {
|
|
4003
|
-
return new
|
|
4001
|
+
return new gt(this, { comparator: this.comparator, toElementFn: this.toElementFn });
|
|
4004
4002
|
}
|
|
4005
4003
|
filter(e, t) {
|
|
4006
|
-
const a = new
|
|
4004
|
+
const a = new gt([], { toElementFn: this.toElementFn, comparator: this.comparator });
|
|
4007
4005
|
let A = 0;
|
|
4008
4006
|
for (const s of this) e.call(t, s, A, this) && a.add(s), A++;
|
|
4009
4007
|
return a;
|
|
4010
4008
|
}
|
|
4011
4009
|
map(e, t, a, A) {
|
|
4012
|
-
const s = new
|
|
4010
|
+
const s = new gt([], { comparator: t, toElementFn: a });
|
|
4013
4011
|
let i = 0;
|
|
4014
4012
|
for (const n of this) s.add(e.call(A, n, i, this)), i++;
|
|
4015
4013
|
return s;
|
|
4016
4014
|
}
|
|
4017
4015
|
}
|
|
4018
|
-
new
|
|
4019
|
-
const
|
|
4020
|
-
|
|
4021
|
-
class
|
|
4016
|
+
new sa(), new K(), new K(), new K(), new K();
|
|
4017
|
+
const pt = new K(), Ls = new K(), TA = new ia();
|
|
4018
|
+
TA.set(1, 0, 0, 0, 0, 1, 0, -1, 0);
|
|
4019
|
+
class Us extends Xt {
|
|
4022
4020
|
constructor(e) {
|
|
4023
4021
|
const a = Math.min(Math.ceil(8) * 512, Math.pow(512, 2));
|
|
4024
4022
|
let A = 1 * Math.pow(512, 2);
|
|
@@ -4031,7 +4029,7 @@ class qs extends ea {
|
|
|
4031
4029
|
n.texture.type = W, e.initRenderTarget(n);
|
|
4032
4030
|
const l = new Ue(512, 512, 1, { magFilter: P, minFilter: P, anisotropy: 0, type: W, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
4033
4031
|
l.texture.type = W, e.initRenderTarget(l);
|
|
4034
|
-
const h = new
|
|
4032
|
+
const h = new kt({ uniforms: { textureSize: { value: 512 }, numSlices: { value: 1 }, cov1Texture: { value: n.texture }, cov2Texture: { value: l.texture }, colorTexture: { value: s.texture }, positionTexture: { value: i.texture }, zUpToYUpMatrix3x3: { value: TA }, sizeMultiplier: { value: 1 }, cropRadius: { value: Number.MAX_VALUE } }, vertexShader: `
|
|
4035
4033
|
precision highp float;
|
|
4036
4034
|
precision highp int;
|
|
4037
4035
|
|
|
@@ -4190,23 +4188,23 @@ void main() {
|
|
|
4190
4188
|
|
|
4191
4189
|
gl_FragColor = vec4(pow(color.xyz,vec3(1.0/2.2)), color.w * pow(alpha, 1.8));
|
|
4192
4190
|
|
|
4193
|
-
}`, transparent: !0, side:
|
|
4191
|
+
}`, transparent: !0, side: Et, depthTest: !0, depthWrite: !0, depthFunc: Ri }), b = new Ca(), g = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
|
|
4194
4192
|
b.setIndex([0, 2, 1, 2, 3, 1]), b.setAttribute("position", new Pe(g, 3));
|
|
4195
|
-
const f = new Uint32Array(A), I = new
|
|
4196
|
-
I.needsUpdate = !0, I.setUsage(
|
|
4193
|
+
const f = new Uint32Array(A), I = new Yt(f, 1, !1);
|
|
4194
|
+
I.needsUpdate = !0, I.setUsage(Ea), b.setAttribute("order", I), b.instanceCount = 0, super(b, h), this.orderAttribute = I, this.textureSize = 512, this.numTextures = 1, this.batchSize = a, this.maxSplats = A, this.colorRenderTarget = s, this.positionRenderTarget = i, this.cov1RenderTarget = n, this.cov2RenderTarget = l, this.renderer = e, this.sortID = 0, this.freeAddresses = new gt();
|
|
4197
4195
|
for (let m = 0; m < this.maxSplats; m += a) this.freeAddresses.add(m);
|
|
4198
4196
|
this.worker = new Worker(new URL("" + new URL("assets/PointsManager.worker-5fpGpVvf.js", import.meta.url).href, import.meta.url), { type: "module" }), this.sortListeners = [], this.worker.onmessage = (m) => {
|
|
4199
4197
|
const C = new Uint32Array(m.data.order);
|
|
4200
4198
|
if (C.length > this.orderAttribute.count) {
|
|
4201
|
-
const E = new
|
|
4199
|
+
const E = new Ca(), x = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]), w = [0, 2, 1, 2, 3, 1];
|
|
4202
4200
|
E.setIndex(w), E.setAttribute("position", new Pe(x, 3));
|
|
4203
|
-
const M = new Uint32Array(this.maxSplats), T = new
|
|
4204
|
-
T.needsUpdate = !0, T.setUsage(
|
|
4201
|
+
const M = new Uint32Array(this.maxSplats), T = new Yt(M, 1, !1);
|
|
4202
|
+
T.needsUpdate = !0, T.setUsage(Ea), E.setAttribute("order", T), E.instanceCount = 0, this.geometry.dispose(), this.geometry = E, this.orderAttribute = T;
|
|
4205
4203
|
}
|
|
4206
4204
|
this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(C), this.orderAttribute.addUpdateRange(0, C.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = m.data.count, this.geometry.needsUpdate = !0;
|
|
4207
4205
|
for (let E = this.sortListeners.length - 1; E >= 0; E--)
|
|
4208
4206
|
this.sortListeners[E](m.data.id) && this.sortListeners.splice(E, 1);
|
|
4209
|
-
}, this.cameraPosition = new K(0, 0, 0), this.rotateOnAxis(new K(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new
|
|
4207
|
+
}, this.cameraPosition = new K(0, 0, 0), this.rotateOnAxis(new K(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new kt({ uniforms: { sourceTexture: {} }, vertexShader: Va(), fragmentShader: `
|
|
4210
4208
|
precision highp float;
|
|
4211
4209
|
|
|
4212
4210
|
uniform sampler2D sourceTexture;
|
|
@@ -4215,7 +4213,7 @@ in vec2 vUv;
|
|
|
4215
4213
|
|
|
4216
4214
|
void main() {
|
|
4217
4215
|
gl_FragColor = texture( sourceTexture, vUv );
|
|
4218
|
-
}`, transparent: !1, side:
|
|
4216
|
+
}`, transparent: !1, side: Et, depthTest: !1, depthWrite: !1 }), this.copyMaterial3D = new kt({ uniforms: { sourceTexture: {}, w: { value: 0 } }, vertexShader: Va(), fragmentShader: `
|
|
4219
4217
|
precision highp float;
|
|
4220
4218
|
|
|
4221
4219
|
uniform sampler3D sourceTexture;
|
|
@@ -4225,9 +4223,9 @@ in vec2 vUv;
|
|
|
4225
4223
|
|
|
4226
4224
|
void main() {
|
|
4227
4225
|
gl_FragColor = texture( sourceTexture, vec3(vUv, w) );
|
|
4228
|
-
}`, transparent: !1, side:
|
|
4229
|
-
const u = new
|
|
4230
|
-
this.copyQuad = new
|
|
4226
|
+
}`, transparent: !1, side: Et, depthTest: !1, depthWrite: !1 }), this.copyCamera = new AA(-0.5, 0.5, 0.5, -0.5, 0.1, 10), this.copyCamera.position.z = 1, this.copyScene = new Mi();
|
|
4227
|
+
const u = new vi(1, 1);
|
|
4228
|
+
this.copyQuad = new Xt(u, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
|
|
4231
4229
|
const p = this;
|
|
4232
4230
|
document.addEventListener("keyup", function(m) {
|
|
4233
4231
|
m.key === "a" && (p.growTextures(), console.log(p.positionRenderTarget.depth));
|
|
@@ -4272,9 +4270,9 @@ void main() {
|
|
|
4272
4270
|
f = (p, m, C) => {
|
|
4273
4271
|
const E = C * C;
|
|
4274
4272
|
for (let x = 0; x < I.length; x += 3) {
|
|
4275
|
-
|
|
4276
|
-
const w =
|
|
4277
|
-
w > 0 && p.distanceSqToPoint(
|
|
4273
|
+
pt.set(I[x], -I[x + 2], I[x + 1]);
|
|
4274
|
+
const w = Ls.copy(pt).sub(p.origin).dot(p.direction);
|
|
4275
|
+
w > 0 && p.distanceSqToPoint(pt) < E && m.push({ distance: w, point: pt.clone(), type: "splat" });
|
|
4278
4276
|
}
|
|
4279
4277
|
}, h > this.freeAddresses.size && this.growTextures();
|
|
4280
4278
|
for (let p = 0; p < h; p++) {
|
|
@@ -4326,7 +4324,7 @@ void main() {
|
|
|
4326
4324
|
s.texture.type = W, this.renderer.initRenderTarget(s), this.copyTex3D(this.cov2RenderTarget.texture, s, this.numTextures), this.cov2RenderTarget.dispose(), this.cov2RenderTarget = s, this.material.uniforms.cov2Texture.value = this.cov2RenderTarget.texture, this.numTextures = e, this.material.uniforms.numSlices.value = this.numTextures;
|
|
4327
4325
|
}
|
|
4328
4326
|
}
|
|
4329
|
-
function
|
|
4327
|
+
function Va() {
|
|
4330
4328
|
return `
|
|
4331
4329
|
|
|
4332
4330
|
out vec2 vUv;
|
|
@@ -4339,26 +4337,26 @@ void main() {
|
|
|
4339
4337
|
var fe;
|
|
4340
4338
|
const we = new j.Sphere(new j.Vector3(0, 0, 0), 1), ze = new Re([0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]);
|
|
4341
4339
|
new j.Box3();
|
|
4342
|
-
const Ne = new j.Vector3(0, 0, 0), $e = new j.Vector3(0, 0, 0),
|
|
4340
|
+
const Ne = new j.Vector3(0, 0, 0), $e = new j.Vector3(0, 0, 0), Gs = new j.Vector3(0, 1, 0), Bt = new j.Ray(), mt = new j.Matrix4();
|
|
4343
4341
|
new j.Matrix4(), new j.Frustum();
|
|
4344
|
-
const
|
|
4345
|
-
function
|
|
4342
|
+
const qt = new j.Vector3(), Ct = [], Ya = new j.Quaternion(), Ie = {};
|
|
4343
|
+
function Ns() {
|
|
4346
4344
|
var o = [];
|
|
4347
4345
|
for (let e in Ie) Ie.hasOwnProperty(e) && Ie[e] > 0 && o.push(e);
|
|
4348
4346
|
return o;
|
|
4349
4347
|
}
|
|
4350
|
-
class
|
|
4348
|
+
class SA extends j.Object3D {
|
|
4351
4349
|
constructor(e) {
|
|
4352
4350
|
super();
|
|
4353
4351
|
const t = this;
|
|
4354
|
-
if (t.splatsMesh = e.splatsMesh, this.contentURL = [], e.domWidth && e.domHeight ? this.rendererSize = new j.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new j.Vector2(1e3, 1e3), this.loadingStrategy = e.loadingStrategy ? e.loadingStrategy.toUpperCase() : "INCREMENTAL", this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.proxy = e.proxy, this.drawBoundingVolume = !!e.drawBoundingVolume && e.drawBoundingVolume, this.displayErrors = e.displayErrors, this.displayCopyright = e.displayCopyright, e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid =
|
|
4352
|
+
if (t.splatsMesh = e.splatsMesh, this.contentURL = [], e.domWidth && e.domHeight ? this.rendererSize = new j.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new j.Vector2(1e3, 1e3), this.loadingStrategy = e.loadingStrategy ? e.loadingStrategy.toUpperCase() : "INCREMENTAL", this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.proxy = e.proxy, this.drawBoundingVolume = !!e.drawBoundingVolume && e.drawBoundingVolume, this.displayErrors = e.displayErrors, this.displayCopyright = e.displayCopyright, e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid = cA(), e.tileLoader) this.tileLoader = e.tileLoader;
|
|
4355
4353
|
else {
|
|
4356
4354
|
const s = {};
|
|
4357
4355
|
s.meshCallback = e.meshCallback ? e.meshCallback : (i, n) => {
|
|
4358
4356
|
i.material.wireframe = !1, i.material.side = j.DoubleSide;
|
|
4359
4357
|
}, s.pointsCallback = e.pointsCallback ? e.pointsCallback : (i, n) => {
|
|
4360
4358
|
i.material.size = Math.pow(n, 0.33), i.material.sizeAttenuation = !0;
|
|
4361
|
-
}, s.proxy = this.proxy, s.renderer = e.renderer, s.dracoLoader = e.dracoLoader, s.ktx2Loader = e.ktx2Loader, this.tileLoader = new
|
|
4359
|
+
}, s.proxy = this.proxy, s.renderer = e.renderer, s.dracoLoader = e.dracoLoader, s.ktx2Loader = e.ktx2Loader, this.tileLoader = new vs(s), this.update = (i) => {
|
|
4362
4360
|
this.update(i), this.tileLoader.update();
|
|
4363
4361
|
};
|
|
4364
4362
|
}
|
|
@@ -4372,11 +4370,11 @@ class FA extends j.Object3D {
|
|
|
4372
4370
|
}
|
|
4373
4371
|
(t.proxy ? () => fetch(t.proxy, { method: "POST", body: a, signal: t.abortController.signal }) : () => fetch(a, { signal: t.abortController.signal }))().then((s) => {
|
|
4374
4372
|
if (!s.ok) throw new Error(`couldn't load "${e.url}". Request failed with status ${s.status} : ${s.statusText}`);
|
|
4375
|
-
s.json().then((i) =>
|
|
4373
|
+
s.json().then((i) => la(i, a)).then((i) => {
|
|
4376
4374
|
t._setup({ rootPath: (void 0)(e.url), json: i });
|
|
4377
4375
|
});
|
|
4378
4376
|
}).catch((s) => {
|
|
4379
|
-
t.displayErrors &&
|
|
4377
|
+
t.displayErrors && Wa(s);
|
|
4380
4378
|
});
|
|
4381
4379
|
}
|
|
4382
4380
|
}
|
|
@@ -4398,7 +4396,7 @@ class FA extends j.Object3D {
|
|
|
4398
4396
|
}
|
|
4399
4397
|
async _setup(e) {
|
|
4400
4398
|
const t = this;
|
|
4401
|
-
if (e.json.extensionsRequired && e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") && (t.splatsMesh = new
|
|
4399
|
+
if (e.json.extensionsRequired && e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") && (t.splatsMesh = new Us(t.tileLoader.renderer), this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius), this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier), t.add(t.splatsMesh)), e.json.root ? (t.json = e.json.root, t.json.refine || (t.json.refine = e.json.refine), t.json.geometricError || (t.json.geometricError = e.json.geometricError), t.json.transform || (t.json.transform = e.json.transform), t.json.boundingVolume || (t.json.boundingVolume = e.json.boundingVolume)) : t.json = e.json, t.json.children || (t.json.getChildren ? t.json.children = await t.json.getChildren() : t.json.children = []), t.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, t.json.refine ? t.refine = t.json.refine : t.refine = e.parentRefine, t.json.geometricError ? t.geometricError = t.json.geometricError : t.geometricError = e.parentGeometricError, t.json.transform) {
|
|
4402
4400
|
let A = new j.Matrix4();
|
|
4403
4401
|
A.elements = t.json.transform, t.applyMatrix4(A);
|
|
4404
4402
|
}
|
|
@@ -4414,7 +4412,7 @@ class FA extends j.Object3D {
|
|
|
4414
4412
|
function a(A) {
|
|
4415
4413
|
A.uri && A.uri.includes("json") || A.url && A.url.includes("json") ? t.hasUnloadedJSONContent++ : t.hasMeshContent++;
|
|
4416
4414
|
}
|
|
4417
|
-
if (t.json.content ? (a(t.json.content), t.hasMeshContent == 0 && (t.level = Math.max(0, t.parentTile ? t.parentTile.level + 0.01 : 0)), t.loadingStrategy === "IMMEDIATE" ? t._load(!0, !1) : t._load()) : t.json.contents && (t.json.contents.forEach((A) => a(A)), t.hasMeshContent == 0 && (t.level = Math.max(0, t.parentTile ? t.parentTile.level + 0.01 : 0)), t.loadingStrategy === "IMMEDIATE" ? t._load(!0, !1) : t._load()), t.centerModel && ($e.copy(t.boundingVolume.center), this.json.boundingVolume.region && (this._transformWGS84ToCartesian(0.5 * (this.json.boundingVolume.region[0] + this.json.boundingVolume.region[2]), 0.5 * (this.json.boundingVolume.region[1] + this.json.boundingVolume.region[3]), 0.5 * (this.json.boundingVolume.region[4] + this.json.boundingVolume.region[5]), Ne),
|
|
4415
|
+
if (t.json.content ? (a(t.json.content), t.hasMeshContent == 0 && (t.level = Math.max(0, t.parentTile ? t.parentTile.level + 0.01 : 0)), t.loadingStrategy === "IMMEDIATE" ? t._load(!0, !1) : t._load()) : t.json.contents && (t.json.contents.forEach((A) => a(A)), t.hasMeshContent == 0 && (t.level = Math.max(0, t.parentTile ? t.parentTile.level + 0.01 : 0)), t.loadingStrategy === "IMMEDIATE" ? t._load(!0, !1) : t._load()), t.centerModel && ($e.copy(t.boundingVolume.center), this.json.boundingVolume.region && (this._transformWGS84ToCartesian(0.5 * (this.json.boundingVolume.region[0] + this.json.boundingVolume.region[2]), 0.5 * (this.json.boundingVolume.region[1] + this.json.boundingVolume.region[3]), 0.5 * (this.json.boundingVolume.region[4] + this.json.boundingVolume.region[5]), Ne), Ya.setFromUnitVectors(Ne.normalize(), Gs.normalize()), t.applyQuaternion(Ya)), $e.applyMatrix4(t.matrix), t.position.sub($e), t.updateMatrices()), e.onLoadCallback && t.onLoadCallback(t), t.isSetup = !0, t.level > 0 && t.drawBoundingVolume && (t.bbox && console.log("double setup"), this.boundingVolume.aabb)) {
|
|
4418
4416
|
let A = this.boundingVolume.aabb.clone();
|
|
4419
4417
|
A.applyMatrix4(this.matrixWorld), t.bbox = new j.Box3Helper(A, new j.Color(Math.random(), Math.random(), Math.random())), t.add(t.bbox), t.bbox.material.visible = !1;
|
|
4420
4418
|
}
|
|
@@ -4460,7 +4458,7 @@ class FA extends j.Object3D {
|
|
|
4460
4458
|
a.tileLoader.get(a.abortController, a.uuid, h, (f) => {
|
|
4461
4459
|
a.deleted || (f.asset && f.asset.copyright && (f.asset.copyright.split(";").forEach((I) => {
|
|
4462
4460
|
Ie[I] ? Ie[I]++ : Ie[I] = 1;
|
|
4463
|
-
}), a.displayCopyright &&
|
|
4461
|
+
}), a.displayCopyright && Jt()), a.meshContent.push(f), a.splatsMesh || (f.traverse((I) => {
|
|
4464
4462
|
if ((I.isMesh || I.isPoints) && I.layers.disable(0), I.isMesh && a.occlusionCullingService) {
|
|
4465
4463
|
const u = I.geometry.attributes.position, p = [];
|
|
4466
4464
|
for (let m = 0; m < u.count; m++) p.push(a.color.r, a.color.g, a.color.b);
|
|
@@ -4472,7 +4470,7 @@ class FA extends j.Object3D {
|
|
|
4472
4470
|
return (a.metric && a.metric < 0 || a.deleted) && (f = 2), a.parentTile ? a.parentTile._calculateDistanceToCamera(a.cameraOnLoad) * f * a.level : a._calculateDistanceToCamera(a.cameraOnLoad) * f * a.level;
|
|
4473
4471
|
} : () => 0, () => a._getSiblings(), a.level, !a.json.boundingVolume.region, !!a.json.boundingVolume.region, a.geometricError, a.splatsMesh);
|
|
4474
4472
|
} catch (f) {
|
|
4475
|
-
a.displayErrors &&
|
|
4473
|
+
a.displayErrors && Wa(f);
|
|
4476
4474
|
}
|
|
4477
4475
|
} else n && h.includes(".json") && (a.jsonRequested = h, a.tileLoader.get(a.abortController, a.uuid, h, async (f) => {
|
|
4478
4476
|
a.deleted || (f.rootPath = (void 0)(h), a.json.children.push(f), i == null ? delete a.json.content : a.json.contents.splice(i, 1), a.hasUnloadedJSONContent--);
|
|
@@ -4484,7 +4482,7 @@ class FA extends j.Object3D {
|
|
|
4484
4482
|
e.meshContent.forEach((t) => {
|
|
4485
4483
|
t && t.asset && t.asset.copyright && (t.asset.copyright.split(";").forEach((a) => {
|
|
4486
4484
|
Ie[a] && Ie[a]--;
|
|
4487
|
-
}), e.displayCopyright &&
|
|
4485
|
+
}), e.displayCopyright && Jt());
|
|
4488
4486
|
}), e.meshContent = [], e.bbox && e.bbox.dispose(), e.childrenTiles.forEach((t) => t.dispose()), e.deleted = !0, e.splatsMesh && (e.meshContent.forEach((t) => t.hide()), e.parentTile || e.splatsMesh.dispose()), e.contentURL && (e.contentURL.forEach((t) => {
|
|
4489
4487
|
e.tileLoader.invalidate(t, e.uuid);
|
|
4490
4488
|
}), e.contentURL = []), e.abortController && e.abortController.abort("tile not needed"), this.parent = null, this.dispatchEvent({ type: "removed" });
|
|
@@ -4497,7 +4495,7 @@ class FA extends j.Object3D {
|
|
|
4497
4495
|
const a = e.meshContent[t];
|
|
4498
4496
|
a && a.asset && a.asset.copyright && (a.asset.copyright.split(";").forEach((A) => {
|
|
4499
4497
|
Ie[A] && Ie[A]--;
|
|
4500
|
-
}), e.displayCopyright &&
|
|
4498
|
+
}), e.displayCopyright && Jt()), e.remove(a);
|
|
4501
4499
|
}
|
|
4502
4500
|
e.splatsMesh && e.meshContent.forEach((t) => t.hide()), e.meshContent = [], e.contentURL.forEach((t) => {
|
|
4503
4501
|
e.tileLoader.invalidate(t, e.uuid);
|
|
@@ -4512,17 +4510,17 @@ class FA extends j.Object3D {
|
|
|
4512
4510
|
}
|
|
4513
4511
|
raycast(e, t) {
|
|
4514
4512
|
if (this.splatsMesh) {
|
|
4515
|
-
|
|
4513
|
+
Bt.copy(e.ray), mt.copy(this.matrixWorld).invert(), Bt.applyMatrix4(mt);
|
|
4516
4514
|
let a = !1;
|
|
4517
|
-
if (this.boundingVolume instanceof Re) a = this.boundingVolume.intersectsRay(
|
|
4515
|
+
if (this.boundingVolume instanceof Re) a = this.boundingVolume.intersectsRay(Bt);
|
|
4518
4516
|
else {
|
|
4519
4517
|
if (!(this.boundingVolume instanceof j.Sphere)) return !1;
|
|
4520
4518
|
a = ray.intersectsSphere(this.boundingVolume);
|
|
4521
4519
|
}
|
|
4522
|
-
return a && this.materialVisibility && this.splatsReady && (
|
|
4523
|
-
A.isSplatsBatch && (A.raycast(
|
|
4520
|
+
return a && this.materialVisibility && this.splatsReady && (Ct.length = 0, this.meshContent.forEach((A) => {
|
|
4521
|
+
A.isSplatsBatch && (A.raycast(Bt, Ct, e.params.Points.threshold), Ct.forEach((s) => {
|
|
4524
4522
|
s.point.applyMatrix4(this.matrixWorld);
|
|
4525
|
-
}), t.push(...
|
|
4523
|
+
}), t.push(...Ct));
|
|
4526
4524
|
})), a;
|
|
4527
4525
|
}
|
|
4528
4526
|
return super.raycast(e, t);
|
|
@@ -4531,7 +4529,7 @@ class FA extends j.Object3D {
|
|
|
4531
4529
|
const t = new j.Frustum();
|
|
4532
4530
|
t.setFromProjectionMatrix(new j.Matrix4().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse));
|
|
4533
4531
|
let a = [0], A = [0], s = [0], i = [0];
|
|
4534
|
-
return this.refine == "REPLACE" ? this.loadingStrategy === "IMMEDIATE" ? (this._updateImmediate(e, t), this._statsImmediate(s, a, i, A)) : (this._update(e, t), this._stats(s, a, i, A)) : (this._update(e, t), this._stats(s, a, i, A)), a > 0 && (i[0] /= a[0]), this.splatsMesh && (
|
|
4532
|
+
return this.refine == "REPLACE" ? this.loadingStrategy === "IMMEDIATE" ? (this._updateImmediate(e, t), this._statsImmediate(s, a, i, A)) : (this._update(e, t), this._stats(s, a, i, A)) : (this._update(e, t), this._stats(s, a, i, A)), a > 0 && (i[0] /= a[0]), this.splatsMesh && (qt.copy(e.position), mt.copy(this.matrixWorld).invert(), qt.applyMatrix4(mt), this.splatsMesh.sort(qt)), { numTilesLoaded: a[0], numTilesRendered: A[0], maxLOD: s[0], percentageLoaded: i[0] };
|
|
4535
4533
|
}
|
|
4536
4534
|
_updateImmediate(e, t) {
|
|
4537
4535
|
this._computeMetricRecursive(e, t), this._updateNodeVisibilityImmediate(), this._expandTreeImmediate(e), this.shouldBeVisible = this.metric > 0 || !!this.loadOutsideView, this._shouldBeVisibleUpdateImmediate(), this._trimTreeImmediate(), this._loadMeshImmediate();
|
|
@@ -4649,7 +4647,7 @@ class FA extends j.Object3D {
|
|
|
4649
4647
|
const t = this;
|
|
4650
4648
|
for (let a = t.json.children.length - 1; a >= 0; a--) t.json.children[a].root || t.json.children[a].children || t.json.children[a].getChildren || t.json.children[a].content || t.json.children[a].contents || t.json.children.splice(a, 1);
|
|
4651
4649
|
t.json.children.forEach((a) => {
|
|
4652
|
-
let A = new
|
|
4650
|
+
let A = new SA({ parentTile: t, queryParams: t.queryParams, parentGeometricError: t.geometricError, parentBoundingVolume: t.boundingVolume, parentRefine: t.refine, json: a, rootPath: t.rootPath, geometricErrorMultiplier: t.geometricErrorMultiplier, loadOutsideView: t.loadOutsideView, level: Math.floor(t.level) + 1, tileLoader: t.tileLoader, cameraOnLoad: e, occlusionCullingService: t.occlusionCullingService, renderer: t.renderer, static: t.static, centerModel: !1, displayErrors: t.displayErrors, displayCopyright: t.displayCopyright, distanceBias: t.distanceBias, loadingStrategy: t.loadingStrategy, drawBoundingVolume: t.drawBoundingVolume, splatsMesh: t.splatsMesh });
|
|
4653
4651
|
t.childrenTiles.push(A), t.add(A);
|
|
4654
4652
|
}), t.updateMatrices(!0);
|
|
4655
4653
|
}
|
|
@@ -4746,26 +4744,26 @@ class FA extends j.Object3D {
|
|
|
4746
4744
|
A.set(b, g, f);
|
|
4747
4745
|
}
|
|
4748
4746
|
}
|
|
4749
|
-
function
|
|
4747
|
+
function Wa(o) {
|
|
4750
4748
|
var e = document.createElement("div");
|
|
4751
4749
|
e.textContent = o, e.style.position = "fixed", e.style.top = "10px", e.style.left = "50%", e.style.transform = "translateX(-50%)", e.style.padding = "10px", e.style.backgroundColor = "#ff8800", e.style.color = "#ffffff", e.style.zIndex = "9999", document.body.appendChild(e), setTimeout(function() {
|
|
4752
4750
|
e.remove();
|
|
4753
4751
|
}, 8e3);
|
|
4754
4752
|
}
|
|
4755
|
-
function
|
|
4753
|
+
function Jt() {
|
|
4756
4754
|
fe || ((fe = document.createElement("div")).style.position = "fixed", fe.style.bottom = "20px", fe.style.left = "20px", fe.style.color = "white", fe.style.textShadow = "2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000", fe.style.padding = "10px", fe.style.backgroundColor = "rgba(0, 0, 0, 0.1)", document.body.appendChild(fe));
|
|
4757
|
-
const o =
|
|
4755
|
+
const o = Ns();
|
|
4758
4756
|
let e = "";
|
|
4759
4757
|
o.forEach((t) => {
|
|
4760
4758
|
e += t + ", ";
|
|
4761
4759
|
}), e = e.slice(0, -2), fe.textContent = e;
|
|
4762
4760
|
}
|
|
4763
|
-
const se = new j.Sphere(new j.Vector3(0, 0, 0), 1), _e = new j.Vector3(0, 0, 0),
|
|
4764
|
-
class
|
|
4761
|
+
const se = new j.Sphere(new j.Vector3(0, 0, 0), 1), _e = new j.Vector3(0, 0, 0), Kt = new j.Vector3(0, 0, 0), _s = new j.Vector3(0, 1, 0), zt = new j.Vector2(), Xa = new j.Quaternion(), Za = new j.Matrix4();
|
|
4762
|
+
class ba extends j.Object3D {
|
|
4765
4763
|
constructor(e) {
|
|
4766
4764
|
super();
|
|
4767
4765
|
const t = this;
|
|
4768
|
-
if (e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid =
|
|
4766
|
+
if (e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid = cA(), e.tileLoader ? this.tileLoader = e.tileLoader : console.error("an instanced tileset must be provided an InstancedTilesetLoader"), this.master = e.master, this.loadOutsideView = e.loadOutsideView, this.cameraOnLoad = e.cameraOnLoad, this.parentTile = e.parentTile, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.childrenTiles = [], this.jsonChildren = [], this.meshContent = /* @__PURE__ */ new Set(), this.static = e.static, this.static && (this.matrixAutoUpdate = !1, this.matrixWorldAutoUpdate = !1), this.tileContent, this.refinement, this.rootPath, this.geometricError, this.boundingVolume, this.json, this.materialVisibility = !1, this.inFrustum = !0, this.level = e.level ? e.level : 0, this.hasMeshContent = 0, this.hasUnloadedJSONContent = 0, this.centerModel = e.centerModel, this.deleted = !1, this.abortController = new AbortController(), e.json) this.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, e.json.children && (this.jsonChildren = e.json.children), t.setup(e);
|
|
4769
4767
|
else if (e.url) {
|
|
4770
4768
|
this.loadJson = (s, i) => {
|
|
4771
4769
|
const n = (void 0)(i);
|
|
@@ -4787,7 +4785,7 @@ class ga extends j.Object3D {
|
|
|
4787
4785
|
if (t.json.transform && !t.centerModel && (a.elements = t.json.transform), t.applyMatrix4(a), t.parentTile && t.parentTile.matrix && (t.matrix.premultiply(t.parentTile.matrix), t.matrix.decompose(t.position, t.quaternion, t.scale)), t.matrixWorldNeedsUpdate = !0, t.updateWorldMatrix(!0, !0), t.json.boundingVolume) if (t.json.boundingVolume.box) t.boundingVolume = new Re(t.json.boundingVolume.box);
|
|
4788
4786
|
else if (t.json.boundingVolume.region) {
|
|
4789
4787
|
const s = t.json.boundingVolume.region;
|
|
4790
|
-
t.transformWGS84ToCartesian(s[0], s[1], s[4], _e), t.transformWGS84ToCartesian(s[2], s[3], s[5],
|
|
4788
|
+
t.transformWGS84ToCartesian(s[0], s[1], s[4], _e), t.transformWGS84ToCartesian(s[2], s[3], s[5], Kt), _e.lerp(Kt, 0.5), t.boundingVolume = new j.Sphere(new j.Vector3(_e.x, _e.y, _e.z), _e.distanceTo(Kt));
|
|
4791
4789
|
} else if (t.json.boundingVolume.sphere) {
|
|
4792
4790
|
const s = t.json.boundingVolume.sphere;
|
|
4793
4791
|
t.boundingVolume = new j.Sphere(new j.Vector3(s[0], s[1], s[2]), s[3]);
|
|
@@ -4798,7 +4796,7 @@ class ga extends j.Object3D {
|
|
|
4798
4796
|
}
|
|
4799
4797
|
if (t.json.content ? (A(t.json.content), t.load()) : t.json.contents && (t.json.contents.forEach((s) => A(s)), t.load()), t.centerModel) {
|
|
4800
4798
|
const s = new j.Sphere();
|
|
4801
|
-
t.boundingVolume instanceof Re ? s.copy(t.boundingVolume.sphere) : t.boundingVolume instanceof j.Sphere && s.copy(t.boundingVolume), this.json.boundingVolume.region && (t.transformWGS84ToCartesian(0.5 * (t.json.boundingVolume.region[0] + t.json.boundingVolume.region[2]), 0.5 * (t.json.boundingVolume.region[1] + t.json.boundingVolume.region[3]), 0.5 * (t.json.boundingVolume.region[4] + t.json.boundingVolume.region[5]), _e),
|
|
4799
|
+
t.boundingVolume instanceof Re ? s.copy(t.boundingVolume.sphere) : t.boundingVolume instanceof j.Sphere && s.copy(t.boundingVolume), this.json.boundingVolume.region && (t.transformWGS84ToCartesian(0.5 * (t.json.boundingVolume.region[0] + t.json.boundingVolume.region[2]), 0.5 * (t.json.boundingVolume.region[1] + t.json.boundingVolume.region[3]), 0.5 * (t.json.boundingVolume.region[4] + t.json.boundingVolume.region[5]), _e), Xa.setFromUnitVectors(_e.normalize(), _s.normalize()), t.master.applyQuaternion(Xa), t.master.updateWorldMatrix(!1, !1)), Za.makeTranslation(-s.center.x * t.scale.x, -s.center.y * t.scale.y, -s.center.z * t.scale.z), t.master.matrix.multiply(Za), t.master.matrix.decompose(t.master.position, t.master.quaternion, t.master.scale);
|
|
4802
4800
|
}
|
|
4803
4801
|
t.isSetup = !0, e.onLoadCallback && e.onLoadCallback(t);
|
|
4804
4802
|
}
|
|
@@ -4868,7 +4866,7 @@ class ga extends j.Object3D {
|
|
|
4868
4866
|
a.isSetup && (a.materialVisibility, a.boundingVolume && a.geometricError && (a.metric = a.calculateUpdateMetric(e, t)), a.childrenTiles.forEach((s) => s._update(e, t)), A(a.metric), function(s) {
|
|
4869
4867
|
s < 0 && a.hasMeshContent || (!a.hasMeshContent && a.rootPath || s < a.master.geometricErrorMultiplier * a.geometricError && a.meshContent.size > 0) && a.json && a.jsonChildren && a.childrenTiles.length != a.jsonChildren.length && a.jsonChildren.forEach((i) => {
|
|
4870
4868
|
if (!(i.root || i.children || i.getChildren || i.content || i.contents)) return;
|
|
4871
|
-
let n = new
|
|
4869
|
+
let n = new ba({ parentTile: a, queryParams: a.queryParams, parentGeometricError: a.geometricError, parentBoundingVolume: a.boundingVolume, parentRefinement: a.refinement, json: i, rootPath: a.rootPath, loadOutsideView: a.loadOutsideView, level: a.level + 1, tileLoader: a.tileLoader, cameraOnLoad: e, master: a.master, centerModel: !1 });
|
|
4872
4870
|
a.childrenTiles.push(n);
|
|
4873
4871
|
});
|
|
4874
4872
|
}(a.metric), function(s) {
|
|
@@ -4914,9 +4912,9 @@ class ga extends j.Object3D {
|
|
|
4914
4912
|
let a = Math.max(0, e.position.distanceTo(se.center) - se.radius);
|
|
4915
4913
|
if (a = Math.pow(a, this.distanceBias), a == 0) return 0;
|
|
4916
4914
|
const A = this.matrixWorld.getMaxScaleOnAxis();
|
|
4917
|
-
this.master._renderSize(
|
|
4918
|
-
let s =
|
|
4919
|
-
e.aspect < 1 && (i *= e.aspect, s =
|
|
4915
|
+
this.master._renderSize(zt);
|
|
4916
|
+
let s = zt.y, i = e.fov;
|
|
4917
|
+
e.aspect < 1 && (i *= e.aspect, s = zt.x);
|
|
4920
4918
|
let n = 2 * Math.tan(0.5 * i * 0.017453292519943295) * a;
|
|
4921
4919
|
return 16 * window.devicePixelRatio * n / (s * A);
|
|
4922
4920
|
}
|
|
@@ -4943,9 +4941,9 @@ class ga extends j.Object3D {
|
|
|
4943
4941
|
A.set(b, g, f);
|
|
4944
4942
|
}
|
|
4945
4943
|
}
|
|
4946
|
-
class
|
|
4944
|
+
class zs extends j.Object3D {
|
|
4947
4945
|
constructor(e) {
|
|
4948
|
-
super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new j.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new j.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new
|
|
4946
|
+
super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new j.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new j.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new ba(e), e.static && (this.matrixAutoUpdate = !1), this.tileLoader = e.tileLoader;
|
|
4949
4947
|
}
|
|
4950
4948
|
_renderSize(e) {
|
|
4951
4949
|
this.renderer ? this.renderer.getDrawingBufferSize(e) : e.copy(this.rendererSize);
|
|
@@ -4964,7 +4962,7 @@ class er extends j.Object3D {
|
|
|
4964
4962
|
this.geometricErrorMultiplier = e || 1;
|
|
4965
4963
|
}
|
|
4966
4964
|
}
|
|
4967
|
-
class
|
|
4965
|
+
class Ps {
|
|
4968
4966
|
constructor(e) {
|
|
4969
4967
|
const t = this;
|
|
4970
4968
|
t.scene = e, t.instancedTiles = [], t.instancedMesh, t.reuseableMatrix = new j.Matrix4();
|
|
@@ -5005,7 +5003,7 @@ class Vs {
|
|
|
5005
5003
|
}), e.instancedMesh.dispose(), !0);
|
|
5006
5004
|
}
|
|
5007
5005
|
}
|
|
5008
|
-
class
|
|
5006
|
+
class Os {
|
|
5009
5007
|
constructor() {
|
|
5010
5008
|
const e = this;
|
|
5011
5009
|
e.count = 0, e.json, e.instancedTiles = [];
|
|
@@ -5030,11 +5028,11 @@ class Ys {
|
|
|
5030
5028
|
}
|
|
5031
5029
|
}
|
|
5032
5030
|
let Ve = 0;
|
|
5033
|
-
class
|
|
5031
|
+
class Vs {
|
|
5034
5032
|
constructor(e, t) {
|
|
5035
|
-
if (this.zUpToYUpMatrix = new j.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.maxInstances = 1, this.proxy = t.proxy, t && (this.meshCallback = t.meshCallback, this.pointsCallback = t.pointsCallback, t.maxCachedItems && (this.maxCachedItems = t.maxCachedItems), t.maxInstances && (this.maxInstances = t.maxInstances)), this.gltfLoader = new
|
|
5033
|
+
if (this.zUpToYUpMatrix = new j.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.maxInstances = 1, this.proxy = t.proxy, t && (this.meshCallback = t.meshCallback, this.pointsCallback = t.pointsCallback, t.maxCachedItems && (this.maxCachedItems = t.maxCachedItems), t.maxInstances && (this.maxInstances = t.maxInstances)), this.gltfLoader = new dA(), t && t.dracoLoader) this.gltfLoader.setDRACOLoader(t.dracoLoader), this.hasDracoLoader = !0;
|
|
5036
5034
|
else {
|
|
5037
|
-
const a = new
|
|
5035
|
+
const a = new bA();
|
|
5038
5036
|
a.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"), this.gltfLoader.setDRACOLoader(a), this.gltfLoader.hasDracoLoader = !0;
|
|
5039
5037
|
}
|
|
5040
5038
|
if (t && t.ktx2Loader) this.gltfLoader.setKTX2Loader(t.ktx2Loader), this.hasKTX2Loader = !0;
|
|
@@ -5042,7 +5040,7 @@ class tr {
|
|
|
5042
5040
|
const a = new re();
|
|
5043
5041
|
a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(t.renderer), this.gltfLoader.setKTX2Loader(a), this.gltfLoader.hasKTX2Loader = !0;
|
|
5044
5042
|
}
|
|
5045
|
-
this.gltfLoader.setMeshoptDecoder(
|
|
5043
|
+
this.gltfLoader.setMeshoptDecoder(jA), this.hasMeshOptDecoder = !0, this.b3dmDecoder = new oA(this.gltfLoader), this.cache = new rA.LinkedHashMap(), this.scene = e, this.ready = [], this.downloads = [], this.nextReady = [], this.nextDownloads = [];
|
|
5046
5044
|
}
|
|
5047
5045
|
update() {
|
|
5048
5046
|
const e = this;
|
|
@@ -5068,7 +5066,7 @@ class tr {
|
|
|
5068
5066
|
if (!A.ok) throw new Error("missing content");
|
|
5069
5067
|
return A.arrayBuffer();
|
|
5070
5068
|
}).then(async (A) => {
|
|
5071
|
-
await
|
|
5069
|
+
await Hs(this.gltfLoader), this.gltfLoader.parse(A, null, (s) => {
|
|
5072
5070
|
let i;
|
|
5073
5071
|
s.scene.asset = s.asset, a.sceneZupToYup && s.scene.applyMatrix4(this.zUpToYUpMatrix), s.scene.traverse((n) => {
|
|
5074
5072
|
n.geometricError = a.geometricError, n.isMesh && (a.meshZupToYup && n.applyMatrix4(this.zUpToYUpMatrix), e.meshCallback && e.meshCallback(n, n.geometricError)), n.isPoints && console.error("instanced point cloud is not supported");
|
|
@@ -5088,7 +5086,7 @@ class tr {
|
|
|
5088
5086
|
t = e.proxy ? () => fetch(e.proxy, { method: "POST", body: a.path }) : () => fetch(a.path), Ve++, t().then((A) => {
|
|
5089
5087
|
if (!A.ok) throw console.error("could not load tile with path : " + a.path), new Error(`couldn't load "${a.path}". Request failed with status ${A.status} : ${A.statusText}`);
|
|
5090
5088
|
return A.json();
|
|
5091
|
-
}).then((A) =>
|
|
5089
|
+
}).then((A) => la(A, a.path)).then((A) => {
|
|
5092
5090
|
a.tile.setObject(A, a.path), e.ready.unshift(a);
|
|
5093
5091
|
}).catch((A) => console.error(A)).finally(() => {
|
|
5094
5092
|
Ve--;
|
|
@@ -5131,14 +5129,14 @@ class tr {
|
|
|
5131
5129
|
const I = g.cache.get(f);
|
|
5132
5130
|
if (I) I.addInstance(A);
|
|
5133
5131
|
else if (t.includes(".b3dm") || t.includes(".glb") || t.includes(".gltf")) {
|
|
5134
|
-
const u = new
|
|
5132
|
+
const u = new Ps(g.scene);
|
|
5135
5133
|
u.addInstance(A), g.cache.put(f, u);
|
|
5136
5134
|
const p = new AbortController();
|
|
5137
5135
|
e.signal.addEventListener("abort", () => {
|
|
5138
5136
|
u.getCount() == 0 && p.abort();
|
|
5139
5137
|
}), this.downloads.push({ abortController: p, tile: u, key: f, path: t, distanceFunction: s, getSiblings: i, level: n, uuid: a, sceneZupToYup: l, meshZupToYup: h, geometricError: b, shouldDoDownload: () => !0 });
|
|
5140
5138
|
} else if (t.includes(".json")) {
|
|
5141
|
-
const u = new
|
|
5139
|
+
const u = new Os();
|
|
5142
5140
|
u.addInstance(A), g.cache.put(f, u);
|
|
5143
5141
|
const p = new AbortController();
|
|
5144
5142
|
e.signal.addEventListener("abort", () => {
|
|
@@ -5175,7 +5173,7 @@ class tr {
|
|
|
5175
5173
|
}
|
|
5176
5174
|
}
|
|
5177
5175
|
}
|
|
5178
|
-
async function
|
|
5176
|
+
async function Hs(o) {
|
|
5179
5177
|
return new Promise((e) => {
|
|
5180
5178
|
const t = setInterval(() => {
|
|
5181
5179
|
o.hasDracoLoader && !o.dracoLoader || o.hasKTX2Loader && !o.ktx2Loader || (clearInterval(t), e());
|
|
@@ -5183,11 +5181,11 @@ async function Ws(o) {
|
|
|
5183
5181
|
});
|
|
5184
5182
|
}
|
|
5185
5183
|
export {
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5184
|
+
zs as InstancedOGC3DTile,
|
|
5185
|
+
Vs as InstancedTileLoader,
|
|
5186
|
+
SA as OGC3DTile,
|
|
5187
|
+
Ks as OcclusionCullingService,
|
|
5188
|
+
vs as TileLoader,
|
|
5189
|
+
Ns as getOGC3DTilesCopyrightInfo
|
|
5192
5190
|
};
|
|
5193
5191
|
//# sourceMappingURL=threedtiles.es.js.map
|