iflow-engine-base-3d 3.12.8 → 3.12.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bim-engine-sdk.es.js +3 -3
- package/dist/bim-engine-sdk.umd.js +242 -228
- package/dist/chunks/{engine-3d-BIid8Fet.js → engine-3d-CnX4KaAJ.js} +3314 -3200
- package/dist/chunks/{sdk-assets-d5IWmiFA.js → sdk-assets-CneT6Rbo.js} +5 -5
- package/dist/chunks/{sdk-runtime-DUxgrCmx.js → sdk-runtime-DFcE7Moa.js} +2 -2
- package/dist/chunks/{three-vendor-CABBZGAg.js → three-vendor-CCwWQKBi.js} +1139 -1138
- package/package.json +1 -1
|
@@ -33251,341 +33251,716 @@ const M1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
33251
33251
|
warn: be,
|
|
33252
33252
|
warnOnce: Qo
|
|
33253
33253
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
33254
|
-
|
|
33255
|
-
|
|
33256
|
-
|
|
33257
|
-
|
|
33258
|
-
|
|
33259
|
-
|
|
33260
|
-
|
|
33261
|
-
|
|
33262
|
-
|
|
33263
|
-
|
|
33264
|
-
|
|
33265
|
-
|
|
33254
|
+
var pa = Object.freeze({
|
|
33255
|
+
Linear: Object.freeze({
|
|
33256
|
+
None: function(r) {
|
|
33257
|
+
return r;
|
|
33258
|
+
},
|
|
33259
|
+
In: function(r) {
|
|
33260
|
+
return r;
|
|
33261
|
+
},
|
|
33262
|
+
Out: function(r) {
|
|
33263
|
+
return r;
|
|
33264
|
+
},
|
|
33265
|
+
InOut: function(r) {
|
|
33266
|
+
return r;
|
|
33266
33267
|
}
|
|
33267
|
-
|
|
33268
|
-
|
|
33269
|
-
|
|
33270
|
-
return
|
|
33271
|
-
|
|
33272
|
-
|
|
33273
|
-
|
|
33274
|
-
|
|
33268
|
+
}),
|
|
33269
|
+
Quadratic: Object.freeze({
|
|
33270
|
+
In: function(r) {
|
|
33271
|
+
return r * r;
|
|
33272
|
+
},
|
|
33273
|
+
Out: function(r) {
|
|
33274
|
+
return r * (2 - r);
|
|
33275
|
+
},
|
|
33276
|
+
InOut: function(r) {
|
|
33277
|
+
return (r *= 2) < 1 ? 0.5 * r * r : -0.5 * (--r * (r - 2) - 1);
|
|
33275
33278
|
}
|
|
33276
|
-
|
|
33277
|
-
|
|
33278
|
-
|
|
33279
|
-
|
|
33280
|
-
|
|
33281
|
-
|
|
33282
|
-
|
|
33283
|
-
|
|
33284
|
-
|
|
33279
|
+
}),
|
|
33280
|
+
Cubic: Object.freeze({
|
|
33281
|
+
In: function(r) {
|
|
33282
|
+
return r * r * r;
|
|
33283
|
+
},
|
|
33284
|
+
Out: function(r) {
|
|
33285
|
+
return --r * r * r + 1;
|
|
33286
|
+
},
|
|
33287
|
+
InOut: function(r) {
|
|
33288
|
+
return (r *= 2) < 1 ? 0.5 * r * r * r : 0.5 * ((r -= 2) * r * r + 2);
|
|
33285
33289
|
}
|
|
33286
|
-
}
|
|
33287
|
-
|
|
33288
|
-
|
|
33289
|
-
|
|
33290
|
-
|
|
33291
|
-
|
|
33292
|
-
|
|
33293
|
-
|
|
33294
|
-
|
|
33290
|
+
}),
|
|
33291
|
+
Quartic: Object.freeze({
|
|
33292
|
+
In: function(r) {
|
|
33293
|
+
return r * r * r * r;
|
|
33294
|
+
},
|
|
33295
|
+
Out: function(r) {
|
|
33296
|
+
return 1 - --r * r * r * r;
|
|
33297
|
+
},
|
|
33298
|
+
InOut: function(r) {
|
|
33299
|
+
return (r *= 2) < 1 ? 0.5 * r * r * r * r : -0.5 * ((r -= 2) * r * r * r - 2);
|
|
33295
33300
|
}
|
|
33296
|
-
|
|
33297
|
-
|
|
33298
|
-
|
|
33299
|
-
|
|
33300
|
-
|
|
33301
|
-
|
|
33302
|
-
|
|
33303
|
-
|
|
33304
|
-
|
|
33305
|
-
|
|
33306
|
-
if (u === 0) break;
|
|
33307
|
-
c.morphAttributes = c.morphAttributes || {}, c.morphAttributes[h] = [];
|
|
33308
|
-
for (let f = 0; f < u; ++f) {
|
|
33309
|
-
const d = [];
|
|
33310
|
-
for (let b = 0; b < a[h].length; ++b)
|
|
33311
|
-
d.push(a[h][b][f]);
|
|
33312
|
-
const p = VA(d);
|
|
33313
|
-
if (!p)
|
|
33314
|
-
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " morphAttribute."), null;
|
|
33315
|
-
c.morphAttributes[h].push(p);
|
|
33301
|
+
}),
|
|
33302
|
+
Quintic: Object.freeze({
|
|
33303
|
+
In: function(r) {
|
|
33304
|
+
return r * r * r * r * r;
|
|
33305
|
+
},
|
|
33306
|
+
Out: function(r) {
|
|
33307
|
+
return --r * r * r * r * r + 1;
|
|
33308
|
+
},
|
|
33309
|
+
InOut: function(r) {
|
|
33310
|
+
return (r *= 2) < 1 ? 0.5 * r * r * r * r * r : 0.5 * ((r -= 2) * r * r * r * r + 2);
|
|
33316
33311
|
}
|
|
33312
|
+
}),
|
|
33313
|
+
Sinusoidal: Object.freeze({
|
|
33314
|
+
In: function(r) {
|
|
33315
|
+
return 1 - Math.sin((1 - r) * Math.PI / 2);
|
|
33316
|
+
},
|
|
33317
|
+
Out: function(r) {
|
|
33318
|
+
return Math.sin(r * Math.PI / 2);
|
|
33319
|
+
},
|
|
33320
|
+
InOut: function(r) {
|
|
33321
|
+
return 0.5 * (1 - Math.sin(Math.PI * (0.5 - r)));
|
|
33322
|
+
}
|
|
33323
|
+
}),
|
|
33324
|
+
Exponential: Object.freeze({
|
|
33325
|
+
In: function(r) {
|
|
33326
|
+
return r === 0 ? 0 : Math.pow(1024, r - 1);
|
|
33327
|
+
},
|
|
33328
|
+
Out: function(r) {
|
|
33329
|
+
return r === 1 ? 1 : 1 - Math.pow(2, -10 * r);
|
|
33330
|
+
},
|
|
33331
|
+
InOut: function(r) {
|
|
33332
|
+
return r === 0 ? 0 : r === 1 ? 1 : (r *= 2) < 1 ? 0.5 * Math.pow(1024, r - 1) : 0.5 * (-Math.pow(2, -10 * (r - 1)) + 2);
|
|
33333
|
+
}
|
|
33334
|
+
}),
|
|
33335
|
+
Circular: Object.freeze({
|
|
33336
|
+
In: function(r) {
|
|
33337
|
+
return 1 - Math.sqrt(1 - r * r);
|
|
33338
|
+
},
|
|
33339
|
+
Out: function(r) {
|
|
33340
|
+
return Math.sqrt(1 - --r * r);
|
|
33341
|
+
},
|
|
33342
|
+
InOut: function(r) {
|
|
33343
|
+
return (r *= 2) < 1 ? -0.5 * (Math.sqrt(1 - r * r) - 1) : 0.5 * (Math.sqrt(1 - (r -= 2) * r) + 1);
|
|
33344
|
+
}
|
|
33345
|
+
}),
|
|
33346
|
+
Elastic: Object.freeze({
|
|
33347
|
+
In: function(r) {
|
|
33348
|
+
return r === 0 ? 0 : r === 1 ? 1 : -Math.pow(2, 10 * (r - 1)) * Math.sin((r - 1.1) * 5 * Math.PI);
|
|
33349
|
+
},
|
|
33350
|
+
Out: function(r) {
|
|
33351
|
+
return r === 0 ? 0 : r === 1 ? 1 : Math.pow(2, -10 * r) * Math.sin((r - 0.1) * 5 * Math.PI) + 1;
|
|
33352
|
+
},
|
|
33353
|
+
InOut: function(r) {
|
|
33354
|
+
return r === 0 ? 0 : r === 1 ? 1 : (r *= 2, r < 1 ? -0.5 * Math.pow(2, 10 * (r - 1)) * Math.sin((r - 1.1) * 5 * Math.PI) : 0.5 * Math.pow(2, -10 * (r - 1)) * Math.sin((r - 1.1) * 5 * Math.PI) + 1);
|
|
33355
|
+
}
|
|
33356
|
+
}),
|
|
33357
|
+
Back: Object.freeze({
|
|
33358
|
+
In: function(r) {
|
|
33359
|
+
var e = 1.70158;
|
|
33360
|
+
return r === 1 ? 1 : r * r * ((e + 1) * r - e);
|
|
33361
|
+
},
|
|
33362
|
+
Out: function(r) {
|
|
33363
|
+
var e = 1.70158;
|
|
33364
|
+
return r === 0 ? 0 : --r * r * ((e + 1) * r + e) + 1;
|
|
33365
|
+
},
|
|
33366
|
+
InOut: function(r) {
|
|
33367
|
+
var e = 2.5949095;
|
|
33368
|
+
return (r *= 2) < 1 ? 0.5 * (r * r * ((e + 1) * r - e)) : 0.5 * ((r -= 2) * r * ((e + 1) * r + e) + 2);
|
|
33369
|
+
}
|
|
33370
|
+
}),
|
|
33371
|
+
Bounce: Object.freeze({
|
|
33372
|
+
In: function(r) {
|
|
33373
|
+
return 1 - pa.Bounce.Out(1 - r);
|
|
33374
|
+
},
|
|
33375
|
+
Out: function(r) {
|
|
33376
|
+
return r < 1 / 2.75 ? 7.5625 * r * r : r < 2 / 2.75 ? 7.5625 * (r -= 1.5 / 2.75) * r + 0.75 : r < 2.5 / 2.75 ? 7.5625 * (r -= 2.25 / 2.75) * r + 0.9375 : 7.5625 * (r -= 2.625 / 2.75) * r + 0.984375;
|
|
33377
|
+
},
|
|
33378
|
+
InOut: function(r) {
|
|
33379
|
+
return r < 0.5 ? pa.Bounce.In(r * 2) * 0.5 : pa.Bounce.Out(r * 2 - 1) * 0.5 + 0.5;
|
|
33380
|
+
}
|
|
33381
|
+
}),
|
|
33382
|
+
generatePow: function(r) {
|
|
33383
|
+
return r === void 0 && (r = 4), r = r < Number.EPSILON ? Number.EPSILON : r, r = r > 1e4 ? 1e4 : r, {
|
|
33384
|
+
In: function(e) {
|
|
33385
|
+
return Math.pow(e, r);
|
|
33386
|
+
},
|
|
33387
|
+
Out: function(e) {
|
|
33388
|
+
return 1 - Math.pow(1 - e, r);
|
|
33389
|
+
},
|
|
33390
|
+
InOut: function(e) {
|
|
33391
|
+
return e < 0.5 ? Math.pow(e * 2, r) / 2 : (1 - Math.pow(2 - e * 2, r)) / 2 + 0.5;
|
|
33392
|
+
}
|
|
33393
|
+
};
|
|
33317
33394
|
}
|
|
33318
|
-
|
|
33319
|
-
|
|
33320
|
-
|
|
33321
|
-
|
|
33322
|
-
|
|
33323
|
-
|
|
33324
|
-
|
|
33325
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
|
|
33326
|
-
if (t === void 0 && (t = h.itemSize), t !== h.itemSize)
|
|
33327
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
|
|
33328
|
-
if (n === void 0 && (n = h.normalized), n !== h.normalized)
|
|
33329
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
|
|
33330
|
-
if (i === -1 && (i = h.gpuType), i !== h.gpuType)
|
|
33331
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
|
|
33332
|
-
s += h.count * t;
|
|
33333
|
-
}
|
|
33334
|
-
const a = new e(s), o = new at(a, t, n);
|
|
33335
|
-
let c = 0;
|
|
33336
|
-
for (let l = 0; l < r.length; ++l) {
|
|
33337
|
-
const h = r[l];
|
|
33338
|
-
if (h.isInterleavedBufferAttribute) {
|
|
33339
|
-
const u = c / t;
|
|
33340
|
-
for (let f = 0, d = h.count; f < d; f++)
|
|
33341
|
-
for (let p = 0; p < t; p++) {
|
|
33342
|
-
const b = h.getComponent(f, p);
|
|
33343
|
-
o.setComponent(f + u, p, b);
|
|
33344
|
-
}
|
|
33345
|
-
} else
|
|
33346
|
-
a.set(h.array, c);
|
|
33347
|
-
c += h.count * t;
|
|
33348
|
-
}
|
|
33349
|
-
return i !== void 0 && (o.gpuType = i), o;
|
|
33350
|
-
}
|
|
33351
|
-
function WA(r, e) {
|
|
33352
|
-
if (e === bm)
|
|
33353
|
-
return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), r;
|
|
33354
|
-
if (e === ch || e === gd) {
|
|
33355
|
-
let t = r.getIndex();
|
|
33356
|
-
if (t === null) {
|
|
33357
|
-
const a = [], o = r.getAttribute("position");
|
|
33358
|
-
if (o !== void 0) {
|
|
33359
|
-
for (let c = 0; c < o.count; c++)
|
|
33360
|
-
a.push(c);
|
|
33361
|
-
r.setIndex(a), t = r.getIndex();
|
|
33362
|
-
} else
|
|
33363
|
-
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), r;
|
|
33395
|
+
}), lo = function() {
|
|
33396
|
+
return performance.now();
|
|
33397
|
+
}, EC = (
|
|
33398
|
+
/** @class */
|
|
33399
|
+
(function() {
|
|
33400
|
+
function r() {
|
|
33401
|
+
this._tweens = {}, this._tweensAddedDuringUpdate = {};
|
|
33364
33402
|
}
|
|
33365
|
-
|
|
33366
|
-
|
|
33367
|
-
|
|
33368
|
-
|
|
33369
|
-
|
|
33370
|
-
|
|
33371
|
-
|
|
33372
|
-
|
|
33373
|
-
|
|
33374
|
-
|
|
33375
|
-
|
|
33376
|
-
|
|
33377
|
-
|
|
33378
|
-
|
|
33379
|
-
|
|
33380
|
-
|
|
33381
|
-
|
|
33382
|
-
|
|
33383
|
-
|
|
33384
|
-
|
|
33385
|
-
|
|
33386
|
-
|
|
33387
|
-
|
|
33388
|
-
}), n;
|
|
33389
|
-
}
|
|
33390
|
-
function P0(r, e, t) {
|
|
33391
|
-
t(r, e);
|
|
33392
|
-
for (let n = 0; n < r.children.length; n++)
|
|
33393
|
-
P0(r.children[n], e.children[n], t);
|
|
33394
|
-
}
|
|
33395
|
-
class w1 extends ln {
|
|
33396
|
-
/**
|
|
33397
|
-
* Constructs a new glTF loader.
|
|
33398
|
-
*
|
|
33399
|
-
* @param {LoadingManager} [manager] - The loading manager.
|
|
33400
|
-
*/
|
|
33401
|
-
constructor(e) {
|
|
33402
|
-
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
|
|
33403
|
-
return new wC(t);
|
|
33404
|
-
}), this.register(function(t) {
|
|
33405
|
-
return new TC(t);
|
|
33406
|
-
}), this.register(function(t) {
|
|
33407
|
-
return new OC(t);
|
|
33408
|
-
}), this.register(function(t) {
|
|
33409
|
-
return new kC(t);
|
|
33410
|
-
}), this.register(function(t) {
|
|
33411
|
-
return new QC(t);
|
|
33412
|
-
}), this.register(function(t) {
|
|
33413
|
-
return new RC(t);
|
|
33414
|
-
}), this.register(function(t) {
|
|
33415
|
-
return new DC(t);
|
|
33416
|
-
}), this.register(function(t) {
|
|
33417
|
-
return new PC(t);
|
|
33418
|
-
}), this.register(function(t) {
|
|
33419
|
-
return new LC(t);
|
|
33420
|
-
}), this.register(function(t) {
|
|
33421
|
-
return new CC(t);
|
|
33422
|
-
}), this.register(function(t) {
|
|
33423
|
-
return new FC(t);
|
|
33424
|
-
}), this.register(function(t) {
|
|
33425
|
-
return new BC(t);
|
|
33426
|
-
}), this.register(function(t) {
|
|
33427
|
-
return new UC(t);
|
|
33428
|
-
}), this.register(function(t) {
|
|
33429
|
-
return new NC(t);
|
|
33430
|
-
}), this.register(function(t) {
|
|
33431
|
-
return new IC(t);
|
|
33432
|
-
}), this.register(function(t) {
|
|
33433
|
-
return new qA(t, st.EXT_MESHOPT_COMPRESSION);
|
|
33434
|
-
}), this.register(function(t) {
|
|
33435
|
-
return new qA(t, st.KHR_MESHOPT_COMPRESSION);
|
|
33436
|
-
}), this.register(function(t) {
|
|
33437
|
-
return new GC(t);
|
|
33438
|
-
});
|
|
33439
|
-
}
|
|
33440
|
-
/**
|
|
33441
|
-
* Starts loading from the given URL and passes the loaded glTF asset
|
|
33442
|
-
* to the `onLoad()` callback.
|
|
33443
|
-
*
|
|
33444
|
-
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
33445
|
-
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33446
|
-
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
33447
|
-
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33448
|
-
*/
|
|
33449
|
-
load(e, t, n, i) {
|
|
33450
|
-
const s = this;
|
|
33451
|
-
let a;
|
|
33452
|
-
if (this.resourcePath !== "")
|
|
33453
|
-
a = this.resourcePath;
|
|
33454
|
-
else if (this.path !== "") {
|
|
33455
|
-
const l = _s.extractUrlBase(e);
|
|
33456
|
-
a = _s.resolveURL(l, this.path);
|
|
33457
|
-
} else
|
|
33458
|
-
a = _s.extractUrlBase(e);
|
|
33459
|
-
this.manager.itemStart(e);
|
|
33460
|
-
const o = function(l) {
|
|
33461
|
-
i ? i(l) : console.error(l), s.manager.itemError(e), s.manager.itemEnd(e);
|
|
33462
|
-
}, c = new bn(this.manager);
|
|
33463
|
-
c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(e, function(l) {
|
|
33464
|
-
try {
|
|
33465
|
-
s.parse(l, a, function(h) {
|
|
33466
|
-
t(h), s.manager.itemEnd(e);
|
|
33467
|
-
}, o);
|
|
33468
|
-
} catch (h) {
|
|
33469
|
-
o(h);
|
|
33403
|
+
return r.prototype.getAll = function() {
|
|
33404
|
+
var e = this;
|
|
33405
|
+
return Object.keys(this._tweens).map(function(t) {
|
|
33406
|
+
return e._tweens[t];
|
|
33407
|
+
});
|
|
33408
|
+
}, r.prototype.removeAll = function() {
|
|
33409
|
+
this._tweens = {};
|
|
33410
|
+
}, r.prototype.add = function(e) {
|
|
33411
|
+
this._tweens[e.getId()] = e, this._tweensAddedDuringUpdate[e.getId()] = e;
|
|
33412
|
+
}, r.prototype.remove = function(e) {
|
|
33413
|
+
delete this._tweens[e.getId()], delete this._tweensAddedDuringUpdate[e.getId()];
|
|
33414
|
+
}, r.prototype.update = function(e, t) {
|
|
33415
|
+
e === void 0 && (e = lo()), t === void 0 && (t = !1);
|
|
33416
|
+
var n = Object.keys(this._tweens);
|
|
33417
|
+
if (n.length === 0)
|
|
33418
|
+
return !1;
|
|
33419
|
+
for (; n.length > 0; ) {
|
|
33420
|
+
this._tweensAddedDuringUpdate = {};
|
|
33421
|
+
for (var i = 0; i < n.length; i++) {
|
|
33422
|
+
var s = this._tweens[n[i]], a = !t;
|
|
33423
|
+
s && s.update(e, a) === !1 && !t && delete this._tweens[n[i]];
|
|
33424
|
+
}
|
|
33425
|
+
n = Object.keys(this._tweensAddedDuringUpdate);
|
|
33470
33426
|
}
|
|
33471
|
-
|
|
33472
|
-
|
|
33473
|
-
|
|
33474
|
-
|
|
33475
|
-
|
|
33476
|
-
|
|
33477
|
-
|
|
33478
|
-
|
|
33479
|
-
|
|
33480
|
-
|
|
33481
|
-
|
|
33482
|
-
|
|
33483
|
-
/**
|
|
33484
|
-
* Sets the given KTX2 loader to this loader. Required for loading KTX2
|
|
33485
|
-
* compressed textures.
|
|
33486
|
-
*
|
|
33487
|
-
* @param {KTX2Loader} ktx2Loader - The KTX2 loader to set.
|
|
33488
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33489
|
-
*/
|
|
33490
|
-
setKTX2Loader(e) {
|
|
33491
|
-
return this.ktx2Loader = e, this;
|
|
33492
|
-
}
|
|
33493
|
-
/**
|
|
33494
|
-
* Sets the given meshopt decoder. Required for decoding assets
|
|
33495
|
-
* compressed with the `EXT_meshopt_compression` extension.
|
|
33496
|
-
*
|
|
33497
|
-
* @param {Object} meshoptDecoder - The meshopt decoder to set.
|
|
33498
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33499
|
-
*/
|
|
33500
|
-
setMeshoptDecoder(e) {
|
|
33501
|
-
return this.meshoptDecoder = e, this;
|
|
33502
|
-
}
|
|
33503
|
-
/**
|
|
33504
|
-
* Registers a plugin callback. This API is internally used to implement the various
|
|
33505
|
-
* glTF extensions but can also used by third-party code to add additional logic
|
|
33506
|
-
* to the loader.
|
|
33507
|
-
*
|
|
33508
|
-
* @param {function(parser:GLTFParser)} callback - The callback function to register.
|
|
33509
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33510
|
-
*/
|
|
33511
|
-
register(e) {
|
|
33512
|
-
return this.pluginCallbacks.indexOf(e) === -1 && this.pluginCallbacks.push(e), this;
|
|
33513
|
-
}
|
|
33514
|
-
/**
|
|
33515
|
-
* Unregisters a plugin callback.
|
|
33516
|
-
*
|
|
33517
|
-
* @param {Function} callback - The callback function to unregister.
|
|
33518
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33519
|
-
*/
|
|
33520
|
-
unregister(e) {
|
|
33521
|
-
return this.pluginCallbacks.indexOf(e) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e), 1), this;
|
|
33427
|
+
return !0;
|
|
33428
|
+
}, r;
|
|
33429
|
+
})()
|
|
33430
|
+
), Jf = {
|
|
33431
|
+
Linear: function(r, e) {
|
|
33432
|
+
var t = r.length - 1, n = t * e, i = Math.floor(n), s = Jf.Utils.Linear;
|
|
33433
|
+
return e < 0 ? s(r[0], r[1], n) : e > 1 ? s(r[t], r[t - 1], t - n) : s(r[i], r[i + 1 > t ? t : i + 1], n - i);
|
|
33434
|
+
},
|
|
33435
|
+
Utils: {
|
|
33436
|
+
Linear: function(r, e, t) {
|
|
33437
|
+
return (e - r) * t + r;
|
|
33438
|
+
}
|
|
33522
33439
|
}
|
|
33523
|
-
|
|
33524
|
-
|
|
33525
|
-
|
|
33526
|
-
|
|
33527
|
-
* @param {string} path - The URL base path.
|
|
33528
|
-
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33529
|
-
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33530
|
-
*/
|
|
33531
|
-
parse(e, t, n, i) {
|
|
33532
|
-
let s;
|
|
33533
|
-
const a = {}, o = {}, c = new TextDecoder();
|
|
33534
|
-
if (typeof e == "string")
|
|
33535
|
-
s = JSON.parse(e);
|
|
33536
|
-
else if (e instanceof ArrayBuffer)
|
|
33537
|
-
if (c.decode(new Uint8Array(e, 0, 4)) === L0) {
|
|
33538
|
-
try {
|
|
33539
|
-
a[st.KHR_BINARY_GLTF] = new zC(e);
|
|
33540
|
-
} catch (u) {
|
|
33541
|
-
i && i(u);
|
|
33542
|
-
return;
|
|
33543
|
-
}
|
|
33544
|
-
s = JSON.parse(a[st.KHR_BINARY_GLTF].content);
|
|
33545
|
-
} else
|
|
33546
|
-
s = JSON.parse(c.decode(e));
|
|
33547
|
-
else
|
|
33548
|
-
s = e;
|
|
33549
|
-
if (s.asset === void 0 || s.asset.version[0] < 2) {
|
|
33550
|
-
i && i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
33551
|
-
return;
|
|
33440
|
+
}, P0 = (
|
|
33441
|
+
/** @class */
|
|
33442
|
+
(function() {
|
|
33443
|
+
function r() {
|
|
33552
33444
|
}
|
|
33553
|
-
|
|
33554
|
-
|
|
33555
|
-
|
|
33556
|
-
|
|
33557
|
-
|
|
33558
|
-
|
|
33559
|
-
|
|
33560
|
-
|
|
33561
|
-
|
|
33562
|
-
for (let h = 0; h < this.pluginCallbacks.length; h++) {
|
|
33563
|
-
const u = this.pluginCallbacks[h](l);
|
|
33564
|
-
u.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), o[u.name] = u, a[u.name] = !0;
|
|
33445
|
+
return r.nextId = function() {
|
|
33446
|
+
return r._nextId++;
|
|
33447
|
+
}, r._nextId = 0, r;
|
|
33448
|
+
})()
|
|
33449
|
+
), Zf = new EC(), SC = (
|
|
33450
|
+
/** @class */
|
|
33451
|
+
(function() {
|
|
33452
|
+
function r(e, t) {
|
|
33453
|
+
t === void 0 && (t = Zf), this._object = e, this._group = t, this._isPaused = !1, this._pauseStart = 0, this._valuesStart = {}, this._valuesEnd = {}, this._valuesStartRepeat = {}, this._duration = 1e3, this._isDynamic = !1, this._initialRepeat = 0, this._repeat = 0, this._yoyo = !1, this._isPlaying = !1, this._reversed = !1, this._delayTime = 0, this._startTime = 0, this._easingFunction = pa.Linear.None, this._interpolationFunction = Jf.Linear, this._chainedTweens = [], this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._id = P0.nextId(), this._isChainStopped = !1, this._propertiesAreSetUp = !1, this._goToEnd = !1;
|
|
33565
33454
|
}
|
|
33566
|
-
|
|
33567
|
-
|
|
33568
|
-
|
|
33569
|
-
|
|
33570
|
-
|
|
33571
|
-
|
|
33572
|
-
|
|
33573
|
-
|
|
33574
|
-
|
|
33575
|
-
|
|
33576
|
-
|
|
33577
|
-
|
|
33578
|
-
|
|
33579
|
-
|
|
33580
|
-
|
|
33581
|
-
|
|
33582
|
-
|
|
33583
|
-
|
|
33584
|
-
|
|
33455
|
+
return r.prototype.getId = function() {
|
|
33456
|
+
return this._id;
|
|
33457
|
+
}, r.prototype.isPlaying = function() {
|
|
33458
|
+
return this._isPlaying;
|
|
33459
|
+
}, r.prototype.isPaused = function() {
|
|
33460
|
+
return this._isPaused;
|
|
33461
|
+
}, r.prototype.getDuration = function() {
|
|
33462
|
+
return this._duration;
|
|
33463
|
+
}, r.prototype.to = function(e, t) {
|
|
33464
|
+
if (t === void 0 && (t = 1e3), this._isPlaying)
|
|
33465
|
+
throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");
|
|
33466
|
+
return this._valuesEnd = e, this._propertiesAreSetUp = !1, this._duration = t < 0 ? 0 : t, this;
|
|
33467
|
+
}, r.prototype.duration = function(e) {
|
|
33468
|
+
return e === void 0 && (e = 1e3), this._duration = e < 0 ? 0 : e, this;
|
|
33469
|
+
}, r.prototype.dynamic = function(e) {
|
|
33470
|
+
return e === void 0 && (e = !1), this._isDynamic = e, this;
|
|
33471
|
+
}, r.prototype.start = function(e, t) {
|
|
33472
|
+
if (e === void 0 && (e = lo()), t === void 0 && (t = !1), this._isPlaying)
|
|
33473
|
+
return this;
|
|
33474
|
+
if (this._group && this._group.add(this), this._repeat = this._initialRepeat, this._reversed) {
|
|
33475
|
+
this._reversed = !1;
|
|
33476
|
+
for (var n in this._valuesStartRepeat)
|
|
33477
|
+
this._swapEndStartRepeatValues(n), this._valuesStart[n] = this._valuesStartRepeat[n];
|
|
33585
33478
|
}
|
|
33586
|
-
|
|
33587
|
-
|
|
33588
|
-
|
|
33479
|
+
if (this._isPlaying = !0, this._isPaused = !1, this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._isChainStopped = !1, this._startTime = e, this._startTime += this._delayTime, !this._propertiesAreSetUp || t) {
|
|
33480
|
+
if (this._propertiesAreSetUp = !0, !this._isDynamic) {
|
|
33481
|
+
var i = {};
|
|
33482
|
+
for (var s in this._valuesEnd)
|
|
33483
|
+
i[s] = this._valuesEnd[s];
|
|
33484
|
+
this._valuesEnd = i;
|
|
33485
|
+
}
|
|
33486
|
+
this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, t);
|
|
33487
|
+
}
|
|
33488
|
+
return this;
|
|
33489
|
+
}, r.prototype.startFromCurrentValues = function(e) {
|
|
33490
|
+
return this.start(e, !0);
|
|
33491
|
+
}, r.prototype._setupProperties = function(e, t, n, i, s) {
|
|
33492
|
+
for (var a in n) {
|
|
33493
|
+
var o = e[a], c = Array.isArray(o), l = c ? "array" : typeof o, h = !c && Array.isArray(n[a]);
|
|
33494
|
+
if (!(l === "undefined" || l === "function")) {
|
|
33495
|
+
if (h) {
|
|
33496
|
+
var u = n[a];
|
|
33497
|
+
if (u.length === 0)
|
|
33498
|
+
continue;
|
|
33499
|
+
for (var f = [o], d = 0, p = u.length; d < p; d += 1) {
|
|
33500
|
+
var b = this._handleRelativeValue(o, u[d]);
|
|
33501
|
+
if (isNaN(b)) {
|
|
33502
|
+
h = !1, console.warn("Found invalid interpolation list. Skipping.");
|
|
33503
|
+
break;
|
|
33504
|
+
}
|
|
33505
|
+
f.push(b);
|
|
33506
|
+
}
|
|
33507
|
+
h && (n[a] = f);
|
|
33508
|
+
}
|
|
33509
|
+
if ((l === "object" || c) && o && !h) {
|
|
33510
|
+
t[a] = c ? [] : {};
|
|
33511
|
+
var g = o;
|
|
33512
|
+
for (var A in g)
|
|
33513
|
+
t[a][A] = g[A];
|
|
33514
|
+
i[a] = c ? [] : {};
|
|
33515
|
+
var u = n[a];
|
|
33516
|
+
if (!this._isDynamic) {
|
|
33517
|
+
var m = {};
|
|
33518
|
+
for (var A in u)
|
|
33519
|
+
m[A] = u[A];
|
|
33520
|
+
n[a] = u = m;
|
|
33521
|
+
}
|
|
33522
|
+
this._setupProperties(g, t[a], u, i[a], s);
|
|
33523
|
+
} else
|
|
33524
|
+
(typeof t[a] > "u" || s) && (t[a] = o), c || (t[a] *= 1), h ? i[a] = n[a].slice().reverse() : i[a] = t[a] || 0;
|
|
33525
|
+
}
|
|
33526
|
+
}
|
|
33527
|
+
}, r.prototype.stop = function() {
|
|
33528
|
+
return this._isChainStopped || (this._isChainStopped = !0, this.stopChainedTweens()), this._isPlaying ? (this._group && this._group.remove(this), this._isPlaying = !1, this._isPaused = !1, this._onStopCallback && this._onStopCallback(this._object), this) : this;
|
|
33529
|
+
}, r.prototype.end = function() {
|
|
33530
|
+
return this._goToEnd = !0, this.update(1 / 0), this;
|
|
33531
|
+
}, r.prototype.pause = function(e) {
|
|
33532
|
+
return e === void 0 && (e = lo()), this._isPaused || !this._isPlaying ? this : (this._isPaused = !0, this._pauseStart = e, this._group && this._group.remove(this), this);
|
|
33533
|
+
}, r.prototype.resume = function(e) {
|
|
33534
|
+
return e === void 0 && (e = lo()), !this._isPaused || !this._isPlaying ? this : (this._isPaused = !1, this._startTime += e - this._pauseStart, this._pauseStart = 0, this._group && this._group.add(this), this);
|
|
33535
|
+
}, r.prototype.stopChainedTweens = function() {
|
|
33536
|
+
for (var e = 0, t = this._chainedTweens.length; e < t; e++)
|
|
33537
|
+
this._chainedTweens[e].stop();
|
|
33538
|
+
return this;
|
|
33539
|
+
}, r.prototype.group = function(e) {
|
|
33540
|
+
return e === void 0 && (e = Zf), this._group = e, this;
|
|
33541
|
+
}, r.prototype.delay = function(e) {
|
|
33542
|
+
return e === void 0 && (e = 0), this._delayTime = e, this;
|
|
33543
|
+
}, r.prototype.repeat = function(e) {
|
|
33544
|
+
return e === void 0 && (e = 0), this._initialRepeat = e, this._repeat = e, this;
|
|
33545
|
+
}, r.prototype.repeatDelay = function(e) {
|
|
33546
|
+
return this._repeatDelayTime = e, this;
|
|
33547
|
+
}, r.prototype.yoyo = function(e) {
|
|
33548
|
+
return e === void 0 && (e = !1), this._yoyo = e, this;
|
|
33549
|
+
}, r.prototype.easing = function(e) {
|
|
33550
|
+
return e === void 0 && (e = pa.Linear.None), this._easingFunction = e, this;
|
|
33551
|
+
}, r.prototype.interpolation = function(e) {
|
|
33552
|
+
return e === void 0 && (e = Jf.Linear), this._interpolationFunction = e, this;
|
|
33553
|
+
}, r.prototype.chain = function() {
|
|
33554
|
+
for (var e = [], t = 0; t < arguments.length; t++)
|
|
33555
|
+
e[t] = arguments[t];
|
|
33556
|
+
return this._chainedTweens = e, this;
|
|
33557
|
+
}, r.prototype.onStart = function(e) {
|
|
33558
|
+
return this._onStartCallback = e, this;
|
|
33559
|
+
}, r.prototype.onEveryStart = function(e) {
|
|
33560
|
+
return this._onEveryStartCallback = e, this;
|
|
33561
|
+
}, r.prototype.onUpdate = function(e) {
|
|
33562
|
+
return this._onUpdateCallback = e, this;
|
|
33563
|
+
}, r.prototype.onRepeat = function(e) {
|
|
33564
|
+
return this._onRepeatCallback = e, this;
|
|
33565
|
+
}, r.prototype.onComplete = function(e) {
|
|
33566
|
+
return this._onCompleteCallback = e, this;
|
|
33567
|
+
}, r.prototype.onStop = function(e) {
|
|
33568
|
+
return this._onStopCallback = e, this;
|
|
33569
|
+
}, r.prototype.update = function(e, t) {
|
|
33570
|
+
var n = this, i;
|
|
33571
|
+
if (e === void 0 && (e = lo()), t === void 0 && (t = !0), this._isPaused)
|
|
33572
|
+
return !0;
|
|
33573
|
+
var s, a = this._startTime + this._duration;
|
|
33574
|
+
if (!this._goToEnd && !this._isPlaying) {
|
|
33575
|
+
if (e > a)
|
|
33576
|
+
return !1;
|
|
33577
|
+
t && this.start(e, !0);
|
|
33578
|
+
}
|
|
33579
|
+
if (this._goToEnd = !1, e < this._startTime)
|
|
33580
|
+
return !0;
|
|
33581
|
+
this._onStartCallbackFired === !1 && (this._onStartCallback && this._onStartCallback(this._object), this._onStartCallbackFired = !0), this._onEveryStartCallbackFired === !1 && (this._onEveryStartCallback && this._onEveryStartCallback(this._object), this._onEveryStartCallbackFired = !0);
|
|
33582
|
+
var o = e - this._startTime, c = this._duration + ((i = this._repeatDelayTime) !== null && i !== void 0 ? i : this._delayTime), l = this._duration + this._repeat * c, h = function() {
|
|
33583
|
+
if (n._duration === 0 || o > l)
|
|
33584
|
+
return 1;
|
|
33585
|
+
var g = Math.trunc(o / c), A = o - g * c, m = Math.min(A / n._duration, 1);
|
|
33586
|
+
return m === 0 && o === n._duration ? 1 : m;
|
|
33587
|
+
}, u = h(), f = this._easingFunction(u);
|
|
33588
|
+
if (this._updateProperties(this._object, this._valuesStart, this._valuesEnd, f), this._onUpdateCallback && this._onUpdateCallback(this._object, u), this._duration === 0 || o >= this._duration)
|
|
33589
|
+
if (this._repeat > 0) {
|
|
33590
|
+
var d = Math.min(Math.trunc((o - this._duration) / c) + 1, this._repeat);
|
|
33591
|
+
isFinite(this._repeat) && (this._repeat -= d);
|
|
33592
|
+
for (s in this._valuesStartRepeat)
|
|
33593
|
+
!this._yoyo && typeof this._valuesEnd[s] == "string" && (this._valuesStartRepeat[s] = // eslint-disable-next-line
|
|
33594
|
+
// @ts-ignore FIXME?
|
|
33595
|
+
this._valuesStartRepeat[s] + parseFloat(this._valuesEnd[s])), this._yoyo && this._swapEndStartRepeatValues(s), this._valuesStart[s] = this._valuesStartRepeat[s];
|
|
33596
|
+
return this._yoyo && (this._reversed = !this._reversed), this._startTime += c * d, this._onRepeatCallback && this._onRepeatCallback(this._object), this._onEveryStartCallbackFired = !1, !0;
|
|
33597
|
+
} else {
|
|
33598
|
+
this._onCompleteCallback && this._onCompleteCallback(this._object);
|
|
33599
|
+
for (var p = 0, b = this._chainedTweens.length; p < b; p++)
|
|
33600
|
+
this._chainedTweens[p].start(this._startTime + this._duration, !1);
|
|
33601
|
+
return this._isPlaying = !1, !1;
|
|
33602
|
+
}
|
|
33603
|
+
return !0;
|
|
33604
|
+
}, r.prototype._updateProperties = function(e, t, n, i) {
|
|
33605
|
+
for (var s in n)
|
|
33606
|
+
if (t[s] !== void 0) {
|
|
33607
|
+
var a = t[s] || 0, o = n[s], c = Array.isArray(e[s]), l = Array.isArray(o), h = !c && l;
|
|
33608
|
+
h ? e[s] = this._interpolationFunction(o, i) : typeof o == "object" && o ? this._updateProperties(e[s], a, o, i) : (o = this._handleRelativeValue(a, o), typeof o == "number" && (e[s] = a + (o - a) * i));
|
|
33609
|
+
}
|
|
33610
|
+
}, r.prototype._handleRelativeValue = function(e, t) {
|
|
33611
|
+
return typeof t != "string" ? t : t.charAt(0) === "+" || t.charAt(0) === "-" ? e + parseFloat(t) : parseFloat(t);
|
|
33612
|
+
}, r.prototype._swapEndStartRepeatValues = function(e) {
|
|
33613
|
+
var t = this._valuesStartRepeat[e], n = this._valuesEnd[e];
|
|
33614
|
+
typeof n == "string" ? this._valuesStartRepeat[e] = this._valuesStartRepeat[e] + parseFloat(n) : this._valuesStartRepeat[e] = this._valuesEnd[e], this._valuesEnd[e] = t;
|
|
33615
|
+
}, r;
|
|
33616
|
+
})()
|
|
33617
|
+
);
|
|
33618
|
+
P0.nextId;
|
|
33619
|
+
var Mi = Zf;
|
|
33620
|
+
Mi.getAll.bind(Mi);
|
|
33621
|
+
Mi.removeAll.bind(Mi);
|
|
33622
|
+
Mi.add.bind(Mi);
|
|
33623
|
+
Mi.remove.bind(Mi);
|
|
33624
|
+
Mi.update.bind(Mi);
|
|
33625
|
+
var C1 = {
|
|
33626
|
+
Easing: pa,
|
|
33627
|
+
Tween: SC
|
|
33628
|
+
};
|
|
33629
|
+
function w1(r, e = !1) {
|
|
33630
|
+
const t = r[0].index !== null, n = new Set(Object.keys(r[0].attributes)), i = new Set(Object.keys(r[0].morphAttributes)), s = {}, a = {}, o = r[0].morphTargetsRelative, c = new Ve();
|
|
33631
|
+
let l = 0;
|
|
33632
|
+
for (let h = 0; h < r.length; ++h) {
|
|
33633
|
+
const u = r[h];
|
|
33634
|
+
let f = 0;
|
|
33635
|
+
if (t !== (u.index !== null))
|
|
33636
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
|
|
33637
|
+
for (const d in u.attributes) {
|
|
33638
|
+
if (!n.has(d))
|
|
33639
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + '. All geometries must have compatible attributes; make sure "' + d + '" attribute exists among all geometries, or in none of them.'), null;
|
|
33640
|
+
s[d] === void 0 && (s[d] = []), s[d].push(u.attributes[d]), f++;
|
|
33641
|
+
}
|
|
33642
|
+
if (f !== n.size)
|
|
33643
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". Make sure all geometries have the same number of attributes."), null;
|
|
33644
|
+
if (o !== u.morphTargetsRelative)
|
|
33645
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
|
|
33646
|
+
for (const d in u.morphAttributes) {
|
|
33647
|
+
if (!i.has(d))
|
|
33648
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". .morphAttributes must be consistent throughout all geometries."), null;
|
|
33649
|
+
a[d] === void 0 && (a[d] = []), a[d].push(u.morphAttributes[d]);
|
|
33650
|
+
}
|
|
33651
|
+
if (e) {
|
|
33652
|
+
let d;
|
|
33653
|
+
if (t)
|
|
33654
|
+
d = u.index.count;
|
|
33655
|
+
else if (u.attributes.position !== void 0)
|
|
33656
|
+
d = u.attributes.position.count;
|
|
33657
|
+
else
|
|
33658
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". The geometry must have either an index or a position attribute"), null;
|
|
33659
|
+
c.addGroup(l, d, h), l += d;
|
|
33660
|
+
}
|
|
33661
|
+
}
|
|
33662
|
+
if (t) {
|
|
33663
|
+
let h = 0;
|
|
33664
|
+
const u = [];
|
|
33665
|
+
for (let f = 0; f < r.length; ++f) {
|
|
33666
|
+
const d = r[f].index;
|
|
33667
|
+
for (let p = 0; p < d.count; ++p)
|
|
33668
|
+
u.push(d.getX(p) + h);
|
|
33669
|
+
h += r[f].attributes.position.count;
|
|
33670
|
+
}
|
|
33671
|
+
c.setIndex(u);
|
|
33672
|
+
}
|
|
33673
|
+
for (const h in s) {
|
|
33674
|
+
const u = VA(s[h]);
|
|
33675
|
+
if (!u)
|
|
33676
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " attribute."), null;
|
|
33677
|
+
c.setAttribute(h, u);
|
|
33678
|
+
}
|
|
33679
|
+
for (const h in a) {
|
|
33680
|
+
const u = a[h][0].length;
|
|
33681
|
+
if (u === 0) break;
|
|
33682
|
+
c.morphAttributes = c.morphAttributes || {}, c.morphAttributes[h] = [];
|
|
33683
|
+
for (let f = 0; f < u; ++f) {
|
|
33684
|
+
const d = [];
|
|
33685
|
+
for (let b = 0; b < a[h].length; ++b)
|
|
33686
|
+
d.push(a[h][b][f]);
|
|
33687
|
+
const p = VA(d);
|
|
33688
|
+
if (!p)
|
|
33689
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " morphAttribute."), null;
|
|
33690
|
+
c.morphAttributes[h].push(p);
|
|
33691
|
+
}
|
|
33692
|
+
}
|
|
33693
|
+
return c;
|
|
33694
|
+
}
|
|
33695
|
+
function VA(r) {
|
|
33696
|
+
let e, t, n, i = -1, s = 0;
|
|
33697
|
+
for (let l = 0; l < r.length; ++l) {
|
|
33698
|
+
const h = r[l];
|
|
33699
|
+
if (e === void 0 && (e = h.array.constructor), e !== h.array.constructor)
|
|
33700
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
|
|
33701
|
+
if (t === void 0 && (t = h.itemSize), t !== h.itemSize)
|
|
33702
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
|
|
33703
|
+
if (n === void 0 && (n = h.normalized), n !== h.normalized)
|
|
33704
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
|
|
33705
|
+
if (i === -1 && (i = h.gpuType), i !== h.gpuType)
|
|
33706
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
|
|
33707
|
+
s += h.count * t;
|
|
33708
|
+
}
|
|
33709
|
+
const a = new e(s), o = new at(a, t, n);
|
|
33710
|
+
let c = 0;
|
|
33711
|
+
for (let l = 0; l < r.length; ++l) {
|
|
33712
|
+
const h = r[l];
|
|
33713
|
+
if (h.isInterleavedBufferAttribute) {
|
|
33714
|
+
const u = c / t;
|
|
33715
|
+
for (let f = 0, d = h.count; f < d; f++)
|
|
33716
|
+
for (let p = 0; p < t; p++) {
|
|
33717
|
+
const b = h.getComponent(f, p);
|
|
33718
|
+
o.setComponent(f + u, p, b);
|
|
33719
|
+
}
|
|
33720
|
+
} else
|
|
33721
|
+
a.set(h.array, c);
|
|
33722
|
+
c += h.count * t;
|
|
33723
|
+
}
|
|
33724
|
+
return i !== void 0 && (o.gpuType = i), o;
|
|
33725
|
+
}
|
|
33726
|
+
function WA(r, e) {
|
|
33727
|
+
if (e === bm)
|
|
33728
|
+
return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), r;
|
|
33729
|
+
if (e === ch || e === gd) {
|
|
33730
|
+
let t = r.getIndex();
|
|
33731
|
+
if (t === null) {
|
|
33732
|
+
const a = [], o = r.getAttribute("position");
|
|
33733
|
+
if (o !== void 0) {
|
|
33734
|
+
for (let c = 0; c < o.count; c++)
|
|
33735
|
+
a.push(c);
|
|
33736
|
+
r.setIndex(a), t = r.getIndex();
|
|
33737
|
+
} else
|
|
33738
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), r;
|
|
33739
|
+
}
|
|
33740
|
+
const n = t.count - 2, i = [];
|
|
33741
|
+
if (e === ch)
|
|
33742
|
+
for (let a = 1; a <= n; a++)
|
|
33743
|
+
i.push(t.getX(0)), i.push(t.getX(a)), i.push(t.getX(a + 1));
|
|
33744
|
+
else
|
|
33745
|
+
for (let a = 0; a < n; a++)
|
|
33746
|
+
a % 2 === 0 ? (i.push(t.getX(a)), i.push(t.getX(a + 1)), i.push(t.getX(a + 2))) : (i.push(t.getX(a + 2)), i.push(t.getX(a + 1)), i.push(t.getX(a)));
|
|
33747
|
+
i.length / 3 !== n && console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");
|
|
33748
|
+
const s = r.clone();
|
|
33749
|
+
return s.setIndex(i), s.clearGroups(), s;
|
|
33750
|
+
} else
|
|
33751
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", e), r;
|
|
33752
|
+
}
|
|
33753
|
+
function IC(r) {
|
|
33754
|
+
const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = r.clone();
|
|
33755
|
+
return L0(r, n, function(i, s) {
|
|
33756
|
+
e.set(s, i), t.set(i, s);
|
|
33757
|
+
}), n.traverse(function(i) {
|
|
33758
|
+
if (!i.isSkinnedMesh) return;
|
|
33759
|
+
const s = i, a = e.get(i), o = a.skeleton.bones;
|
|
33760
|
+
s.skeleton = a.skeleton.clone(), s.bindMatrix.copy(a.bindMatrix), s.skeleton.bones = o.map(function(c) {
|
|
33761
|
+
return t.get(c);
|
|
33762
|
+
}), s.bind(s.skeleton, s.bindMatrix);
|
|
33763
|
+
}), n;
|
|
33764
|
+
}
|
|
33765
|
+
function L0(r, e, t) {
|
|
33766
|
+
t(r, e);
|
|
33767
|
+
for (let n = 0; n < r.children.length; n++)
|
|
33768
|
+
L0(r.children[n], e.children[n], t);
|
|
33769
|
+
}
|
|
33770
|
+
class T1 extends ln {
|
|
33771
|
+
/**
|
|
33772
|
+
* Constructs a new glTF loader.
|
|
33773
|
+
*
|
|
33774
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
33775
|
+
*/
|
|
33776
|
+
constructor(e) {
|
|
33777
|
+
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
|
|
33778
|
+
return new BC(t);
|
|
33779
|
+
}), this.register(function(t) {
|
|
33780
|
+
return new RC(t);
|
|
33781
|
+
}), this.register(function(t) {
|
|
33782
|
+
return new QC(t);
|
|
33783
|
+
}), this.register(function(t) {
|
|
33784
|
+
return new GC(t);
|
|
33785
|
+
}), this.register(function(t) {
|
|
33786
|
+
return new zC(t);
|
|
33787
|
+
}), this.register(function(t) {
|
|
33788
|
+
return new PC(t);
|
|
33789
|
+
}), this.register(function(t) {
|
|
33790
|
+
return new LC(t);
|
|
33791
|
+
}), this.register(function(t) {
|
|
33792
|
+
return new FC(t);
|
|
33793
|
+
}), this.register(function(t) {
|
|
33794
|
+
return new NC(t);
|
|
33795
|
+
}), this.register(function(t) {
|
|
33796
|
+
return new TC(t);
|
|
33797
|
+
}), this.register(function(t) {
|
|
33798
|
+
return new UC(t);
|
|
33799
|
+
}), this.register(function(t) {
|
|
33800
|
+
return new DC(t);
|
|
33801
|
+
}), this.register(function(t) {
|
|
33802
|
+
return new kC(t);
|
|
33803
|
+
}), this.register(function(t) {
|
|
33804
|
+
return new OC(t);
|
|
33805
|
+
}), this.register(function(t) {
|
|
33806
|
+
return new CC(t);
|
|
33807
|
+
}), this.register(function(t) {
|
|
33808
|
+
return new qA(t, st.EXT_MESHOPT_COMPRESSION);
|
|
33809
|
+
}), this.register(function(t) {
|
|
33810
|
+
return new qA(t, st.KHR_MESHOPT_COMPRESSION);
|
|
33811
|
+
}), this.register(function(t) {
|
|
33812
|
+
return new HC(t);
|
|
33813
|
+
});
|
|
33814
|
+
}
|
|
33815
|
+
/**
|
|
33816
|
+
* Starts loading from the given URL and passes the loaded glTF asset
|
|
33817
|
+
* to the `onLoad()` callback.
|
|
33818
|
+
*
|
|
33819
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
33820
|
+
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33821
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
33822
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33823
|
+
*/
|
|
33824
|
+
load(e, t, n, i) {
|
|
33825
|
+
const s = this;
|
|
33826
|
+
let a;
|
|
33827
|
+
if (this.resourcePath !== "")
|
|
33828
|
+
a = this.resourcePath;
|
|
33829
|
+
else if (this.path !== "") {
|
|
33830
|
+
const l = _s.extractUrlBase(e);
|
|
33831
|
+
a = _s.resolveURL(l, this.path);
|
|
33832
|
+
} else
|
|
33833
|
+
a = _s.extractUrlBase(e);
|
|
33834
|
+
this.manager.itemStart(e);
|
|
33835
|
+
const o = function(l) {
|
|
33836
|
+
i ? i(l) : console.error(l), s.manager.itemError(e), s.manager.itemEnd(e);
|
|
33837
|
+
}, c = new bn(this.manager);
|
|
33838
|
+
c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(e, function(l) {
|
|
33839
|
+
try {
|
|
33840
|
+
s.parse(l, a, function(h) {
|
|
33841
|
+
t(h), s.manager.itemEnd(e);
|
|
33842
|
+
}, o);
|
|
33843
|
+
} catch (h) {
|
|
33844
|
+
o(h);
|
|
33845
|
+
}
|
|
33846
|
+
}, n, o);
|
|
33847
|
+
}
|
|
33848
|
+
/**
|
|
33849
|
+
* Sets the given Draco loader to this loader. Required for decoding assets
|
|
33850
|
+
* compressed with the `KHR_draco_mesh_compression` extension.
|
|
33851
|
+
*
|
|
33852
|
+
* @param {DRACOLoader} dracoLoader - The Draco loader to set.
|
|
33853
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33854
|
+
*/
|
|
33855
|
+
setDRACOLoader(e) {
|
|
33856
|
+
return this.dracoLoader = e, this;
|
|
33857
|
+
}
|
|
33858
|
+
/**
|
|
33859
|
+
* Sets the given KTX2 loader to this loader. Required for loading KTX2
|
|
33860
|
+
* compressed textures.
|
|
33861
|
+
*
|
|
33862
|
+
* @param {KTX2Loader} ktx2Loader - The KTX2 loader to set.
|
|
33863
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33864
|
+
*/
|
|
33865
|
+
setKTX2Loader(e) {
|
|
33866
|
+
return this.ktx2Loader = e, this;
|
|
33867
|
+
}
|
|
33868
|
+
/**
|
|
33869
|
+
* Sets the given meshopt decoder. Required for decoding assets
|
|
33870
|
+
* compressed with the `EXT_meshopt_compression` extension.
|
|
33871
|
+
*
|
|
33872
|
+
* @param {Object} meshoptDecoder - The meshopt decoder to set.
|
|
33873
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33874
|
+
*/
|
|
33875
|
+
setMeshoptDecoder(e) {
|
|
33876
|
+
return this.meshoptDecoder = e, this;
|
|
33877
|
+
}
|
|
33878
|
+
/**
|
|
33879
|
+
* Registers a plugin callback. This API is internally used to implement the various
|
|
33880
|
+
* glTF extensions but can also used by third-party code to add additional logic
|
|
33881
|
+
* to the loader.
|
|
33882
|
+
*
|
|
33883
|
+
* @param {function(parser:GLTFParser)} callback - The callback function to register.
|
|
33884
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33885
|
+
*/
|
|
33886
|
+
register(e) {
|
|
33887
|
+
return this.pluginCallbacks.indexOf(e) === -1 && this.pluginCallbacks.push(e), this;
|
|
33888
|
+
}
|
|
33889
|
+
/**
|
|
33890
|
+
* Unregisters a plugin callback.
|
|
33891
|
+
*
|
|
33892
|
+
* @param {Function} callback - The callback function to unregister.
|
|
33893
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33894
|
+
*/
|
|
33895
|
+
unregister(e) {
|
|
33896
|
+
return this.pluginCallbacks.indexOf(e) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e), 1), this;
|
|
33897
|
+
}
|
|
33898
|
+
/**
|
|
33899
|
+
* Parses the given glTF data and returns the resulting group.
|
|
33900
|
+
*
|
|
33901
|
+
* @param {string|ArrayBuffer} data - The raw glTF data.
|
|
33902
|
+
* @param {string} path - The URL base path.
|
|
33903
|
+
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33904
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33905
|
+
*/
|
|
33906
|
+
parse(e, t, n, i) {
|
|
33907
|
+
let s;
|
|
33908
|
+
const a = {}, o = {}, c = new TextDecoder();
|
|
33909
|
+
if (typeof e == "string")
|
|
33910
|
+
s = JSON.parse(e);
|
|
33911
|
+
else if (e instanceof ArrayBuffer)
|
|
33912
|
+
if (c.decode(new Uint8Array(e, 0, 4)) === F0) {
|
|
33913
|
+
try {
|
|
33914
|
+
a[st.KHR_BINARY_GLTF] = new VC(e);
|
|
33915
|
+
} catch (u) {
|
|
33916
|
+
i && i(u);
|
|
33917
|
+
return;
|
|
33918
|
+
}
|
|
33919
|
+
s = JSON.parse(a[st.KHR_BINARY_GLTF].content);
|
|
33920
|
+
} else
|
|
33921
|
+
s = JSON.parse(c.decode(e));
|
|
33922
|
+
else
|
|
33923
|
+
s = e;
|
|
33924
|
+
if (s.asset === void 0 || s.asset.version[0] < 2) {
|
|
33925
|
+
i && i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
33926
|
+
return;
|
|
33927
|
+
}
|
|
33928
|
+
const l = new iw(s, {
|
|
33929
|
+
path: t || this.resourcePath || "",
|
|
33930
|
+
crossOrigin: this.crossOrigin,
|
|
33931
|
+
requestHeader: this.requestHeader,
|
|
33932
|
+
manager: this.manager,
|
|
33933
|
+
ktx2Loader: this.ktx2Loader,
|
|
33934
|
+
meshoptDecoder: this.meshoptDecoder
|
|
33935
|
+
});
|
|
33936
|
+
l.fileLoader.setRequestHeader(this.requestHeader);
|
|
33937
|
+
for (let h = 0; h < this.pluginCallbacks.length; h++) {
|
|
33938
|
+
const u = this.pluginCallbacks[h](l);
|
|
33939
|
+
u.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), o[u.name] = u, a[u.name] = !0;
|
|
33940
|
+
}
|
|
33941
|
+
if (s.extensionsUsed)
|
|
33942
|
+
for (let h = 0; h < s.extensionsUsed.length; ++h) {
|
|
33943
|
+
const u = s.extensionsUsed[h], f = s.extensionsRequired || [];
|
|
33944
|
+
switch (u) {
|
|
33945
|
+
case st.KHR_MATERIALS_UNLIT:
|
|
33946
|
+
a[u] = new wC();
|
|
33947
|
+
break;
|
|
33948
|
+
case st.KHR_DRACO_MESH_COMPRESSION:
|
|
33949
|
+
a[u] = new WC(s, this.dracoLoader);
|
|
33950
|
+
break;
|
|
33951
|
+
case st.KHR_TEXTURE_TRANSFORM:
|
|
33952
|
+
a[u] = new qC();
|
|
33953
|
+
break;
|
|
33954
|
+
case st.KHR_MESH_QUANTIZATION:
|
|
33955
|
+
a[u] = new XC();
|
|
33956
|
+
break;
|
|
33957
|
+
default:
|
|
33958
|
+
f.indexOf(u) >= 0 && o[u] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + u + '".');
|
|
33959
|
+
}
|
|
33960
|
+
}
|
|
33961
|
+
l.setExtensions(a), l.setPlugins(o), l.parse(n, i);
|
|
33962
|
+
}
|
|
33963
|
+
/**
|
|
33589
33964
|
* Async version of {@link GLTFLoader#parse}.
|
|
33590
33965
|
*
|
|
33591
33966
|
* @async
|
|
@@ -33600,7 +33975,7 @@ class w1 extends ln {
|
|
|
33600
33975
|
});
|
|
33601
33976
|
}
|
|
33602
33977
|
}
|
|
33603
|
-
function
|
|
33978
|
+
function MC() {
|
|
33604
33979
|
let r = {};
|
|
33605
33980
|
return {
|
|
33606
33981
|
get: function(e) {
|
|
@@ -33646,7 +34021,7 @@ const st = {
|
|
|
33646
34021
|
KHR_MESHOPT_COMPRESSION: "KHR_meshopt_compression",
|
|
33647
34022
|
EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing"
|
|
33648
34023
|
};
|
|
33649
|
-
class
|
|
34024
|
+
class CC {
|
|
33650
34025
|
constructor(e) {
|
|
33651
34026
|
this.parser = e, this.name = st.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
33652
34027
|
}
|
|
@@ -33692,7 +34067,7 @@ class IC {
|
|
|
33692
34067
|
});
|
|
33693
34068
|
}
|
|
33694
34069
|
}
|
|
33695
|
-
class
|
|
34070
|
+
class wC {
|
|
33696
34071
|
constructor() {
|
|
33697
34072
|
this.name = st.KHR_MATERIALS_UNLIT;
|
|
33698
34073
|
}
|
|
@@ -33713,7 +34088,7 @@ class MC {
|
|
|
33713
34088
|
return Promise.all(i);
|
|
33714
34089
|
}
|
|
33715
34090
|
}
|
|
33716
|
-
class
|
|
34091
|
+
class TC {
|
|
33717
34092
|
constructor(e) {
|
|
33718
34093
|
this.parser = e, this.name = st.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
33719
34094
|
}
|
|
@@ -33722,7 +34097,7 @@ class CC {
|
|
|
33722
34097
|
return n === null || n.emissiveStrength !== void 0 && (t.emissiveIntensity = n.emissiveStrength), Promise.resolve();
|
|
33723
34098
|
}
|
|
33724
34099
|
}
|
|
33725
|
-
class
|
|
34100
|
+
class BC {
|
|
33726
34101
|
constructor(e) {
|
|
33727
34102
|
this.parser = e, this.name = st.KHR_MATERIALS_CLEARCOAT;
|
|
33728
34103
|
}
|
|
@@ -33740,7 +34115,7 @@ class wC {
|
|
|
33740
34115
|
return Promise.all(i);
|
|
33741
34116
|
}
|
|
33742
34117
|
}
|
|
33743
|
-
class
|
|
34118
|
+
class RC {
|
|
33744
34119
|
constructor(e) {
|
|
33745
34120
|
this.parser = e, this.name = st.KHR_MATERIALS_DISPERSION;
|
|
33746
34121
|
}
|
|
@@ -33752,7 +34127,7 @@ class TC {
|
|
|
33752
34127
|
return n === null || (t.dispersion = n.dispersion !== void 0 ? n.dispersion : 0), Promise.resolve();
|
|
33753
34128
|
}
|
|
33754
34129
|
}
|
|
33755
|
-
class
|
|
34130
|
+
class DC {
|
|
33756
34131
|
constructor(e) {
|
|
33757
34132
|
this.parser = e, this.name = st.KHR_MATERIALS_IRIDESCENCE;
|
|
33758
34133
|
}
|
|
@@ -33766,7 +34141,7 @@ class BC {
|
|
|
33766
34141
|
return n.iridescenceFactor !== void 0 && (t.iridescence = n.iridescenceFactor), n.iridescenceTexture !== void 0 && i.push(this.parser.assignTexture(t, "iridescenceMap", n.iridescenceTexture)), n.iridescenceIor !== void 0 && (t.iridescenceIOR = n.iridescenceIor), t.iridescenceThicknessRange === void 0 && (t.iridescenceThicknessRange = [100, 400]), n.iridescenceThicknessMinimum !== void 0 && (t.iridescenceThicknessRange[0] = n.iridescenceThicknessMinimum), n.iridescenceThicknessMaximum !== void 0 && (t.iridescenceThicknessRange[1] = n.iridescenceThicknessMaximum), n.iridescenceThicknessTexture !== void 0 && i.push(this.parser.assignTexture(t, "iridescenceThicknessMap", n.iridescenceThicknessTexture)), Promise.all(i);
|
|
33767
34142
|
}
|
|
33768
34143
|
}
|
|
33769
|
-
class
|
|
34144
|
+
class PC {
|
|
33770
34145
|
constructor(e) {
|
|
33771
34146
|
this.parser = e, this.name = st.KHR_MATERIALS_SHEEN;
|
|
33772
34147
|
}
|
|
@@ -33784,7 +34159,7 @@ class RC {
|
|
|
33784
34159
|
return n.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = n.sheenRoughnessFactor), n.sheenColorTexture !== void 0 && i.push(this.parser.assignTexture(t, "sheenColorMap", n.sheenColorTexture, wt)), n.sheenRoughnessTexture !== void 0 && i.push(this.parser.assignTexture(t, "sheenRoughnessMap", n.sheenRoughnessTexture)), Promise.all(i);
|
|
33785
34160
|
}
|
|
33786
34161
|
}
|
|
33787
|
-
class
|
|
34162
|
+
class LC {
|
|
33788
34163
|
constructor(e) {
|
|
33789
34164
|
this.parser = e, this.name = st.KHR_MATERIALS_TRANSMISSION;
|
|
33790
34165
|
}
|
|
@@ -33798,7 +34173,7 @@ class DC {
|
|
|
33798
34173
|
return n.transmissionFactor !== void 0 && (t.transmission = n.transmissionFactor), n.transmissionTexture !== void 0 && i.push(this.parser.assignTexture(t, "transmissionMap", n.transmissionTexture)), Promise.all(i);
|
|
33799
34174
|
}
|
|
33800
34175
|
}
|
|
33801
|
-
class
|
|
34176
|
+
class FC {
|
|
33802
34177
|
constructor(e) {
|
|
33803
34178
|
this.parser = e, this.name = st.KHR_MATERIALS_VOLUME;
|
|
33804
34179
|
}
|
|
@@ -33814,7 +34189,7 @@ class PC {
|
|
|
33814
34189
|
return t.attenuationColor = new Ae().setRGB(s[0], s[1], s[2], Jt), Promise.all(i);
|
|
33815
34190
|
}
|
|
33816
34191
|
}
|
|
33817
|
-
class
|
|
34192
|
+
class NC {
|
|
33818
34193
|
constructor(e) {
|
|
33819
34194
|
this.parser = e, this.name = st.KHR_MATERIALS_IOR;
|
|
33820
34195
|
}
|
|
@@ -33826,7 +34201,7 @@ class LC {
|
|
|
33826
34201
|
return n === null || (t.ior = n.ior !== void 0 ? n.ior : 1.5), Promise.resolve();
|
|
33827
34202
|
}
|
|
33828
34203
|
}
|
|
33829
|
-
class
|
|
34204
|
+
class UC {
|
|
33830
34205
|
constructor(e) {
|
|
33831
34206
|
this.parser = e, this.name = st.KHR_MATERIALS_SPECULAR;
|
|
33832
34207
|
}
|
|
@@ -33842,7 +34217,7 @@ class FC {
|
|
|
33842
34217
|
return t.specularColor = new Ae().setRGB(s[0], s[1], s[2], Jt), n.specularColorTexture !== void 0 && i.push(this.parser.assignTexture(t, "specularColorMap", n.specularColorTexture, wt)), Promise.all(i);
|
|
33843
34218
|
}
|
|
33844
34219
|
}
|
|
33845
|
-
class
|
|
34220
|
+
class OC {
|
|
33846
34221
|
constructor(e) {
|
|
33847
34222
|
this.parser = e, this.name = st.EXT_MATERIALS_BUMP;
|
|
33848
34223
|
}
|
|
@@ -33856,7 +34231,7 @@ class NC {
|
|
|
33856
34231
|
return t.bumpScale = n.bumpFactor !== void 0 ? n.bumpFactor : 1, n.bumpTexture !== void 0 && i.push(this.parser.assignTexture(t, "bumpMap", n.bumpTexture)), Promise.all(i);
|
|
33857
34232
|
}
|
|
33858
34233
|
}
|
|
33859
|
-
class
|
|
34234
|
+
class kC {
|
|
33860
34235
|
constructor(e) {
|
|
33861
34236
|
this.parser = e, this.name = st.KHR_MATERIALS_ANISOTROPY;
|
|
33862
34237
|
}
|
|
@@ -33870,7 +34245,7 @@ class UC {
|
|
|
33870
34245
|
return n.anisotropyStrength !== void 0 && (t.anisotropy = n.anisotropyStrength), n.anisotropyRotation !== void 0 && (t.anisotropyRotation = n.anisotropyRotation), n.anisotropyTexture !== void 0 && i.push(this.parser.assignTexture(t, "anisotropyMap", n.anisotropyTexture)), Promise.all(i);
|
|
33871
34246
|
}
|
|
33872
34247
|
}
|
|
33873
|
-
class
|
|
34248
|
+
class QC {
|
|
33874
34249
|
constructor(e) {
|
|
33875
34250
|
this.parser = e, this.name = st.KHR_TEXTURE_BASISU;
|
|
33876
34251
|
}
|
|
@@ -33887,7 +34262,7 @@ class OC {
|
|
|
33887
34262
|
return t.loadTextureImage(e, s.source, a);
|
|
33888
34263
|
}
|
|
33889
34264
|
}
|
|
33890
|
-
class
|
|
34265
|
+
class GC {
|
|
33891
34266
|
constructor(e) {
|
|
33892
34267
|
this.parser = e, this.name = st.EXT_TEXTURE_WEBP;
|
|
33893
34268
|
}
|
|
@@ -33904,7 +34279,7 @@ class kC {
|
|
|
33904
34279
|
return n.loadTextureImage(e, a.source, c);
|
|
33905
34280
|
}
|
|
33906
34281
|
}
|
|
33907
|
-
class
|
|
34282
|
+
class zC {
|
|
33908
34283
|
constructor(e) {
|
|
33909
34284
|
this.parser = e, this.name = st.EXT_TEXTURE_AVIF;
|
|
33910
34285
|
}
|
|
@@ -33947,7 +34322,7 @@ class qA {
|
|
|
33947
34322
|
return null;
|
|
33948
34323
|
}
|
|
33949
34324
|
}
|
|
33950
|
-
class
|
|
34325
|
+
class HC {
|
|
33951
34326
|
constructor(e) {
|
|
33952
34327
|
this.name = st.EXT_MESH_GPU_INSTANCING, this.parser = e;
|
|
33953
34328
|
}
|
|
@@ -33979,8 +34354,8 @@ class GC {
|
|
|
33979
34354
|
}));
|
|
33980
34355
|
}
|
|
33981
34356
|
}
|
|
33982
|
-
const
|
|
33983
|
-
class
|
|
34357
|
+
const F0 = "glTF", Xa = 12, XA = { JSON: 1313821514, BIN: 5130562 };
|
|
34358
|
+
class VC {
|
|
33984
34359
|
constructor(e) {
|
|
33985
34360
|
this.name = st.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
33986
34361
|
const t = new DataView(e, 0, Xa), n = new TextDecoder();
|
|
@@ -33988,7 +34363,7 @@ class zC {
|
|
|
33988
34363
|
magic: n.decode(new Uint8Array(e.slice(0, 4))),
|
|
33989
34364
|
version: t.getUint32(4, !0),
|
|
33990
34365
|
length: t.getUint32(8, !0)
|
|
33991
|
-
}, this.header.magic !==
|
|
34366
|
+
}, this.header.magic !== F0)
|
|
33992
34367
|
throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
|
|
33993
34368
|
if (this.header.version < 2)
|
|
33994
34369
|
throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
|
|
@@ -34011,7 +34386,7 @@ class zC {
|
|
|
34011
34386
|
throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
34012
34387
|
}
|
|
34013
34388
|
}
|
|
34014
|
-
class
|
|
34389
|
+
class WC {
|
|
34015
34390
|
constructor(e, t) {
|
|
34016
34391
|
if (!t)
|
|
34017
34392
|
throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
@@ -34020,13 +34395,13 @@ class HC {
|
|
|
34020
34395
|
decodePrimitive(e, t) {
|
|
34021
34396
|
const n = this.json, i = this.dracoLoader, s = e.extensions[this.name].bufferView, a = e.extensions[this.name].attributes, o = {}, c = {}, l = {};
|
|
34022
34397
|
for (const h in a) {
|
|
34023
|
-
const u =
|
|
34398
|
+
const u = $f[h] || h.toLowerCase();
|
|
34024
34399
|
o[u] = a[h];
|
|
34025
34400
|
}
|
|
34026
34401
|
for (const h in e.attributes) {
|
|
34027
|
-
const u =
|
|
34402
|
+
const u = $f[h] || h.toLowerCase();
|
|
34028
34403
|
if (a[h] !== void 0) {
|
|
34029
|
-
const f = n.accessors[e.attributes[h]], d =
|
|
34404
|
+
const f = n.accessors[e.attributes[h]], d = Aa[f.componentType];
|
|
34030
34405
|
l[u] = d.name, c[u] = f.normalized === !0;
|
|
34031
34406
|
}
|
|
34032
34407
|
}
|
|
@@ -34043,7 +34418,7 @@ class HC {
|
|
|
34043
34418
|
});
|
|
34044
34419
|
}
|
|
34045
34420
|
}
|
|
34046
|
-
class
|
|
34421
|
+
class qC {
|
|
34047
34422
|
constructor() {
|
|
34048
34423
|
this.name = st.KHR_TEXTURE_TRANSFORM;
|
|
34049
34424
|
}
|
|
@@ -34051,12 +34426,12 @@ class VC {
|
|
|
34051
34426
|
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;
|
|
34052
34427
|
}
|
|
34053
34428
|
}
|
|
34054
|
-
class
|
|
34429
|
+
class XC {
|
|
34055
34430
|
constructor() {
|
|
34056
34431
|
this.name = st.KHR_MESH_QUANTIZATION;
|
|
34057
34432
|
}
|
|
34058
34433
|
}
|
|
34059
|
-
class
|
|
34434
|
+
class N0 extends Ir {
|
|
34060
34435
|
constructor(e, t, n, i) {
|
|
34061
34436
|
super(e, t, n, i);
|
|
34062
34437
|
}
|
|
@@ -34075,11 +34450,11 @@ class F0 extends Ir {
|
|
|
34075
34450
|
return s;
|
|
34076
34451
|
}
|
|
34077
34452
|
}
|
|
34078
|
-
const
|
|
34079
|
-
class
|
|
34453
|
+
const YC = new _t();
|
|
34454
|
+
class jC extends N0 {
|
|
34080
34455
|
interpolate_(e, t, n, i) {
|
|
34081
34456
|
const s = super.interpolate_(e, t, n, i);
|
|
34082
|
-
return
|
|
34457
|
+
return YC.fromArray(s).normalize().toArray(s), s;
|
|
34083
34458
|
}
|
|
34084
34459
|
}
|
|
34085
34460
|
const qn = {
|
|
@@ -34090,7 +34465,7 @@ const qn = {
|
|
|
34090
34465
|
TRIANGLES: 4,
|
|
34091
34466
|
TRIANGLE_STRIP: 5,
|
|
34092
34467
|
TRIANGLE_FAN: 6
|
|
34093
|
-
},
|
|
34468
|
+
}, Aa = {
|
|
34094
34469
|
5120: Int8Array,
|
|
34095
34470
|
5121: Uint8Array,
|
|
34096
34471
|
5122: Int16Array,
|
|
@@ -34116,7 +34491,7 @@ const qn = {
|
|
|
34116
34491
|
MAT2: 4,
|
|
34117
34492
|
MAT3: 9,
|
|
34118
34493
|
MAT4: 16
|
|
34119
|
-
},
|
|
34494
|
+
}, $f = {
|
|
34120
34495
|
POSITION: "position",
|
|
34121
34496
|
NORMAL: "normal",
|
|
34122
34497
|
TANGENT: "tangent",
|
|
@@ -34132,7 +34507,7 @@ const qn = {
|
|
|
34132
34507
|
translation: "position",
|
|
34133
34508
|
rotation: "quaternion",
|
|
34134
34509
|
weights: "morphTargetInfluences"
|
|
34135
|
-
},
|
|
34510
|
+
}, KC = {
|
|
34136
34511
|
CUBICSPLINE: void 0,
|
|
34137
34512
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
34138
34513
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
@@ -34143,7 +34518,7 @@ const qn = {
|
|
|
34143
34518
|
MASK: "MASK",
|
|
34144
34519
|
BLEND: "BLEND"
|
|
34145
34520
|
};
|
|
34146
|
-
function
|
|
34521
|
+
function JC(r) {
|
|
34147
34522
|
return r.DefaultMaterial === void 0 && (r.DefaultMaterial = new ic({
|
|
34148
34523
|
color: 16777215,
|
|
34149
34524
|
emissive: 0,
|
|
@@ -34161,7 +34536,7 @@ function Ws(r, e, t) {
|
|
|
34161
34536
|
function xi(r, e) {
|
|
34162
34537
|
e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(r.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
|
|
34163
34538
|
}
|
|
34164
|
-
function
|
|
34539
|
+
function ZC(r, e, t) {
|
|
34165
34540
|
let n = !1, i = !1, s = !1;
|
|
34166
34541
|
for (let l = 0, h = e.length; l < h; l++) {
|
|
34167
34542
|
const u = e[l];
|
|
@@ -34193,7 +34568,7 @@ function KC(r, e, t) {
|
|
|
34193
34568
|
return n && (r.morphAttributes.position = h), i && (r.morphAttributes.normal = u), s && (r.morphAttributes.color = f), r.morphTargetsRelative = !0, r;
|
|
34194
34569
|
});
|
|
34195
34570
|
}
|
|
34196
|
-
function
|
|
34571
|
+
function $C(r, e) {
|
|
34197
34572
|
if (r.updateMorphTargets(), e.weights !== void 0)
|
|
34198
34573
|
for (let t = 0, n = e.weights.length; t < n; t++)
|
|
34199
34574
|
r.morphTargetInfluences[t] = e.weights[t];
|
|
@@ -34207,7 +34582,7 @@ function JC(r, e) {
|
|
|
34207
34582
|
console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
34208
34583
|
}
|
|
34209
34584
|
}
|
|
34210
|
-
function
|
|
34585
|
+
function ew(r) {
|
|
34211
34586
|
let e;
|
|
34212
34587
|
const t = r.extensions && r.extensions[st.KHR_DRACO_MESH_COMPRESSION];
|
|
34213
34588
|
if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" + $u(t.attributes) : e = r.indices + ":" + $u(r.attributes) + ":" + r.mode, r.targets !== void 0)
|
|
@@ -34222,7 +34597,7 @@ function $u(r) {
|
|
|
34222
34597
|
e += t[n] + ":" + r[t[n]] + ";";
|
|
34223
34598
|
return e;
|
|
34224
34599
|
}
|
|
34225
|
-
function
|
|
34600
|
+
function ed(r) {
|
|
34226
34601
|
switch (r) {
|
|
34227
34602
|
case Int8Array:
|
|
34228
34603
|
return 1 / 127;
|
|
@@ -34236,13 +34611,13 @@ function Zf(r) {
|
|
|
34236
34611
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
34237
34612
|
}
|
|
34238
34613
|
}
|
|
34239
|
-
function
|
|
34614
|
+
function tw(r) {
|
|
34240
34615
|
return r.search(/\.jpe?g($|\?)/i) > 0 || r.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : r.search(/\.webp($|\?)/i) > 0 || r.search(/^data\:image\/webp/) === 0 ? "image/webp" : r.search(/\.ktx2($|\?)/i) > 0 || r.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png";
|
|
34241
34616
|
}
|
|
34242
|
-
const
|
|
34243
|
-
class
|
|
34617
|
+
const nw = new ve();
|
|
34618
|
+
class iw {
|
|
34244
34619
|
constructor(e = {}, t = {}) {
|
|
34245
|
-
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new
|
|
34620
|
+
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new MC(), 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 = {};
|
|
34246
34621
|
let n = !1, i = -1, s = !1, a = -1;
|
|
34247
34622
|
if (typeof navigator < "u" && typeof navigator.userAgent < "u") {
|
|
34248
34623
|
const o = navigator.userAgent;
|
|
@@ -34490,12 +34865,12 @@ class tw {
|
|
|
34490
34865
|
loadAccessor(e) {
|
|
34491
34866
|
const t = this, n = this.json, i = this.json.accessors[e];
|
|
34492
34867
|
if (i.bufferView === void 0 && i.sparse === void 0) {
|
|
34493
|
-
const a = Ju[i.type], o =
|
|
34868
|
+
const a = Ju[i.type], o = Aa[i.componentType], c = i.normalized === !0, l = new o(i.count * a);
|
|
34494
34869
|
return Promise.resolve(new at(l, a, c));
|
|
34495
34870
|
}
|
|
34496
34871
|
const s = [];
|
|
34497
34872
|
return i.bufferView !== void 0 ? s.push(this.getDependency("bufferView", i.bufferView)) : s.push(null), i.sparse !== void 0 && (s.push(this.getDependency("bufferView", i.sparse.indices.bufferView)), s.push(this.getDependency("bufferView", i.sparse.values.bufferView))), Promise.all(s).then(function(a) {
|
|
34498
|
-
const o = a[0], c = Ju[i.type], l =
|
|
34873
|
+
const o = a[0], c = Ju[i.type], l = Aa[i.componentType], h = l.BYTES_PER_ELEMENT, u = h * c, f = i.byteOffset || 0, d = i.bufferView !== void 0 ? n.bufferViews[i.bufferView].byteStride : void 0, p = i.normalized === !0;
|
|
34499
34874
|
let b, g;
|
|
34500
34875
|
if (d && d !== u) {
|
|
34501
34876
|
const A = Math.floor(f / d), m = "InterleavedBuffer:" + i.bufferView + ":" + i.componentType + ":" + A + ":" + i.count;
|
|
@@ -34504,7 +34879,7 @@ class tw {
|
|
|
34504
34879
|
} else
|
|
34505
34880
|
o === null ? b = new l(i.count * c) : b = new l(o, f, i.count * c), g = new at(b, c, p);
|
|
34506
34881
|
if (i.sparse !== void 0) {
|
|
34507
|
-
const A = Ju.SCALAR, m =
|
|
34882
|
+
const A = Ju.SCALAR, m = Aa[i.sparse.indices.componentType], x = i.sparse.indices.byteOffset || 0, _ = i.sparse.values.byteOffset || 0, v = new m(a[1], x, i.sparse.count * A), S = new l(a[2], _, i.sparse.count * c);
|
|
34508
34883
|
o !== null && (g = new at(g.array.slice(), g.itemSize, g.normalized)), g.normalized = !1;
|
|
34509
34884
|
for (let I = 0, y = v.length; I < y; I++) {
|
|
34510
34885
|
const E = v[I];
|
|
@@ -34567,7 +34942,7 @@ class tw {
|
|
|
34567
34942
|
}), t.load(_s.resolveURL(u, s.path), p, void 0, d);
|
|
34568
34943
|
});
|
|
34569
34944
|
}).then(function(u) {
|
|
34570
|
-
return l === !0 && o.revokeObjectURL(c), xi(u, a), u.userData.mimeType = a.mimeType ||
|
|
34945
|
+
return l === !0 && o.revokeObjectURL(c), xi(u, a), u.userData.mimeType = a.mimeType || tw(a.uri), u;
|
|
34571
34946
|
}).catch(function(u) {
|
|
34572
34947
|
throw console.error("THREE.GLTFLoader: Couldn't load texture", c), u;
|
|
34573
34948
|
});
|
|
@@ -34701,7 +35076,7 @@ class tw {
|
|
|
34701
35076
|
}
|
|
34702
35077
|
const a = [];
|
|
34703
35078
|
for (let o = 0, c = e.length; o < c; o++) {
|
|
34704
|
-
const l = e[o], h =
|
|
35079
|
+
const l = e[o], h = ew(l), u = i[h];
|
|
34705
35080
|
if (u)
|
|
34706
35081
|
a.push(u.promise);
|
|
34707
35082
|
else {
|
|
@@ -34721,7 +35096,7 @@ class tw {
|
|
|
34721
35096
|
loadMesh(e) {
|
|
34722
35097
|
const t = this, n = this.json, i = this.extensions, s = n.meshes[e], a = s.primitives, o = [];
|
|
34723
35098
|
for (let c = 0, l = a.length; c < l; c++) {
|
|
34724
|
-
const h = a[c].material === void 0 ?
|
|
35099
|
+
const h = a[c].material === void 0 ? JC(this.cache) : this.getDependency("material", a[c].material);
|
|
34725
35100
|
o.push(h);
|
|
34726
35101
|
}
|
|
34727
35102
|
return o.push(t.loadGeometries(a)), Promise.all(o).then(function(c) {
|
|
@@ -34742,7 +35117,7 @@ class tw {
|
|
|
34742
35117
|
A = new ec(b, m);
|
|
34743
35118
|
else
|
|
34744
35119
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + g.mode);
|
|
34745
|
-
Object.keys(A.geometry.morphAttributes).length > 0 &&
|
|
35120
|
+
Object.keys(A.geometry.morphAttributes).length > 0 && $C(A, s), A.name = t.createUniqueName(s.name || "mesh_" + e), xi(A, s), g.extensions && Ws(i, A, g), t.assignFinalMaterial(A), u.push(A);
|
|
34746
35121
|
}
|
|
34747
35122
|
for (let d = 0, p = u.length; d < p; d++)
|
|
34748
35123
|
t.associations.set(u[d], {
|
|
@@ -34863,7 +35238,7 @@ class tw {
|
|
|
34863
35238
|
]).then(function(l) {
|
|
34864
35239
|
const h = l[0], u = l[1], f = l[2];
|
|
34865
35240
|
f !== null && h.traverse(function(d) {
|
|
34866
|
-
d.isSkinnedMesh && d.bind(f,
|
|
35241
|
+
d.isSkinnedMesh && d.bind(f, nw);
|
|
34867
35242
|
});
|
|
34868
35243
|
for (let d = 0, p = u.length; d < p; d++)
|
|
34869
35244
|
h.add(u[d]);
|
|
@@ -34924,7 +35299,7 @@ class tw {
|
|
|
34924
35299
|
return Promise.all(o).then(function(c) {
|
|
34925
35300
|
for (let h = 0, u = c.length; h < u; h++) {
|
|
34926
35301
|
const f = c[h];
|
|
34927
|
-
f.parent !== null ? s.add(
|
|
35302
|
+
f.parent !== null ? s.add(IC(f)) : s.add(f);
|
|
34928
35303
|
}
|
|
34929
35304
|
const l = (h) => {
|
|
34930
35305
|
const u = /* @__PURE__ */ new Map();
|
|
@@ -34968,7 +35343,7 @@ class tw {
|
|
|
34968
35343
|
}
|
|
34969
35344
|
break;
|
|
34970
35345
|
}
|
|
34971
|
-
const h = i.interpolation !== void 0 ?
|
|
35346
|
+
const h = i.interpolation !== void 0 ? KC[i.interpolation] : Ea, u = this._getArrayFromAccessor(n);
|
|
34972
35347
|
for (let f = 0, d = c.length; f < d; f++) {
|
|
34973
35348
|
const p = new l(
|
|
34974
35349
|
c[f] + "." + as[s.path],
|
|
@@ -34983,7 +35358,7 @@ class tw {
|
|
|
34983
35358
|
_getArrayFromAccessor(e) {
|
|
34984
35359
|
let t = e.array;
|
|
34985
35360
|
if (e.normalized) {
|
|
34986
|
-
const n =
|
|
35361
|
+
const n = ed(t.constructor), i = new Float32Array(t.length);
|
|
34987
35362
|
for (let s = 0, a = t.length; s < a; s++)
|
|
34988
35363
|
i[s] = t[s] * n;
|
|
34989
35364
|
t = i;
|
|
@@ -34992,12 +35367,12 @@ class tw {
|
|
|
34992
35367
|
}
|
|
34993
35368
|
_createCubicSplineTrackInterpolant(e) {
|
|
34994
35369
|
e.createInterpolant = function(n) {
|
|
34995
|
-
const i = this instanceof vr ?
|
|
35370
|
+
const i = this instanceof vr ? jC : N0;
|
|
34996
35371
|
return new i(this.times, this.values, this.getValueSize() / 3, n);
|
|
34997
35372
|
}, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
34998
35373
|
}
|
|
34999
35374
|
}
|
|
35000
|
-
function
|
|
35375
|
+
function sw(r, e, t) {
|
|
35001
35376
|
const n = e.attributes, i = new vt();
|
|
35002
35377
|
if (n.POSITION !== void 0) {
|
|
35003
35378
|
const o = t.json.accessors[n.POSITION], c = o.min, l = o.max;
|
|
@@ -35006,7 +35381,7 @@ function nw(r, e, t) {
|
|
|
35006
35381
|
new T(c[0], c[1], c[2]),
|
|
35007
35382
|
new T(l[0], l[1], l[2])
|
|
35008
35383
|
), o.normalized) {
|
|
35009
|
-
const h =
|
|
35384
|
+
const h = ed(Aa[o.componentType]);
|
|
35010
35385
|
i.min.multiplyScalar(h), i.max.multiplyScalar(h);
|
|
35011
35386
|
}
|
|
35012
35387
|
} else {
|
|
@@ -35024,7 +35399,7 @@ function nw(r, e, t) {
|
|
|
35024
35399
|
const f = t.json.accessors[u.POSITION], d = f.min, p = f.max;
|
|
35025
35400
|
if (d !== void 0 && p !== void 0) {
|
|
35026
35401
|
if (c.setX(Math.max(Math.abs(d[0]), Math.abs(p[0]))), c.setY(Math.max(Math.abs(d[1]), Math.abs(p[1]))), c.setZ(Math.max(Math.abs(d[2]), Math.abs(p[2]))), f.normalized) {
|
|
35027
|
-
const b =
|
|
35402
|
+
const b = ed(Aa[f.componentType]);
|
|
35028
35403
|
c.multiplyScalar(b);
|
|
35029
35404
|
}
|
|
35030
35405
|
o.max(c);
|
|
@@ -35046,7 +35421,7 @@ function KA(r, e, t) {
|
|
|
35046
35421
|
});
|
|
35047
35422
|
}
|
|
35048
35423
|
for (const a in n) {
|
|
35049
|
-
const o =
|
|
35424
|
+
const o = $f[a] || a.toLowerCase();
|
|
35050
35425
|
o in r.attributes || i.push(s(n[a], o));
|
|
35051
35426
|
}
|
|
35052
35427
|
if (e.indices !== void 0 && !r.index) {
|
|
@@ -35055,8 +35430,8 @@ function KA(r, e, t) {
|
|
|
35055
35430
|
});
|
|
35056
35431
|
i.push(a);
|
|
35057
35432
|
}
|
|
35058
|
-
return nt.workingColorSpace !== Jt && "COLOR_0" in n && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${nt.workingColorSpace}" not supported.`), xi(r, e),
|
|
35059
|
-
return e.targets !== void 0 ?
|
|
35433
|
+
return nt.workingColorSpace !== Jt && "COLOR_0" in n && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${nt.workingColorSpace}" not supported.`), xi(r, e), sw(r, e, t), Promise.all(i).then(function() {
|
|
35434
|
+
return e.targets !== void 0 ? ZC(r, e.targets, t) : r;
|
|
35060
35435
|
});
|
|
35061
35436
|
}
|
|
35062
35437
|
const dr = {
|
|
@@ -35137,13 +35512,13 @@ class Tr {
|
|
|
35137
35512
|
dispose() {
|
|
35138
35513
|
}
|
|
35139
35514
|
}
|
|
35140
|
-
const
|
|
35141
|
-
class
|
|
35515
|
+
const rw = new wr(-1, 1, 1, -1, 0, 1);
|
|
35516
|
+
class aw extends Ve {
|
|
35142
35517
|
constructor() {
|
|
35143
35518
|
super(), this.setAttribute("position", new Me([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new Me([0, 2, 0, 0, 2, 0], 2));
|
|
35144
35519
|
}
|
|
35145
35520
|
}
|
|
35146
|
-
const
|
|
35521
|
+
const ow = new aw();
|
|
35147
35522
|
class iu {
|
|
35148
35523
|
/**
|
|
35149
35524
|
* Constructs a new full screen quad.
|
|
@@ -35151,7 +35526,7 @@ class iu {
|
|
|
35151
35526
|
* @param {?Material} material - The material to render te full screen quad with.
|
|
35152
35527
|
*/
|
|
35153
35528
|
constructor(e) {
|
|
35154
|
-
this._mesh = new pe(
|
|
35529
|
+
this._mesh = new pe(ow, e);
|
|
35155
35530
|
}
|
|
35156
35531
|
/**
|
|
35157
35532
|
* Frees the GPU-related resources allocated by this instance. Call this
|
|
@@ -35166,7 +35541,7 @@ class iu {
|
|
|
35166
35541
|
* @param {WebGLRenderer} renderer - The renderer.
|
|
35167
35542
|
*/
|
|
35168
35543
|
render(e) {
|
|
35169
|
-
e.render(this._mesh,
|
|
35544
|
+
e.render(this._mesh, rw);
|
|
35170
35545
|
}
|
|
35171
35546
|
/**
|
|
35172
35547
|
* The quad's material.
|
|
@@ -35180,7 +35555,7 @@ class iu {
|
|
|
35180
35555
|
this._mesh.material = e;
|
|
35181
35556
|
}
|
|
35182
35557
|
}
|
|
35183
|
-
class
|
|
35558
|
+
class cw extends Tr {
|
|
35184
35559
|
/**
|
|
35185
35560
|
* Constructs a new shader pass.
|
|
35186
35561
|
*
|
|
@@ -35248,7 +35623,7 @@ class JA extends Tr {
|
|
|
35248
35623
|
this.inverse ? (a = 0, o = 1) : (a = 1, o = 0), s.buffers.stencil.setTest(!0), s.buffers.stencil.setOp(i.REPLACE, i.REPLACE, i.REPLACE), s.buffers.stencil.setFunc(i.ALWAYS, a, 4294967295), s.buffers.stencil.setClear(o), s.buffers.stencil.setLocked(!0), e.setRenderTarget(n), this.clear && e.clear(), e.render(this.scene, this.camera), e.setRenderTarget(t), this.clear && e.clear(), e.render(this.scene, this.camera), s.buffers.color.setLocked(!1), s.buffers.depth.setLocked(!1), s.buffers.color.setMask(!0), s.buffers.depth.setMask(!0), s.buffers.stencil.setLocked(!1), s.buffers.stencil.setFunc(i.EQUAL, 1, 4294967295), s.buffers.stencil.setOp(i.KEEP, i.KEEP, i.KEEP), s.buffers.stencil.setLocked(!0);
|
|
35249
35624
|
}
|
|
35250
35625
|
}
|
|
35251
|
-
class
|
|
35626
|
+
class lw extends Tr {
|
|
35252
35627
|
/**
|
|
35253
35628
|
* Constructs a new clear mask pass.
|
|
35254
35629
|
*/
|
|
@@ -35270,7 +35645,7 @@ class ow extends Tr {
|
|
|
35270
35645
|
e.state.buffers.stencil.setLocked(!1), e.state.buffers.stencil.setTest(!1);
|
|
35271
35646
|
}
|
|
35272
35647
|
}
|
|
35273
|
-
class
|
|
35648
|
+
class B1 {
|
|
35274
35649
|
/**
|
|
35275
35650
|
* Constructs a new effect composer.
|
|
35276
35651
|
*
|
|
@@ -35285,7 +35660,7 @@ class T1 {
|
|
|
35285
35660
|
this._width = n.width, this._height = n.height, t = new Yt(this._width * this._pixelRatio, this._height * this._pixelRatio, { type: yt }), t.texture.name = "EffectComposer.rt1";
|
|
35286
35661
|
} else
|
|
35287
35662
|
this._width = t.width, this._height = t.height;
|
|
35288
|
-
this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new
|
|
35663
|
+
this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new cw(dr), this.copyPass.material.blending = St, this.timer = new Wd();
|
|
35289
35664
|
}
|
|
35290
35665
|
/**
|
|
35291
35666
|
* Swaps the internal read/write buffers.
|
|
@@ -35352,7 +35727,7 @@ class T1 {
|
|
|
35352
35727
|
}
|
|
35353
35728
|
this.swapBuffers();
|
|
35354
35729
|
}
|
|
35355
|
-
JA !== void 0 && (a instanceof JA ? n = !0 : a instanceof
|
|
35730
|
+
JA !== void 0 && (a instanceof JA ? n = !0 : a instanceof lw && (n = !1));
|
|
35356
35731
|
}
|
|
35357
35732
|
}
|
|
35358
35733
|
this.renderer.setRenderTarget(t);
|
|
@@ -35401,7 +35776,7 @@ class T1 {
|
|
|
35401
35776
|
this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.copyPass.dispose();
|
|
35402
35777
|
}
|
|
35403
35778
|
}
|
|
35404
|
-
class
|
|
35779
|
+
class R1 extends Tr {
|
|
35405
35780
|
/**
|
|
35406
35781
|
* Constructs a new render pass.
|
|
35407
35782
|
*
|
|
@@ -35738,8 +36113,8 @@ const Zc = {
|
|
|
35738
36113
|
}`
|
|
35739
36114
|
)
|
|
35740
36115
|
};
|
|
35741
|
-
function
|
|
35742
|
-
const e = Math.floor(r) % 2 === 0 ? Math.floor(r) + 1 : Math.floor(r), t =
|
|
36116
|
+
function hw(r = 5) {
|
|
36117
|
+
const e = Math.floor(r) % 2 === 0 ? Math.floor(r) + 1 : Math.floor(r), t = uw(e), n = t.length, i = new Uint8Array(n * 4);
|
|
35743
36118
|
for (let a = 0; a < n; ++a) {
|
|
35744
36119
|
const o = t[a], c = 2 * Math.PI * o / n, l = new T(
|
|
35745
36120
|
Math.cos(c),
|
|
@@ -35751,7 +36126,7 @@ function cw(r = 5) {
|
|
|
35751
36126
|
const s = new wn(i, e, e);
|
|
35752
36127
|
return s.wrapS = Ln, s.wrapT = Ln, s.needsUpdate = !0, s;
|
|
35753
36128
|
}
|
|
35754
|
-
function
|
|
36129
|
+
function uw(r) {
|
|
35755
36130
|
const e = Math.floor(r) % 2 === 0 ? Math.floor(r) + 1 : Math.floor(r), t = e * e, n = Array(t).fill(0);
|
|
35756
36131
|
let i = Math.floor(e / 2), s = e - 1;
|
|
35757
36132
|
for (let a = 1; a <= t; ) {
|
|
@@ -35767,7 +36142,7 @@ function lw(r) {
|
|
|
35767
36142
|
const el = {
|
|
35768
36143
|
defines: {
|
|
35769
36144
|
SAMPLES: 16,
|
|
35770
|
-
SAMPLE_VECTORS:
|
|
36145
|
+
SAMPLE_VECTORS: U0(16, 2, 1),
|
|
35771
36146
|
NORMAL_VECTOR_TYPE: 1,
|
|
35772
36147
|
DEPTH_VALUE_SOURCE: 0
|
|
35773
36148
|
},
|
|
@@ -35942,8 +36317,8 @@ const el = {
|
|
|
35942
36317
|
}`
|
|
35943
36318
|
)
|
|
35944
36319
|
};
|
|
35945
|
-
function
|
|
35946
|
-
const n =
|
|
36320
|
+
function U0(r, e, t) {
|
|
36321
|
+
const n = fw(
|
|
35947
36322
|
r,
|
|
35948
36323
|
e,
|
|
35949
36324
|
t
|
|
@@ -35955,7 +36330,7 @@ function N0(r, e, t) {
|
|
|
35955
36330
|
}
|
|
35956
36331
|
return i;
|
|
35957
36332
|
}
|
|
35958
|
-
function
|
|
36333
|
+
function fw(r, e, t) {
|
|
35959
36334
|
const n = [];
|
|
35960
36335
|
for (let i = 0; i < r; i++) {
|
|
35961
36336
|
const s = 2 * Math.PI * e * i / r, a = Math.pow(i / (r - 1), t);
|
|
@@ -35963,7 +36338,7 @@ function hw(r, e, t) {
|
|
|
35963
36338
|
}
|
|
35964
36339
|
return n;
|
|
35965
36340
|
}
|
|
35966
|
-
class
|
|
36341
|
+
class O0 {
|
|
35967
36342
|
/**
|
|
35968
36343
|
* Constructs a new simplex noise object.
|
|
35969
36344
|
*
|
|
@@ -36181,7 +36556,7 @@ class Gi extends Tr {
|
|
|
36181
36556
|
* @param {Object} [pdParameters] - The denoise parameters.
|
|
36182
36557
|
*/
|
|
36183
36558
|
constructor(e, t, n = 512, i = 512, s, a, o) {
|
|
36184
|
-
super(), this.width = n, this.height = i, this.clear = !0, this.camera = t, this.scene = e, this.output = 0, this._renderGBuffer = !0, this._visibilityCache = [], this.blendIntensity = 1, this.pdRings = 2, this.pdRadiusExponent = 2, this.pdSamples = 16, this.gtaoNoiseTexture =
|
|
36559
|
+
super(), this.width = n, this.height = i, this.clear = !0, this.camera = t, this.scene = e, this.output = 0, this._renderGBuffer = !0, this._visibilityCache = [], this.blendIntensity = 1, this.pdRings = 2, this.pdRadiusExponent = 2, this.pdSamples = 16, this.gtaoNoiseTexture = hw(), this.pdNoiseTexture = this._generateNoise(), this.gtaoRenderTarget = new Yt(this.width, this.height, { type: yt }), this.pdRenderTarget = this.gtaoRenderTarget.clone(), this.gtaoMaterial = new It({
|
|
36185
36560
|
defines: Object.assign({}, Zc.defines),
|
|
36186
36561
|
uniforms: An.clone(Zc.uniforms),
|
|
36187
36562
|
vertexShader: Zc.vertexShader,
|
|
@@ -36298,7 +36673,7 @@ class Gi extends Tr {
|
|
|
36298
36673
|
*/
|
|
36299
36674
|
updatePdMaterial(e) {
|
|
36300
36675
|
let t = !1;
|
|
36301
|
-
e.lumaPhi !== void 0 && (this.pdMaterial.uniforms.lumaPhi.value = e.lumaPhi), e.depthPhi !== void 0 && (this.pdMaterial.uniforms.depthPhi.value = e.depthPhi), e.normalPhi !== void 0 && (this.pdMaterial.uniforms.normalPhi.value = e.normalPhi), e.radius !== void 0 && e.radius !== this.radius && (this.pdMaterial.uniforms.radius.value = e.radius), e.radiusExponent !== void 0 && e.radiusExponent !== this.pdRadiusExponent && (this.pdRadiusExponent = e.radiusExponent, t = !0), e.rings !== void 0 && e.rings !== this.pdRings && (this.pdRings = e.rings, t = !0), e.samples !== void 0 && e.samples !== this.pdSamples && (this.pdSamples = e.samples, t = !0), t && (this.pdMaterial.defines.SAMPLES = this.pdSamples, this.pdMaterial.defines.SAMPLE_VECTORS =
|
|
36676
|
+
e.lumaPhi !== void 0 && (this.pdMaterial.uniforms.lumaPhi.value = e.lumaPhi), e.depthPhi !== void 0 && (this.pdMaterial.uniforms.depthPhi.value = e.depthPhi), e.normalPhi !== void 0 && (this.pdMaterial.uniforms.normalPhi.value = e.normalPhi), e.radius !== void 0 && e.radius !== this.radius && (this.pdMaterial.uniforms.radius.value = e.radius), e.radiusExponent !== void 0 && e.radiusExponent !== this.pdRadiusExponent && (this.pdRadiusExponent = e.radiusExponent, t = !0), e.rings !== void 0 && e.rings !== this.pdRings && (this.pdRings = e.rings, t = !0), e.samples !== void 0 && e.samples !== this.pdSamples && (this.pdSamples = e.samples, t = !0), t && (this.pdMaterial.defines.SAMPLES = this.pdSamples, this.pdMaterial.defines.SAMPLE_VECTORS = U0(this.pdSamples, this.pdRings, this.pdRadiusExponent), this.pdMaterial.needsUpdate = !0);
|
|
36302
36677
|
}
|
|
36303
36678
|
/**
|
|
36304
36679
|
* Performs the GTAO pass.
|
|
@@ -36361,7 +36736,7 @@ class Gi extends Tr {
|
|
|
36361
36736
|
e.length = 0;
|
|
36362
36737
|
}
|
|
36363
36738
|
_generateNoise(e = 64) {
|
|
36364
|
-
const t = new
|
|
36739
|
+
const t = new O0(), n = e * e * 4, i = new Uint8Array(n);
|
|
36365
36740
|
for (let a = 0; a < e; a++)
|
|
36366
36741
|
for (let o = 0; o < e; o++) {
|
|
36367
36742
|
const c = a, l = o;
|
|
@@ -36763,7 +37138,7 @@ class tr extends Tr {
|
|
|
36763
37138
|
}
|
|
36764
37139
|
}
|
|
36765
37140
|
_generateRandomKernelRotations() {
|
|
36766
|
-
const n = new
|
|
37141
|
+
const n = new O0(), i = 16, s = new Float32Array(i);
|
|
36767
37142
|
for (let a = 0; a < i; a++) {
|
|
36768
37143
|
const o = Math.random() * 2 - 1, c = Math.random() * 2 - 1, l = 0;
|
|
36769
37144
|
s[a] = n.noise3d(o, c, l);
|
|
@@ -36876,7 +37251,7 @@ const sl = {
|
|
|
36876
37251
|
}`
|
|
36877
37252
|
)
|
|
36878
37253
|
};
|
|
36879
|
-
class
|
|
37254
|
+
class D1 extends Tr {
|
|
36880
37255
|
/**
|
|
36881
37256
|
* Constructs a new output pass.
|
|
36882
37257
|
*/
|
|
@@ -36910,7 +37285,7 @@ class R1 extends Tr {
|
|
|
36910
37285
|
this.material.dispose(), this._fsQuad.dispose();
|
|
36911
37286
|
}
|
|
36912
37287
|
}
|
|
36913
|
-
const
|
|
37288
|
+
const P1 = {
|
|
36914
37289
|
name: "FXAAShader",
|
|
36915
37290
|
uniforms: {
|
|
36916
37291
|
tDiffuse: { value: null },
|
|
@@ -37186,7 +37561,7 @@ const D1 = {
|
|
|
37186
37561
|
}`
|
|
37187
37562
|
)
|
|
37188
37563
|
}, tf = /* @__PURE__ */ new WeakMap();
|
|
37189
|
-
class
|
|
37564
|
+
class L1 extends ln {
|
|
37190
37565
|
/**
|
|
37191
37566
|
* Constructs a new Draco loader.
|
|
37192
37567
|
*
|
|
@@ -37329,7 +37704,7 @@ class P1 extends ln {
|
|
|
37329
37704
|
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((n) => {
|
|
37330
37705
|
const i = n[0];
|
|
37331
37706
|
e || (this.decoderConfig.wasmBinary = n[1]);
|
|
37332
|
-
const s =
|
|
37707
|
+
const s = dw.toString(), a = [
|
|
37333
37708
|
"/* draco decoder */",
|
|
37334
37709
|
i,
|
|
37335
37710
|
"",
|
|
@@ -37377,7 +37752,7 @@ class P1 extends ln {
|
|
|
37377
37752
|
return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
|
|
37378
37753
|
}
|
|
37379
37754
|
}
|
|
37380
|
-
function
|
|
37755
|
+
function dw() {
|
|
37381
37756
|
let r, e;
|
|
37382
37757
|
onmessage = function(a) {
|
|
37383
37758
|
const o = a.data;
|
|
@@ -37481,7 +37856,7 @@ function uw() {
|
|
|
37481
37856
|
}
|
|
37482
37857
|
}
|
|
37483
37858
|
}
|
|
37484
|
-
var
|
|
37859
|
+
var F1 = (function() {
|
|
37485
37860
|
var r = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;lZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk: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::ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxabaiarcefciGfcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGfgkcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabaiarcufciGfcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkabakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb", e = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;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;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk:Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpx:ji:1S:ji:1S:ji:1S:ji:1SaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83ibawarp5bampEd:T:j83ibaocwfaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83ibaoaxp5bampEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgmpklbaiampklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipx:ji:1S:ji:1S:ji:1S:ji:1SaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83iKaiarp5bampEd:T:j83izaiaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83iwaiaxp5bampEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb", t = new Uint8Array([
|
|
37486
37861
|
0,
|
|
37487
37862
|
97,
|
|
@@ -37695,7 +38070,7 @@ var L1 = (function() {
|
|
|
37695
38070
|
}
|
|
37696
38071
|
};
|
|
37697
38072
|
})();
|
|
37698
|
-
class
|
|
38073
|
+
class pw {
|
|
37699
38074
|
/**
|
|
37700
38075
|
* Constructs a new Worker pool.
|
|
37701
38076
|
*
|
|
@@ -37761,7 +38136,7 @@ class fw {
|
|
|
37761
38136
|
this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
37762
38137
|
}
|
|
37763
38138
|
}
|
|
37764
|
-
const
|
|
38139
|
+
const Aw = 0, ZA = 2, gw = 1, $A = 2, mw = 0, bw = 1, xw = 10, _w = 0, k0 = 9, Q0 = 15, G0 = 16, z0 = 22, H0 = 37, V0 = 43, W0 = 76, q0 = 83, X0 = 97, Y0 = 100, j0 = 103, K0 = 109, J0 = 122, Z0 = 123, $0 = 131, eb = 132, tb = 133, nb = 134, ib = 137, sb = 138, rb = 139, ab = 140, ob = 141, cb = 142, lb = 145, hb = 146, ub = 148, fb = 152, db = 153, pb = 154, Ab = 155, gb = 156, mb = 157, bb = 158, xb = 165, _b = 166, yb = 1000054e3, vb = 1000054001, Eb = 1000054004, Sb = 1000054005, Jd = 1000066e3, Ib = 1000066004;
|
|
37765
38140
|
class Ya {
|
|
37766
38141
|
constructor(e, t, n, i) {
|
|
37767
38142
|
this._dataView = void 0, this._littleEndian = void 0, this._offset = void 0, this._dataView = new DataView(e.buffer, e.byteOffset + t, n), this._littleEndian = i, this._offset = 0;
|
|
@@ -37804,7 +38179,7 @@ const _n = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
|
37804
38179
|
function eg(r) {
|
|
37805
38180
|
return new TextDecoder().decode(r);
|
|
37806
38181
|
}
|
|
37807
|
-
function
|
|
38182
|
+
function yw(r) {
|
|
37808
38183
|
const e = new Uint8Array(r.buffer, r.byteOffset, _n.length);
|
|
37809
38184
|
if (e[0] !== _n[0] || e[1] !== _n[1] || e[2] !== _n[2] || e[3] !== _n[3] || e[4] !== _n[4] || e[5] !== _n[5] || e[6] !== _n[6] || e[7] !== _n[7] || e[8] !== _n[8] || e[9] !== _n[9] || e[10] !== _n[10] || e[11] !== _n[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
37810
38185
|
const t = { vkFormat: 0, typeSize: 1, pixelWidth: 0, pixelHeight: 0, pixelDepth: 0, layerCount: 0, faceCount: 1, levelCount: 0, supercompressionScheme: 0, levels: [], dataFormatDescriptor: [{ vendorId: 0, descriptorType: 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: [] }], keyValue: {}, globalData: null }, n = 17 * Uint32Array.BYTES_PER_ELEMENT, i = new Ya(r, _n.length, n, !0);
|
|
@@ -37834,11 +38209,11 @@ function xw(r) {
|
|
|
37834
38209
|
const D = l + v._offset, L = D + y, F = L + E, U = F + w, O = new Uint8Array(r.buffer, r.byteOffset + D, y), J = new Uint8Array(r.buffer, r.byteOffset + L, E), z = new Uint8Array(r.buffer, r.byteOffset + F, w), ie = new Uint8Array(r.buffer, r.byteOffset + U, C);
|
|
37835
38210
|
return t.globalData = { endpointCount: S, selectorCount: I, imageDescs: B, endpointsData: O, selectorsData: J, tablesData: z, extendedData: ie }, t;
|
|
37836
38211
|
}
|
|
37837
|
-
let nf, ki,
|
|
38212
|
+
let nf, ki, td;
|
|
37838
38213
|
const sf = { env: { emscripten_notify_memory_growth: function(r) {
|
|
37839
|
-
|
|
38214
|
+
td = new Uint8Array(ki.exports.memory.buffer);
|
|
37840
38215
|
} } };
|
|
37841
|
-
class
|
|
38216
|
+
class vw {
|
|
37842
38217
|
init() {
|
|
37843
38218
|
return nf || (nf = typeof fetch < "u" ? fetch("data:application/wasm;base64," + tg).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, sf)).then(this._init) : WebAssembly.instantiate(Buffer.from(tg, "base64"), sf).then(this._init), nf);
|
|
37844
38219
|
}
|
|
@@ -37848,12 +38223,12 @@ class _w {
|
|
|
37848
38223
|
decode(e, t = 0) {
|
|
37849
38224
|
if (!ki) throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
37850
38225
|
const n = e.byteLength, i = ki.exports.malloc(n);
|
|
37851
|
-
|
|
37852
|
-
const s = ki.exports.malloc(t), a = ki.exports.ZSTD_decompress(s, t, i, n), o =
|
|
38226
|
+
td.set(e, i), t = t || Number(ki.exports.ZSTD_findDecompressedSize(i, n));
|
|
38227
|
+
const s = ki.exports.malloc(t), a = ki.exports.ZSTD_decompress(s, t, i, n), o = td.slice(s, s + a);
|
|
37853
38228
|
return ki.exports.free(i), ki.exports.free(s), o;
|
|
37854
38229
|
}
|
|
37855
38230
|
}
|
|
37856
|
-
const tg = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", yw = "display-p3", vw = "display-p3-linear";
|
|
38231
|
+
const tg = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", Ew = "display-p3", Sw = "display-p3-linear";
|
|
37857
38232
|
({
|
|
37858
38233
|
...nt.spaces[wt]
|
|
37859
38234
|
});
|
|
@@ -37866,7 +38241,7 @@ class ci extends ln {
|
|
|
37866
38241
|
* @param {LoadingManager} [manager] - The loading manager.
|
|
37867
38242
|
*/
|
|
37868
38243
|
constructor(e) {
|
|
37869
|
-
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new
|
|
38244
|
+
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new pw(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
|
|
37870
38245
|
'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
|
|
37871
38246
|
);
|
|
37872
38247
|
}
|
|
@@ -38001,7 +38376,7 @@ class ci extends ln {
|
|
|
38001
38376
|
const f = s[0].mipmaps;
|
|
38002
38377
|
u = t.layerCount > 1 ? new Um(f, a, o, t.layerCount, c, l) : new Ra(f, a, o, c, l);
|
|
38003
38378
|
}
|
|
38004
|
-
return u.minFilter = s[0].mipmaps.length === 1 ? ht : Pn, u.magFilter = ht, u.generateMipmaps = !1, u.needsUpdate = !0, u.colorSpace =
|
|
38379
|
+
return u.minFilter = s[0].mipmaps.length === 1 ? ht : Pn, u.magFilter = ht, u.generateMipmaps = !1, u.needsUpdate = !0, u.colorSpace = Mb(t), u.premultiplyAlpha = !!(h & gw), u;
|
|
38005
38380
|
}
|
|
38006
38381
|
/**
|
|
38007
38382
|
* @private
|
|
@@ -38010,9 +38385,9 @@ class ci extends ln {
|
|
|
38010
38385
|
* @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
|
|
38011
38386
|
*/
|
|
38012
38387
|
async _createTexture(e, t = {}) {
|
|
38013
|
-
const n =
|
|
38014
|
-
if (!(n.vkFormat ===
|
|
38015
|
-
return
|
|
38388
|
+
const n = yw(new Uint8Array(e)), i = n.vkFormat === Jd && n.dataFormatDescriptor[0].colorModel === 167;
|
|
38389
|
+
if (!(n.vkFormat === _w || i && !this.workerConfig.astcHDRSupported))
|
|
38390
|
+
return Mw(n);
|
|
38016
38391
|
const a = t, o = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: a }, [e])).then((c) => this._createTextureFrom(c.data, n));
|
|
38017
38392
|
return rf.set(e, { promise: o }), o;
|
|
38018
38393
|
}
|
|
@@ -38262,108 +38637,108 @@ ci.BasisWorker = function() {
|
|
|
38262
38637
|
return g;
|
|
38263
38638
|
}
|
|
38264
38639
|
};
|
|
38265
|
-
const
|
|
38266
|
-
[
|
|
38267
|
-
[
|
|
38268
|
-
[
|
|
38269
|
-
[
|
|
38270
|
-
[
|
|
38271
|
-
[
|
|
38640
|
+
const Iw = /* @__PURE__ */ new Set([Nt, ba, jn, yi]), cf = {
|
|
38641
|
+
[K0]: Nt,
|
|
38642
|
+
[j0]: jn,
|
|
38643
|
+
[Y0]: yi,
|
|
38644
|
+
[X0]: Nt,
|
|
38645
|
+
[q0]: jn,
|
|
38646
|
+
[W0]: yi,
|
|
38647
|
+
[V0]: Nt,
|
|
38272
38648
|
[H0]: Nt,
|
|
38273
|
-
[z0]:
|
|
38649
|
+
[z0]: jn,
|
|
38274
38650
|
[G0]: jn,
|
|
38275
|
-
[Q0]:
|
|
38651
|
+
[Q0]: yi,
|
|
38276
38652
|
[k0]: yi,
|
|
38277
|
-
[
|
|
38653
|
+
[Z0]: ba,
|
|
38278
38654
|
[J0]: ba,
|
|
38279
|
-
[
|
|
38280
|
-
[ub]:
|
|
38281
|
-
[
|
|
38282
|
-
[
|
|
38283
|
-
[
|
|
38284
|
-
[
|
|
38285
|
-
[Ab]: To,
|
|
38655
|
+
[fb]: ya,
|
|
38656
|
+
[ub]: _a,
|
|
38657
|
+
[db]: Mo,
|
|
38658
|
+
[pb]: Co,
|
|
38659
|
+
[Ab]: wo,
|
|
38660
|
+
[gb]: To,
|
|
38286
38661
|
[Jd]: xs,
|
|
38662
|
+
[bb]: xs,
|
|
38287
38663
|
[mb]: xs,
|
|
38288
|
-
[
|
|
38289
|
-
[
|
|
38664
|
+
[Ib]: hr,
|
|
38665
|
+
[_b]: hr,
|
|
38290
38666
|
[xb]: hr,
|
|
38291
|
-
[
|
|
38667
|
+
[nb]: ms,
|
|
38292
38668
|
[tb]: ms,
|
|
38293
|
-
[eb]:
|
|
38669
|
+
[eb]: lr,
|
|
38294
38670
|
[$0]: lr,
|
|
38295
|
-
[
|
|
38671
|
+
[sb]: bs,
|
|
38296
38672
|
[ib]: bs,
|
|
38297
|
-
[
|
|
38298
|
-
[rb]:
|
|
38299
|
-
[
|
|
38300
|
-
[ob]:
|
|
38301
|
-
[
|
|
38673
|
+
[ab]: Do,
|
|
38674
|
+
[rb]: Ro,
|
|
38675
|
+
[cb]: Lo,
|
|
38676
|
+
[ob]: Po,
|
|
38677
|
+
[hb]: mr,
|
|
38302
38678
|
[lb]: mr,
|
|
38303
|
-
[
|
|
38304
|
-
[
|
|
38305
|
-
[
|
|
38306
|
-
[
|
|
38307
|
-
[_b]: xa
|
|
38679
|
+
[Sb]: gr,
|
|
38680
|
+
[vb]: gr,
|
|
38681
|
+
[Eb]: xa,
|
|
38682
|
+
[yb]: xa
|
|
38308
38683
|
}, $r = {
|
|
38684
|
+
[K0]: Tt,
|
|
38309
38685
|
[j0]: Tt,
|
|
38310
38686
|
[Y0]: Tt,
|
|
38311
|
-
[X0]:
|
|
38687
|
+
[X0]: yt,
|
|
38312
38688
|
[q0]: yt,
|
|
38313
38689
|
[W0]: yt,
|
|
38314
|
-
[V0]:
|
|
38690
|
+
[V0]: qe,
|
|
38315
38691
|
[H0]: qe,
|
|
38316
38692
|
[z0]: qe,
|
|
38317
38693
|
[G0]: qe,
|
|
38318
38694
|
[Q0]: qe,
|
|
38319
38695
|
[k0]: qe,
|
|
38320
|
-
[
|
|
38321
|
-
[J0]:
|
|
38322
|
-
[K0]: jo,
|
|
38323
|
-
[ub]: qe,
|
|
38324
|
-
[hb]: qe,
|
|
38696
|
+
[Z0]: Yo,
|
|
38697
|
+
[J0]: jo,
|
|
38325
38698
|
[fb]: qe,
|
|
38699
|
+
[ub]: qe,
|
|
38326
38700
|
[db]: qe,
|
|
38327
38701
|
[pb]: qe,
|
|
38328
38702
|
[Ab]: qe,
|
|
38703
|
+
[gb]: qe,
|
|
38329
38704
|
[Jd]: yt,
|
|
38705
|
+
[bb]: qe,
|
|
38330
38706
|
[mb]: qe,
|
|
38331
|
-
[
|
|
38332
|
-
[
|
|
38707
|
+
[Ib]: yt,
|
|
38708
|
+
[_b]: qe,
|
|
38333
38709
|
[xb]: qe,
|
|
38334
|
-
[
|
|
38710
|
+
[nb]: qe,
|
|
38335
38711
|
[tb]: qe,
|
|
38336
38712
|
[eb]: qe,
|
|
38337
38713
|
[$0]: qe,
|
|
38338
|
-
[
|
|
38714
|
+
[sb]: qe,
|
|
38339
38715
|
[ib]: qe,
|
|
38340
|
-
[
|
|
38716
|
+
[ab]: qe,
|
|
38341
38717
|
[rb]: qe,
|
|
38342
|
-
[
|
|
38718
|
+
[cb]: qe,
|
|
38343
38719
|
[ob]: qe,
|
|
38344
|
-
[
|
|
38720
|
+
[hb]: qe,
|
|
38345
38721
|
[lb]: qe,
|
|
38346
|
-
[
|
|
38347
|
-
[Eb]: qe,
|
|
38348
|
-
[yb]: qe,
|
|
38722
|
+
[Sb]: qe,
|
|
38349
38723
|
[vb]: qe,
|
|
38350
|
-
[
|
|
38724
|
+
[Eb]: qe,
|
|
38725
|
+
[yb]: qe
|
|
38351
38726
|
};
|
|
38352
|
-
async function
|
|
38727
|
+
async function Mw(r) {
|
|
38353
38728
|
const { vkFormat: e } = r;
|
|
38354
38729
|
if (cf[e] === void 0)
|
|
38355
38730
|
throw new Error("THREE.KTX2Loader: Unsupported vkFormat: " + e);
|
|
38356
38731
|
$r[e] === void 0 && console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: ' + e);
|
|
38357
38732
|
let t;
|
|
38358
38733
|
r.supercompressionScheme === ZA && (of || (of = new Promise(async (a) => {
|
|
38359
|
-
const o = new
|
|
38734
|
+
const o = new vw();
|
|
38360
38735
|
await o.init(), a(o);
|
|
38361
38736
|
})), t = await of);
|
|
38362
38737
|
const n = [];
|
|
38363
38738
|
for (let a = 0; a < r.levels.length; a++) {
|
|
38364
38739
|
const o = Math.max(1, r.pixelWidth >> a), c = Math.max(1, r.pixelHeight >> a), l = r.pixelDepth ? Math.max(1, r.pixelDepth >> a) : 0, h = r.levels[a];
|
|
38365
38740
|
let u;
|
|
38366
|
-
if (r.supercompressionScheme ===
|
|
38741
|
+
if (r.supercompressionScheme === Aw)
|
|
38367
38742
|
u = h.levelData;
|
|
38368
38743
|
else if (r.supercompressionScheme === ZA)
|
|
38369
38744
|
u = t.decode(h.levelData, h.uncompressedByteLength);
|
|
@@ -38391,20 +38766,20 @@ async function Sw(r) {
|
|
|
38391
38766
|
}
|
|
38392
38767
|
const i = r.levelCount === 0 || n.length > 1;
|
|
38393
38768
|
let s;
|
|
38394
|
-
if (
|
|
38769
|
+
if (Iw.has(cf[e]))
|
|
38395
38770
|
s = r.pixelDepth === 0 ? new wn(n[0].data, r.pixelWidth, r.pixelHeight) : new Jo(n[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth), s.minFilter = i ? Xo : pt, s.magFilter = pt, s.generateMipmaps = r.levelCount === 0;
|
|
38396
38771
|
else {
|
|
38397
38772
|
if (r.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
38398
38773
|
s = new Ra(n, r.pixelWidth, r.pixelHeight), s.minFilter = i ? Pn : ht, s.magFilter = ht;
|
|
38399
38774
|
}
|
|
38400
|
-
return s.mipmaps = n, s.type = $r[e], s.format = cf[e], s.colorSpace =
|
|
38775
|
+
return s.mipmaps = n, s.type = $r[e], s.format = cf[e], s.colorSpace = Mb(r), s.needsUpdate = !0, Promise.resolve(s);
|
|
38401
38776
|
}
|
|
38402
|
-
function
|
|
38777
|
+
function Mb(r) {
|
|
38403
38778
|
const e = r.dataFormatDescriptor[0];
|
|
38404
|
-
return e.colorPrimaries ===
|
|
38779
|
+
return e.colorPrimaries === bw ? e.transferFunction === $A ? wt : Jt : e.colorPrimaries === xw ? e.transferFunction === $A ? Ew : Sw : (e.colorPrimaries === mw || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), oi);
|
|
38405
38780
|
}
|
|
38406
|
-
const
|
|
38407
|
-
strategy:
|
|
38781
|
+
const Cb = 0, Cw = 1, ww = 2, ng = 2, lf = 1.25, ig = 1, gn = 32, qt = gn / 4, wb = 65535, Pl = Math.pow(2, -24), Zd = Symbol("SKIP_GENERATION"), Tb = {
|
|
38782
|
+
strategy: Cb,
|
|
38408
38783
|
maxDepth: 40,
|
|
38409
38784
|
maxLeafSize: 10,
|
|
38410
38785
|
useSharedArrayBuffer: !1,
|
|
@@ -38447,7 +38822,7 @@ function ja(r) {
|
|
|
38447
38822
|
return 2 * (e * t + t * n + n * e);
|
|
38448
38823
|
}
|
|
38449
38824
|
function Xt(r, e) {
|
|
38450
|
-
return e[r + 15] ===
|
|
38825
|
+
return e[r + 15] === wb;
|
|
38451
38826
|
}
|
|
38452
38827
|
function mn(r, e) {
|
|
38453
38828
|
return e[r + 6];
|
|
@@ -38478,20 +38853,20 @@ function hf(r, e, t, n, i) {
|
|
|
38478
38853
|
}
|
|
38479
38854
|
n[0] = s, n[1] = a, n[2] = o, n[3] = c, n[4] = l, n[5] = h, i[0] = u, i[1] = f, i[2] = d, i[3] = p, i[4] = b, i[5] = g;
|
|
38480
38855
|
}
|
|
38481
|
-
const Qi = 32,
|
|
38856
|
+
const Qi = 32, Tw = (r, e) => r.candidate - e.candidate, os = /* @__PURE__ */ new Array(Qi).fill().map(() => ({
|
|
38482
38857
|
count: 0,
|
|
38483
38858
|
bounds: new Float32Array(6),
|
|
38484
38859
|
rightCacheBounds: new Float32Array(6),
|
|
38485
38860
|
leftCacheBounds: new Float32Array(6),
|
|
38486
38861
|
candidate: 0
|
|
38487
38862
|
})), al = /* @__PURE__ */ new Float32Array(6);
|
|
38488
|
-
function
|
|
38863
|
+
function Bw(r, e, t, n, i, s) {
|
|
38489
38864
|
let a = -1, o = 0;
|
|
38490
|
-
if (s ===
|
|
38865
|
+
if (s === Cb)
|
|
38491
38866
|
a = sg(e), a !== -1 && (o = (e[a] + e[a + 3]) / 2);
|
|
38492
|
-
else if (s ===
|
|
38493
|
-
a = sg(r), a !== -1 && (o =
|
|
38494
|
-
else if (s ===
|
|
38867
|
+
else if (s === Cw)
|
|
38868
|
+
a = sg(r), a !== -1 && (o = Rw(t, n, i, a));
|
|
38869
|
+
else if (s === ww) {
|
|
38495
38870
|
const c = ja(r);
|
|
38496
38871
|
let l = lf * i;
|
|
38497
38872
|
const h = t.offset || 0, u = (n - h) * 6, f = (n + i - h) * 6;
|
|
@@ -38513,7 +38888,7 @@ function ww(r, e, t, n, i, s) {
|
|
|
38513
38888
|
E[w] = 1 / 0, E[w + 3] = -1 / 0, y[w] = 1 / 0, y[w + 3] = -1 / 0, I[w] = 1 / 0, I[w + 3] = -1 / 0;
|
|
38514
38889
|
rl(v, t, I);
|
|
38515
38890
|
}
|
|
38516
|
-
m.sort(
|
|
38891
|
+
m.sort(Tw);
|
|
38517
38892
|
let _ = i;
|
|
38518
38893
|
for (let v = 0; v < _; v++) {
|
|
38519
38894
|
const S = m[v];
|
|
@@ -38573,7 +38948,7 @@ function ww(r, e, t, n, i, s) {
|
|
|
38573
38948
|
console.warn(`BVH: Invalid build strategy value ${s} used.`);
|
|
38574
38949
|
return { axis: a, pos: o };
|
|
38575
38950
|
}
|
|
38576
|
-
function
|
|
38951
|
+
function Rw(r, e, t, n) {
|
|
38577
38952
|
let i = 0;
|
|
38578
38953
|
const s = r.offset;
|
|
38579
38954
|
for (let a = e, o = e + t; a < o; a++)
|
|
@@ -38585,7 +38960,7 @@ class uf {
|
|
|
38585
38960
|
this.boundingData = new Float32Array(6);
|
|
38586
38961
|
}
|
|
38587
38962
|
}
|
|
38588
|
-
function
|
|
38963
|
+
function Dw(r, e, t, n, i, s) {
|
|
38589
38964
|
let a = n, o = n + i - 1;
|
|
38590
38965
|
const c = s.pos, l = s.axis * 2, h = t.offset || 0;
|
|
38591
38966
|
for (; ; ) {
|
|
@@ -38607,30 +38982,30 @@ function Bw(r, e, t, n, i, s) {
|
|
|
38607
38982
|
return a;
|
|
38608
38983
|
}
|
|
38609
38984
|
}
|
|
38610
|
-
let
|
|
38611
|
-
const
|
|
38612
|
-
function
|
|
38613
|
-
return "count" in r ? 1 : 1 +
|
|
38985
|
+
let Bb, Ll, nd, Rb;
|
|
38986
|
+
const Pw = Math.pow(2, 32);
|
|
38987
|
+
function id(r) {
|
|
38988
|
+
return "count" in r ? 1 : 1 + id(r.left) + id(r.right);
|
|
38614
38989
|
}
|
|
38615
|
-
function
|
|
38616
|
-
return
|
|
38990
|
+
function Lw(r, e, t) {
|
|
38991
|
+
return Bb = new Float32Array(t), Ll = new Uint32Array(t), nd = new Uint16Array(t), Rb = new Uint8Array(t), sd(r, e);
|
|
38617
38992
|
}
|
|
38618
|
-
function
|
|
38993
|
+
function sd(r, e) {
|
|
38619
38994
|
const t = r / 4, n = r / 2, i = "count" in e, s = e.boundingData;
|
|
38620
38995
|
for (let a = 0; a < 6; a++)
|
|
38621
|
-
|
|
38996
|
+
Bb[t + a] = s[a];
|
|
38622
38997
|
if (i)
|
|
38623
|
-
return e.buffer ? (
|
|
38998
|
+
return e.buffer ? (Rb.set(new Uint8Array(e.buffer), r), r + e.buffer.byteLength) : (Ll[t + 6] = e.offset, nd[n + 14] = e.count, nd[n + 15] = wb, r + gn);
|
|
38624
38999
|
{
|
|
38625
39000
|
const { left: a, right: o, splitAxis: c } = e, l = r + gn;
|
|
38626
|
-
let h =
|
|
39001
|
+
let h = sd(l, a);
|
|
38627
39002
|
const u = r / gn, d = h / gn - u;
|
|
38628
|
-
if (d >
|
|
39003
|
+
if (d > Pw)
|
|
38629
39004
|
throw new Error("MeshBVH: Cannot store relative child node offset greater than 32 bits.");
|
|
38630
|
-
return Ll[t + 6] = d, Ll[t + 7] = c,
|
|
39005
|
+
return Ll[t + 6] = d, Ll[t + 7] = c, sd(h, o);
|
|
38631
39006
|
}
|
|
38632
39007
|
}
|
|
38633
|
-
function
|
|
39008
|
+
function Fw(r, e, t, n, i, s) {
|
|
38634
39009
|
const {
|
|
38635
39010
|
maxDepth: a,
|
|
38636
39011
|
verbose: o,
|
|
@@ -38647,10 +39022,10 @@ function Pw(r, e, t, n, i, s) {
|
|
|
38647
39022
|
function A(m, x, _, v = null, S = 0) {
|
|
38648
39023
|
if (!p && S >= a && (p = !0, o && console.warn(`BVH: Max depth of ${a} reached when generating BVH. Consider increasing maxDepth.`)), _ <= c || S >= a)
|
|
38649
39024
|
return g(x + _), m.offset = x, m.count = _, m;
|
|
38650
|
-
const I =
|
|
39025
|
+
const I = Bw(m.boundingData, v, e, x, _, l);
|
|
38651
39026
|
if (I.axis === -1)
|
|
38652
39027
|
return g(x + _), m.offset = x, m.count = _, m;
|
|
38653
|
-
const y =
|
|
39028
|
+
const y = Dw(u, f, e, x, _, I);
|
|
38654
39029
|
if (y === x || y === x + _)
|
|
38655
39030
|
g(x + _), m.offset = x, m.count = _;
|
|
38656
39031
|
else {
|
|
@@ -38663,14 +39038,14 @@ function Pw(r, e, t, n, i, s) {
|
|
|
38663
39038
|
return m;
|
|
38664
39039
|
}
|
|
38665
39040
|
}
|
|
38666
|
-
function
|
|
39041
|
+
function Nw(r, e) {
|
|
38667
39042
|
const t = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, n = r.getRootRanges(e.range), i = n[0], s = n[n.length - 1], a = {
|
|
38668
39043
|
offset: i.offset,
|
|
38669
39044
|
count: s.offset + s.count - i.offset
|
|
38670
39045
|
}, o = new Float32Array(6 * a.count);
|
|
38671
39046
|
o.offset = a.offset, r.computePrimitiveBounds(a.offset, a.count, o), r._roots = n.map((c) => {
|
|
38672
|
-
const l =
|
|
38673
|
-
return
|
|
39047
|
+
const l = Fw(r, o, c.offset, c.count, e, a), h = id(l), u = new t(gn * h);
|
|
39048
|
+
return Lw(0, l, u), u;
|
|
38674
39049
|
});
|
|
38675
39050
|
}
|
|
38676
39051
|
class ep {
|
|
@@ -38685,7 +39060,7 @@ class ep {
|
|
|
38685
39060
|
this._primitives.push(e);
|
|
38686
39061
|
}
|
|
38687
39062
|
}
|
|
38688
|
-
class
|
|
39063
|
+
class Uw {
|
|
38689
39064
|
constructor() {
|
|
38690
39065
|
this.float32Array = null, this.uint16Array = null, this.uint32Array = null;
|
|
38691
39066
|
const e = [];
|
|
@@ -38697,17 +39072,17 @@ class Fw {
|
|
|
38697
39072
|
};
|
|
38698
39073
|
}
|
|
38699
39074
|
}
|
|
38700
|
-
const Mt = /* @__PURE__ */ new
|
|
39075
|
+
const Mt = /* @__PURE__ */ new Uw();
|
|
38701
39076
|
let As, ua;
|
|
38702
39077
|
const ea = [], ol = /* @__PURE__ */ new ep(() => new vt());
|
|
38703
|
-
function
|
|
39078
|
+
function Ow(r, e, t, n, i, s) {
|
|
38704
39079
|
As = ol.getPrimitive(), ua = ol.getPrimitive(), ea.push(As, ua), Mt.setBuffer(r._roots[e]);
|
|
38705
|
-
const a =
|
|
39080
|
+
const a = rd(0, r.geometry, t, n, i, s);
|
|
38706
39081
|
Mt.clearBuffer(), ol.releasePrimitive(As), ol.releasePrimitive(ua), ea.pop(), ea.pop();
|
|
38707
39082
|
const o = ea.length;
|
|
38708
39083
|
return o > 0 && (ua = ea[o - 1], As = ea[o - 2]), a;
|
|
38709
39084
|
}
|
|
38710
|
-
function
|
|
39085
|
+
function rd(r, e, t, n, i = null, s = 0, a = 0) {
|
|
38711
39086
|
const { float32Array: o, uint16Array: c, uint32Array: l } = Mt;
|
|
38712
39087
|
let h = r * 2;
|
|
38713
39088
|
if (Xt(h, c)) {
|
|
@@ -38741,7 +39116,7 @@ function id(r, e, t, n, i = null, s = 0, a = 0) {
|
|
|
38741
39116
|
const B = w(p), L = C(p) - B;
|
|
38742
39117
|
S = n(B, L, !0, a + 1, s + p / qt, m);
|
|
38743
39118
|
} else
|
|
38744
|
-
S = v &&
|
|
39119
|
+
S = v && rd(
|
|
38745
39120
|
p,
|
|
38746
39121
|
e,
|
|
38747
39122
|
t,
|
|
@@ -38758,7 +39133,7 @@ function id(r, e, t, n, i = null, s = 0, a = 0) {
|
|
|
38758
39133
|
const B = w(b), L = C(b) - B;
|
|
38759
39134
|
E = n(B, L, !0, a + 1, s + b / qt, x);
|
|
38760
39135
|
} else
|
|
38761
|
-
E = y &&
|
|
39136
|
+
E = y && rd(
|
|
38762
39137
|
b,
|
|
38763
39138
|
e,
|
|
38764
39139
|
t,
|
|
@@ -38772,7 +39147,7 @@ function id(r, e, t, n, i = null, s = 0, a = 0) {
|
|
|
38772
39147
|
}
|
|
38773
39148
|
const _o = /* @__PURE__ */ new Mt.constructor(), dh = /* @__PURE__ */ new Mt.constructor(), hs = /* @__PURE__ */ new ep(() => new vt()), ta = /* @__PURE__ */ new vt(), na = /* @__PURE__ */ new vt(), ff = /* @__PURE__ */ new vt(), df = /* @__PURE__ */ new vt();
|
|
38774
39149
|
let pf = !1;
|
|
38775
|
-
function
|
|
39150
|
+
function kw(r, e, t, n) {
|
|
38776
39151
|
if (pf)
|
|
38777
39152
|
throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");
|
|
38778
39153
|
pf = !0;
|
|
@@ -38985,15 +39360,15 @@ function ri(r, e, t, n, i, s = 0, a = 0, o = 0, c = 0, l = null, h = !1) {
|
|
|
38985
39360
|
return I;
|
|
38986
39361
|
}
|
|
38987
39362
|
const og = /* @__PURE__ */ new vt(), ia = /* @__PURE__ */ new Float32Array(6);
|
|
38988
|
-
class
|
|
39363
|
+
class Qw {
|
|
38989
39364
|
constructor() {
|
|
38990
39365
|
this._roots = null, this.primitiveBuffer = null, this.primitiveBufferStride = null;
|
|
38991
39366
|
}
|
|
38992
39367
|
init(e) {
|
|
38993
39368
|
e = {
|
|
38994
|
-
...
|
|
39369
|
+
...Tb,
|
|
38995
39370
|
...e
|
|
38996
|
-
},
|
|
39371
|
+
}, Nw(this, e);
|
|
38997
39372
|
}
|
|
38998
39373
|
getRootRanges() {
|
|
38999
39374
|
throw new Error("BVH: getRootRanges() not implemented");
|
|
@@ -39133,7 +39508,7 @@ class Ow {
|
|
|
39133
39508
|
const h = this._roots;
|
|
39134
39509
|
for (let u = 0, f = h.length; u < f; u++) {
|
|
39135
39510
|
const d = h[u];
|
|
39136
|
-
if (c =
|
|
39511
|
+
if (c = Ow(this, u, n, i, t, l), c)
|
|
39137
39512
|
break;
|
|
39138
39513
|
l += d.byteLength / gn;
|
|
39139
39514
|
}
|
|
@@ -39152,10 +39527,10 @@ class Ow {
|
|
|
39152
39527
|
*/
|
|
39153
39528
|
bvhcast(e, t, n) {
|
|
39154
39529
|
let { intersectsRanges: i } = n;
|
|
39155
|
-
return
|
|
39530
|
+
return kw(this, e, t, i);
|
|
39156
39531
|
}
|
|
39157
39532
|
}
|
|
39158
|
-
function
|
|
39533
|
+
function Gw() {
|
|
39159
39534
|
return typeof SharedArrayBuffer < "u";
|
|
39160
39535
|
}
|
|
39161
39536
|
function tp(r) {
|
|
@@ -39164,32 +39539,32 @@ function tp(r) {
|
|
|
39164
39539
|
function su(r) {
|
|
39165
39540
|
return tp(r) / 3;
|
|
39166
39541
|
}
|
|
39167
|
-
function
|
|
39542
|
+
function zw(r, e = ArrayBuffer) {
|
|
39168
39543
|
return r > 65535 ? new Uint32Array(new e(4 * r)) : new Uint16Array(new e(2 * r));
|
|
39169
39544
|
}
|
|
39170
|
-
function
|
|
39545
|
+
function Hw(r, e) {
|
|
39171
39546
|
if (!r.index) {
|
|
39172
|
-
const t = r.attributes.position.count, n = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, i =
|
|
39547
|
+
const t = r.attributes.position.count, n = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, i = zw(t, n);
|
|
39173
39548
|
r.setIndex(new at(i, 1));
|
|
39174
39549
|
for (let s = 0; s < t; s++)
|
|
39175
39550
|
i[s] = s;
|
|
39176
39551
|
}
|
|
39177
39552
|
}
|
|
39178
|
-
function
|
|
39553
|
+
function Vw(r, e, t) {
|
|
39179
39554
|
const n = tp(r) / t, i = e || r.drawRange, s = i.start / t, a = (i.start + i.count) / t, o = Math.max(0, s), c = Math.min(n, a) - o;
|
|
39180
39555
|
return {
|
|
39181
39556
|
offset: Math.floor(o),
|
|
39182
39557
|
count: Math.floor(c)
|
|
39183
39558
|
};
|
|
39184
39559
|
}
|
|
39185
|
-
function
|
|
39560
|
+
function Ww(r, e) {
|
|
39186
39561
|
return r.groups.map((t) => ({
|
|
39187
39562
|
offset: t.start / e,
|
|
39188
39563
|
count: t.count / e
|
|
39189
39564
|
}));
|
|
39190
39565
|
}
|
|
39191
39566
|
function cg(r, e, t) {
|
|
39192
|
-
const n =
|
|
39567
|
+
const n = Vw(r, e, t), i = Ww(r, t);
|
|
39193
39568
|
if (!i.length)
|
|
39194
39569
|
return [n];
|
|
39195
39570
|
const s = [], a = n.offset, o = n.offset + n.count, c = tp(r) / t, l = [];
|
|
@@ -39208,7 +39583,7 @@ function cg(r, e, t) {
|
|
|
39208
39583
|
}
|
|
39209
39584
|
return s;
|
|
39210
39585
|
}
|
|
39211
|
-
function
|
|
39586
|
+
function qw(r, e) {
|
|
39212
39587
|
const t = r[r.length - 1], n = t.offset + t.count > 2 ** 16, i = r.reduce((l, h) => l + h.count, 0), s = n ? 4 : 2, a = e ? new SharedArrayBuffer(i * s) : new ArrayBuffer(i * s), o = n ? new Uint32Array(a) : new Uint16Array(a);
|
|
39213
39588
|
let c = 0;
|
|
39214
39589
|
for (let l = 0; l < r.length; l++) {
|
|
@@ -39219,7 +39594,7 @@ function Vw(r, e) {
|
|
|
39219
39594
|
}
|
|
39220
39595
|
return o;
|
|
39221
39596
|
}
|
|
39222
|
-
class
|
|
39597
|
+
class Xw extends Qw {
|
|
39223
39598
|
/**
|
|
39224
39599
|
* Whether the BVH was built in indirect mode.
|
|
39225
39600
|
* @type {boolean}
|
|
@@ -39246,20 +39621,20 @@ class Ww extends Ow {
|
|
|
39246
39621
|
if (e.index && e.index.isInterleavedBufferAttribute)
|
|
39247
39622
|
throw new Error("BVH: InterleavedBufferAttribute is not supported for the index attribute.");
|
|
39248
39623
|
} else throw new Error("BVH: Only BufferGeometries are supported.");
|
|
39249
|
-
if (t.useSharedArrayBuffer && !
|
|
39624
|
+
if (t.useSharedArrayBuffer && !Gw())
|
|
39250
39625
|
throw new Error("BVH: SharedArrayBuffer is not available.");
|
|
39251
39626
|
super(), this.geometry = e, this.resolvePrimitiveIndex = t.indirect ? (n) => this._indirectBuffer[n] : (n) => n, this.primitiveBuffer = null, this.primitiveBufferStride = null, this._indirectBuffer = null, t = {
|
|
39252
|
-
...
|
|
39627
|
+
...Tb,
|
|
39253
39628
|
...t
|
|
39254
39629
|
}, t[Zd] || this.init(t);
|
|
39255
39630
|
}
|
|
39256
39631
|
init(e) {
|
|
39257
39632
|
const { geometry: t, primitiveStride: n } = this;
|
|
39258
39633
|
if (e.indirect) {
|
|
39259
|
-
const i = cg(t, e.range, n), s =
|
|
39634
|
+
const i = cg(t, e.range, n), s = qw(i, e.useSharedArrayBuffer);
|
|
39260
39635
|
this._indirectBuffer = s;
|
|
39261
39636
|
} else
|
|
39262
|
-
|
|
39637
|
+
Hw(t, e);
|
|
39263
39638
|
super.init(e), !t.boundingBox && e.setBoundingBox && (t.boundingBox = this.getBoundingBox(new vt()));
|
|
39264
39639
|
}
|
|
39265
39640
|
// Abstract methods to be implemented by subclasses
|
|
@@ -39309,7 +39684,7 @@ ji.prototype.setFromBox = /* @__PURE__ */ (function() {
|
|
|
39309
39684
|
this.min = a, this.max = o;
|
|
39310
39685
|
};
|
|
39311
39686
|
})();
|
|
39312
|
-
const
|
|
39687
|
+
const Yw = /* @__PURE__ */ (function() {
|
|
39313
39688
|
const r = /* @__PURE__ */ new T(), e = /* @__PURE__ */ new T(), t = /* @__PURE__ */ new T();
|
|
39314
39689
|
return function(i, s, a) {
|
|
39315
39690
|
const o = i.start, c = r, l = s.start, h = e;
|
|
@@ -39321,7 +39696,7 @@ const qw = /* @__PURE__ */ (function() {
|
|
|
39321
39696
|
})(), np = /* @__PURE__ */ (function() {
|
|
39322
39697
|
const r = /* @__PURE__ */ new K(), e = /* @__PURE__ */ new T(), t = /* @__PURE__ */ new T();
|
|
39323
39698
|
return function(i, s, a, o) {
|
|
39324
|
-
|
|
39699
|
+
Yw(i, s, r);
|
|
39325
39700
|
let c = r.x, l = r.y;
|
|
39326
39701
|
if (c >= 0 && c <= 1 && l >= 0 && l <= 1) {
|
|
39327
39702
|
i.at(c, a), s.at(l, o);
|
|
@@ -39347,7 +39722,7 @@ const qw = /* @__PURE__ */ (function() {
|
|
|
39347
39722
|
}
|
|
39348
39723
|
}
|
|
39349
39724
|
};
|
|
39350
|
-
})(),
|
|
39725
|
+
})(), jw = /* @__PURE__ */ (function() {
|
|
39351
39726
|
const r = /* @__PURE__ */ new T(), e = /* @__PURE__ */ new T(), t = /* @__PURE__ */ new Yn(), n = /* @__PURE__ */ new zn();
|
|
39352
39727
|
return function(s, a) {
|
|
39353
39728
|
const { radius: o, center: c } = s, { a: l, b: h, c: u } = a;
|
|
@@ -39359,7 +39734,7 @@ const qw = /* @__PURE__ */ (function() {
|
|
|
39359
39734
|
}
|
|
39360
39735
|
return !1;
|
|
39361
39736
|
};
|
|
39362
|
-
})(),
|
|
39737
|
+
})(), Kw = ["x", "y", "z"], zi = 1e-15, lg = zi * zi;
|
|
39363
39738
|
function Wn(r) {
|
|
39364
39739
|
return Math.abs(r) < zi;
|
|
39365
39740
|
}
|
|
@@ -39373,7 +39748,7 @@ class Zn extends mt {
|
|
|
39373
39748
|
* @returns {boolean}
|
|
39374
39749
|
*/
|
|
39375
39750
|
intersectsSphere(e) {
|
|
39376
|
-
return
|
|
39751
|
+
return jw(e, this);
|
|
39377
39752
|
}
|
|
39378
39753
|
update() {
|
|
39379
39754
|
const e = this.a, t = this.b, n = this.c, i = this.points, s = this.satAxes, a = this.satBounds, o = s[0], c = a[0];
|
|
@@ -39492,7 +39867,7 @@ Zn.prototype.intersectsTriangle = /* @__PURE__ */ (function() {
|
|
|
39492
39867
|
let $ = 0, Z = Math.abs(ie.x);
|
|
39493
39868
|
const ge = Math.abs(ie.y);
|
|
39494
39869
|
ge > Z && (Z = ge, $ = 1), Math.abs(ie.z) > Z && ($ = 2);
|
|
39495
|
-
const tt =
|
|
39870
|
+
const tt = Kw[$], j = this.a[tt], ae = this.b[tt], oe = this.c[tt], Re = _.a[tt], we = _.b[tt], He = _.c[tt];
|
|
39496
39871
|
if (p(this, j, ae, oe, D, L, w, C, B, h, o))
|
|
39497
39872
|
return f(this, _, v, S);
|
|
39498
39873
|
if (p(_, Re, we, He, J, z, F, U, O, u, c))
|
|
@@ -39669,13 +40044,13 @@ Tn.prototype.distanceToBox = /* @__PURE__ */ (function() {
|
|
|
39669
40044
|
return Math.sqrt(p);
|
|
39670
40045
|
};
|
|
39671
40046
|
})();
|
|
39672
|
-
class
|
|
40047
|
+
class Jw extends ep {
|
|
39673
40048
|
constructor() {
|
|
39674
40049
|
super(() => new Zn());
|
|
39675
40050
|
}
|
|
39676
40051
|
}
|
|
39677
|
-
const Kn = /* @__PURE__ */ new
|
|
39678
|
-
function
|
|
40052
|
+
const Kn = /* @__PURE__ */ new Jw(), Ka = /* @__PURE__ */ new T(), Af = /* @__PURE__ */ new T();
|
|
40053
|
+
function Zw(r, e, t = {}, n = 0, i = 1 / 0) {
|
|
39679
40054
|
const s = n * n, a = i * i;
|
|
39680
40055
|
let o = 1 / 0, c = null;
|
|
39681
40056
|
if (r.shapecast(
|
|
@@ -39692,8 +40067,8 @@ function Kw(r, e, t = {}, n = 0, i = 1 / 0) {
|
|
|
39692
40067
|
const l = Math.sqrt(o);
|
|
39693
40068
|
return t.point ? t.point.copy(Af) : t.point = Af.clone(), t.distance = l, t.faceIndex = c, t;
|
|
39694
40069
|
}
|
|
39695
|
-
const cl = parseInt("183") >= 169,
|
|
39696
|
-
function
|
|
40070
|
+
const cl = parseInt("183") >= 169, $w = parseInt("183") <= 161, qs = /* @__PURE__ */ new T(), Xs = /* @__PURE__ */ new T(), Ys = /* @__PURE__ */ new T(), ll = /* @__PURE__ */ new K(), hl = /* @__PURE__ */ new K(), ul = /* @__PURE__ */ new K(), hg = /* @__PURE__ */ new T(), ug = /* @__PURE__ */ new T(), fg = /* @__PURE__ */ new T(), Ja = /* @__PURE__ */ new T();
|
|
40071
|
+
function eT(r, e, t, n, i, s, a, o) {
|
|
39697
40072
|
let c;
|
|
39698
40073
|
if (s === on ? c = r.intersectTriangle(n, t, e, !0, i) : c = r.intersectTriangle(e, t, n, s !== En, i), c === null) return null;
|
|
39699
40074
|
const l = r.origin.distanceTo(i);
|
|
@@ -39704,7 +40079,7 @@ function Zw(r, e, t, n, i, s, a, o) {
|
|
|
39704
40079
|
}
|
|
39705
40080
|
function dg(r, e, t, n, i, s, a, o, c, l, h) {
|
|
39706
40081
|
qs.fromBufferAttribute(e, s), Xs.fromBufferAttribute(e, a), Ys.fromBufferAttribute(e, o);
|
|
39707
|
-
const u =
|
|
40082
|
+
const u = eT(r, qs, Xs, Ys, Ja, c, l, h);
|
|
39708
40083
|
if (u) {
|
|
39709
40084
|
if (n) {
|
|
39710
40085
|
ll.fromBufferAttribute(n, s), hl.fromBufferAttribute(n, a), ul.fromBufferAttribute(n, o), u.uv = new K();
|
|
@@ -39714,7 +40089,7 @@ function dg(r, e, t, n, i, s, a, o, c, l, h) {
|
|
|
39714
40089
|
if (i) {
|
|
39715
40090
|
ll.fromBufferAttribute(i, s), hl.fromBufferAttribute(i, a), ul.fromBufferAttribute(i, o), u.uv1 = new K();
|
|
39716
40091
|
const d = mt.getInterpolation(Ja, qs, Xs, Ys, ll, hl, ul, u.uv1);
|
|
39717
|
-
cl || (u.uv1 = d),
|
|
40092
|
+
cl || (u.uv1 = d), $w && (u.uv2 = u.uv1);
|
|
39718
40093
|
}
|
|
39719
40094
|
if (t) {
|
|
39720
40095
|
hg.fromBufferAttribute(t, s), ug.fromBufferAttribute(t, a), fg.fromBufferAttribute(t, o), u.normal = new T();
|
|
@@ -39772,12 +40147,12 @@ function zt(r, e, t, n) {
|
|
|
39772
40147
|
let o = e, c = e + 1, l = e + 2;
|
|
39773
40148
|
t && (o = t.getX(o), c = t.getX(c), l = t.getX(l)), i.x = n.getX(o), i.y = n.getY(o), i.z = n.getZ(o), s.x = n.getX(c), s.y = n.getY(c), s.z = n.getZ(c), a.x = n.getX(l), a.y = n.getY(l), a.z = n.getZ(l);
|
|
39774
40149
|
}
|
|
39775
|
-
function
|
|
40150
|
+
function tT(r, e, t, n, i, s, a, o) {
|
|
39776
40151
|
const { geometry: c, _indirectBuffer: l } = r;
|
|
39777
40152
|
for (let h = n, u = n + i; h < u; h++)
|
|
39778
40153
|
ru(c, e, t, h, s, a, o);
|
|
39779
40154
|
}
|
|
39780
|
-
function
|
|
40155
|
+
function nT(r, e, t, n, i, s, a) {
|
|
39781
40156
|
const { geometry: o, _indirectBuffer: c } = r;
|
|
39782
40157
|
let l = 1 / 0, h = null;
|
|
39783
40158
|
for (let u = n, f = n + i; u < f; u++) {
|
|
@@ -39786,7 +40161,7 @@ function eT(r, e, t, n, i, s, a) {
|
|
|
39786
40161
|
}
|
|
39787
40162
|
return h;
|
|
39788
40163
|
}
|
|
39789
|
-
function
|
|
40164
|
+
function iT(r, e, t, n, i, s, a) {
|
|
39790
40165
|
const { geometry: o } = t, { index: c } = o, l = o.attributes.position;
|
|
39791
40166
|
for (let h = r, u = e + r; h < u; h++) {
|
|
39792
40167
|
let f;
|
|
@@ -39795,7 +40170,7 @@ function tT(r, e, t, n, i, s, a) {
|
|
|
39795
40170
|
}
|
|
39796
40171
|
return !1;
|
|
39797
40172
|
}
|
|
39798
|
-
function
|
|
40173
|
+
function sT(r, e = null) {
|
|
39799
40174
|
e && Array.isArray(e) && (e = new Set(e));
|
|
39800
40175
|
const t = r.geometry, n = t.index ? t.index.array : null, i = t.attributes.position;
|
|
39801
40176
|
let s, a, o, c, l = 0;
|
|
@@ -39844,14 +40219,14 @@ function Is(r, e, t, n, i) {
|
|
|
39844
40219
|
let A = e[r], m = e[r + 3], x = e[r + 1], _ = e[r + 3 + 1], v = e[r + 2], S = e[r + 3 + 2];
|
|
39845
40220
|
return u >= 0 ? (s = (A - p) * u, a = (m - p) * u) : (s = (m - p) * u, a = (A - p) * u), f >= 0 ? (o = (x - b) * f, c = (_ - b) * f) : (o = (_ - b) * f, c = (x - b) * f), s > c || o > a || ((o > s || isNaN(s)) && (s = o), (c < a || isNaN(a)) && (a = c), d >= 0 ? (l = (v - g) * d, h = (S - g) * d) : (l = (S - g) * d, h = (v - g) * d), s > h || l > a) ? !1 : ((l > s || s !== s) && (s = l), (h < a || a !== a) && (a = h), s <= i && a >= n);
|
|
39846
40221
|
}
|
|
39847
|
-
function
|
|
40222
|
+
function rT(r, e, t, n, i, s, a, o) {
|
|
39848
40223
|
const { geometry: c, _indirectBuffer: l } = r;
|
|
39849
40224
|
for (let h = n, u = n + i; h < u; h++) {
|
|
39850
40225
|
let f = l ? l[h] : h;
|
|
39851
40226
|
ru(c, e, t, f, s, a, o);
|
|
39852
40227
|
}
|
|
39853
40228
|
}
|
|
39854
|
-
function
|
|
40229
|
+
function aT(r, e, t, n, i, s, a) {
|
|
39855
40230
|
const { geometry: o, _indirectBuffer: c } = r;
|
|
39856
40231
|
let l = 1 / 0, h = null;
|
|
39857
40232
|
for (let u = n, f = n + i; u < f; u++) {
|
|
@@ -39860,7 +40235,7 @@ function sT(r, e, t, n, i, s, a) {
|
|
|
39860
40235
|
}
|
|
39861
40236
|
return h;
|
|
39862
40237
|
}
|
|
39863
|
-
function
|
|
40238
|
+
function oT(r, e, t, n, i, s, a) {
|
|
39864
40239
|
const { geometry: o } = t, { index: c } = o, l = o.attributes.position;
|
|
39865
40240
|
for (let h = r, u = e + r; h < u; h++) {
|
|
39866
40241
|
let f;
|
|
@@ -39869,38 +40244,38 @@ function rT(r, e, t, n, i, s, a) {
|
|
|
39869
40244
|
}
|
|
39870
40245
|
return !1;
|
|
39871
40246
|
}
|
|
39872
|
-
function
|
|
39873
|
-
Mt.setBuffer(r._roots[e]),
|
|
40247
|
+
function cT(r, e, t, n, i, s, a) {
|
|
40248
|
+
Mt.setBuffer(r._roots[e]), ad(0, r, t, n, i, s, a), Mt.clearBuffer();
|
|
39874
40249
|
}
|
|
39875
|
-
function
|
|
40250
|
+
function ad(r, e, t, n, i, s, a) {
|
|
39876
40251
|
const { float32Array: o, uint16Array: c, uint32Array: l } = Mt, h = r * 2;
|
|
39877
40252
|
if (Xt(h, c)) {
|
|
39878
40253
|
const f = mn(r, l), d = Cn(h, c);
|
|
39879
|
-
|
|
40254
|
+
tT(e, t, n, f, d, i, s, a);
|
|
39880
40255
|
} else {
|
|
39881
40256
|
const f = nn(r);
|
|
39882
|
-
Is(f, o, n, s, a) &&
|
|
40257
|
+
Is(f, o, n, s, a) && ad(f, e, t, n, i, s, a);
|
|
39883
40258
|
const d = sn(r, l);
|
|
39884
|
-
Is(d, o, n, s, a) &&
|
|
40259
|
+
Is(d, o, n, s, a) && ad(d, e, t, n, i, s, a);
|
|
39885
40260
|
}
|
|
39886
40261
|
}
|
|
39887
|
-
const
|
|
39888
|
-
function
|
|
40262
|
+
const lT = ["x", "y", "z"];
|
|
40263
|
+
function hT(r, e, t, n, i, s) {
|
|
39889
40264
|
Mt.setBuffer(r._roots[e]);
|
|
39890
|
-
const a =
|
|
40265
|
+
const a = od(0, r, t, n, i, s);
|
|
39891
40266
|
return Mt.clearBuffer(), a;
|
|
39892
40267
|
}
|
|
39893
|
-
function
|
|
40268
|
+
function od(r, e, t, n, i, s) {
|
|
39894
40269
|
const { float32Array: a, uint16Array: o, uint32Array: c } = Mt;
|
|
39895
40270
|
let l = r * 2;
|
|
39896
40271
|
if (Xt(l, o)) {
|
|
39897
40272
|
const u = mn(r, c), f = Cn(l, o);
|
|
39898
|
-
return
|
|
40273
|
+
return nT(e, t, n, u, f, i, s);
|
|
39899
40274
|
} else {
|
|
39900
|
-
const u = $d(r, c), f =
|
|
40275
|
+
const u = $d(r, c), f = lT[u], p = n.direction[f] >= 0;
|
|
39901
40276
|
let b, g;
|
|
39902
40277
|
p ? (b = nn(r), g = sn(r, c)) : (b = sn(r, c), g = nn(r));
|
|
39903
|
-
const m = Is(b, a, n, i, s) ?
|
|
40278
|
+
const m = Is(b, a, n, i, s) ? od(b, e, t, n, i, s) : null;
|
|
39904
40279
|
if (m) {
|
|
39905
40280
|
const v = m.point[f];
|
|
39906
40281
|
if (p ? v <= a[g + u] : (
|
|
@@ -39909,17 +40284,17 @@ function rd(r, e, t, n, i, s) {
|
|
|
39909
40284
|
))
|
|
39910
40285
|
return m;
|
|
39911
40286
|
}
|
|
39912
|
-
const _ = Is(g, a, n, i, s) ?
|
|
40287
|
+
const _ = Is(g, a, n, i, s) ? od(g, e, t, n, i, s) : null;
|
|
39913
40288
|
return m && _ ? m.distance <= _.distance ? m : _ : m || _ || null;
|
|
39914
40289
|
}
|
|
39915
40290
|
}
|
|
39916
40291
|
const fl = /* @__PURE__ */ new vt(), sa = /* @__PURE__ */ new Zn(), ra = /* @__PURE__ */ new Zn(), Za = /* @__PURE__ */ new ve(), Ag = /* @__PURE__ */ new Tn(), dl = /* @__PURE__ */ new Tn();
|
|
39917
|
-
function
|
|
40292
|
+
function uT(r, e, t, n) {
|
|
39918
40293
|
Mt.setBuffer(r._roots[e]);
|
|
39919
|
-
const i =
|
|
40294
|
+
const i = cd(0, r, t, n);
|
|
39920
40295
|
return Mt.clearBuffer(), i;
|
|
39921
40296
|
}
|
|
39922
|
-
function
|
|
40297
|
+
function cd(r, e, t, n, i = null) {
|
|
39923
40298
|
const { float32Array: s, uint16Array: a, uint32Array: o } = Mt;
|
|
39924
40299
|
let c = r * 2;
|
|
39925
40300
|
if (i === null && (t.boundingBox || t.computeBoundingBox(), Ag.set(t.boundingBox.min, t.boundingBox.max, n), i = Ag), Xt(c, a)) {
|
|
@@ -39946,15 +40321,15 @@ function ad(r, e, t, n, i = null) {
|
|
|
39946
40321
|
}
|
|
39947
40322
|
} else {
|
|
39948
40323
|
const h = nn(r), u = sn(r, o);
|
|
39949
|
-
return Ft(h, s, fl), !!(i.intersectsBox(fl) &&
|
|
40324
|
+
return Ft(h, s, fl), !!(i.intersectsBox(fl) && cd(h, e, t, n, i) || (Ft(u, s, fl), i.intersectsBox(fl) && cd(u, e, t, n, i)));
|
|
39950
40325
|
}
|
|
39951
40326
|
}
|
|
39952
|
-
const pl = /* @__PURE__ */ new ve(), gf = /* @__PURE__ */ new Tn(), $a = /* @__PURE__ */ new Tn(),
|
|
39953
|
-
function
|
|
40327
|
+
const pl = /* @__PURE__ */ new ve(), gf = /* @__PURE__ */ new Tn(), $a = /* @__PURE__ */ new Tn(), fT = /* @__PURE__ */ new T(), dT = /* @__PURE__ */ new T(), pT = /* @__PURE__ */ new T(), AT = /* @__PURE__ */ new T();
|
|
40328
|
+
function gT(r, e, t, n = {}, i = {}, s = 0, a = 1 / 0) {
|
|
39954
40329
|
e.boundingBox || e.computeBoundingBox(), gf.set(e.boundingBox.min, e.boundingBox.max, t), gf.needsUpdate = !0;
|
|
39955
40330
|
const o = r.geometry, c = o.attributes.position, l = o.index, h = e.attributes.position, u = e.index, f = Kn.getPrimitive(), d = Kn.getPrimitive();
|
|
39956
|
-
let p =
|
|
39957
|
-
i && (g =
|
|
40331
|
+
let p = fT, b = dT, g = null, A = null;
|
|
40332
|
+
i && (g = pT, A = AT);
|
|
39958
40333
|
let m = 1 / 0, x = null, _ = null;
|
|
39959
40334
|
return pl.copy(t).invert(), $a.matrix.copy(pl), r.shapecast(
|
|
39960
40335
|
{
|
|
@@ -39993,7 +40368,7 @@ function pT(r, e, t, n = {}, i = {}, s = 0, a = 1 / 0) {
|
|
|
39993
40368
|
}
|
|
39994
40369
|
), Kn.releasePrimitive(f), Kn.releasePrimitive(d), m === 1 / 0 ? null : (n.point ? n.point.copy(b) : n.point = b.clone(), n.distance = m, n.faceIndex = x, i && (i.point ? i.point.copy(A) : i.point = A.clone(), i.point.applyMatrix4(pl), b.applyMatrix4(pl), i.distance = b.sub(i.point).length(), i.faceIndex = _), n);
|
|
39995
40370
|
}
|
|
39996
|
-
function
|
|
40371
|
+
function mT(r, e = null) {
|
|
39997
40372
|
e && Array.isArray(e) && (e = new Set(e));
|
|
39998
40373
|
const t = r.geometry, n = t.index ? t.index.array : null, i = t.attributes.position;
|
|
39999
40374
|
let s, a, o, c, l = 0;
|
|
@@ -40040,38 +40415,38 @@ function AT(r, e = null) {
|
|
|
40040
40415
|
}
|
|
40041
40416
|
}
|
|
40042
40417
|
}
|
|
40043
|
-
function
|
|
40044
|
-
Mt.setBuffer(r._roots[e]),
|
|
40418
|
+
function bT(r, e, t, n, i, s, a) {
|
|
40419
|
+
Mt.setBuffer(r._roots[e]), ld(0, r, t, n, i, s, a), Mt.clearBuffer();
|
|
40045
40420
|
}
|
|
40046
|
-
function
|
|
40421
|
+
function ld(r, e, t, n, i, s, a) {
|
|
40047
40422
|
const { float32Array: o, uint16Array: c, uint32Array: l } = Mt, h = r * 2;
|
|
40048
40423
|
if (Xt(h, c)) {
|
|
40049
40424
|
const f = mn(r, l), d = Cn(h, c);
|
|
40050
|
-
|
|
40425
|
+
rT(e, t, n, f, d, i, s, a);
|
|
40051
40426
|
} else {
|
|
40052
40427
|
const f = nn(r);
|
|
40053
|
-
Is(f, o, n, s, a) &&
|
|
40428
|
+
Is(f, o, n, s, a) && ld(f, e, t, n, i, s, a);
|
|
40054
40429
|
const d = sn(r, l);
|
|
40055
|
-
Is(d, o, n, s, a) &&
|
|
40430
|
+
Is(d, o, n, s, a) && ld(d, e, t, n, i, s, a);
|
|
40056
40431
|
}
|
|
40057
40432
|
}
|
|
40058
|
-
const
|
|
40059
|
-
function
|
|
40433
|
+
const xT = ["x", "y", "z"];
|
|
40434
|
+
function _T(r, e, t, n, i, s) {
|
|
40060
40435
|
Mt.setBuffer(r._roots[e]);
|
|
40061
|
-
const a =
|
|
40436
|
+
const a = hd(0, r, t, n, i, s);
|
|
40062
40437
|
return Mt.clearBuffer(), a;
|
|
40063
40438
|
}
|
|
40064
|
-
function
|
|
40439
|
+
function hd(r, e, t, n, i, s) {
|
|
40065
40440
|
const { float32Array: a, uint16Array: o, uint32Array: c } = Mt;
|
|
40066
40441
|
let l = r * 2;
|
|
40067
40442
|
if (Xt(l, o)) {
|
|
40068
40443
|
const u = mn(r, c), f = Cn(l, o);
|
|
40069
|
-
return
|
|
40444
|
+
return aT(e, t, n, u, f, i, s);
|
|
40070
40445
|
} else {
|
|
40071
|
-
const u = $d(r, c), f =
|
|
40446
|
+
const u = $d(r, c), f = xT[u], p = n.direction[f] >= 0;
|
|
40072
40447
|
let b, g;
|
|
40073
40448
|
p ? (b = nn(r), g = sn(r, c)) : (b = sn(r, c), g = nn(r));
|
|
40074
|
-
const m = Is(b, a, n, i, s) ?
|
|
40449
|
+
const m = Is(b, a, n, i, s) ? hd(b, e, t, n, i, s) : null;
|
|
40075
40450
|
if (m) {
|
|
40076
40451
|
const v = m.point[f];
|
|
40077
40452
|
if (p ? v <= a[g + u] : (
|
|
@@ -40080,17 +40455,17 @@ function cd(r, e, t, n, i, s) {
|
|
|
40080
40455
|
))
|
|
40081
40456
|
return m;
|
|
40082
40457
|
}
|
|
40083
|
-
const _ = Is(g, a, n, i, s) ?
|
|
40458
|
+
const _ = Is(g, a, n, i, s) ? hd(g, e, t, n, i, s) : null;
|
|
40084
40459
|
return m && _ ? m.distance <= _.distance ? m : _ : m || _ || null;
|
|
40085
40460
|
}
|
|
40086
40461
|
}
|
|
40087
40462
|
const Al = /* @__PURE__ */ new vt(), aa = /* @__PURE__ */ new Zn(), oa = /* @__PURE__ */ new Zn(), eo = /* @__PURE__ */ new ve(), gg = /* @__PURE__ */ new Tn(), gl = /* @__PURE__ */ new Tn();
|
|
40088
|
-
function
|
|
40463
|
+
function yT(r, e, t, n) {
|
|
40089
40464
|
Mt.setBuffer(r._roots[e]);
|
|
40090
|
-
const i =
|
|
40465
|
+
const i = ud(0, r, t, n);
|
|
40091
40466
|
return Mt.clearBuffer(), i;
|
|
40092
40467
|
}
|
|
40093
|
-
function
|
|
40468
|
+
function ud(r, e, t, n, i = null) {
|
|
40094
40469
|
const { float32Array: s, uint16Array: a, uint32Array: o } = Mt;
|
|
40095
40470
|
let c = r * 2;
|
|
40096
40471
|
if (i === null && (t.boundingBox || t.computeBoundingBox(), gg.set(t.boundingBox.min, t.boundingBox.max, n), i = gg), Xt(c, a)) {
|
|
@@ -40118,15 +40493,15 @@ function ld(r, e, t, n, i = null) {
|
|
|
40118
40493
|
}
|
|
40119
40494
|
} else {
|
|
40120
40495
|
const h = nn(r), u = sn(r, o);
|
|
40121
|
-
return Ft(h, s, Al), !!(i.intersectsBox(Al) &&
|
|
40496
|
+
return Ft(h, s, Al), !!(i.intersectsBox(Al) && ud(h, e, t, n, i) || (Ft(u, s, Al), i.intersectsBox(Al) && ud(u, e, t, n, i)));
|
|
40122
40497
|
}
|
|
40123
40498
|
}
|
|
40124
|
-
const ml = /* @__PURE__ */ new ve(), mf = /* @__PURE__ */ new Tn(), to = /* @__PURE__ */ new Tn(),
|
|
40125
|
-
function
|
|
40499
|
+
const ml = /* @__PURE__ */ new ve(), mf = /* @__PURE__ */ new Tn(), to = /* @__PURE__ */ new Tn(), vT = /* @__PURE__ */ new T(), ET = /* @__PURE__ */ new T(), ST = /* @__PURE__ */ new T(), IT = /* @__PURE__ */ new T();
|
|
40500
|
+
function MT(r, e, t, n = {}, i = {}, s = 0, a = 1 / 0) {
|
|
40126
40501
|
e.boundingBox || e.computeBoundingBox(), mf.set(e.boundingBox.min, e.boundingBox.max, t), mf.needsUpdate = !0;
|
|
40127
40502
|
const o = r.geometry, c = o.attributes.position, l = o.index, h = e.attributes.position, u = e.index, f = Kn.getPrimitive(), d = Kn.getPrimitive();
|
|
40128
|
-
let p =
|
|
40129
|
-
i && (g =
|
|
40503
|
+
let p = vT, b = ET, g = null, A = null;
|
|
40504
|
+
i && (g = ST, A = IT);
|
|
40130
40505
|
let m = 1 / 0, x = null, _ = null;
|
|
40131
40506
|
return ml.copy(t).invert(), to.matrix.copy(ml), r.shapecast(
|
|
40132
40507
|
{
|
|
@@ -40173,7 +40548,7 @@ function mg(r, e, t) {
|
|
|
40173
40548
|
return r === null ? null : (r.point.applyMatrix4(e.matrixWorld), r.distance = r.point.distanceTo(t.ray.origin), r.object = e, r);
|
|
40174
40549
|
}
|
|
40175
40550
|
const bl = /* @__PURE__ */ new Tn(), xl = /* @__PURE__ */ new Ki(), bg = /* @__PURE__ */ new T(), xg = /* @__PURE__ */ new ve(), _g = /* @__PURE__ */ new T(), bf = ["getX", "getY", "getZ"];
|
|
40176
|
-
class Wo extends
|
|
40551
|
+
class Wo extends Xw {
|
|
40177
40552
|
/**
|
|
40178
40553
|
* Generates a representation of the complete bounds tree and the geometry index buffer which
|
|
40179
40554
|
* can be used to recreate a bounds tree using the `deserialize` function. The `serialize` and
|
|
@@ -40357,7 +40732,7 @@ class Wo extends Ww {
|
|
|
40357
40732
|
* @param {Set<number>|Array<number>|null} [nodeIndices=null]
|
|
40358
40733
|
*/
|
|
40359
40734
|
refit(e = null) {
|
|
40360
|
-
return (this.indirect ?
|
|
40735
|
+
return (this.indirect ? mT : sT)(this, e);
|
|
40361
40736
|
}
|
|
40362
40737
|
/* Core Cast Functions */
|
|
40363
40738
|
/**
|
|
@@ -40380,7 +40755,7 @@ class Wo extends Ww {
|
|
|
40380
40755
|
* @returns {Array<Intersection>}
|
|
40381
40756
|
*/
|
|
40382
40757
|
raycast(e, t = Gn, n = 0, i = 1 / 0) {
|
|
40383
|
-
const s = this._roots, a = [], o = this.indirect ?
|
|
40758
|
+
const s = this._roots, a = [], o = this.indirect ? bT : cT;
|
|
40384
40759
|
for (let c = 0, l = s.length; c < l; c++)
|
|
40385
40760
|
o(this, c, t, e, a, n, i);
|
|
40386
40761
|
return a;
|
|
@@ -40399,7 +40774,7 @@ class Wo extends Ww {
|
|
|
40399
40774
|
raycastFirst(e, t = Gn, n = 0, i = 1 / 0) {
|
|
40400
40775
|
const s = this._roots;
|
|
40401
40776
|
let a = null;
|
|
40402
|
-
const o = this.indirect ?
|
|
40777
|
+
const o = this.indirect ? _T : hT;
|
|
40403
40778
|
for (let c = 0, l = s.length; c < l; c++) {
|
|
40404
40779
|
const h = o(this, c, t, e, n, i);
|
|
40405
40780
|
h != null && (a == null || h.distance < a.distance) && (a = h);
|
|
@@ -40420,7 +40795,7 @@ class Wo extends Ww {
|
|
|
40420
40795
|
*/
|
|
40421
40796
|
intersectsGeometry(e, t) {
|
|
40422
40797
|
let n = !1;
|
|
40423
|
-
const i = this._roots, s = this.indirect ?
|
|
40798
|
+
const i = this._roots, s = this.indirect ? yT : uT;
|
|
40424
40799
|
for (let a = 0, o = i.length; a < o && (n = s(this, a, e, t), !n); a++)
|
|
40425
40800
|
;
|
|
40426
40801
|
return n;
|
|
@@ -40446,7 +40821,7 @@ class Wo extends Ww {
|
|
|
40446
40821
|
scratchPrimitive: t,
|
|
40447
40822
|
// TODO: is the performance significant enough for the added complexity here?
|
|
40448
40823
|
// can we just use one function?
|
|
40449
|
-
iterate: this.indirect ?
|
|
40824
|
+
iterate: this.indirect ? oT : iT
|
|
40450
40825
|
}
|
|
40451
40826
|
);
|
|
40452
40827
|
return Kn.releasePrimitive(t), n;
|
|
@@ -40557,496 +40932,121 @@ class Wo extends Ww {
|
|
|
40557
40932
|
* _Note that this function can be very slow if `geometry` does not have a
|
|
40558
40933
|
* `geometry.boundsTree` computed._
|
|
40559
40934
|
*
|
|
40560
|
-
* @param {BufferGeometry} otherGeometry
|
|
40561
|
-
* @param {Matrix4} geometryToBvh - Transform of `otherGeometry` into the local space of
|
|
40562
|
-
* this BVH.
|
|
40563
|
-
* @param {HitPointInfo} [target1={}]
|
|
40564
|
-
* @param {HitPointInfo} [target2={}]
|
|
40565
|
-
* @param {number} [minThreshold=0]
|
|
40566
|
-
* @param {number} [maxThreshold=Infinity]
|
|
40567
|
-
* @returns {HitPointInfo|null}
|
|
40568
|
-
*/
|
|
40569
|
-
closestPointToGeometry(e, t, n = {}, i = {}, s = 0, a = 1 / 0) {
|
|
40570
|
-
return (this.indirect ? ST : pT)(
|
|
40571
|
-
this,
|
|
40572
|
-
e,
|
|
40573
|
-
t,
|
|
40574
|
-
n,
|
|
40575
|
-
i,
|
|
40576
|
-
s,
|
|
40577
|
-
a
|
|
40578
|
-
);
|
|
40579
|
-
}
|
|
40580
|
-
/**
|
|
40581
|
-
* Computes the closest distance from the point to the mesh and gives additional information
|
|
40582
|
-
* in `target`. The target can be left undefined to default to a new object which is
|
|
40583
|
-
* ultimately returned by the function.
|
|
40584
|
-
*
|
|
40585
|
-
* If a point is found that is closer than `minThreshold` then the function will return that
|
|
40586
|
-
* result early. Any triangles or points outside of `maxThreshold` are ignored. If no point
|
|
40587
|
-
* is found within the min / max thresholds then `null` is returned and the `target` object
|
|
40588
|
-
* is not modified.
|
|
40589
|
-
*
|
|
40590
|
-
* The returned faceIndex can be used with the standalone function `getTriangleHitPointInfo`
|
|
40591
|
-
* to obtain more information like UV coordinates, triangle normal and materialIndex.
|
|
40592
|
-
*
|
|
40593
|
-
* @param {Vector3} point
|
|
40594
|
-
* @param {HitPointInfo} [target={}]
|
|
40935
|
+
* @param {BufferGeometry} otherGeometry
|
|
40936
|
+
* @param {Matrix4} geometryToBvh - Transform of `otherGeometry` into the local space of
|
|
40937
|
+
* this BVH.
|
|
40938
|
+
* @param {HitPointInfo} [target1={}]
|
|
40939
|
+
* @param {HitPointInfo} [target2={}]
|
|
40595
40940
|
* @param {number} [minThreshold=0]
|
|
40596
40941
|
* @param {number} [maxThreshold=Infinity]
|
|
40597
40942
|
* @returns {HitPointInfo|null}
|
|
40598
40943
|
*/
|
|
40599
|
-
|
|
40600
|
-
return
|
|
40944
|
+
closestPointToGeometry(e, t, n = {}, i = {}, s = 0, a = 1 / 0) {
|
|
40945
|
+
return (this.indirect ? MT : gT)(
|
|
40601
40946
|
this,
|
|
40602
40947
|
e,
|
|
40603
40948
|
t,
|
|
40604
40949
|
n,
|
|
40605
|
-
i
|
|
40950
|
+
i,
|
|
40951
|
+
s,
|
|
40952
|
+
a
|
|
40606
40953
|
);
|
|
40607
40954
|
}
|
|
40608
|
-
|
|
40609
|
-
|
|
40610
|
-
|
|
40611
|
-
|
|
40612
|
-
|
|
40613
|
-
|
|
40614
|
-
|
|
40615
|
-
|
|
40616
|
-
|
|
40617
|
-
|
|
40618
|
-
|
|
40619
|
-
|
|
40620
|
-
|
|
40621
|
-
|
|
40622
|
-
|
|
40623
|
-
|
|
40624
|
-
|
|
40625
|
-
|
|
40626
|
-
|
|
40627
|
-
|
|
40628
|
-
|
|
40629
|
-
|
|
40630
|
-
|
|
40631
|
-
|
|
40632
|
-
|
|
40633
|
-
|
|
40634
|
-
|
|
40635
|
-
n = ca.Points;
|
|
40636
|
-
else
|
|
40637
|
-
throw new Error("BVH: Fallback raycast function not found.");
|
|
40638
|
-
n.call(this, r, e);
|
|
40639
|
-
}
|
|
40640
|
-
}
|
|
40641
|
-
}
|
|
40642
|
-
function IT(r, e) {
|
|
40643
|
-
if (this.boundsTrees) {
|
|
40644
|
-
const t = this.boundsTrees, n = this._drawInfo || this._instanceInfo, i = this._drawRanges || this._geometryInfo, s = this.matrixWorld;
|
|
40645
|
-
an.material = this.material, an.geometry = this.geometry;
|
|
40646
|
-
const a = an.geometry.boundsTree, o = an.geometry.drawRange;
|
|
40647
|
-
an.geometry.boundingSphere === null && (an.geometry.boundingSphere = new jt());
|
|
40648
|
-
for (let c = 0, l = n.length; c < l; c++) {
|
|
40649
|
-
if (!this.getVisibleAt(c))
|
|
40650
|
-
continue;
|
|
40651
|
-
const h = n[c].geometryIndex;
|
|
40652
|
-
if (an.geometry.boundsTree = t[h], this.getMatrixAt(c, an.matrixWorld).premultiply(s), !an.geometry.boundsTree) {
|
|
40653
|
-
this.getBoundingBoxAt(h, an.geometry.boundingBox), this.getBoundingSphereAt(h, an.geometry.boundingSphere);
|
|
40654
|
-
const u = i[h];
|
|
40655
|
-
an.geometry.setDrawRange(u.start, u.count);
|
|
40656
|
-
}
|
|
40657
|
-
an.raycast(r, _l);
|
|
40658
|
-
for (let u = 0, f = _l.length; u < f; u++) {
|
|
40659
|
-
const d = _l[u];
|
|
40660
|
-
d.object = this, d.batchId = c, e.push(d);
|
|
40661
|
-
}
|
|
40662
|
-
_l.length = 0;
|
|
40663
|
-
}
|
|
40664
|
-
an.geometry.boundsTree = a, an.geometry.drawRange = o, an.material = null, an.geometry = null;
|
|
40665
|
-
} else
|
|
40666
|
-
ca.BatchedMesh.call(this, r, e);
|
|
40667
|
-
}
|
|
40668
|
-
function N1(r = {}) {
|
|
40669
|
-
const { type: e = Wo } = r;
|
|
40670
|
-
return this.boundsTree = new e(this, r), this.boundsTree;
|
|
40671
|
-
}
|
|
40672
|
-
function U1() {
|
|
40673
|
-
this.boundsTree = null;
|
|
40674
|
-
}
|
|
40675
|
-
var Aa = Object.freeze({
|
|
40676
|
-
Linear: Object.freeze({
|
|
40677
|
-
None: function(r) {
|
|
40678
|
-
return r;
|
|
40679
|
-
},
|
|
40680
|
-
In: function(r) {
|
|
40681
|
-
return r;
|
|
40682
|
-
},
|
|
40683
|
-
Out: function(r) {
|
|
40684
|
-
return r;
|
|
40685
|
-
},
|
|
40686
|
-
InOut: function(r) {
|
|
40687
|
-
return r;
|
|
40688
|
-
}
|
|
40689
|
-
}),
|
|
40690
|
-
Quadratic: Object.freeze({
|
|
40691
|
-
In: function(r) {
|
|
40692
|
-
return r * r;
|
|
40693
|
-
},
|
|
40694
|
-
Out: function(r) {
|
|
40695
|
-
return r * (2 - r);
|
|
40696
|
-
},
|
|
40697
|
-
InOut: function(r) {
|
|
40698
|
-
return (r *= 2) < 1 ? 0.5 * r * r : -0.5 * (--r * (r - 2) - 1);
|
|
40699
|
-
}
|
|
40700
|
-
}),
|
|
40701
|
-
Cubic: Object.freeze({
|
|
40702
|
-
In: function(r) {
|
|
40703
|
-
return r * r * r;
|
|
40704
|
-
},
|
|
40705
|
-
Out: function(r) {
|
|
40706
|
-
return --r * r * r + 1;
|
|
40707
|
-
},
|
|
40708
|
-
InOut: function(r) {
|
|
40709
|
-
return (r *= 2) < 1 ? 0.5 * r * r * r : 0.5 * ((r -= 2) * r * r + 2);
|
|
40710
|
-
}
|
|
40711
|
-
}),
|
|
40712
|
-
Quartic: Object.freeze({
|
|
40713
|
-
In: function(r) {
|
|
40714
|
-
return r * r * r * r;
|
|
40715
|
-
},
|
|
40716
|
-
Out: function(r) {
|
|
40717
|
-
return 1 - --r * r * r * r;
|
|
40718
|
-
},
|
|
40719
|
-
InOut: function(r) {
|
|
40720
|
-
return (r *= 2) < 1 ? 0.5 * r * r * r * r : -0.5 * ((r -= 2) * r * r * r - 2);
|
|
40721
|
-
}
|
|
40722
|
-
}),
|
|
40723
|
-
Quintic: Object.freeze({
|
|
40724
|
-
In: function(r) {
|
|
40725
|
-
return r * r * r * r * r;
|
|
40726
|
-
},
|
|
40727
|
-
Out: function(r) {
|
|
40728
|
-
return --r * r * r * r * r + 1;
|
|
40729
|
-
},
|
|
40730
|
-
InOut: function(r) {
|
|
40731
|
-
return (r *= 2) < 1 ? 0.5 * r * r * r * r * r : 0.5 * ((r -= 2) * r * r * r * r + 2);
|
|
40732
|
-
}
|
|
40733
|
-
}),
|
|
40734
|
-
Sinusoidal: Object.freeze({
|
|
40735
|
-
In: function(r) {
|
|
40736
|
-
return 1 - Math.sin((1 - r) * Math.PI / 2);
|
|
40737
|
-
},
|
|
40738
|
-
Out: function(r) {
|
|
40739
|
-
return Math.sin(r * Math.PI / 2);
|
|
40740
|
-
},
|
|
40741
|
-
InOut: function(r) {
|
|
40742
|
-
return 0.5 * (1 - Math.sin(Math.PI * (0.5 - r)));
|
|
40743
|
-
}
|
|
40744
|
-
}),
|
|
40745
|
-
Exponential: Object.freeze({
|
|
40746
|
-
In: function(r) {
|
|
40747
|
-
return r === 0 ? 0 : Math.pow(1024, r - 1);
|
|
40748
|
-
},
|
|
40749
|
-
Out: function(r) {
|
|
40750
|
-
return r === 1 ? 1 : 1 - Math.pow(2, -10 * r);
|
|
40751
|
-
},
|
|
40752
|
-
InOut: function(r) {
|
|
40753
|
-
return r === 0 ? 0 : r === 1 ? 1 : (r *= 2) < 1 ? 0.5 * Math.pow(1024, r - 1) : 0.5 * (-Math.pow(2, -10 * (r - 1)) + 2);
|
|
40754
|
-
}
|
|
40755
|
-
}),
|
|
40756
|
-
Circular: Object.freeze({
|
|
40757
|
-
In: function(r) {
|
|
40758
|
-
return 1 - Math.sqrt(1 - r * r);
|
|
40759
|
-
},
|
|
40760
|
-
Out: function(r) {
|
|
40761
|
-
return Math.sqrt(1 - --r * r);
|
|
40762
|
-
},
|
|
40763
|
-
InOut: function(r) {
|
|
40764
|
-
return (r *= 2) < 1 ? -0.5 * (Math.sqrt(1 - r * r) - 1) : 0.5 * (Math.sqrt(1 - (r -= 2) * r) + 1);
|
|
40765
|
-
}
|
|
40766
|
-
}),
|
|
40767
|
-
Elastic: Object.freeze({
|
|
40768
|
-
In: function(r) {
|
|
40769
|
-
return r === 0 ? 0 : r === 1 ? 1 : -Math.pow(2, 10 * (r - 1)) * Math.sin((r - 1.1) * 5 * Math.PI);
|
|
40770
|
-
},
|
|
40771
|
-
Out: function(r) {
|
|
40772
|
-
return r === 0 ? 0 : r === 1 ? 1 : Math.pow(2, -10 * r) * Math.sin((r - 0.1) * 5 * Math.PI) + 1;
|
|
40773
|
-
},
|
|
40774
|
-
InOut: function(r) {
|
|
40775
|
-
return r === 0 ? 0 : r === 1 ? 1 : (r *= 2, r < 1 ? -0.5 * Math.pow(2, 10 * (r - 1)) * Math.sin((r - 1.1) * 5 * Math.PI) : 0.5 * Math.pow(2, -10 * (r - 1)) * Math.sin((r - 1.1) * 5 * Math.PI) + 1);
|
|
40776
|
-
}
|
|
40777
|
-
}),
|
|
40778
|
-
Back: Object.freeze({
|
|
40779
|
-
In: function(r) {
|
|
40780
|
-
var e = 1.70158;
|
|
40781
|
-
return r === 1 ? 1 : r * r * ((e + 1) * r - e);
|
|
40782
|
-
},
|
|
40783
|
-
Out: function(r) {
|
|
40784
|
-
var e = 1.70158;
|
|
40785
|
-
return r === 0 ? 0 : --r * r * ((e + 1) * r + e) + 1;
|
|
40786
|
-
},
|
|
40787
|
-
InOut: function(r) {
|
|
40788
|
-
var e = 2.5949095;
|
|
40789
|
-
return (r *= 2) < 1 ? 0.5 * (r * r * ((e + 1) * r - e)) : 0.5 * ((r -= 2) * r * ((e + 1) * r + e) + 2);
|
|
40790
|
-
}
|
|
40791
|
-
}),
|
|
40792
|
-
Bounce: Object.freeze({
|
|
40793
|
-
In: function(r) {
|
|
40794
|
-
return 1 - Aa.Bounce.Out(1 - r);
|
|
40795
|
-
},
|
|
40796
|
-
Out: function(r) {
|
|
40797
|
-
return r < 1 / 2.75 ? 7.5625 * r * r : r < 2 / 2.75 ? 7.5625 * (r -= 1.5 / 2.75) * r + 0.75 : r < 2.5 / 2.75 ? 7.5625 * (r -= 2.25 / 2.75) * r + 0.9375 : 7.5625 * (r -= 2.625 / 2.75) * r + 0.984375;
|
|
40798
|
-
},
|
|
40799
|
-
InOut: function(r) {
|
|
40800
|
-
return r < 0.5 ? Aa.Bounce.In(r * 2) * 0.5 : Aa.Bounce.Out(r * 2 - 1) * 0.5 + 0.5;
|
|
40801
|
-
}
|
|
40802
|
-
}),
|
|
40803
|
-
generatePow: function(r) {
|
|
40804
|
-
return r === void 0 && (r = 4), r = r < Number.EPSILON ? Number.EPSILON : r, r = r > 1e4 ? 1e4 : r, {
|
|
40805
|
-
In: function(e) {
|
|
40806
|
-
return Math.pow(e, r);
|
|
40807
|
-
},
|
|
40808
|
-
Out: function(e) {
|
|
40809
|
-
return 1 - Math.pow(1 - e, r);
|
|
40810
|
-
},
|
|
40811
|
-
InOut: function(e) {
|
|
40812
|
-
return e < 0.5 ? Math.pow(e * 2, r) / 2 : (1 - Math.pow(2 - e * 2, r)) / 2 + 0.5;
|
|
40813
|
-
}
|
|
40814
|
-
};
|
|
40815
|
-
}
|
|
40816
|
-
}), lo = function() {
|
|
40817
|
-
return performance.now();
|
|
40818
|
-
}, MT = (
|
|
40819
|
-
/** @class */
|
|
40820
|
-
(function() {
|
|
40821
|
-
function r() {
|
|
40822
|
-
this._tweens = {}, this._tweensAddedDuringUpdate = {};
|
|
40823
|
-
}
|
|
40824
|
-
return r.prototype.getAll = function() {
|
|
40825
|
-
var e = this;
|
|
40826
|
-
return Object.keys(this._tweens).map(function(t) {
|
|
40827
|
-
return e._tweens[t];
|
|
40828
|
-
});
|
|
40829
|
-
}, r.prototype.removeAll = function() {
|
|
40830
|
-
this._tweens = {};
|
|
40831
|
-
}, r.prototype.add = function(e) {
|
|
40832
|
-
this._tweens[e.getId()] = e, this._tweensAddedDuringUpdate[e.getId()] = e;
|
|
40833
|
-
}, r.prototype.remove = function(e) {
|
|
40834
|
-
delete this._tweens[e.getId()], delete this._tweensAddedDuringUpdate[e.getId()];
|
|
40835
|
-
}, r.prototype.update = function(e, t) {
|
|
40836
|
-
e === void 0 && (e = lo()), t === void 0 && (t = !1);
|
|
40837
|
-
var n = Object.keys(this._tweens);
|
|
40838
|
-
if (n.length === 0)
|
|
40839
|
-
return !1;
|
|
40840
|
-
for (; n.length > 0; ) {
|
|
40841
|
-
this._tweensAddedDuringUpdate = {};
|
|
40842
|
-
for (var i = 0; i < n.length; i++) {
|
|
40843
|
-
var s = this._tweens[n[i]], a = !t;
|
|
40844
|
-
s && s.update(e, a) === !1 && !t && delete this._tweens[n[i]];
|
|
40845
|
-
}
|
|
40846
|
-
n = Object.keys(this._tweensAddedDuringUpdate);
|
|
40847
|
-
}
|
|
40848
|
-
return !0;
|
|
40849
|
-
}, r;
|
|
40850
|
-
})()
|
|
40851
|
-
), hd = {
|
|
40852
|
-
Linear: function(r, e) {
|
|
40853
|
-
var t = r.length - 1, n = t * e, i = Math.floor(n), s = hd.Utils.Linear;
|
|
40854
|
-
return e < 0 ? s(r[0], r[1], n) : e > 1 ? s(r[t], r[t - 1], t - n) : s(r[i], r[i + 1 > t ? t : i + 1], n - i);
|
|
40855
|
-
},
|
|
40856
|
-
Utils: {
|
|
40857
|
-
Linear: function(r, e, t) {
|
|
40858
|
-
return (e - r) * t + r;
|
|
40859
|
-
}
|
|
40955
|
+
/**
|
|
40956
|
+
* Computes the closest distance from the point to the mesh and gives additional information
|
|
40957
|
+
* in `target`. The target can be left undefined to default to a new object which is
|
|
40958
|
+
* ultimately returned by the function.
|
|
40959
|
+
*
|
|
40960
|
+
* If a point is found that is closer than `minThreshold` then the function will return that
|
|
40961
|
+
* result early. Any triangles or points outside of `maxThreshold` are ignored. If no point
|
|
40962
|
+
* is found within the min / max thresholds then `null` is returned and the `target` object
|
|
40963
|
+
* is not modified.
|
|
40964
|
+
*
|
|
40965
|
+
* The returned faceIndex can be used with the standalone function `getTriangleHitPointInfo`
|
|
40966
|
+
* to obtain more information like UV coordinates, triangle normal and materialIndex.
|
|
40967
|
+
*
|
|
40968
|
+
* @param {Vector3} point
|
|
40969
|
+
* @param {HitPointInfo} [target={}]
|
|
40970
|
+
* @param {number} [minThreshold=0]
|
|
40971
|
+
* @param {number} [maxThreshold=Infinity]
|
|
40972
|
+
* @returns {HitPointInfo|null}
|
|
40973
|
+
*/
|
|
40974
|
+
closestPointToPoint(e, t = {}, n = 0, i = 1 / 0) {
|
|
40975
|
+
return Zw(
|
|
40976
|
+
this,
|
|
40977
|
+
e,
|
|
40978
|
+
t,
|
|
40979
|
+
n,
|
|
40980
|
+
i
|
|
40981
|
+
);
|
|
40860
40982
|
}
|
|
40861
|
-
}
|
|
40862
|
-
|
|
40863
|
-
|
|
40864
|
-
|
|
40865
|
-
|
|
40866
|
-
|
|
40867
|
-
|
|
40868
|
-
|
|
40869
|
-
|
|
40870
|
-
|
|
40871
|
-
|
|
40872
|
-
|
|
40873
|
-
|
|
40874
|
-
|
|
40983
|
+
}
|
|
40984
|
+
const ca = {
|
|
40985
|
+
Mesh: pe.prototype.raycast,
|
|
40986
|
+
Line: Vt.prototype.raycast,
|
|
40987
|
+
LineSegments: Hn.prototype.raycast,
|
|
40988
|
+
LineLoop: $o.prototype.raycast,
|
|
40989
|
+
Points: ec.prototype.raycast,
|
|
40990
|
+
BatchedMesh: Id.prototype.raycast
|
|
40991
|
+
}, an = /* @__PURE__ */ new pe(), _l = [];
|
|
40992
|
+
function N1(r, e) {
|
|
40993
|
+
if (this.isBatchedMesh)
|
|
40994
|
+
CT.call(this, r, e);
|
|
40995
|
+
else {
|
|
40996
|
+
const { geometry: t } = this;
|
|
40997
|
+
if (t.boundsTree)
|
|
40998
|
+
t.boundsTree.raycastObject3D(this, r, e);
|
|
40999
|
+
else {
|
|
41000
|
+
let n;
|
|
41001
|
+
if (this instanceof pe)
|
|
41002
|
+
n = ca.Mesh;
|
|
41003
|
+
else if (this instanceof Hn)
|
|
41004
|
+
n = ca.LineSegments;
|
|
41005
|
+
else if (this instanceof $o)
|
|
41006
|
+
n = ca.LineLoop;
|
|
41007
|
+
else if (this instanceof Vt)
|
|
41008
|
+
n = ca.Line;
|
|
41009
|
+
else if (this instanceof ec)
|
|
41010
|
+
n = ca.Points;
|
|
41011
|
+
else
|
|
41012
|
+
throw new Error("BVH: Fallback raycast function not found.");
|
|
41013
|
+
n.call(this, r, e);
|
|
40875
41014
|
}
|
|
40876
|
-
|
|
40877
|
-
|
|
40878
|
-
|
|
40879
|
-
|
|
40880
|
-
|
|
40881
|
-
|
|
40882
|
-
|
|
40883
|
-
|
|
40884
|
-
|
|
40885
|
-
if (
|
|
40886
|
-
|
|
40887
|
-
|
|
40888
|
-
|
|
40889
|
-
|
|
40890
|
-
|
|
40891
|
-
|
|
40892
|
-
}, r.prototype.start = function(e, t) {
|
|
40893
|
-
if (e === void 0 && (e = lo()), t === void 0 && (t = !1), this._isPlaying)
|
|
40894
|
-
return this;
|
|
40895
|
-
if (this._group && this._group.add(this), this._repeat = this._initialRepeat, this._reversed) {
|
|
40896
|
-
this._reversed = !1;
|
|
40897
|
-
for (var n in this._valuesStartRepeat)
|
|
40898
|
-
this._swapEndStartRepeatValues(n), this._valuesStart[n] = this._valuesStartRepeat[n];
|
|
40899
|
-
}
|
|
40900
|
-
if (this._isPlaying = !0, this._isPaused = !1, this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._isChainStopped = !1, this._startTime = e, this._startTime += this._delayTime, !this._propertiesAreSetUp || t) {
|
|
40901
|
-
if (this._propertiesAreSetUp = !0, !this._isDynamic) {
|
|
40902
|
-
var i = {};
|
|
40903
|
-
for (var s in this._valuesEnd)
|
|
40904
|
-
i[s] = this._valuesEnd[s];
|
|
40905
|
-
this._valuesEnd = i;
|
|
40906
|
-
}
|
|
40907
|
-
this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, t);
|
|
40908
|
-
}
|
|
40909
|
-
return this;
|
|
40910
|
-
}, r.prototype.startFromCurrentValues = function(e) {
|
|
40911
|
-
return this.start(e, !0);
|
|
40912
|
-
}, r.prototype._setupProperties = function(e, t, n, i, s) {
|
|
40913
|
-
for (var a in n) {
|
|
40914
|
-
var o = e[a], c = Array.isArray(o), l = c ? "array" : typeof o, h = !c && Array.isArray(n[a]);
|
|
40915
|
-
if (!(l === "undefined" || l === "function")) {
|
|
40916
|
-
if (h) {
|
|
40917
|
-
var u = n[a];
|
|
40918
|
-
if (u.length === 0)
|
|
40919
|
-
continue;
|
|
40920
|
-
for (var f = [o], d = 0, p = u.length; d < p; d += 1) {
|
|
40921
|
-
var b = this._handleRelativeValue(o, u[d]);
|
|
40922
|
-
if (isNaN(b)) {
|
|
40923
|
-
h = !1, console.warn("Found invalid interpolation list. Skipping.");
|
|
40924
|
-
break;
|
|
40925
|
-
}
|
|
40926
|
-
f.push(b);
|
|
40927
|
-
}
|
|
40928
|
-
h && (n[a] = f);
|
|
40929
|
-
}
|
|
40930
|
-
if ((l === "object" || c) && o && !h) {
|
|
40931
|
-
t[a] = c ? [] : {};
|
|
40932
|
-
var g = o;
|
|
40933
|
-
for (var A in g)
|
|
40934
|
-
t[a][A] = g[A];
|
|
40935
|
-
i[a] = c ? [] : {};
|
|
40936
|
-
var u = n[a];
|
|
40937
|
-
if (!this._isDynamic) {
|
|
40938
|
-
var m = {};
|
|
40939
|
-
for (var A in u)
|
|
40940
|
-
m[A] = u[A];
|
|
40941
|
-
n[a] = u = m;
|
|
40942
|
-
}
|
|
40943
|
-
this._setupProperties(g, t[a], u, i[a], s);
|
|
40944
|
-
} else
|
|
40945
|
-
(typeof t[a] > "u" || s) && (t[a] = o), c || (t[a] *= 1), h ? i[a] = n[a].slice().reverse() : i[a] = t[a] || 0;
|
|
40946
|
-
}
|
|
41015
|
+
}
|
|
41016
|
+
}
|
|
41017
|
+
function CT(r, e) {
|
|
41018
|
+
if (this.boundsTrees) {
|
|
41019
|
+
const t = this.boundsTrees, n = this._drawInfo || this._instanceInfo, i = this._drawRanges || this._geometryInfo, s = this.matrixWorld;
|
|
41020
|
+
an.material = this.material, an.geometry = this.geometry;
|
|
41021
|
+
const a = an.geometry.boundsTree, o = an.geometry.drawRange;
|
|
41022
|
+
an.geometry.boundingSphere === null && (an.geometry.boundingSphere = new jt());
|
|
41023
|
+
for (let c = 0, l = n.length; c < l; c++) {
|
|
41024
|
+
if (!this.getVisibleAt(c))
|
|
41025
|
+
continue;
|
|
41026
|
+
const h = n[c].geometryIndex;
|
|
41027
|
+
if (an.geometry.boundsTree = t[h], this.getMatrixAt(c, an.matrixWorld).premultiply(s), !an.geometry.boundsTree) {
|
|
41028
|
+
this.getBoundingBoxAt(h, an.geometry.boundingBox), this.getBoundingSphereAt(h, an.geometry.boundingSphere);
|
|
41029
|
+
const u = i[h];
|
|
41030
|
+
an.geometry.setDrawRange(u.start, u.count);
|
|
40947
41031
|
}
|
|
40948
|
-
|
|
40949
|
-
|
|
40950
|
-
|
|
40951
|
-
|
|
40952
|
-
}, r.prototype.pause = function(e) {
|
|
40953
|
-
return e === void 0 && (e = lo()), this._isPaused || !this._isPlaying ? this : (this._isPaused = !0, this._pauseStart = e, this._group && this._group.remove(this), this);
|
|
40954
|
-
}, r.prototype.resume = function(e) {
|
|
40955
|
-
return e === void 0 && (e = lo()), !this._isPaused || !this._isPlaying ? this : (this._isPaused = !1, this._startTime += e - this._pauseStart, this._pauseStart = 0, this._group && this._group.add(this), this);
|
|
40956
|
-
}, r.prototype.stopChainedTweens = function() {
|
|
40957
|
-
for (var e = 0, t = this._chainedTweens.length; e < t; e++)
|
|
40958
|
-
this._chainedTweens[e].stop();
|
|
40959
|
-
return this;
|
|
40960
|
-
}, r.prototype.group = function(e) {
|
|
40961
|
-
return e === void 0 && (e = ud), this._group = e, this;
|
|
40962
|
-
}, r.prototype.delay = function(e) {
|
|
40963
|
-
return e === void 0 && (e = 0), this._delayTime = e, this;
|
|
40964
|
-
}, r.prototype.repeat = function(e) {
|
|
40965
|
-
return e === void 0 && (e = 0), this._initialRepeat = e, this._repeat = e, this;
|
|
40966
|
-
}, r.prototype.repeatDelay = function(e) {
|
|
40967
|
-
return this._repeatDelayTime = e, this;
|
|
40968
|
-
}, r.prototype.yoyo = function(e) {
|
|
40969
|
-
return e === void 0 && (e = !1), this._yoyo = e, this;
|
|
40970
|
-
}, r.prototype.easing = function(e) {
|
|
40971
|
-
return e === void 0 && (e = Aa.Linear.None), this._easingFunction = e, this;
|
|
40972
|
-
}, r.prototype.interpolation = function(e) {
|
|
40973
|
-
return e === void 0 && (e = hd.Linear), this._interpolationFunction = e, this;
|
|
40974
|
-
}, r.prototype.chain = function() {
|
|
40975
|
-
for (var e = [], t = 0; t < arguments.length; t++)
|
|
40976
|
-
e[t] = arguments[t];
|
|
40977
|
-
return this._chainedTweens = e, this;
|
|
40978
|
-
}, r.prototype.onStart = function(e) {
|
|
40979
|
-
return this._onStartCallback = e, this;
|
|
40980
|
-
}, r.prototype.onEveryStart = function(e) {
|
|
40981
|
-
return this._onEveryStartCallback = e, this;
|
|
40982
|
-
}, r.prototype.onUpdate = function(e) {
|
|
40983
|
-
return this._onUpdateCallback = e, this;
|
|
40984
|
-
}, r.prototype.onRepeat = function(e) {
|
|
40985
|
-
return this._onRepeatCallback = e, this;
|
|
40986
|
-
}, r.prototype.onComplete = function(e) {
|
|
40987
|
-
return this._onCompleteCallback = e, this;
|
|
40988
|
-
}, r.prototype.onStop = function(e) {
|
|
40989
|
-
return this._onStopCallback = e, this;
|
|
40990
|
-
}, r.prototype.update = function(e, t) {
|
|
40991
|
-
var n = this, i;
|
|
40992
|
-
if (e === void 0 && (e = lo()), t === void 0 && (t = !0), this._isPaused)
|
|
40993
|
-
return !0;
|
|
40994
|
-
var s, a = this._startTime + this._duration;
|
|
40995
|
-
if (!this._goToEnd && !this._isPlaying) {
|
|
40996
|
-
if (e > a)
|
|
40997
|
-
return !1;
|
|
40998
|
-
t && this.start(e, !0);
|
|
41032
|
+
an.raycast(r, _l);
|
|
41033
|
+
for (let u = 0, f = _l.length; u < f; u++) {
|
|
41034
|
+
const d = _l[u];
|
|
41035
|
+
d.object = this, d.batchId = c, e.push(d);
|
|
40999
41036
|
}
|
|
41000
|
-
|
|
41001
|
-
|
|
41002
|
-
|
|
41003
|
-
|
|
41004
|
-
|
|
41005
|
-
|
|
41006
|
-
|
|
41007
|
-
|
|
41008
|
-
|
|
41009
|
-
|
|
41010
|
-
|
|
41011
|
-
|
|
41012
|
-
|
|
41013
|
-
for (s in this._valuesStartRepeat)
|
|
41014
|
-
!this._yoyo && typeof this._valuesEnd[s] == "string" && (this._valuesStartRepeat[s] = // eslint-disable-next-line
|
|
41015
|
-
// @ts-ignore FIXME?
|
|
41016
|
-
this._valuesStartRepeat[s] + parseFloat(this._valuesEnd[s])), this._yoyo && this._swapEndStartRepeatValues(s), this._valuesStart[s] = this._valuesStartRepeat[s];
|
|
41017
|
-
return this._yoyo && (this._reversed = !this._reversed), this._startTime += c * d, this._onRepeatCallback && this._onRepeatCallback(this._object), this._onEveryStartCallbackFired = !1, !0;
|
|
41018
|
-
} else {
|
|
41019
|
-
this._onCompleteCallback && this._onCompleteCallback(this._object);
|
|
41020
|
-
for (var p = 0, b = this._chainedTweens.length; p < b; p++)
|
|
41021
|
-
this._chainedTweens[p].start(this._startTime + this._duration, !1);
|
|
41022
|
-
return this._isPlaying = !1, !1;
|
|
41023
|
-
}
|
|
41024
|
-
return !0;
|
|
41025
|
-
}, r.prototype._updateProperties = function(e, t, n, i) {
|
|
41026
|
-
for (var s in n)
|
|
41027
|
-
if (t[s] !== void 0) {
|
|
41028
|
-
var a = t[s] || 0, o = n[s], c = Array.isArray(e[s]), l = Array.isArray(o), h = !c && l;
|
|
41029
|
-
h ? e[s] = this._interpolationFunction(o, i) : typeof o == "object" && o ? this._updateProperties(e[s], a, o, i) : (o = this._handleRelativeValue(a, o), typeof o == "number" && (e[s] = a + (o - a) * i));
|
|
41030
|
-
}
|
|
41031
|
-
}, r.prototype._handleRelativeValue = function(e, t) {
|
|
41032
|
-
return typeof t != "string" ? t : t.charAt(0) === "+" || t.charAt(0) === "-" ? e + parseFloat(t) : parseFloat(t);
|
|
41033
|
-
}, r.prototype._swapEndStartRepeatValues = function(e) {
|
|
41034
|
-
var t = this._valuesStartRepeat[e], n = this._valuesEnd[e];
|
|
41035
|
-
typeof n == "string" ? this._valuesStartRepeat[e] = this._valuesStartRepeat[e] + parseFloat(n) : this._valuesStartRepeat[e] = this._valuesEnd[e], this._valuesEnd[e] = t;
|
|
41036
|
-
}, r;
|
|
41037
|
-
})()
|
|
41038
|
-
);
|
|
41039
|
-
Rb.nextId;
|
|
41040
|
-
var Mi = ud;
|
|
41041
|
-
Mi.getAll.bind(Mi);
|
|
41042
|
-
Mi.removeAll.bind(Mi);
|
|
41043
|
-
Mi.add.bind(Mi);
|
|
41044
|
-
Mi.remove.bind(Mi);
|
|
41045
|
-
Mi.update.bind(Mi);
|
|
41046
|
-
var O1 = {
|
|
41047
|
-
Easing: Aa,
|
|
41048
|
-
Tween: CT
|
|
41049
|
-
};
|
|
41037
|
+
_l.length = 0;
|
|
41038
|
+
}
|
|
41039
|
+
an.geometry.boundsTree = a, an.geometry.drawRange = o, an.material = null, an.geometry = null;
|
|
41040
|
+
} else
|
|
41041
|
+
ca.BatchedMesh.call(this, r, e);
|
|
41042
|
+
}
|
|
41043
|
+
function U1(r = {}) {
|
|
41044
|
+
const { type: e = Wo } = r;
|
|
41045
|
+
return this.boundsTree = new e(this, r), this.boundsTree;
|
|
41046
|
+
}
|
|
41047
|
+
function O1() {
|
|
41048
|
+
this.boundsTree = null;
|
|
41049
|
+
}
|
|
41050
41050
|
const js = new S0(), pn = new T(), cs = new T(), Ct = new _t(), yg = {
|
|
41051
41051
|
X: new T(1, 0, 0),
|
|
41052
41052
|
Y: new T(0, 1, 0),
|
|
@@ -43152,18 +43152,18 @@ class z1 {
|
|
|
43152
43152
|
}
|
|
43153
43153
|
}
|
|
43154
43154
|
export {
|
|
43155
|
-
|
|
43155
|
+
zd as $,
|
|
43156
43156
|
$y as A,
|
|
43157
43157
|
vt as B,
|
|
43158
43158
|
nt as C,
|
|
43159
43159
|
En as D,
|
|
43160
43160
|
Ci as E,
|
|
43161
|
-
|
|
43161
|
+
P1 as F,
|
|
43162
43162
|
Wi as G,
|
|
43163
|
-
|
|
43163
|
+
U1 as H,
|
|
43164
43164
|
Sd as I,
|
|
43165
|
-
|
|
43166
|
-
|
|
43165
|
+
Ve as J,
|
|
43166
|
+
O1 as K,
|
|
43167
43167
|
ht as L,
|
|
43168
43168
|
bd as M,
|
|
43169
43169
|
vh as N,
|
|
@@ -43173,35 +43173,36 @@ export {
|
|
|
43173
43173
|
S0 as R,
|
|
43174
43174
|
Dm as S,
|
|
43175
43175
|
M1 as T,
|
|
43176
|
-
|
|
43176
|
+
w1 as U,
|
|
43177
43177
|
T as V,
|
|
43178
43178
|
vC as W,
|
|
43179
|
-
|
|
43180
|
-
|
|
43181
|
-
|
|
43182
|
-
|
|
43179
|
+
xr as X,
|
|
43180
|
+
F1 as Y,
|
|
43181
|
+
L1 as Z,
|
|
43182
|
+
ci as _,
|
|
43183
43183
|
Jg as a,
|
|
43184
|
-
|
|
43185
|
-
|
|
43186
|
-
|
|
43187
|
-
|
|
43188
|
-
|
|
43184
|
+
d0 as a0,
|
|
43185
|
+
on as a1,
|
|
43186
|
+
Yn as a2,
|
|
43187
|
+
Mn as a3,
|
|
43188
|
+
Ff as a4,
|
|
43189
43189
|
u0 as a5,
|
|
43190
43190
|
Rt as a6,
|
|
43191
43191
|
Lm as a7,
|
|
43192
43192
|
cn as a8,
|
|
43193
43193
|
Vt as a9,
|
|
43194
|
-
|
|
43195
|
-
|
|
43196
|
-
|
|
43197
|
-
|
|
43198
|
-
|
|
43199
|
-
|
|
43200
|
-
|
|
43201
|
-
|
|
43202
|
-
|
|
43203
|
-
|
|
43204
|
-
|
|
43194
|
+
Qm as aA,
|
|
43195
|
+
zm as aB,
|
|
43196
|
+
qh as aC,
|
|
43197
|
+
Ht as aD,
|
|
43198
|
+
Xh as aE,
|
|
43199
|
+
Kt as aF,
|
|
43200
|
+
Bt as aG,
|
|
43201
|
+
Gn as aH,
|
|
43202
|
+
oi as aI,
|
|
43203
|
+
ec as aJ,
|
|
43204
|
+
ws as aK,
|
|
43205
|
+
l0 as aL,
|
|
43205
43206
|
z_ as aa,
|
|
43206
43207
|
vd as ab,
|
|
43207
43208
|
Sr as ac,
|
|
@@ -43223,34 +43224,34 @@ export {
|
|
|
43223
43224
|
h1 as as,
|
|
43224
43225
|
Pg as at,
|
|
43225
43226
|
av as au,
|
|
43226
|
-
|
|
43227
|
-
|
|
43228
|
-
|
|
43229
|
-
|
|
43230
|
-
|
|
43227
|
+
It as av,
|
|
43228
|
+
Wm as aw,
|
|
43229
|
+
Vm as ax,
|
|
43230
|
+
Kh as ay,
|
|
43231
|
+
$o as az,
|
|
43231
43232
|
wt as b,
|
|
43232
43233
|
M0 as c,
|
|
43233
43234
|
qb as d,
|
|
43234
|
-
|
|
43235
|
-
|
|
43236
|
-
|
|
43237
|
-
|
|
43238
|
-
|
|
43239
|
-
|
|
43240
|
-
|
|
43241
|
-
|
|
43242
|
-
|
|
43243
|
-
|
|
43244
|
-
|
|
43245
|
-
|
|
43235
|
+
C1 as e,
|
|
43236
|
+
K as f,
|
|
43237
|
+
Fn as g,
|
|
43238
|
+
rv as h,
|
|
43239
|
+
T1 as i,
|
|
43240
|
+
ve as j,
|
|
43241
|
+
pe as k,
|
|
43242
|
+
ct as l,
|
|
43243
|
+
cw as m,
|
|
43244
|
+
Yt as n,
|
|
43245
|
+
Nt as o,
|
|
43246
|
+
Jt as p,
|
|
43246
43247
|
B1 as q,
|
|
43247
|
-
|
|
43248
|
-
|
|
43249
|
-
|
|
43250
|
-
|
|
43251
|
-
|
|
43252
|
-
|
|
43253
|
-
|
|
43254
|
-
|
|
43248
|
+
R1 as r,
|
|
43249
|
+
Gi as s,
|
|
43250
|
+
tr as t,
|
|
43251
|
+
D1 as u,
|
|
43252
|
+
Ae as v,
|
|
43253
|
+
fr as w,
|
|
43254
|
+
Hh as x,
|
|
43255
|
+
ic as y,
|
|
43255
43256
|
N1 as z
|
|
43256
43257
|
};
|