soonspacejs 2.14.31 → 2.14.32
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/index.esm.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { Vector3 as D, Euler as pe, MathUtils as Oe, Object3D as je, Box3 as Wt, Scene as ca, Quaternion as he, CubeTextureLoader as al, HalfFloatType as on, EquirectangularReflectionMapping as
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import * as Cn from "three";
|
|
2
|
+
import { Vector3 as D, Euler as pe, MathUtils as Oe, Object3D as je, Box3 as Wt, Scene as ca, Quaternion as he, CubeTextureLoader as al, HalfFloatType as on, EquirectangularReflectionMapping as cr, Color as me, Texture as qt, FileLoader as Or, ImageLoader as ol, TextureLoader as ha, Vector2 as oe, Vector4 as Ts, CurvePath as ll, LineCurve as cl, LineCurve3 as hl, Line3 as ua, Matrix3 as Kt, Skeleton as Lr, AnimationClip as pt, VectorKeyframeTrack as St, InterpolateLinear as Ps, QuaternionKeyframeTrack as Mt, EventDispatcher as ul, LoopPingPong as dl, InterpolateDiscrete as pl, Bone as ps, SkinnedMesh as Fr, Matrix4 as Q, Uint16BufferAttribute as hn, Float32BufferAttribute as ge, StringKeyframeTrack as fl, ColorKeyframeTrack as ml, NumberKeyframeTrack as da, BooleanKeyframeTrack as gl, KeyframeTrack as yl, NormalAnimationBlendMode as vl, FogExp2 as xl, MeshStandardMaterial as Ue, MeshPhongMaterial as Br, MeshPhysicalMaterial as wl, Mesh as we, LineSegments as hr, LineBasicMaterial as An, BufferGeometry as Ce, EdgesGeometry as bl, OrthographicCamera as Qt, PerspectiveCamera as Is, WebGLRenderer as Sl, PCFShadowMap as Ml, Spherical as Be, Sphere as Ds, BufferAttribute as $e, ShaderMaterial as at, WebGLRenderTarget as Ot, RGBAFormat as nn, LinearFilter as ot, DataTexture as Tl, NoColorSpace as Pl, RepeatWrapping as ft, NearestFilter as Et, REVISION as pa, RedFormat as Il, FloatType as Dl, DepthTexture as Cl, UnsignedIntType as Al, GLBufferAttribute as El, InterleavedBufferAttribute as Ol, Raycaster as Nn, BoxGeometry as Ll, Sprite as Ut, MeshBasicMaterial as un, CanvasTexture as kr, SRGBColorSpace as dt, SpriteMaterial as ur, PMREMGenerator as Fl, AnimationMixer as Bl, Timer as kl, LinearSRGBColorSpace as zl, NeutralToneMapping as Rl, AgXToneMapping as Nl, ACESFilmicToneMapping as jl, CineonToneMapping as Ul, ReinhardToneMapping as Gl, NoToneMapping as Vl, UVMapping as Hl, CubeTexture as Wl, SphereGeometry as di, DoubleSide as Tt, CircleGeometry as ql, PlaneGeometry as dn, ExtrudeGeometry as Kl, Shape as fa, Box2 as dr, Group as fs, Triangle as ma, VideoTexture as Ql, ShapeGeometry as Yl, Plane as _l, AmbientLight as ga, DirectionalLight as ya, HemisphereLight as Xl, SpotLight as va, PointLight as pr, RectAreaLight as Zl, Loader as ms, LoaderUtils as Jl, ClampToEdgeWrapping as pi, PropertyBinding as gs, Line as $l, ShapeUtils as ec, Material as fi, PointsMaterial as Hn, Points as js, FrontSide as mi, BackSide as gi, LoadingManager as tc, InstancedMesh as nc, GridHelper as sc, AxesHelper as rc, Box3Helper as ic, DirectionalLightHelper as ac, HemisphereLightHelper as oc, SpotLightHelper as lc, PointLightHelper as cc } from "three";
|
|
3
|
+
import * as yi from "three/examples/jsm/libs/tween.module.js";
|
|
4
|
+
import fr, { Easing as ye, Tween as hc } from "three/examples/jsm/libs/tween.module.js";
|
|
5
|
+
import En from "camera-controls";
|
|
6
6
|
import { HDRLoader as uc } from "three/examples/jsm/loaders/HDRLoader.js";
|
|
7
7
|
import { GLTFExporter as dc } from "three/examples/jsm/exporters/GLTFExporter.js";
|
|
8
|
-
import { Pass as pc, EffectPass as
|
|
8
|
+
import { Pass as pc, EffectPass as vi, EffectComposer as fc, RenderPass as mc, NormalPass as gc, SMAAEffect as yc, EdgeDetectionMode as vc, SMAAPreset as xc, ToneMappingEffect as wc, ToneMappingMode as an, BloomEffect as bc, BlendFunction as xi, OutlineEffect as Sc } from "postprocessing";
|
|
9
9
|
import { RoomEnvironment as Mc } from "three/examples/jsm/environments/RoomEnvironment.js";
|
|
10
10
|
import Tc from "three/examples/jsm/libs/stats.module.js";
|
|
11
11
|
import { Sky as Pc } from "three/examples/jsm/objects/Sky.js";
|
|
@@ -20,31 +20,31 @@ import { TGALoader as kc } from "three/examples/jsm/loaders/TGALoader.js";
|
|
|
20
20
|
import { DRACOLoader as zc } from "three/examples/jsm/loaders/DRACOLoader.js";
|
|
21
21
|
import { KTX2Loader as Rc } from "three/examples/jsm/loaders/KTX2Loader.js";
|
|
22
22
|
import { MeshoptDecoder as Nc } from "three/examples/jsm/libs/meshopt_decoder.module.js";
|
|
23
|
-
import * as
|
|
23
|
+
import * as wi from "three/examples/jsm/utils/SkeletonUtils.js";
|
|
24
24
|
import * as jc from "three/examples/jsm/libs/fflate.module.js";
|
|
25
25
|
import { NURBSCurve as Uc } from "three/examples/jsm/curves/NURBSCurve.js";
|
|
26
26
|
import { RectAreaLightHelper as Gc } from "three/examples/jsm/helpers/RectAreaLightHelper.js";
|
|
27
|
-
const Vc = "soonspacejs", Hc = "2.14.
|
|
27
|
+
const Vc = "soonspacejs", Hc = "2.14.32", bi = {
|
|
28
28
|
name: Vc,
|
|
29
29
|
version: Hc
|
|
30
30
|
}, wa = "[soonspacejs]: ";
|
|
31
31
|
var et = /* @__PURE__ */ ((i) => (i.Group = "Group", i.Light = "Light", i.Model = "Model", i.Poi = "Poi", i.PoiNode = "PoiNode", i.Canvas3D = "Canvas3D", i.Topology = "Topology", i.Helper = "Helper", i.Decal = "Decal", i.PluginObject = "PluginObject", i))(et || {}), Ft = /* @__PURE__ */ ((i) => (i.sbm = "SBM", i.sbmx = "SBMX", i.glb = "GLB", i.gltf = "GLTF", i.fbx = "FBX", i.obj = "OBJ", i.stl = "STL", i))(Ft || {});
|
|
32
|
-
const
|
|
32
|
+
const On = "In soonspacejs: ", Gt = (i, e) => {
|
|
33
33
|
let t = "";
|
|
34
34
|
for (const n in e) t += `${n}: ${e[n]};`;
|
|
35
35
|
console.log(`%c${i}`, t);
|
|
36
36
|
}, ys = {}, R = (i) => {
|
|
37
|
-
i in ys || (ys[i] = !0, console.warn(
|
|
38
|
-
},
|
|
39
|
-
i in ys || (ys[i] = !0, console.error(
|
|
37
|
+
i in ys || (ys[i] = !0, console.warn(On + i));
|
|
38
|
+
}, zr = (i) => {
|
|
39
|
+
i in ys || (ys[i] = !0, console.error(On + i));
|
|
40
40
|
};
|
|
41
41
|
function be(i) {
|
|
42
42
|
return i instanceof D ? i : new D(i.x, i.y, i.z);
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function Rr(i) {
|
|
45
45
|
return i instanceof pe ? i : new pe(i.x, i.y, i.z);
|
|
46
46
|
}
|
|
47
|
-
function
|
|
47
|
+
function pn(i, e) {
|
|
48
48
|
const t = new Wt();
|
|
49
49
|
return i instanceof ca ? i.children.filter((n) => !("isTransformControls" in n)).reduce((n, s) => n.union(new Wt().setFromObject(s, e)), t) : t.setFromObject(i, e), t.isEmpty() && (i.getWorldPosition(t.min), t.max.copy(t.min)), t;
|
|
50
50
|
}
|
|
@@ -61,13 +61,13 @@ function Wc(i, e) {
|
|
|
61
61
|
e.order
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
|
-
function
|
|
64
|
+
function Ln(i) {
|
|
65
65
|
return Math.PI / 180 * i;
|
|
66
66
|
}
|
|
67
67
|
function qc(i) {
|
|
68
68
|
return i / (Math.PI / 180);
|
|
69
69
|
}
|
|
70
|
-
function
|
|
70
|
+
function Nr(i, e = !0) {
|
|
71
71
|
return e ? {
|
|
72
72
|
position: i.getWorldPosition(new D()),
|
|
73
73
|
rotation: new pe().setFromQuaternion(
|
|
@@ -81,7 +81,7 @@ function Rr(i, e = !0) {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
function ba(i, e, t = !0) {
|
|
84
|
-
const n =
|
|
84
|
+
const n = Nr(e, t);
|
|
85
85
|
i.position.copy(n.position), i.rotation.copy(n.rotation), i.scale.copy(n.scale);
|
|
86
86
|
}
|
|
87
87
|
function jn(i) {
|
|
@@ -197,17 +197,17 @@ async function ln({ path: i = "", file: e }) {
|
|
|
197
197
|
if (Array.isArray(e))
|
|
198
198
|
return new al().setPath(i).loadAsync(e);
|
|
199
199
|
{
|
|
200
|
-
const t =
|
|
200
|
+
const t = Hr(e);
|
|
201
201
|
if (t === "hdr" || t === "pic") {
|
|
202
|
-
const n = await
|
|
203
|
-
return n.mapping =
|
|
202
|
+
const n = await Gr.setPath(i).setDataType(on).loadAsync(e);
|
|
203
|
+
return n.mapping = cr, n;
|
|
204
204
|
} else {
|
|
205
205
|
const n = await _t.setPath(i).loadAsync(e);
|
|
206
|
-
return n.mapping =
|
|
206
|
+
return n.mapping = cr, n;
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
function
|
|
210
|
+
function mn(i) {
|
|
211
211
|
if (!i) return null;
|
|
212
212
|
const { colors: e, stops: t, size: n = 1024 } = i, s = document.createElement("canvas"), r = s.getContext("2d");
|
|
213
213
|
if (!r) return null;
|
|
@@ -219,40 +219,40 @@ function gn(i) {
|
|
|
219
219
|
const c = new qt(s);
|
|
220
220
|
return c.needsUpdate = !0, c;
|
|
221
221
|
}
|
|
222
|
-
const
|
|
222
|
+
const mr = (i) => {
|
|
223
223
|
const e = i.lastIndexOf("/");
|
|
224
224
|
return e === -1 ? "./" : i.slice(0, e + 1);
|
|
225
225
|
};
|
|
226
|
-
function
|
|
226
|
+
function Cs(i) {
|
|
227
227
|
return ke(i) ? Jc(i) : Ne(i) ? Zc(i) : i;
|
|
228
228
|
}
|
|
229
229
|
function Zc(i) {
|
|
230
230
|
if (Ne(i)) {
|
|
231
231
|
const e = {};
|
|
232
232
|
for (const t in i)
|
|
233
|
-
e[t] =
|
|
233
|
+
e[t] = Cs(i[t]);
|
|
234
234
|
return e;
|
|
235
235
|
}
|
|
236
236
|
return i;
|
|
237
237
|
}
|
|
238
238
|
function Jc(i) {
|
|
239
|
-
return i.map((e) =>
|
|
239
|
+
return i.map((e) => Cs(e));
|
|
240
240
|
}
|
|
241
|
-
const Ia = (i) =>
|
|
242
|
-
|
|
243
|
-
const
|
|
244
|
-
|
|
241
|
+
const Ia = (i) => fn(i, (e) => e.clone()), Da = (i) => fn(i, (e) => e.dispose()), jr = {}, Fn = new Or();
|
|
242
|
+
Fn.setRequestHeader(jr);
|
|
243
|
+
const Ur = async (i, e) => (Fn.setResponseType(e), Fn.loadAsync(i)), As = new ol();
|
|
244
|
+
As.load = (i, e, t, n) => {
|
|
245
245
|
const s = new Image();
|
|
246
|
-
return
|
|
246
|
+
return Fn.setResponseType("blob"), Fn.load(i, function(r) {
|
|
247
247
|
s.src = URL.createObjectURL(r), s.onload = () => {
|
|
248
248
|
URL.revokeObjectURL(s.src), e?.(s);
|
|
249
249
|
};
|
|
250
250
|
}, t, n), s;
|
|
251
251
|
};
|
|
252
252
|
const _t = new ha();
|
|
253
|
-
_t.setRequestHeader(
|
|
254
|
-
const
|
|
255
|
-
|
|
253
|
+
_t.setRequestHeader(jr);
|
|
254
|
+
const Gr = new uc();
|
|
255
|
+
Gr.setRequestHeader(jr);
|
|
256
256
|
const Ca = new D(), $c = new D(), Aa = new D();
|
|
257
257
|
function eh(i, e) {
|
|
258
258
|
const t = Aa.setFromMatrixColumn(e.matrixWorld, 2).normalize().negate();
|
|
@@ -268,7 +268,7 @@ function Ea(i, e, t, n) {
|
|
|
268
268
|
}
|
|
269
269
|
return !0;
|
|
270
270
|
}
|
|
271
|
-
function
|
|
271
|
+
function Vr(i, e) {
|
|
272
272
|
const t = i.parent;
|
|
273
273
|
if (!t.occlude) return;
|
|
274
274
|
const { occludeThrottle: n } = t;
|
|
@@ -345,7 +345,7 @@ function La(i) {
|
|
|
345
345
|
removeLineBreaks: !0
|
|
346
346
|
});
|
|
347
347
|
}
|
|
348
|
-
return
|
|
348
|
+
return Ur(i, "text").then((t) => Promise.resolve(e(t)));
|
|
349
349
|
}
|
|
350
350
|
function us(i) {
|
|
351
351
|
const e = new DataView(i);
|
|
@@ -355,21 +355,21 @@ function us(i) {
|
|
|
355
355
|
}
|
|
356
356
|
return e.buffer;
|
|
357
357
|
}
|
|
358
|
-
const
|
|
358
|
+
const Bn = {
|
|
359
359
|
source: null
|
|
360
360
|
};
|
|
361
361
|
function nh(i, e) {
|
|
362
|
-
|
|
362
|
+
Bn.source = i;
|
|
363
363
|
const t = e();
|
|
364
|
-
return
|
|
364
|
+
return Bn.source = null, t;
|
|
365
365
|
}
|
|
366
366
|
function sh(i) {
|
|
367
367
|
return nh("code", i);
|
|
368
368
|
}
|
|
369
369
|
async function rh(i, e) {
|
|
370
|
-
|
|
370
|
+
Bn.source = i;
|
|
371
371
|
const t = await e();
|
|
372
|
-
return
|
|
372
|
+
return Bn.source = null, t;
|
|
373
373
|
}
|
|
374
374
|
async function ih(i) {
|
|
375
375
|
return rh("code", i);
|
|
@@ -384,17 +384,17 @@ function ah(i, e = {}) {
|
|
|
384
384
|
);
|
|
385
385
|
});
|
|
386
386
|
}
|
|
387
|
-
const oh = Object.prototype.hasOwnProperty, lh = (i, e) => oh.call(i, e), Bt = (i) => tt(i) === "String",
|
|
387
|
+
const oh = Object.prototype.hasOwnProperty, lh = (i, e) => oh.call(i, e), Bt = (i) => tt(i) === "String", Es = (i) => tt(i) === "Boolean", Xe = (i) => tt(i) === "Number", ch = (i) => tt(i) === "Null", hh = (i) => tt(i) === "Undefined", uh = (i) => tt(i) === "Symbol", dh = (i) => tt(i) === "Date", ke = Array.isArray, Ne = (i) => tt(i) === "Object", vs = (i) => tt(i) === "Function", ph = (i) => tt(i) === "Promise", tt = (i) => Object.prototype.toString.call(i).slice(8, -1), fh = (i) => new Promise((e) => setTimeout(() => e(), i)), gr = (i) => new TextDecoder().decode(new Uint8Array(i)), We = () => wa + Math.random().toString(36).substring(7).split("").join("_"), Hr = (i) => {
|
|
388
388
|
const { href: e } = new URL(i, location.origin);
|
|
389
389
|
if (e.includes(".")) {
|
|
390
390
|
const t = e.split(".").pop();
|
|
391
391
|
return t ? t.includes("?") ? t.split("?").shift()?.toLowerCase() : t : void 0;
|
|
392
392
|
}
|
|
393
|
-
},
|
|
394
|
-
function Fa(i, e =
|
|
393
|
+
}, Wr = 1e-5;
|
|
394
|
+
function Fa(i, e = Wr) {
|
|
395
395
|
return Math.abs(i) < e;
|
|
396
396
|
}
|
|
397
|
-
function mh(i, e, t =
|
|
397
|
+
function mh(i, e, t = Wr) {
|
|
398
398
|
return Fa(i - e, t);
|
|
399
399
|
}
|
|
400
400
|
function Ba(i, e = 50) {
|
|
@@ -410,10 +410,10 @@ function gh(i, e) {
|
|
|
410
410
|
return r ? r.push(s) : n.set(s[e], [s]), n;
|
|
411
411
|
}, t), t;
|
|
412
412
|
}
|
|
413
|
-
const
|
|
413
|
+
const fn = (i, e) => ke(i) ? i.map(e) : e(i), Si = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
414
414
|
__proto__: null,
|
|
415
|
-
EPSILON:
|
|
416
|
-
IVector3ToEuler:
|
|
415
|
+
EPSILON: Wr,
|
|
416
|
+
IVector3ToEuler: Rr,
|
|
417
417
|
IVector3ToVector3: be,
|
|
418
418
|
MinHeap: Pa,
|
|
419
419
|
absoluteAngle: Ta,
|
|
@@ -421,30 +421,30 @@ const mn = (i, e) => ke(i) ? i.map(e) : e(i), bi = /* @__PURE__ */ Object.freeze
|
|
|
421
421
|
approxZero: Fa,
|
|
422
422
|
asyncRunWithCode: ih,
|
|
423
423
|
calculateScaleFactor: Sa,
|
|
424
|
-
cloneDeep:
|
|
424
|
+
cloneDeep: Cs,
|
|
425
425
|
cloneMaterials: Ia,
|
|
426
426
|
computeTargetByRotation: Ma,
|
|
427
|
-
consoleSspTitle:
|
|
427
|
+
consoleSspTitle: On,
|
|
428
428
|
debounce: Ba,
|
|
429
|
-
deg2Euler:
|
|
429
|
+
deg2Euler: Ln,
|
|
430
430
|
disposeMaterials: Da,
|
|
431
|
-
error:
|
|
431
|
+
error: zr,
|
|
432
432
|
euler2Deg: qc,
|
|
433
433
|
exportGltf: ah,
|
|
434
|
-
fetchFile:
|
|
435
|
-
getAsciiString:
|
|
436
|
-
getBoundingBox:
|
|
437
|
-
getExtension:
|
|
438
|
-
getSpaceAttributeFromObject:
|
|
434
|
+
fetchFile: Ur,
|
|
435
|
+
getAsciiString: gr,
|
|
436
|
+
getBoundingBox: pn,
|
|
437
|
+
getExtension: Hr,
|
|
438
|
+
getSpaceAttributeFromObject: Nr,
|
|
439
439
|
getTexture: ln,
|
|
440
440
|
getValueType: tt,
|
|
441
|
-
gradientTexture:
|
|
441
|
+
gradientTexture: mn,
|
|
442
442
|
groupBy: gh,
|
|
443
443
|
hasOwn: lh,
|
|
444
444
|
idleTask: Oa,
|
|
445
|
-
imageLoader:
|
|
445
|
+
imageLoader: As,
|
|
446
446
|
isArray: ke,
|
|
447
|
-
isBoolean:
|
|
447
|
+
isBoolean: Es,
|
|
448
448
|
isDate: dh,
|
|
449
449
|
isFunction: vs,
|
|
450
450
|
isNull: ch,
|
|
@@ -458,12 +458,12 @@ const mn = (i, e) => ke(i) ? i.map(e) : e(i), bi = /* @__PURE__ */ Object.freeze
|
|
|
458
458
|
isSymbol: uh,
|
|
459
459
|
isUndefined: hh,
|
|
460
460
|
log: Gt,
|
|
461
|
-
objectHandle:
|
|
462
|
-
parseFilePath:
|
|
463
|
-
poiNodeOccludeHandler:
|
|
464
|
-
propertiesCtx:
|
|
461
|
+
objectHandle: fn,
|
|
462
|
+
parseFilePath: mr,
|
|
463
|
+
poiNodeOccludeHandler: Vr,
|
|
464
|
+
propertiesCtx: Bn,
|
|
465
465
|
randomString: We,
|
|
466
|
-
rgbeLoader:
|
|
466
|
+
rgbeLoader: Gr,
|
|
467
467
|
rotationAFix: Wc,
|
|
468
468
|
rotationAxisFix: hs,
|
|
469
469
|
runWithCode: sh,
|
|
@@ -523,10 +523,10 @@ function wt(i, e, t = {}, n, s) {
|
|
|
523
523
|
}).onStart(() => {
|
|
524
524
|
s?.(f);
|
|
525
525
|
});
|
|
526
|
-
Xe(c) ? f.repeat(c) :
|
|
526
|
+
Xe(c) ? f.repeat(c) : Es(c) && c && f.repeat(1 / 0), h && f.repeatDelay(20), f.yoyo(h), f.start();
|
|
527
527
|
});
|
|
528
528
|
}
|
|
529
|
-
class
|
|
529
|
+
class Mi {
|
|
530
530
|
/**
|
|
531
531
|
*
|
|
532
532
|
* @param target - 被动画的目标对象
|
|
@@ -637,7 +637,7 @@ function ka(i) {
|
|
|
637
637
|
function vh(i) {
|
|
638
638
|
return i && typeof i[Symbol.iterator] == "function";
|
|
639
639
|
}
|
|
640
|
-
var
|
|
640
|
+
var yr = /* @__PURE__ */ ((i) => (i[i.x = 0] = "x", i[i.y = 1] = "y", i[i.z = 2] = "z", i))(yr || {});
|
|
641
641
|
((i) => {
|
|
642
642
|
function e(s) {
|
|
643
643
|
return i[s];
|
|
@@ -652,8 +652,8 @@ var gr = /* @__PURE__ */ ((i) => (i[i.x = 0] = "x", i[i.y = 1] = "y", i[i.z = 2]
|
|
|
652
652
|
return [r, a];
|
|
653
653
|
}
|
|
654
654
|
i.getCrossAxiss = n;
|
|
655
|
-
})(
|
|
656
|
-
var
|
|
655
|
+
})(yr || (yr = {}));
|
|
656
|
+
var vr = /* @__PURE__ */ ((i) => (i[i.x = 0] = "x", i[i.y = 1] = "y", i[i.z = 2] = "z", i[i.w = 3] = "w", i))(vr || {});
|
|
657
657
|
((i) => {
|
|
658
658
|
function e(s) {
|
|
659
659
|
return i[s];
|
|
@@ -668,10 +668,10 @@ var yr = /* @__PURE__ */ ((i) => (i[i.x = 0] = "x", i[i.y = 1] = "y", i[i.z = 2]
|
|
|
668
668
|
return [r, a];
|
|
669
669
|
}
|
|
670
670
|
i.getCrossAxiss = n;
|
|
671
|
-
})(
|
|
672
|
-
var xh = Object.defineProperty, wh = (i, e, t) => e in i ? xh(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t,
|
|
671
|
+
})(vr || (vr = {}));
|
|
672
|
+
var xh = Object.defineProperty, wh = (i, e, t) => e in i ? xh(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, Pn = (i, e, t) => (wh(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
673
673
|
function bh(i) {
|
|
674
|
-
return i.w != null ? new
|
|
674
|
+
return i.w != null ? new Ts().copy(i) : i.z != null ? new D().copy(i) : new oe().copy(i);
|
|
675
675
|
}
|
|
676
676
|
function cn(i, e, t) {
|
|
677
677
|
t = t ?? 0;
|
|
@@ -713,15 +713,15 @@ function Sh(i, e) {
|
|
|
713
713
|
let n = i.dot(e) / t;
|
|
714
714
|
return n = Math.max(-1, Math.min(1, n)), Math.acos(n);
|
|
715
715
|
}
|
|
716
|
-
function
|
|
716
|
+
function Us(i, e, t) {
|
|
717
717
|
let n = Sh(i, e);
|
|
718
718
|
return n === 0 ? n : i.clone().cross(e).dot(t) < 0 ? -n : n;
|
|
719
719
|
}
|
|
720
720
|
function Mh(i, e, t) {
|
|
721
|
-
const n = e.clone().negate(), s = t.clone().projectOnPlane(e), r = i.clone().projectOnPlane(s), a =
|
|
721
|
+
const n = e.clone().negate(), s = t.clone().projectOnPlane(e), r = i.clone().projectOnPlane(s), a = Us(e, r, s), o = e.clone().cross(s), l = i.clone().projectOnPlane(o), c = Us(e, l, o), u = i.clone().projectOnPlane(n), h = Us(s, u, n);
|
|
722
722
|
return { yaw: a, pitch: c, roll: h };
|
|
723
723
|
}
|
|
724
|
-
const
|
|
724
|
+
const Gs = 180 / Math.PI, xr = {
|
|
725
725
|
yaw: [
|
|
726
726
|
{ name: "前", range: [-15, 15] },
|
|
727
727
|
{ name: "左", range: [15, 165] },
|
|
@@ -750,21 +750,21 @@ function Th(i) {
|
|
|
750
750
|
e[t] = Array.isArray(n) ? n : Object.entries(n).map(([s, r]) => ({ name: s, range: r }));
|
|
751
751
|
return e;
|
|
752
752
|
}
|
|
753
|
-
const
|
|
753
|
+
const Vs = {
|
|
754
754
|
degrees: !0,
|
|
755
|
-
map:
|
|
755
|
+
map: xr,
|
|
756
756
|
front: { x: 0, y: 0, z: 1 },
|
|
757
757
|
up: { x: 0, y: 1, z: 0 }
|
|
758
758
|
};
|
|
759
759
|
class za {
|
|
760
760
|
constructor(e) {
|
|
761
|
-
|
|
761
|
+
Pn(this, "_options"), Pn(this, "_listMap"), Pn(this, "_front"), Pn(this, "_up"), e && (this.options = e);
|
|
762
762
|
}
|
|
763
763
|
static get options() {
|
|
764
|
-
return this._options ?? (this.options =
|
|
764
|
+
return this._options ?? (this.options = Vs);
|
|
765
765
|
}
|
|
766
766
|
static set options(e) {
|
|
767
|
-
this._options = Object.assign({}, structuredClone(
|
|
767
|
+
this._options = Object.assign({}, structuredClone(xr), e);
|
|
768
768
|
}
|
|
769
769
|
/**
|
|
770
770
|
* 默认选项
|
|
@@ -791,7 +791,7 @@ class za {
|
|
|
791
791
|
return this.options.map || (this.map = this.defaultOptions.map), this.options.map;
|
|
792
792
|
}
|
|
793
793
|
set map(e) {
|
|
794
|
-
const t = structuredClone(this.defaultOptions.map), n = structuredClone(
|
|
794
|
+
const t = structuredClone(this.defaultOptions.map), n = structuredClone(xr);
|
|
795
795
|
e = e ? {
|
|
796
796
|
yaw: e.yaw ?? t.yaw ?? n.yaw,
|
|
797
797
|
pitch: e.pitch ?? t.pitch ?? n.pitch,
|
|
@@ -802,13 +802,13 @@ class za {
|
|
|
802
802
|
return this._listMap ?? (this._listMap = Th(this.map ?? {}));
|
|
803
803
|
}
|
|
804
804
|
get front() {
|
|
805
|
-
return this._front || (this.front = this.options.front ?? this.defaultOptions.front ??
|
|
805
|
+
return this._front || (this.front = this.options.front ?? this.defaultOptions.front ?? Vs.front), this._front;
|
|
806
806
|
}
|
|
807
807
|
set front(e) {
|
|
808
808
|
this._front = new D().copy(e);
|
|
809
809
|
}
|
|
810
810
|
get up() {
|
|
811
|
-
return this._up || (this.up = this.options.up ?? this.defaultOptions.up ??
|
|
811
|
+
return this._up || (this.up = this.options.up ?? this.defaultOptions.up ?? Vs.up), this._up;
|
|
812
812
|
}
|
|
813
813
|
set up(e) {
|
|
814
814
|
this._up = new D().copy(e);
|
|
@@ -822,7 +822,7 @@ class za {
|
|
|
822
822
|
computeAzimuth(e, t, n) {
|
|
823
823
|
const s = new D().copy(e), r = new D().copy(t ?? this.front), a = new D().copy(n ?? this.up);
|
|
824
824
|
let { yaw: o, pitch: l, roll: c } = Mh(s, r, a);
|
|
825
|
-
return this.degrees && (o *=
|
|
825
|
+
return this.degrees && (o *= Gs, l *= Gs, c *= Gs), {
|
|
826
826
|
yaw: {
|
|
827
827
|
angle: o,
|
|
828
828
|
name: this.findAzimuthNames("yaw", o)
|
|
@@ -852,7 +852,7 @@ class za {
|
|
|
852
852
|
return n;
|
|
853
853
|
}
|
|
854
854
|
}
|
|
855
|
-
|
|
855
|
+
Pn(za, "_options");
|
|
856
856
|
new za();
|
|
857
857
|
function Ph(i, e, t) {
|
|
858
858
|
const n = t ? (l) => i.getPointAt(l) : (l) => i.getPoint(l);
|
|
@@ -874,13 +874,13 @@ function Ih(i, e) {
|
|
|
874
874
|
}
|
|
875
875
|
return Math.ceil(e / t);
|
|
876
876
|
}
|
|
877
|
-
function
|
|
877
|
+
function qr(i) {
|
|
878
878
|
const { curve: e } = i;
|
|
879
879
|
let t = e.getLength();
|
|
880
880
|
const n = Ih(i, t);
|
|
881
881
|
return e.arcLengthDivisions < n && (e.arcLengthDivisions = n, e.updateArcLengths(), t = e.getLength()), { length: t, division: n };
|
|
882
882
|
}
|
|
883
|
-
var
|
|
883
|
+
var Kr = /* @__PURE__ */ ((i) => (i.back = "back", i.front = "front", i))(Kr || {});
|
|
884
884
|
function Ra(i) {
|
|
885
885
|
const { curve: e, distance: t, fromU: n = 0, side: s, tolerance: r = t * 0.1 } = i, a = i.length ?? e.getLength(), o = e.getPointAt(n);
|
|
886
886
|
let l = t / a;
|
|
@@ -905,10 +905,10 @@ function Ra(i) {
|
|
|
905
905
|
};
|
|
906
906
|
}
|
|
907
907
|
function Dh(i) {
|
|
908
|
-
const e =
|
|
908
|
+
const e = Qr(i), t = [0], n = e.reduce((s, r) => (s += r.distance(), t.push(s), s), 0);
|
|
909
909
|
return { lines: e, lengths: t, length: n };
|
|
910
910
|
}
|
|
911
|
-
function
|
|
911
|
+
function Qr(i) {
|
|
912
912
|
const e = [];
|
|
913
913
|
return i.reduce((t, n) => {
|
|
914
914
|
const s = new ua(t, n);
|
|
@@ -943,16 +943,16 @@ new Kt();
|
|
|
943
943
|
var Eh = Object.defineProperty, Oh = (i, e, t) => e in i ? Eh(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, ce = (i, e, t) => (Oh(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
944
944
|
const xs = new D(), ja = new D(1, 1, 1);
|
|
945
945
|
new he();
|
|
946
|
-
const
|
|
946
|
+
const kn = new Q();
|
|
947
947
|
function Ua(i) {
|
|
948
948
|
const { joints: e, axials: t } = i;
|
|
949
949
|
if (e)
|
|
950
950
|
var n = Lh(e);
|
|
951
951
|
else
|
|
952
|
-
t ? n =
|
|
952
|
+
t ? n = Yr(i) : n = Fh(i);
|
|
953
953
|
return n;
|
|
954
954
|
}
|
|
955
|
-
function
|
|
955
|
+
function Yr(i) {
|
|
956
956
|
const { axials: e, start: t } = i, n = new ps();
|
|
957
957
|
t && (n.position.copy(t), n.updateMatrix());
|
|
958
958
|
const s = [n];
|
|
@@ -966,13 +966,13 @@ function Lh(i) {
|
|
|
966
966
|
return i.reduce((t, n) => {
|
|
967
967
|
const s = n.clone().sub(t);
|
|
968
968
|
return e.push(s), n;
|
|
969
|
-
}),
|
|
969
|
+
}), Yr({ axials: e, start: i[0] });
|
|
970
970
|
}
|
|
971
971
|
function Fh(i) {
|
|
972
972
|
const { start: e, axial: t } = i;
|
|
973
973
|
let n = i.number;
|
|
974
974
|
const s = new Array(n - 1);
|
|
975
|
-
return s.fill(t),
|
|
975
|
+
return s.fill(t), Yr({ axials: s, start: e });
|
|
976
976
|
}
|
|
977
977
|
function Bh(i) {
|
|
978
978
|
const { geometry: e, flexible: t = 1, axial: n, number: s } = i, r = i.start ?? new D(), a = n.clone().normalize(), o = n.length(), l = s - 1, c = new he().setFromUnitVectors(new D(1, 0, 0), a), u = new Q().compose(r, c, new D(1, 1, 1)).invert(), h = e.getAttribute("position").clone(), d = h.count;
|
|
@@ -994,7 +994,7 @@ function Bh(i) {
|
|
|
994
994
|
}
|
|
995
995
|
return e.setAttribute("skinIndex", new hn(f, 4)), e.setAttribute("skinWeight", new ge(p, 4)), e;
|
|
996
996
|
}
|
|
997
|
-
function
|
|
997
|
+
function yf(i) {
|
|
998
998
|
const { skeleton: e, geometryFrame: t } = i, n = e.boneInverses[0].clone().invert(), s = e.boneInverses[1].clone().invert();
|
|
999
999
|
if (t) {
|
|
1000
1000
|
const o = t.clone().invert();
|
|
@@ -1009,10 +1009,10 @@ function gf(i) {
|
|
|
1009
1009
|
});
|
|
1010
1010
|
}
|
|
1011
1011
|
function Ga(i) {
|
|
1012
|
-
const { skeleton: e, geometry: t, flexible: n = 1, geometryFrame: s } = i, r = s?.clone().invert() ??
|
|
1012
|
+
const { skeleton: e, geometry: t, flexible: n = 1, geometryFrame: s } = i, r = s?.clone().invert() ?? kn.clone(), a = e.boneInverses.map((f) => {
|
|
1013
1013
|
const p = f.clone().invert().premultiply(r);
|
|
1014
1014
|
return new D().setFromMatrixPosition(p);
|
|
1015
|
-
}), o =
|
|
1015
|
+
}), o = Qr(a), l = t.getAttribute("position"), c = l.count, u = [], h = [], d = new D();
|
|
1016
1016
|
for (let f = 0; f < c; f++) {
|
|
1017
1017
|
d.fromBufferAttribute(l, f);
|
|
1018
1018
|
const { index: p, clampT: g } = Ch(d, o), v = g * n;
|
|
@@ -1020,18 +1020,18 @@ function Ga(i) {
|
|
|
1020
1020
|
}
|
|
1021
1021
|
return t.setAttribute("skinIndex", new hn(u, 4)), t.setAttribute("skinWeight", new ge(h, 4)), t;
|
|
1022
1022
|
}
|
|
1023
|
-
function
|
|
1024
|
-
const { geometry: e } = i, t = i.material ?? void 0, n = new
|
|
1023
|
+
function vf(i) {
|
|
1024
|
+
const { geometry: e } = i, t = i.material ?? void 0, n = new Fr(e, t), s = Ua(i);
|
|
1025
1025
|
n.add(s[0]);
|
|
1026
|
-
const r = new
|
|
1026
|
+
const r = new Lr(s);
|
|
1027
1027
|
return n.bind(r), Ga({ ...i, skeleton: r }), n;
|
|
1028
1028
|
}
|
|
1029
|
-
function
|
|
1029
|
+
function xf(i) {
|
|
1030
1030
|
const { skeleton: e } = i, t = Va(i);
|
|
1031
1031
|
return t.updateMatrix(), t.updateMatrixWorld(), t.bind(e), t;
|
|
1032
1032
|
}
|
|
1033
1033
|
function Va(i) {
|
|
1034
|
-
const { target: e, skeleton: t } = i, n = e.geometry, s = new
|
|
1034
|
+
const { target: e, skeleton: t } = i, n = e.geometry, s = new Fr();
|
|
1035
1035
|
return e.copy.call(s, e, !1), Ga({ ...i, geometry: n, skeleton: t, geometryFrame: e.matrixWorld }), s;
|
|
1036
1036
|
}
|
|
1037
1037
|
function Ha(i) {
|
|
@@ -1041,7 +1041,7 @@ function Ha(i) {
|
|
|
1041
1041
|
var n = t.bones[0];
|
|
1042
1042
|
else {
|
|
1043
1043
|
const r = Ua(i);
|
|
1044
|
-
t = new
|
|
1044
|
+
t = new Lr(r), n = r[0];
|
|
1045
1045
|
}
|
|
1046
1046
|
e.add(n), e.updateWorldMatrix(!1, !0), t.calculateInverses(), n.removeFromParent();
|
|
1047
1047
|
const s = Wa({ ...i, target: e, skeleton: t });
|
|
@@ -1055,7 +1055,7 @@ function Wa(i) {
|
|
|
1055
1055
|
Wa({ ...i, target: l, parent: a });
|
|
1056
1056
|
return a;
|
|
1057
1057
|
}
|
|
1058
|
-
function
|
|
1058
|
+
function wf(i) {
|
|
1059
1059
|
return i.filter((e) => {
|
|
1060
1060
|
var t;
|
|
1061
1061
|
return !((t = e.parent) != null && t.isBone);
|
|
@@ -1067,7 +1067,7 @@ function kh(i) {
|
|
|
1067
1067
|
return !((t = e.parent) != null && t.isBone);
|
|
1068
1068
|
});
|
|
1069
1069
|
}
|
|
1070
|
-
function
|
|
1070
|
+
function bf(i) {
|
|
1071
1071
|
return kh(i) ?? i[0];
|
|
1072
1072
|
}
|
|
1073
1073
|
function zh(i) {
|
|
@@ -1078,7 +1078,7 @@ function Rh(i) {
|
|
|
1078
1078
|
return { ...n, clip: s };
|
|
1079
1079
|
}
|
|
1080
1080
|
function qa(i) {
|
|
1081
|
-
const { curve: e, lookDistance: t } = i, n = i.targetPath ?? "", s =
|
|
1081
|
+
const { curve: e, lookDistance: t } = i, n = i.targetPath ?? "", s = qr(i).division, r = Os(i, e.getLength()), a = Ps, o = [], l = Xr(s), c = { ...i, duration: r, division: s, ts: l, lookPoint: { distance: t } }, u = Zr(c), { points: h, rotates: d, ...f } = _r(c);
|
|
1082
1082
|
if (h.length) {
|
|
1083
1083
|
const p = [];
|
|
1084
1084
|
h.forEach((v, w) => {
|
|
@@ -1097,7 +1097,7 @@ function qa(i) {
|
|
|
1097
1097
|
}
|
|
1098
1098
|
return { ...f, keyframeTracks: o, duration: r };
|
|
1099
1099
|
}
|
|
1100
|
-
function
|
|
1100
|
+
function Os(i, e) {
|
|
1101
1101
|
let t = i.duration;
|
|
1102
1102
|
if (!t) {
|
|
1103
1103
|
const n = i.speed;
|
|
@@ -1109,7 +1109,7 @@ function Es(i, e) {
|
|
|
1109
1109
|
}
|
|
1110
1110
|
return t;
|
|
1111
1111
|
}
|
|
1112
|
-
function
|
|
1112
|
+
function _r(i) {
|
|
1113
1113
|
var e, t;
|
|
1114
1114
|
const { curve: n, target: s, lookPoint: r, enableUp: a, fixUp: o } = i, l = i.position ?? !0, c = i.rotate ?? !0, u = [], h = [], d = [];
|
|
1115
1115
|
if (!(l || c))
|
|
@@ -1117,7 +1117,7 @@ function Yr(i) {
|
|
|
1117
1117
|
const f = (i.anchor ?? xs).clone(), p = i.ts ?? i.us, g = !i.ts;
|
|
1118
1118
|
if (!p)
|
|
1119
1119
|
throw "缺少参数:至少传递 ts 和 us 任意之一";
|
|
1120
|
-
let v =
|
|
1120
|
+
let v = kn.clone(), w = kn.clone(), S = ja.clone(), b = je.DEFAULT_UP;
|
|
1121
1121
|
s && (s.updateWorldMatrix(!0, !1), v = s.matrix, w = s.matrixWorld, S = s.scale, b = s.up);
|
|
1122
1122
|
const A = v.clone().invert(), I = w.clone().multiply(A).clone().invert(), C = n.getTangent(0);
|
|
1123
1123
|
C.transformDirection(I);
|
|
@@ -1189,13 +1189,13 @@ function Yr(i) {
|
|
|
1189
1189
|
}
|
|
1190
1190
|
return { rotates: u, points: h, curveLength: se ?? void 0, lengths: K ?? void 0 };
|
|
1191
1191
|
}
|
|
1192
|
-
function
|
|
1192
|
+
function Xr(i) {
|
|
1193
1193
|
const e = [];
|
|
1194
1194
|
for (let t = 0; t <= i; t++)
|
|
1195
1195
|
e.push(t / i);
|
|
1196
1196
|
return e;
|
|
1197
1197
|
}
|
|
1198
|
-
function
|
|
1198
|
+
function Zr(i) {
|
|
1199
1199
|
const { curve: e, division: t, duration: n } = i, s = e.getLengths(t), r = s.length, a = s[r - 1];
|
|
1200
1200
|
return s.map((o) => o / a * n);
|
|
1201
1201
|
}
|
|
@@ -1211,13 +1211,13 @@ function Nh(i) {
|
|
|
1211
1211
|
return { ...r, clip: a };
|
|
1212
1212
|
}
|
|
1213
1213
|
function jh(i) {
|
|
1214
|
-
const e = i.targetPath ?? "", t = i.points, { lines: n, length: s, lengths: r } = Dh(t), a =
|
|
1214
|
+
const e = i.targetPath ?? "", t = i.points, { lines: n, length: s, lengths: r } = Dh(t), a = Os(i, s), o = [], l = r.map((f) => f / s * a), { points: c, pointTimes: u, rotates: h, rotateTimes: d } = Uh({ ...i, times: l }, n);
|
|
1215
1215
|
if (c.length) {
|
|
1216
1216
|
const f = [];
|
|
1217
1217
|
c.forEach((g, v) => {
|
|
1218
1218
|
g.toArray(f, v * 3);
|
|
1219
1219
|
});
|
|
1220
|
-
const p = new St(`${e}.position`, u, f,
|
|
1220
|
+
const p = new St(`${e}.position`, u, f, Ps);
|
|
1221
1221
|
o.push(p);
|
|
1222
1222
|
}
|
|
1223
1223
|
if (h.length) {
|
|
@@ -1233,12 +1233,12 @@ function jh(i) {
|
|
|
1233
1233
|
function Uh(i, e) {
|
|
1234
1234
|
var t, n;
|
|
1235
1235
|
const { points: s, target: r, times: a, enableUp: o, fixUp: l } = i, c = i.position ?? !0, u = i.rotate ?? !0, h = s.length, d = h - 1;
|
|
1236
|
-
e = e ??
|
|
1236
|
+
e = e ?? Qr(s);
|
|
1237
1237
|
const f = [], p = a, g = [], v = [], w = [], S = { rotates: f, points: g, rotateTimes: p, pointTimes: v };
|
|
1238
1238
|
if (!(c || u))
|
|
1239
1239
|
return S;
|
|
1240
1240
|
const b = (i.anchor ?? xs).clone();
|
|
1241
|
-
let A =
|
|
1241
|
+
let A = kn.clone(), I = kn.clone(), C = ja.clone(), O = je.DEFAULT_UP;
|
|
1242
1242
|
r && (r.updateWorldMatrix(!0, !1), A = r.matrix, I = r.matrixWorld, C = r.scale, O = r.up);
|
|
1243
1243
|
const j = A.clone().invert(), G = I.clone().multiply(j).clone().invert(), V = e[0].delta(new D());
|
|
1244
1244
|
V.transformDirection(G);
|
|
@@ -1315,7 +1315,7 @@ function Ka(i) {
|
|
|
1315
1315
|
return { ...n, clip: r };
|
|
1316
1316
|
}
|
|
1317
1317
|
function Vh(i) {
|
|
1318
|
-
const { skeleton: e, targetPath: t } = i, n = e.bones, { times: s, boneSampleDatas: r, duration: a, ...o } = Hh(i), l = s.length, c =
|
|
1318
|
+
const { skeleton: e, targetPath: t } = i, n = e.bones, { times: s, boneSampleDatas: r, duration: a, ...o } = Hh(i), l = s.length, c = Ps, u = r.map((h, d) => {
|
|
1319
1319
|
const { points: f, rotates: p } = h, g = n[d], v = t ? `${t}.skeleton.bones[${d}]` : `${g.name || g.uuid}`, w = [], S = [];
|
|
1320
1320
|
for (let I = 0; I < l; I++)
|
|
1321
1321
|
f && f[I].toArray(w, I * 3), p[I].toArray(S, I * 4);
|
|
@@ -1336,7 +1336,7 @@ function Hh(i) {
|
|
|
1336
1336
|
throw "target 或 根骨骼的 parent 不存在";
|
|
1337
1337
|
const c = i.tolerance ?? 0.1;
|
|
1338
1338
|
o.updateWorldMatrix(!0, !0);
|
|
1339
|
-
const { division: u, length: h } =
|
|
1339
|
+
const { division: u, length: h } = qr(i), { matrixWorld: d } = l, f = d.clone().invert(), p = [], g = [];
|
|
1340
1340
|
a.reduce((z, H) => {
|
|
1341
1341
|
const Z = H.clone().invert();
|
|
1342
1342
|
p.push(Z);
|
|
@@ -1345,7 +1345,7 @@ function Hh(i) {
|
|
|
1345
1345
|
}, f);
|
|
1346
1346
|
const v = g[0], w = new D(), S = new he(), b = new D();
|
|
1347
1347
|
v.decompose(w, S, b);
|
|
1348
|
-
const A =
|
|
1348
|
+
const A = Os(i, h), I = Xr(u), C = Zr({ curve: t, division: u, duration: A }), O = I.length, j = [], G = new D().setFromMatrixPosition(g[1]).negate(), V = a[0], $ = (e = i.up) == null ? void 0 : e.clone().applyMatrix4(d).transformDirection(V), { points: J, rotates: re, ...W } = _r({ ...i, curve: t, ts: I, target: o, rotate: !0, front: G, up: $, anchor: null });
|
|
1349
1349
|
for (let z = 0; z < O; z++)
|
|
1350
1350
|
j.push(d.clone());
|
|
1351
1351
|
const se = J.map((z, H) => {
|
|
@@ -1365,7 +1365,7 @@ function Hh(i) {
|
|
|
1365
1365
|
distance: Z,
|
|
1366
1366
|
fromU: Y,
|
|
1367
1367
|
length: h,
|
|
1368
|
-
side:
|
|
1368
|
+
side: Kr.front,
|
|
1369
1369
|
tolerance: c * Z
|
|
1370
1370
|
});
|
|
1371
1371
|
return { u: ne, point: ie ? fe : null };
|
|
@@ -1373,13 +1373,13 @@ function Hh(i) {
|
|
|
1373
1373
|
for (let z = 1; z < U; z++) {
|
|
1374
1374
|
const H = [], Z = [], Y = [], ne = [];
|
|
1375
1375
|
L.push({ points: H, rotates: Z, us: Y, matrixs: ne });
|
|
1376
|
-
const fe = g[z], ie = p[z], ee = z - 1, Me = L[ee], kt = g[ee], gt = p[ee], { matrixs:
|
|
1376
|
+
const fe = g[z], ie = p[z], ee = z - 1, Me = L[ee], kt = g[ee], gt = p[ee], { matrixs: yn, points: vn, rotates: xn } = Me, Ge = new D().setFromMatrixScale(kt), zt = ee - 1, Xt = zt < 0 ? j : L[zt].matrixs, Ve = new D(), Ze = new he(), Je = new D();
|
|
1377
1377
|
fe.decompose(Ve, Ze, Je);
|
|
1378
1378
|
const Pt = new D().setFromMatrixPosition(ie).sub(new D().setFromMatrixPosition(gt)).length(), Zt = Ve.length();
|
|
1379
1379
|
for (let Ae = 0; Ae < O; Ae++) {
|
|
1380
1380
|
const { point: Ee, u: nt } = q(ee, Ae, Pt);
|
|
1381
1381
|
Y.push(nt), Z.push(Ze.clone());
|
|
1382
|
-
const st =
|
|
1382
|
+
const st = yn[Ae];
|
|
1383
1383
|
if (nt < 0 || !Ee) {
|
|
1384
1384
|
H.push(Ve);
|
|
1385
1385
|
const vt = st.clone().multiply(fe);
|
|
@@ -1388,9 +1388,9 @@ function Hh(i) {
|
|
|
1388
1388
|
}
|
|
1389
1389
|
const Rt = Xt[Ae];
|
|
1390
1390
|
let He = Rt.clone().invert();
|
|
1391
|
-
const Fe = Ee.clone().applyMatrix4(He), rt =
|
|
1391
|
+
const Fe = Ee.clone().applyMatrix4(He), rt = vn[Ae];
|
|
1392
1392
|
Fe.sub(rt).normalize();
|
|
1393
|
-
const qe =
|
|
1393
|
+
const qe = xn[Ae], Nt = new Q().compose(rt, qe, Ge), Jt = Ve.clone().transformDirection(Nt), It = new he().setFromUnitVectors(Jt, Fe);
|
|
1394
1394
|
qe.premultiply(It).normalize(), st.compose(rt, qe, Ge), st.premultiply(Rt);
|
|
1395
1395
|
const Dt = st.clone().invert();
|
|
1396
1396
|
Ee.applyMatrix4(Dt);
|
|
@@ -1413,7 +1413,7 @@ function Wh(i) {
|
|
|
1413
1413
|
return { ...s, clip: a };
|
|
1414
1414
|
}
|
|
1415
1415
|
function qh(i) {
|
|
1416
|
-
const { skeleton: e, targetPath: t } = i, { times: n, boneSampleDatas: s, duration: r, targetSampleDatas: a, ...o } = Kh(i), l = n.length, c = e.bones, u =
|
|
1416
|
+
const { skeleton: e, targetPath: t } = i, { times: n, boneSampleDatas: s, duration: r, targetSampleDatas: a, ...o } = Kh(i), l = n.length, c = e.bones, u = Ps, h = [], d = [], { points: f, rotates: p } = a;
|
|
1417
1417
|
for (let A = 0; A < l; A++)
|
|
1418
1418
|
f[A].toArray(h, A * 3), p[A].toArray(d, A * 4);
|
|
1419
1419
|
const g = t ?? "", v = new St(`${g}.position`, n, h, u), w = new Mt(`${g}.quaternion`, n, d, u), S = [v, w], b = s.map((A, I) => {
|
|
@@ -1436,7 +1436,7 @@ function Kh(i) {
|
|
|
1436
1436
|
throw "target 或 根骨骼的 parent 不存在";
|
|
1437
1437
|
const l = i.tolerance ?? 0.1;
|
|
1438
1438
|
a.updateWorldMatrix(!0, !0);
|
|
1439
|
-
const { division: c, length: u } =
|
|
1439
|
+
const { division: c, length: u } = qr(i), { matrix: h, matrixWorld: d, scale: f } = o, p = d.clone().multiply(h.clone().invert()), g = d.clone().invert(), v = [], w = [];
|
|
1440
1440
|
r.reduce((Y, ne) => {
|
|
1441
1441
|
const fe = ne.clone().invert();
|
|
1442
1442
|
v.push(fe);
|
|
@@ -1445,7 +1445,7 @@ function Kh(i) {
|
|
|
1445
1445
|
}, g);
|
|
1446
1446
|
const S = w[0], b = new D(), A = new he(), I = new D();
|
|
1447
1447
|
S.decompose(b, A, I);
|
|
1448
|
-
const C =
|
|
1448
|
+
const C = Os(i, u), O = Xr(c), j = v[0], G = new D().setFromMatrixPosition(w[1]).negate().transformDirection(j).transformDirection(g), { rotates: V, points: $, ...J } = _r({ ...i, curve: e, target: o, position: !0, rotate: !0, anchor: b, front: G, ts: O }), re = Zr({ curve: e, division: c, duration: C }), W = $.map((Y, ne) => {
|
|
1449
1449
|
const fe = V[ne], ie = new Q().compose(Y, fe, f);
|
|
1450
1450
|
return ie.premultiply(p), ie;
|
|
1451
1451
|
}), se = { points: $, rotates: V, matrixs: W }, K = [], L = W.map((Y) => (K.push(A.clone()), Y.clone().multiply(S))), q = O.length, U = e.getLengths(c).map((Y) => Y / u), _ = [{ rotates: K, us: U, matrixs: L }], z = n ? function(Y, ne, fe) {
|
|
@@ -1460,7 +1460,7 @@ function Kh(i) {
|
|
|
1460
1460
|
distance: fe,
|
|
1461
1461
|
fromU: ie,
|
|
1462
1462
|
length: u,
|
|
1463
|
-
side:
|
|
1463
|
+
side: Kr.front,
|
|
1464
1464
|
tolerance: l * fe
|
|
1465
1465
|
});
|
|
1466
1466
|
return { u: ee, point: kt ? Me : null };
|
|
@@ -1468,11 +1468,11 @@ function Kh(i) {
|
|
|
1468
1468
|
for (let Y = 1; Y < H; Y++) {
|
|
1469
1469
|
const ne = [], fe = [], ie = [], ee = [];
|
|
1470
1470
|
_.push({ points: ne, rotates: fe, us: ie, matrixs: ee });
|
|
1471
|
-
const Me = w[Y], kt = v[Y], gt = Y - 1,
|
|
1472
|
-
|
|
1471
|
+
const Me = w[Y], kt = v[Y], gt = Y - 1, yn = _[gt], vn = w[gt], xn = v[gt], { matrixs: Ge, points: zt, rotates: Xt } = yn, Ve = new D(), Ze = new he(), Je = new D();
|
|
1472
|
+
vn.decompose(Ve, Ze, Je);
|
|
1473
1473
|
const Pt = gt - 1, Zt = Pt < 0 ? W : _[Pt].matrixs, Ae = new D(), Ee = new he(), nt = new D();
|
|
1474
1474
|
Me.decompose(Ae, Ee, nt);
|
|
1475
|
-
const st = new D().setFromMatrixPosition(kt).sub(new D().setFromMatrixPosition(
|
|
1475
|
+
const st = new D().setFromMatrixPosition(kt).sub(new D().setFromMatrixPosition(xn)).length(), Rt = Ae.length();
|
|
1476
1476
|
for (let He = 0; He < q; He++) {
|
|
1477
1477
|
const { point: Fe, u: rt } = z(gt, He, st);
|
|
1478
1478
|
ie.push(rt), fe.push(Ee.clone());
|
|
@@ -1493,14 +1493,14 @@ function Kh(i) {
|
|
|
1493
1493
|
Fe.applyMatrix4(At);
|
|
1494
1494
|
const it = Fe.length();
|
|
1495
1495
|
Fe.copy(Ae).multiplyScalar(it / Rt), ne.push(Fe);
|
|
1496
|
-
const
|
|
1496
|
+
const wn = new Q().compose(Fe, Ee, nt);
|
|
1497
1497
|
if (Y === Z) {
|
|
1498
1498
|
const $t = e.getTangentAt(rt);
|
|
1499
1499
|
$t.negate().transformDirection(At);
|
|
1500
1500
|
const en = new he().setFromUnitVectors(Fe.clone().normalize(), $t);
|
|
1501
|
-
en.premultiply(Ee).normalize(), fe[He] = en,
|
|
1501
|
+
en.premultiply(Ee).normalize(), fe[He] = en, wn.compose(Fe, en, nt);
|
|
1502
1502
|
}
|
|
1503
|
-
|
|
1503
|
+
wn.premultiply(qe), ee.push(wn);
|
|
1504
1504
|
}
|
|
1505
1505
|
}
|
|
1506
1506
|
return { ...J, times: re, boneSampleDatas: _, targetSampleDatas: se, duration: C };
|
|
@@ -1550,7 +1550,7 @@ class Qh {
|
|
|
1550
1550
|
}
|
|
1551
1551
|
}
|
|
1552
1552
|
var Yh = /* @__PURE__ */ ((i) => (i.keyframe = "keyframe", i.position = ".position", i.quaternion = ".quaternion", i.rotation = ".rotation", i.scale = ".scale", i.loop = "loop", i.finished = "finished", i.point = "point", i))(Yh || {});
|
|
1553
|
-
const
|
|
1553
|
+
const Ti = [
|
|
1554
1554
|
"loop",
|
|
1555
1555
|
"finished"
|
|
1556
1556
|
/* finished */
|
|
@@ -1799,10 +1799,10 @@ class _h extends Qh {
|
|
|
1799
1799
|
* @returns
|
|
1800
1800
|
*/
|
|
1801
1801
|
addEventListener(e, t) {
|
|
1802
|
-
const n = this.mixerListener, s =
|
|
1802
|
+
const n = this.mixerListener, s = Ti.includes(e);
|
|
1803
1803
|
s && !this.mixer.hasEventListener(e, n) && this.mixer.addEventListener(e, n);
|
|
1804
1804
|
const r = this.frameEventNames.includes(e);
|
|
1805
|
-
return s || r ? (this.event.addEventListener(e, t), r && !this._stopListenFun && this.enableFrameEvent && (this._stopListenFun =
|
|
1805
|
+
return s || r ? (this.event.addEventListener(e, t), r && !this._stopListenFun && this.enableFrameEvent && (this._stopListenFun = Hs(this.frameFun)), !0) : !1;
|
|
1806
1806
|
}
|
|
1807
1807
|
/**
|
|
1808
1808
|
* 移除事件监听器
|
|
@@ -1810,7 +1810,7 @@ class _h extends Qh {
|
|
|
1810
1810
|
* @param listener
|
|
1811
1811
|
*/
|
|
1812
1812
|
removeEventListener(e, t) {
|
|
1813
|
-
if (
|
|
1813
|
+
if (Ti.includes(e) && this.getListeners(e).length === 1) {
|
|
1814
1814
|
const n = this.mixerListener;
|
|
1815
1815
|
this.mixer.removeEventListener(e, n);
|
|
1816
1816
|
}
|
|
@@ -1947,7 +1947,7 @@ class _h extends Qh {
|
|
|
1947
1947
|
* 开始监听
|
|
1948
1948
|
*/
|
|
1949
1949
|
startListen() {
|
|
1950
|
-
this.stopListenFun || (this.stopListenFun =
|
|
1950
|
+
this.stopListenFun || (this.stopListenFun = Hs(this.frameFun));
|
|
1951
1951
|
}
|
|
1952
1952
|
/**
|
|
1953
1953
|
* 停止监听
|
|
@@ -1960,7 +1960,7 @@ class _h extends Qh {
|
|
|
1960
1960
|
* 自动开始监听
|
|
1961
1961
|
*/
|
|
1962
1962
|
autoStartListen() {
|
|
1963
|
-
!this.stopListenFun && this.enableFrameEvent && this.hasListeners && (this.stopListenFun =
|
|
1963
|
+
!this.stopListenFun && this.enableFrameEvent && this.hasListeners && (this.stopListenFun = Hs(this.frameFun));
|
|
1964
1964
|
}
|
|
1965
1965
|
/**
|
|
1966
1966
|
* 获取所有的监听器
|
|
@@ -1992,7 +1992,7 @@ class _h extends Qh {
|
|
|
1992
1992
|
this.stopListen(), n.removeEventListener("loop", s), n.removeEventListener("finished", s), this.event._listeners = null, !e && (t.stop(), t.reset(), n._deactivateAction(t), n._removeInactiveAction(t));
|
|
1993
1993
|
}
|
|
1994
1994
|
}
|
|
1995
|
-
function
|
|
1995
|
+
function Hs(i) {
|
|
1996
1996
|
let e;
|
|
1997
1997
|
const t = (n) => {
|
|
1998
1998
|
i(n), e = requestAnimationFrame(t);
|
|
@@ -2098,7 +2098,7 @@ let _a = class extends Zh {
|
|
|
2098
2098
|
}
|
|
2099
2099
|
};
|
|
2100
2100
|
ce(_a, "updateGUI", Ya);
|
|
2101
|
-
function
|
|
2101
|
+
function Mf(i) {
|
|
2102
2102
|
const e = new _a(i);
|
|
2103
2103
|
return new Proxy(e, {
|
|
2104
2104
|
get: function(t, n, s) {
|
|
@@ -2549,7 +2549,7 @@ class Xa {
|
|
|
2549
2549
|
}
|
|
2550
2550
|
}
|
|
2551
2551
|
ce(Xa, "options", tu);
|
|
2552
|
-
class
|
|
2552
|
+
class Tf extends Xa {
|
|
2553
2553
|
constructor(e, t) {
|
|
2554
2554
|
super(), ce(this, "_mixer"), ce(this, "_root", null), ce(this, "_action", null), this.mixer = e, this.root = t;
|
|
2555
2555
|
}
|
|
@@ -2618,7 +2618,7 @@ function nu(i, e = 1) {
|
|
|
2618
2618
|
return a == null || r - a <= e ? s.push(r) : (s = [r], n.push(s)), s;
|
|
2619
2619
|
}, n[0]), n;
|
|
2620
2620
|
}
|
|
2621
|
-
function
|
|
2621
|
+
function Pf(i, e) {
|
|
2622
2622
|
let { count: t = 4, min: n = -1 / 0, max: s = 1 / 0 } = e ?? {};
|
|
2623
2623
|
const r = i[0];
|
|
2624
2624
|
n = Math.max(r - t + 1, n), s = Math.min(r + t - 1, s), t = Math.min(t, s - n + 1);
|
|
@@ -2677,10 +2677,10 @@ function ru(i) {
|
|
|
2677
2677
|
function qn(i) {
|
|
2678
2678
|
throw new Error('Could not dynamically require "' + i + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
2679
2679
|
}
|
|
2680
|
-
var
|
|
2681
|
-
var
|
|
2680
|
+
var Ws = { exports: {} };
|
|
2681
|
+
var Pi;
|
|
2682
2682
|
function iu() {
|
|
2683
|
-
return
|
|
2683
|
+
return Pi || (Pi = 1, (function(i, e) {
|
|
2684
2684
|
(function(t) {
|
|
2685
2685
|
i.exports = t();
|
|
2686
2686
|
})(function() {
|
|
@@ -3365,7 +3365,7 @@ function iu() {
|
|
|
3365
3365
|
});
|
|
3366
3366
|
return d(y, m), y;
|
|
3367
3367
|
}
|
|
3368
|
-
function
|
|
3368
|
+
function yn(m, x) {
|
|
3369
3369
|
x = g.apply(this, arguments);
|
|
3370
3370
|
var y = this.config();
|
|
3371
3371
|
m = typeof m != "function" && m || {}, m.name || (m.name = m.name || y.name, m.storeName = m.storeName || y.storeName);
|
|
@@ -3393,8 +3393,8 @@ function iu() {
|
|
|
3393
3393
|
var ve = new h(function(xe, Ie) {
|
|
3394
3394
|
var Te = l.open(m.name, B);
|
|
3395
3395
|
Te.onerror = function(Ke) {
|
|
3396
|
-
var
|
|
3397
|
-
|
|
3396
|
+
var Sn = Te.result;
|
|
3397
|
+
Sn.close(), Ie(Ke);
|
|
3398
3398
|
}, Te.onupgradeneeded = function() {
|
|
3399
3399
|
var Ke = Te.result;
|
|
3400
3400
|
Ke.deleteObjectStore(m.storeName);
|
|
@@ -3448,7 +3448,7 @@ function iu() {
|
|
|
3448
3448
|
}
|
|
3449
3449
|
return d(P, x), P;
|
|
3450
3450
|
}
|
|
3451
|
-
var
|
|
3451
|
+
var vn = {
|
|
3452
3452
|
_driver: "asyncStorage",
|
|
3453
3453
|
_initStorage: Z,
|
|
3454
3454
|
_support: c(),
|
|
@@ -3460,9 +3460,9 @@ function iu() {
|
|
|
3460
3460
|
length: Me,
|
|
3461
3461
|
key: kt,
|
|
3462
3462
|
keys: gt,
|
|
3463
|
-
dropInstance:
|
|
3463
|
+
dropInstance: yn
|
|
3464
3464
|
};
|
|
3465
|
-
function
|
|
3465
|
+
function xn() {
|
|
3466
3466
|
return typeof openDatabase == "function";
|
|
3467
3467
|
}
|
|
3468
3468
|
var Ge = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", zt = "~~local_forage_type~", Xt = /^~~local_forage_type~([^~]+)~/, Ve = "__lfsc__:", Ze = Ve.length, Je = "arbf", Pt = "blob", Zt = "si08", Ae = "ui08", Ee = "uic8", nt = "si16", st = "si32", Rt = "ur16", He = "ui32", Fe = "fl32", rt = "fl64", qe = Ze + Je.length, Nt = Object.prototype.toString;
|
|
@@ -3575,7 +3575,7 @@ function iu() {
|
|
|
3575
3575
|
}, M) : M(E, F);
|
|
3576
3576
|
}, M);
|
|
3577
3577
|
}
|
|
3578
|
-
function
|
|
3578
|
+
function wn(m, x) {
|
|
3579
3579
|
var y = this;
|
|
3580
3580
|
m = p(m);
|
|
3581
3581
|
var T = new h(function(P, M) {
|
|
@@ -3784,9 +3784,9 @@ function iu() {
|
|
|
3784
3784
|
var ko = {
|
|
3785
3785
|
_driver: "webSQLStorage",
|
|
3786
3786
|
_initStorage: At,
|
|
3787
|
-
_support:
|
|
3787
|
+
_support: xn(),
|
|
3788
3788
|
iterate: $t,
|
|
3789
|
-
getItem:
|
|
3789
|
+
getItem: wn,
|
|
3790
3790
|
setItem: Do,
|
|
3791
3791
|
removeItem: Co,
|
|
3792
3792
|
clear: Ao,
|
|
@@ -3803,7 +3803,7 @@ function iu() {
|
|
|
3803
3803
|
return !1;
|
|
3804
3804
|
}
|
|
3805
3805
|
}
|
|
3806
|
-
function
|
|
3806
|
+
function li(m, x) {
|
|
3807
3807
|
var y = m.name + "/";
|
|
3808
3808
|
return m.storeName !== x.storeName && (y += m.storeName + "/"), y;
|
|
3809
3809
|
}
|
|
@@ -3823,7 +3823,7 @@ function iu() {
|
|
|
3823
3823
|
if (m)
|
|
3824
3824
|
for (var T in m)
|
|
3825
3825
|
y[T] = m[T];
|
|
3826
|
-
return y.keyPrefix =
|
|
3826
|
+
return y.keyPrefix = li(m, x._defaultConfig), No() ? (x._dbInfo = y, y.serializer = yt, h.resolve()) : h.reject();
|
|
3827
3827
|
}
|
|
3828
3828
|
function Uo(m) {
|
|
3829
3829
|
var x = this, y = x.ready().then(function() {
|
|
@@ -3922,7 +3922,7 @@ function iu() {
|
|
|
3922
3922
|
}
|
|
3923
3923
|
var T = this, P;
|
|
3924
3924
|
return m.name ? P = new h(function(M) {
|
|
3925
|
-
m.storeName ? M(
|
|
3925
|
+
m.storeName ? M(li(m, T._defaultConfig)) : M(m.name + "/");
|
|
3926
3926
|
}).then(function(M) {
|
|
3927
3927
|
for (var E = localStorage.length - 1; E >= 0; E--) {
|
|
3928
3928
|
var F = localStorage.key(E);
|
|
@@ -3952,13 +3952,13 @@ function iu() {
|
|
|
3952
3952
|
P++;
|
|
3953
3953
|
}
|
|
3954
3954
|
return !1;
|
|
3955
|
-
},
|
|
3955
|
+
}, ci = Array.isArray || function(m) {
|
|
3956
3956
|
return Object.prototype.toString.call(m) === "[object Array]";
|
|
3957
|
-
},
|
|
3958
|
-
INDEXEDDB:
|
|
3957
|
+
}, bn = {}, hi = {}, tn = {
|
|
3958
|
+
INDEXEDDB: vn,
|
|
3959
3959
|
WEBSQL: ko,
|
|
3960
3960
|
LOCALSTORAGE: _o
|
|
3961
|
-
}, Jo = [tn.INDEXEDDB._driver, tn.WEBSQL._driver, tn.LOCALSTORAGE._driver], Vn = ["dropInstance"],
|
|
3961
|
+
}, Jo = [tn.INDEXEDDB._driver, tn.WEBSQL._driver, tn.LOCALSTORAGE._driver], Vn = ["dropInstance"], ks = ["clear", "getItem", "iterate", "key", "keys", "length", "removeItem", "setItem"].concat(Vn), $o = {
|
|
3962
3962
|
description: "",
|
|
3963
3963
|
driver: Jo.slice(),
|
|
3964
3964
|
name: "localforage",
|
|
@@ -3976,12 +3976,12 @@ function iu() {
|
|
|
3976
3976
|
});
|
|
3977
3977
|
};
|
|
3978
3978
|
}
|
|
3979
|
-
function
|
|
3979
|
+
function zs() {
|
|
3980
3980
|
for (var m = 1; m < arguments.length; m++) {
|
|
3981
3981
|
var x = arguments[m];
|
|
3982
3982
|
if (x)
|
|
3983
3983
|
for (var y in x)
|
|
3984
|
-
x.hasOwnProperty(y) && (
|
|
3984
|
+
x.hasOwnProperty(y) && (ci(x[y]) ? arguments[0][y] = x[y].slice() : arguments[0][y] = x[y]);
|
|
3985
3985
|
}
|
|
3986
3986
|
return arguments[0];
|
|
3987
3987
|
}
|
|
@@ -3991,9 +3991,9 @@ function iu() {
|
|
|
3991
3991
|
for (var y in tn)
|
|
3992
3992
|
if (tn.hasOwnProperty(y)) {
|
|
3993
3993
|
var T = tn[y], P = T._driver;
|
|
3994
|
-
this[y] = P,
|
|
3994
|
+
this[y] = P, bn[P] || this.defineDriver(T);
|
|
3995
3995
|
}
|
|
3996
|
-
this._defaultConfig =
|
|
3996
|
+
this._defaultConfig = zs({}, $o), this._config = zs({}, this._defaultConfig, x), this._driverSet = null, this._initDriver = null, this._ready = !1, this._dbInfo = null, this._wrapLibraryMethodsWithReady(), this.setDriver(this._config.driver).catch(function() {
|
|
3997
3997
|
});
|
|
3998
3998
|
}
|
|
3999
3999
|
return m.prototype.config = function(y) {
|
|
@@ -4015,7 +4015,7 @@ function iu() {
|
|
|
4015
4015
|
F(k);
|
|
4016
4016
|
return;
|
|
4017
4017
|
}
|
|
4018
|
-
for (var N =
|
|
4018
|
+
for (var N = ks.concat("_initStorage"), X = 0, ue = N.length; X < ue; X++) {
|
|
4019
4019
|
var ve = N[X], xe = !Zo(Vn, ve);
|
|
4020
4020
|
if ((xe || y[ve]) && typeof y[ve] != "function") {
|
|
4021
4021
|
F(k);
|
|
@@ -4023,19 +4023,19 @@ function iu() {
|
|
|
4023
4023
|
}
|
|
4024
4024
|
}
|
|
4025
4025
|
var Ie = function() {
|
|
4026
|
-
for (var
|
|
4026
|
+
for (var Sn = function(rl) {
|
|
4027
4027
|
return function() {
|
|
4028
|
-
var il = new Error("Method " + rl + " is not implemented by the current driver"),
|
|
4029
|
-
return d(
|
|
4028
|
+
var il = new Error("Method " + rl + " is not implemented by the current driver"), ui = h.reject(il);
|
|
4029
|
+
return d(ui, arguments[arguments.length - 1]), ui;
|
|
4030
4030
|
};
|
|
4031
|
-
},
|
|
4032
|
-
var
|
|
4033
|
-
y[
|
|
4031
|
+
}, Rs = 0, sl = Vn.length; Rs < sl; Rs++) {
|
|
4032
|
+
var Ns = Vn[Rs];
|
|
4033
|
+
y[Ns] || (y[Ns] = Sn(Ns));
|
|
4034
4034
|
}
|
|
4035
4035
|
};
|
|
4036
4036
|
Ie();
|
|
4037
|
-
var Te = function(
|
|
4038
|
-
|
|
4037
|
+
var Te = function(Sn) {
|
|
4038
|
+
bn[B] && console.info("Redefining LocalForage driver: " + B), bn[B] = y, hi[B] = Sn, E();
|
|
4039
4039
|
};
|
|
4040
4040
|
"_support" in y ? y._support && typeof y._support == "function" ? y._support().then(Te, F) : Te(!!y._support) : Te(!0);
|
|
4041
4041
|
} catch (Ke) {
|
|
@@ -4046,7 +4046,7 @@ function iu() {
|
|
|
4046
4046
|
}, m.prototype.driver = function() {
|
|
4047
4047
|
return this._driver || null;
|
|
4048
4048
|
}, m.prototype.getDriver = function(y, T, P) {
|
|
4049
|
-
var M =
|
|
4049
|
+
var M = bn[y] ? h.resolve(bn[y]) : h.reject(new Error("Driver not found."));
|
|
4050
4050
|
return f(M, T, P), M;
|
|
4051
4051
|
}, m.prototype.getSerializer = function(y) {
|
|
4052
4052
|
var T = h.resolve(yt);
|
|
@@ -4058,7 +4058,7 @@ function iu() {
|
|
|
4058
4058
|
return f(P, y, y), P;
|
|
4059
4059
|
}, m.prototype.setDriver = function(y, T, P) {
|
|
4060
4060
|
var M = this;
|
|
4061
|
-
|
|
4061
|
+
ci(y) || (y = [y]);
|
|
4062
4062
|
var E = this._getSupportedDrivers(y);
|
|
4063
4063
|
function F() {
|
|
4064
4064
|
M._config.driver = M.driver();
|
|
@@ -4095,9 +4095,9 @@ function iu() {
|
|
|
4095
4095
|
return M._driverSet = h.reject(X), M._driverSet;
|
|
4096
4096
|
}), f(this._driverSet, T, P), this._driverSet;
|
|
4097
4097
|
}, m.prototype.supports = function(y) {
|
|
4098
|
-
return !!
|
|
4098
|
+
return !!hi[y];
|
|
4099
4099
|
}, m.prototype._extend = function(y) {
|
|
4100
|
-
|
|
4100
|
+
zs(this, y);
|
|
4101
4101
|
}, m.prototype._getSupportedDrivers = function(y) {
|
|
4102
4102
|
for (var T = [], P = 0, M = y.length; P < M; P++) {
|
|
4103
4103
|
var E = y[P];
|
|
@@ -4105,8 +4105,8 @@ function iu() {
|
|
|
4105
4105
|
}
|
|
4106
4106
|
return T;
|
|
4107
4107
|
}, m.prototype._wrapLibraryMethodsWithReady = function() {
|
|
4108
|
-
for (var y = 0, T =
|
|
4109
|
-
el(this,
|
|
4108
|
+
for (var y = 0, T = ks.length; y < T; y++)
|
|
4109
|
+
el(this, ks[y]);
|
|
4110
4110
|
}, m.prototype.createInstance = function(y) {
|
|
4111
4111
|
return new m(y);
|
|
4112
4112
|
}, m;
|
|
@@ -4114,10 +4114,10 @@ function iu() {
|
|
|
4114
4114
|
n.exports = nl;
|
|
4115
4115
|
}, { 3: 3 }] }, {}, [4])(4);
|
|
4116
4116
|
});
|
|
4117
|
-
})(
|
|
4117
|
+
})(Ws)), Ws.exports;
|
|
4118
4118
|
}
|
|
4119
4119
|
var au = iu();
|
|
4120
|
-
const
|
|
4120
|
+
const wr = /* @__PURE__ */ su(au), Za = new ca();
|
|
4121
4121
|
Za.name = "Scene";
|
|
4122
4122
|
const ou = /* @__PURE__ */ new Set(["opacity", "highlight", "emissive"]);
|
|
4123
4123
|
class lu {
|
|
@@ -4147,7 +4147,7 @@ class lu {
|
|
|
4147
4147
|
/**
|
|
4148
4148
|
* 线框
|
|
4149
4149
|
*/
|
|
4150
|
-
strokeStore =
|
|
4150
|
+
strokeStore = wr.createInstance({
|
|
4151
4151
|
name: "soonspace",
|
|
4152
4152
|
storeName: "modelStrokeCache"
|
|
4153
4153
|
});
|
|
@@ -4175,7 +4175,7 @@ class lu {
|
|
|
4175
4175
|
e.traverse((s) => {
|
|
4176
4176
|
if (s.geometry && s.material) {
|
|
4177
4177
|
const h = s;
|
|
4178
|
-
h.geometry.dispose(),
|
|
4178
|
+
h.geometry.dispose(), fn(h.material, t);
|
|
4179
4179
|
}
|
|
4180
4180
|
s instanceof Ht && s.element?.remove();
|
|
4181
4181
|
const { meshOfModelList: r, poiIconList: a, otherObjList: o } = this.intersectsList, l = r.findIndex(
|
|
@@ -4225,7 +4225,7 @@ class lu {
|
|
|
4225
4225
|
const d = new Yt({
|
|
4226
4226
|
id: `${h.sid ?? h.id}_stroke`,
|
|
4227
4227
|
name: `${h.name}_stroke`
|
|
4228
|
-
}), f = new
|
|
4228
|
+
}), f = new hr(), p = new An({
|
|
4229
4229
|
color: a,
|
|
4230
4230
|
transparent: !0,
|
|
4231
4231
|
opacity: o
|
|
@@ -4329,7 +4329,7 @@ class lu {
|
|
|
4329
4329
|
duration: o = 1e3,
|
|
4330
4330
|
yoyo: l = !1
|
|
4331
4331
|
} = t;
|
|
4332
|
-
(e instanceof Ue || e instanceof
|
|
4332
|
+
(e instanceof Ue || e instanceof Br || e instanceof wl) && (s && e.color.set(s), e.emissive.set(n), e.emissiveIntensity = r, o !== 0 && wt(
|
|
4333
4333
|
{ emissiveIntensity: r },
|
|
4334
4334
|
{ emissiveIntensity: a },
|
|
4335
4335
|
{
|
|
@@ -4342,14 +4342,14 @@ class lu {
|
|
|
4342
4342
|
));
|
|
4343
4343
|
}
|
|
4344
4344
|
_handleUnEmissive(e) {
|
|
4345
|
-
e.userData.animation &&
|
|
4345
|
+
e.userData.animation && (fr.remove(e.userData.animation), Reflect.deleteProperty(e.userData, "animation"));
|
|
4346
4346
|
}
|
|
4347
4347
|
_triggerObjectAdded(e) {
|
|
4348
4348
|
e instanceof De ? e.stype === "Model" ? e.traverse((t) => {
|
|
4349
4349
|
t instanceof we && this.intersectsList.meshOfModelList.findIndex(
|
|
4350
4350
|
(s) => s.uuid === t.uuid
|
|
4351
4351
|
) === -1 && this.intersectsList.meshOfModelList.push(t);
|
|
4352
|
-
}) : e.stype === "Poi" && e instanceof
|
|
4352
|
+
}) : e.stype === "Poi" && e instanceof Bs ? this.intersectsList.poiIconList.findIndex(
|
|
4353
4353
|
(n) => n.uuid === e.icon?.uuid
|
|
4354
4354
|
) === -1 && e.icon && this.intersectsList.poiIconList.push(e.icon) : e.stype === "Group" ? e.children.forEach((t) => this._triggerObjectAdded(t)) : e.isObject3D && e.traverse((t) => {
|
|
4355
4355
|
t instanceof we && this.intersectsList.otherObjList.findIndex(
|
|
@@ -4387,17 +4387,17 @@ class lu {
|
|
|
4387
4387
|
}
|
|
4388
4388
|
e.userData.material || (e.userData.material = e.material), e.material = Ia(e.userData.material);
|
|
4389
4389
|
const r = Object.assign({}, ...s);
|
|
4390
|
-
|
|
4390
|
+
fn(e.material, (a) => this.updateMaterial(a, r));
|
|
4391
4391
|
}
|
|
4392
4392
|
}
|
|
4393
4393
|
}
|
|
4394
|
-
class
|
|
4394
|
+
class Jr extends je {
|
|
4395
4395
|
isCSS2DObject = !0;
|
|
4396
4396
|
element;
|
|
4397
4397
|
constructor(e = document.createElement("div")) {
|
|
4398
4398
|
super(), this.element = e, this.element.style.position = "absolute", this.addEventListener("removed", () => {
|
|
4399
4399
|
this.traverse(function(t) {
|
|
4400
|
-
t instanceof
|
|
4400
|
+
t instanceof Jr && t.element instanceof Element && t.element.parentNode !== null && t.element.parentNode.removeChild(t.element);
|
|
4401
4401
|
});
|
|
4402
4402
|
});
|
|
4403
4403
|
}
|
|
@@ -4405,7 +4405,7 @@ class Zr extends je {
|
|
|
4405
4405
|
return super.copy(e, t), this.element = e.element.cloneNode(!0), this;
|
|
4406
4406
|
}
|
|
4407
4407
|
}
|
|
4408
|
-
const sn = new D(),
|
|
4408
|
+
const sn = new D(), Ii = new Q(), Di = new Q(), Ci = new D(), Ai = new D();
|
|
4409
4409
|
class cu {
|
|
4410
4410
|
constructor(e) {
|
|
4411
4411
|
this.viewport = e;
|
|
@@ -4419,17 +4419,17 @@ class cu {
|
|
|
4419
4419
|
height: n
|
|
4420
4420
|
};
|
|
4421
4421
|
}, this.render = function(u, h) {
|
|
4422
|
-
h.parent === null && h.matrixWorldAutoUpdate === !0 && h.updateMatrixWorld(),
|
|
4423
|
-
const d = [...u].filter((f) =>
|
|
4422
|
+
h.parent === null && h.matrixWorldAutoUpdate === !0 && h.updateMatrixWorld(), Ii.copy(h.matrixWorldInverse), Di.multiplyMatrices(h.projectionMatrix, Ii);
|
|
4423
|
+
const d = [...u].filter((f) => ti(f.elementType)).map((f) => f.children[0]);
|
|
4424
4424
|
o(d, h), c(d);
|
|
4425
4425
|
}, this.setSize = (u, h) => {
|
|
4426
4426
|
t = u, n = h, s = t / 2, r = n / 2, this.domElement.style.width = u + "px", this.domElement.style.height = h + "px";
|
|
4427
4427
|
};
|
|
4428
4428
|
const o = (u, h) => {
|
|
4429
4429
|
u.forEach((d) => {
|
|
4430
|
-
|
|
4430
|
+
Vr(d, this.viewport);
|
|
4431
4431
|
const f = d.parent;
|
|
4432
|
-
sn.setFromMatrixPosition(d.matrixWorld), sn.applyMatrix4(
|
|
4432
|
+
sn.setFromMatrixPosition(d.matrixWorld), sn.applyMatrix4(Di);
|
|
4433
4433
|
const p = jn(d) && sn.z >= -1 && sn.z <= 1 && d.layers.test(h.layers) === !0;
|
|
4434
4434
|
if (d.userData.prevVisible !== p && (f.onChange?.(p), f.elementAutoDisplay && (d.element.style.display = p === !0 ? "" : "none")), d.userData.prevVisible = p, p === !0 || f.elementAutoDisplay === !1) {
|
|
4435
4435
|
const v = d.element;
|
|
@@ -4442,7 +4442,7 @@ class cu {
|
|
|
4442
4442
|
});
|
|
4443
4443
|
};
|
|
4444
4444
|
function l(u, h) {
|
|
4445
|
-
return
|
|
4445
|
+
return Ci.setFromMatrixPosition(u.matrixWorld), Ai.setFromMatrixPosition(h.matrixWorld), Ci.distanceToSquared(Ai);
|
|
4446
4446
|
}
|
|
4447
4447
|
function c(u) {
|
|
4448
4448
|
const h = u.sort(function(f, p) {
|
|
@@ -4460,7 +4460,7 @@ class cu {
|
|
|
4460
4460
|
render;
|
|
4461
4461
|
setSize;
|
|
4462
4462
|
}
|
|
4463
|
-
const
|
|
4463
|
+
const Ei = new D(), hu = new he(), Oi = new D();
|
|
4464
4464
|
class Un extends je {
|
|
4465
4465
|
isCSS3DObject = !0;
|
|
4466
4466
|
element;
|
|
@@ -4506,9 +4506,9 @@ class du {
|
|
|
4506
4506
|
p.view && p.view.enabled ? (o.style.transform = `translate( ${-p.view.offsetX * (t / p.view.width)}px, ${-p.view.offsetY * (n / p.view.height)}px )`, o.style.transform += `scale( ${p.view.fullWidth / p.view.width}, ${p.view.fullHeight / p.view.height} )`) : o.style.transform = "", p.parent === null && p.matrixWorldAutoUpdate === !0 && p.updateMatrixWorld();
|
|
4507
4507
|
let v = 0, w = 0;
|
|
4508
4508
|
p instanceof Qt && (v = -(p.right + p.left) / 2, w = (p.top + p.bottom) / 2);
|
|
4509
|
-
const S = p.view && p.view.enabled ? p.view.height / p.view.fullHeight : 1, b = p instanceof Qt ? `scale( ${S} )scale(` + g + ")translate(" + c(v) + "px," + c(w) + "px)" + u(p.matrixWorldInverse) : `scale( ${S} )translateZ(` + g + "px)" + u(p.matrixWorldInverse), I = (p instanceof
|
|
4509
|
+
const S = p.view && p.view.enabled ? p.view.height / p.view.fullHeight : 1, b = p instanceof Qt ? `scale( ${S} )scale(` + g + ")translate(" + c(v) + "px," + c(w) + "px)" + u(p.matrixWorldInverse) : `scale( ${S} )translateZ(` + g + "px)" + u(p.matrixWorldInverse), I = (p instanceof Is ? "perspective(" + g + "px) " : "") + b + "translate(" + s + "px," + r + "px)";
|
|
4510
4510
|
a.camera.style !== I && (l.style.transform = I, a.camera.style = I);
|
|
4511
|
-
const C = [...f].filter((O) =>
|
|
4511
|
+
const C = [...f].filter((O) => ni(O.elementType) || si(O.elementType)).map((O) => O.children[0]);
|
|
4512
4512
|
d(C, p);
|
|
4513
4513
|
}, this.setSize = (f, p) => {
|
|
4514
4514
|
t = f, n = p, s = t / 2, r = n / 2, this.domElement.style.width = f + "px", this.domElement.style.height = p + "px", o.style.width = f + "px", o.style.height = p + "px", l.style.width = f + "px", l.style.height = p + "px";
|
|
@@ -4527,11 +4527,11 @@ class du {
|
|
|
4527
4527
|
const d = (f, p) => {
|
|
4528
4528
|
f.forEach((g) => {
|
|
4529
4529
|
if (g instanceof Un) {
|
|
4530
|
-
|
|
4530
|
+
Vr(g, this.viewport);
|
|
4531
4531
|
const v = g.parent, w = jn(g) && g.layers.test(p.layers) === !0;
|
|
4532
4532
|
if (g.userData.prevVisible !== w && (v.onChange?.(w), v.elementAutoDisplay && (g.element.style.display = w === !0 ? "" : "none")), g.userData.prevVisible = w, w === !0 || v.elementAutoDisplay === !1) {
|
|
4533
4533
|
let S;
|
|
4534
|
-
g instanceof Ja ? (lt.copy(p.matrixWorldInverse), lt.transpose(), g.rotation2D !== 0 && lt.multiply(uu.makeRotationZ(g.rotation2D)), g.matrixWorld.decompose(
|
|
4534
|
+
g instanceof Ja ? (lt.copy(p.matrixWorldInverse), lt.transpose(), g.rotation2D !== 0 && lt.multiply(uu.makeRotationZ(g.rotation2D)), g.matrixWorld.decompose(Ei, hu, Oi), lt.setPosition(Ei), lt.scale(Oi), lt.elements[3] = 0, lt.elements[7] = 0, lt.elements[11] = 0, lt.elements[15] = 1, S = h(lt)) : S = h(g.matrixWorld);
|
|
4535
4535
|
const b = g.element, A = a.objects.get(g);
|
|
4536
4536
|
if (A === void 0 || A.style !== S) {
|
|
4537
4537
|
b.style.transform = S;
|
|
@@ -4593,12 +4593,12 @@ class mu {
|
|
|
4593
4593
|
return this.rendererCSS3D.domElement;
|
|
4594
4594
|
}
|
|
4595
4595
|
}
|
|
4596
|
-
const
|
|
4597
|
-
const t =
|
|
4596
|
+
const qs = new Q(), gn = (i, e) => {
|
|
4597
|
+
const t = qs.clone(), n = qs.clone(), s = qs.clone();
|
|
4598
4598
|
t.makeRotationY(i), n.makeRotationX(e);
|
|
4599
4599
|
const r = new pe();
|
|
4600
4600
|
return s.multiplyMatrices(t, n), r.setFromRotationMatrix(s), r;
|
|
4601
|
-
},
|
|
4601
|
+
}, Ks = gn(-Math.PI / 2, -Math.PI / 4), Qs = gn(Math.PI / 2, -Math.PI / 4), Ys = gn(-Math.PI / 4, -Math.PI / 4), _s = gn(Math.PI / 4, -Math.PI / 4), Xs = gn(Math.PI * 1.25, -Math.PI / 4), Zs = gn(Math.PI * 0.75, -Math.PI / 4), Js = {
|
|
4602
4602
|
LEFT: new pe(0, -Math.PI / 2, 0),
|
|
4603
4603
|
RIGHT: new pe(0, Math.PI / 2, 0),
|
|
4604
4604
|
FRONT: new pe(0, 0, 0),
|
|
@@ -4607,12 +4607,12 @@ const Ws = new Q(), yn = (i, e) => {
|
|
|
4607
4607
|
BOTTOM: new pe(Math.PI / 2, 0, 0),
|
|
4608
4608
|
FRONTTOP: new pe(-Math.PI / 4, 0, 0),
|
|
4609
4609
|
BACKTOP: new pe(Math.PI / 4, Math.PI, 0),
|
|
4610
|
-
LEFTTOP: new pe(
|
|
4611
|
-
RIGHTTOP: new pe(
|
|
4612
|
-
LEFTFRONTTOP: new pe(
|
|
4613
|
-
RIGHTFRONTTOP: new pe(
|
|
4614
|
-
LEFTBACKTOP: new pe(
|
|
4615
|
-
RIGHTBACKTOP: new pe(
|
|
4610
|
+
LEFTTOP: new pe(Ks.x, Ks.y, Ks.z),
|
|
4611
|
+
RIGHTTOP: new pe(Qs.x, Qs.y, Qs.z),
|
|
4612
|
+
LEFTFRONTTOP: new pe(Ys.x, Ys.y, Ys.z),
|
|
4613
|
+
RIGHTFRONTTOP: new pe(_s.x, _s.y, _s.z),
|
|
4614
|
+
LEFTBACKTOP: new pe(Xs.x, Xs.y, Xs.z),
|
|
4615
|
+
RIGHTBACKTOP: new pe(Zs.x, Zs.y, Zs.z)
|
|
4616
4616
|
}, $a = {
|
|
4617
4617
|
LEFT: new Be(0, Math.PI / 2, -Math.PI / 2),
|
|
4618
4618
|
RIGHT: new Be(0, Math.PI / 2, Math.PI / 2),
|
|
@@ -4628,13 +4628,13 @@ const Ws = new Q(), yn = (i, e) => {
|
|
|
4628
4628
|
RIGHTFRONTTOP: new Be(0, Math.PI / 4, Math.PI / 4),
|
|
4629
4629
|
LEFTBACKTOP: new Be(0, Math.PI / 4, -Math.PI / 4 * 3),
|
|
4630
4630
|
RIGHTBACKTOP: new Be(0, Math.PI / 4, Math.PI / 4 * 3)
|
|
4631
|
-
}, gu = (i) => Xe(i) ? i : i.includes("%") ? Number(i.split("%")[0]) * 0.01 : isNaN(+i) ? 0 : Number(i), ct = /* @__PURE__ */ new D(),
|
|
4631
|
+
}, gu = (i) => Xe(i) ? i : i.includes("%") ? Number(i.split("%")[0]) * 0.01 : isNaN(+i) ? 0 : Number(i), ct = /* @__PURE__ */ new D(), Mn = /* @__PURE__ */ new pe(), Vt = new Is(50, 1, 0.1, 1 * 1e6);
|
|
4632
4632
|
Vt.position.set(500, 1e3, 500);
|
|
4633
4633
|
Vt.lookAt(ct.set(0, 0, 0));
|
|
4634
4634
|
Vt.name = "SspCamera";
|
|
4635
|
-
const
|
|
4636
|
-
|
|
4637
|
-
|
|
4635
|
+
const $r = new Qt(-500, 500, 500, -500, 0.01, 5e4);
|
|
4636
|
+
$r.position.set(500, 1e3, 500);
|
|
4637
|
+
$r.lookAt(ct.set(0, 0, 0));
|
|
4638
4638
|
Vt.name = "SspCamera";
|
|
4639
4639
|
class yu {
|
|
4640
4640
|
viewport;
|
|
@@ -4667,9 +4667,9 @@ class yu {
|
|
|
4667
4667
|
async setCamera(e, t, n) {
|
|
4668
4668
|
let s = Vt.clone();
|
|
4669
4669
|
const r = e === "orthographic";
|
|
4670
|
-
if (r && (s =
|
|
4670
|
+
if (r && (s = $r.clone()), this.mainCamera.type !== s.type) {
|
|
4671
4671
|
const { controls: a } = this.viewport;
|
|
4672
|
-
this.mainCamera = a.camera = s, r ? a.mouseButtons.wheel =
|
|
4672
|
+
this.mainCamera = a.camera = s, r ? a.mouseButtons.wheel = En.ACTION.ZOOM : (a.mouseButtons.wheel = En.ACTION.DOLLY, a.zoomTo(1)), this.setCurrentCamera(s);
|
|
4673
4673
|
}
|
|
4674
4674
|
t && await this.setCameraViewpoint(t, n);
|
|
4675
4675
|
}
|
|
@@ -4698,15 +4698,15 @@ class yu {
|
|
|
4698
4698
|
const { enableTransition: s = !0 } = n;
|
|
4699
4699
|
if (Bt(t)) {
|
|
4700
4700
|
const r = t.toLocaleUpperCase();
|
|
4701
|
-
r === "CURRENT" ?
|
|
4702
|
-
} else t instanceof pe ?
|
|
4703
|
-
return this.setCameraViewpoint({ position: e, rotation:
|
|
4701
|
+
r === "CURRENT" ? Mn.copy(this.currentCamera.rotation) : Js[r] && Mn.copy(Js[r]);
|
|
4702
|
+
} else t instanceof pe ? Mn.copy(t) : Ne(t) && Mn.set(t.x, t.y, t.z);
|
|
4703
|
+
return this.setCameraViewpoint({ position: e, rotation: Mn }, s);
|
|
4704
4704
|
}
|
|
4705
4705
|
async flyToObj(e, t = "frontTop", n = {}) {
|
|
4706
4706
|
let { padding: s = "30%" } = n;
|
|
4707
4707
|
const { enableTransition: r = !0, viewpointSpace: a = "world", minPadding: o = 1 } = n;
|
|
4708
4708
|
e instanceof Ht && (s = n.padding ?? 50);
|
|
4709
|
-
const l = e instanceof je ?
|
|
4709
|
+
const l = e instanceof je ? pn(e) : e, c = l.getSize(ct);
|
|
4710
4710
|
if (Bt(s)) {
|
|
4711
4711
|
const d = Math.max(c.x, c.y, c.z, o);
|
|
4712
4712
|
s = gu(s) * d;
|
|
@@ -4723,7 +4723,7 @@ class yu {
|
|
|
4723
4723
|
}
|
|
4724
4724
|
h.push(u.rotateTo(f, p, r));
|
|
4725
4725
|
} else {
|
|
4726
|
-
const d = new
|
|
4726
|
+
const d = new Ds();
|
|
4727
4727
|
l.getBoundingSphere(d), h.push(u.fitToSphere(d, r));
|
|
4728
4728
|
}
|
|
4729
4729
|
await Promise.all(h);
|
|
@@ -4732,10 +4732,10 @@ class yu {
|
|
|
4732
4732
|
const { duration: n = 3e3, startAngle: s = 0, endAngle: r = 360, onStart: a } = t, o = be(e), { controls: l } = this.viewport;
|
|
4733
4733
|
return l.setTarget(o.x, o.y, o.z), wt(
|
|
4734
4734
|
{
|
|
4735
|
-
radian:
|
|
4735
|
+
radian: Ln(s)
|
|
4736
4736
|
},
|
|
4737
4737
|
{
|
|
4738
|
-
radian:
|
|
4738
|
+
radian: Ln(r)
|
|
4739
4739
|
},
|
|
4740
4740
|
{
|
|
4741
4741
|
duration: n
|
|
@@ -4747,7 +4747,7 @@ class yu {
|
|
|
4747
4747
|
);
|
|
4748
4748
|
}
|
|
4749
4749
|
surroundOnObject(e, t = {}) {
|
|
4750
|
-
const n =
|
|
4750
|
+
const n = pn(e).getCenter(ct);
|
|
4751
4751
|
return this.surroundOnTarget(n, t);
|
|
4752
4752
|
}
|
|
4753
4753
|
getObjectLabelPos(e, t = "frontTop", n = {}) {
|
|
@@ -4760,7 +4760,7 @@ class yu {
|
|
|
4760
4760
|
c.add(d.multiplyScalar(p));
|
|
4761
4761
|
};
|
|
4762
4762
|
let h;
|
|
4763
|
-
return Bt(t) ? h =
|
|
4763
|
+
return Bt(t) ? h = Js[t.toLocaleUpperCase()] : h = Rr(t), u(ct.set(0, 0, 1).applyEuler(h)), c;
|
|
4764
4764
|
} else return r === "screen" ? e.getCenter(ct).clone() : new D();
|
|
4765
4765
|
}
|
|
4766
4766
|
}
|
|
@@ -4781,7 +4781,7 @@ Gn.setAttribute("uv", new $e(new Float32Array([
|
|
|
4781
4781
|
0,
|
|
4782
4782
|
2
|
|
4783
4783
|
]), 2));
|
|
4784
|
-
Gn.boundingSphere = new
|
|
4784
|
+
Gn.boundingSphere = new Ds();
|
|
4785
4785
|
Gn.computeBoundingSphere = function() {
|
|
4786
4786
|
};
|
|
4787
4787
|
const vu = new Qt();
|
|
@@ -6137,7 +6137,7 @@ class Iu extends pc {
|
|
|
6137
6137
|
}
|
|
6138
6138
|
}
|
|
6139
6139
|
Uint8Array.from(atob(eo), (i) => i.charCodeAt(0));
|
|
6140
|
-
const
|
|
6140
|
+
const $s = "Ssp-EffectPass";
|
|
6141
6141
|
class _e {
|
|
6142
6142
|
constructor(e, t, n) {
|
|
6143
6143
|
this.renderer = e, this.scene = t, this.camera = n, this.effectComposer = this._initEffectComposer(), this._initPasses(), this._initEffects();
|
|
@@ -6162,10 +6162,10 @@ class _e {
|
|
|
6162
6162
|
updateEffectPass() {
|
|
6163
6163
|
if (!this.effectsNeedsUpdate) return;
|
|
6164
6164
|
this.effectsNeedsUpdate = !1;
|
|
6165
|
-
const { effectComposer: e } = this, t = e.passes.find((r) => r.name ===
|
|
6165
|
+
const { effectComposer: e } = this, t = e.passes.find((r) => r.name === $s);
|
|
6166
6166
|
t && (e.removePass(t), t.dispose());
|
|
6167
|
-
const n = Array.from(this.effectsMap).filter(([, { enabled: r }]) => r).map(([, { effect: r }]) => r), s = new
|
|
6168
|
-
s.name =
|
|
6167
|
+
const n = Array.from(this.effectsMap).filter(([, { enabled: r }]) => r).map(([, { effect: r }]) => r), s = new vi(this.camera, ...n);
|
|
6168
|
+
s.name = $s, s.enabled = !!n.length, this.passesMap.set(_e.CONSTANTS.effectPass, s), e.addPass(s);
|
|
6169
6169
|
}
|
|
6170
6170
|
/**
|
|
6171
6171
|
* 更新 camera
|
|
@@ -6197,8 +6197,8 @@ class _e {
|
|
|
6197
6197
|
return e.enabled = !1, e.configuration.gammaCorrection = !1, e;
|
|
6198
6198
|
}
|
|
6199
6199
|
_initEffectPass() {
|
|
6200
|
-
const e = new
|
|
6201
|
-
return e.name =
|
|
6200
|
+
const e = new vi(this.camera);
|
|
6201
|
+
return e.name = $s, e;
|
|
6202
6202
|
}
|
|
6203
6203
|
_initEffects() {
|
|
6204
6204
|
const { CONSTANTS: e } = _e, t = this._initSMAAEffect(), n = this._initToneMappingEffect(), s = this._initOutlineEffect(), r = this._initBloomEffect();
|
|
@@ -6223,12 +6223,12 @@ class _e {
|
|
|
6223
6223
|
}
|
|
6224
6224
|
_initBloomEffect() {
|
|
6225
6225
|
return new bc({
|
|
6226
|
-
blendFunction:
|
|
6226
|
+
blendFunction: xi.ADD
|
|
6227
6227
|
});
|
|
6228
6228
|
}
|
|
6229
6229
|
_initOutlineEffect() {
|
|
6230
6230
|
return new Sc(this.scene, this.camera, {
|
|
6231
|
-
blendFunction:
|
|
6231
|
+
blendFunction: xi.SCREEN
|
|
6232
6232
|
});
|
|
6233
6233
|
}
|
|
6234
6234
|
}
|
|
@@ -6330,11 +6330,11 @@ class Eu {
|
|
|
6330
6330
|
});
|
|
6331
6331
|
}
|
|
6332
6332
|
dispose() {
|
|
6333
|
-
this.computedGeometriesUuid.clear(), this.generateMeshBVHWorker.dispose();
|
|
6333
|
+
this.timer && clearTimeout(this.timer), this.timer = null, this.computedGeometriesUuid.clear(), this.generateMeshBVHWorker.dispose();
|
|
6334
6334
|
}
|
|
6335
6335
|
}
|
|
6336
|
-
|
|
6337
|
-
class Ou extends
|
|
6336
|
+
En.install({ THREE: Cn });
|
|
6337
|
+
class Ou extends En {
|
|
6338
6338
|
constructor(e) {
|
|
6339
6339
|
super(e.cameraManager.mainCamera, e.interactiveContainer), this.viewport = e;
|
|
6340
6340
|
}
|
|
@@ -6348,28 +6348,28 @@ class Ou extends On {
|
|
|
6348
6348
|
}
|
|
6349
6349
|
}
|
|
6350
6350
|
var Le = {}, Kn = {};
|
|
6351
|
-
var
|
|
6352
|
-
return
|
|
6351
|
+
var br = function(i, e) {
|
|
6352
|
+
return br = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, n) {
|
|
6353
6353
|
t.__proto__ = n;
|
|
6354
6354
|
} || function(t, n) {
|
|
6355
6355
|
for (var s in n) n.hasOwnProperty(s) && (t[s] = n[s]);
|
|
6356
|
-
},
|
|
6356
|
+
}, br(i, e);
|
|
6357
6357
|
};
|
|
6358
6358
|
function Lu(i, e) {
|
|
6359
|
-
|
|
6359
|
+
br(i, e);
|
|
6360
6360
|
function t() {
|
|
6361
6361
|
this.constructor = i;
|
|
6362
6362
|
}
|
|
6363
6363
|
i.prototype = e === null ? Object.create(e) : (t.prototype = e.prototype, new t());
|
|
6364
6364
|
}
|
|
6365
|
-
var
|
|
6366
|
-
return
|
|
6365
|
+
var Sr = function() {
|
|
6366
|
+
return Sr = Object.assign || function(e) {
|
|
6367
6367
|
for (var t, n = 1, s = arguments.length; n < s; n++) {
|
|
6368
6368
|
t = arguments[n];
|
|
6369
6369
|
for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
|
|
6370
6370
|
}
|
|
6371
6371
|
return e;
|
|
6372
|
-
},
|
|
6372
|
+
}, Sr.apply(this, arguments);
|
|
6373
6373
|
};
|
|
6374
6374
|
function Fu(i, e) {
|
|
6375
6375
|
var t = {};
|
|
@@ -6486,7 +6486,7 @@ function ju(i, e, t, n) {
|
|
|
6486
6486
|
function Uu(i, e) {
|
|
6487
6487
|
for (var t in i) t !== "default" && !e.hasOwnProperty(t) && (e[t] = i[t]);
|
|
6488
6488
|
}
|
|
6489
|
-
function
|
|
6489
|
+
function Mr(i) {
|
|
6490
6490
|
var e = typeof Symbol == "function" && Symbol.iterator, t = e && i[e], n = 0;
|
|
6491
6491
|
if (t) return t.call(i);
|
|
6492
6492
|
if (i && typeof i.length == "number") return {
|
|
@@ -6525,8 +6525,8 @@ function Vu() {
|
|
|
6525
6525
|
n[s] = r[a];
|
|
6526
6526
|
return n;
|
|
6527
6527
|
}
|
|
6528
|
-
function
|
|
6529
|
-
return this instanceof
|
|
6528
|
+
function zn(i) {
|
|
6529
|
+
return this instanceof zn ? (this.v = i, this) : new zn(i);
|
|
6530
6530
|
}
|
|
6531
6531
|
function Hu(i, e, t) {
|
|
6532
6532
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
@@ -6549,7 +6549,7 @@ function Hu(i, e, t) {
|
|
|
6549
6549
|
}
|
|
6550
6550
|
}
|
|
6551
6551
|
function l(d) {
|
|
6552
|
-
d.value instanceof
|
|
6552
|
+
d.value instanceof zn ? Promise.resolve(d.value.v).then(c, u) : h(r[0][2], d);
|
|
6553
6553
|
}
|
|
6554
6554
|
function c(d) {
|
|
6555
6555
|
o("next", d);
|
|
@@ -6570,14 +6570,14 @@ function Wu(i) {
|
|
|
6570
6570
|
}, e;
|
|
6571
6571
|
function n(s, r) {
|
|
6572
6572
|
e[s] = i[s] ? function(a) {
|
|
6573
|
-
return (t = !t) ? { value:
|
|
6573
|
+
return (t = !t) ? { value: zn(i[s](a)), done: s === "return" } : r ? r(a) : a;
|
|
6574
6574
|
} : r;
|
|
6575
6575
|
}
|
|
6576
6576
|
}
|
|
6577
6577
|
function qu(i) {
|
|
6578
6578
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
6579
6579
|
var e = i[Symbol.asyncIterator], t;
|
|
6580
|
-
return e ? e.call(i) : (i = typeof
|
|
6580
|
+
return e ? e.call(i) : (i = typeof Mr == "function" ? Mr(i) : i[Symbol.iterator](), t = {}, n("next"), n("throw"), n("return"), t[Symbol.asyncIterator] = function() {
|
|
6581
6581
|
return this;
|
|
6582
6582
|
}, t);
|
|
6583
6583
|
function n(r) {
|
|
@@ -6618,12 +6618,12 @@ function Xu(i, e, t) {
|
|
|
6618
6618
|
const Zu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
6619
6619
|
__proto__: null,
|
|
6620
6620
|
get __assign() {
|
|
6621
|
-
return
|
|
6621
|
+
return Sr;
|
|
6622
6622
|
},
|
|
6623
6623
|
__asyncDelegator: Wu,
|
|
6624
6624
|
__asyncGenerator: Hu,
|
|
6625
6625
|
__asyncValues: qu,
|
|
6626
|
-
__await:
|
|
6626
|
+
__await: zn,
|
|
6627
6627
|
__awaiter: Ru,
|
|
6628
6628
|
__classPrivateFieldGet: _u,
|
|
6629
6629
|
__classPrivateFieldSet: Xu,
|
|
@@ -6641,12 +6641,12 @@ const Zu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
6641
6641
|
__rest: Fu,
|
|
6642
6642
|
__spread: Gu,
|
|
6643
6643
|
__spreadArrays: Vu,
|
|
6644
|
-
__values:
|
|
6645
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
6646
|
-
var Qn = {}, Yn = {}, _n = {}, Xn = {},
|
|
6644
|
+
__values: Mr
|
|
6645
|
+
}, Symbol.toStringTag, { value: "Module" })), Ls = /* @__PURE__ */ ru(Zu);
|
|
6646
|
+
var Qn = {}, Yn = {}, _n = {}, Xn = {}, Li;
|
|
6647
6647
|
function so() {
|
|
6648
|
-
if (
|
|
6649
|
-
|
|
6648
|
+
if (Li) return Xn;
|
|
6649
|
+
Li = 1, Object.defineProperty(Xn, "__esModule", { value: !0 });
|
|
6650
6650
|
var i = (
|
|
6651
6651
|
/** @class */
|
|
6652
6652
|
(function() {
|
|
@@ -6737,10 +6737,10 @@ function so() {
|
|
|
6737
6737
|
);
|
|
6738
6738
|
return Xn.SlotList = i, Xn;
|
|
6739
6739
|
}
|
|
6740
|
-
var Zn = {},
|
|
6741
|
-
function
|
|
6742
|
-
if (
|
|
6743
|
-
|
|
6740
|
+
var Zn = {}, Fi;
|
|
6741
|
+
function Fs() {
|
|
6742
|
+
if (Fi) return Zn;
|
|
6743
|
+
Fi = 1, Object.defineProperty(Zn, "__esModule", { value: !0 });
|
|
6744
6744
|
var i = (
|
|
6745
6745
|
/** @class */
|
|
6746
6746
|
(function() {
|
|
@@ -6842,11 +6842,11 @@ Did you want to set enabled to false instead?`);
|
|
|
6842
6842
|
);
|
|
6843
6843
|
return Zn.Slot = i, Zn;
|
|
6844
6844
|
}
|
|
6845
|
-
var
|
|
6846
|
-
function
|
|
6847
|
-
if (
|
|
6848
|
-
|
|
6849
|
-
var i = so(), e =
|
|
6845
|
+
var Bi;
|
|
6846
|
+
function ei() {
|
|
6847
|
+
if (Bi) return _n;
|
|
6848
|
+
Bi = 1, Object.defineProperty(_n, "__esModule", { value: !0 });
|
|
6849
|
+
var i = so(), e = Fs(), t = (
|
|
6850
6850
|
/** @class */
|
|
6851
6851
|
(function() {
|
|
6852
6852
|
function n() {
|
|
@@ -6918,11 +6918,11 @@ function $r() {
|
|
|
6918
6918
|
);
|
|
6919
6919
|
return _n.OnceSignal = t, _n;
|
|
6920
6920
|
}
|
|
6921
|
-
var
|
|
6921
|
+
var ki;
|
|
6922
6922
|
function ro() {
|
|
6923
|
-
if (
|
|
6924
|
-
|
|
6925
|
-
var i =
|
|
6923
|
+
if (ki) return Yn;
|
|
6924
|
+
ki = 1, Object.defineProperty(Yn, "__esModule", { value: !0 });
|
|
6925
|
+
var i = Ls, e = ei(), t = (
|
|
6926
6926
|
/** @class */
|
|
6927
6927
|
(function(n) {
|
|
6928
6928
|
i.__extends(s, n);
|
|
@@ -6936,11 +6936,11 @@ function ro() {
|
|
|
6936
6936
|
);
|
|
6937
6937
|
return Yn.Signal = t, Yn;
|
|
6938
6938
|
}
|
|
6939
|
-
var
|
|
6939
|
+
var zi;
|
|
6940
6940
|
function io() {
|
|
6941
|
-
if (
|
|
6942
|
-
|
|
6943
|
-
var i =
|
|
6941
|
+
if (zi) return Qn;
|
|
6942
|
+
zi = 1, Object.defineProperty(Qn, "__esModule", { value: !0 });
|
|
6943
|
+
var i = Ls, e = ro(), t = Fs(), n = (
|
|
6944
6944
|
/** @class */
|
|
6945
6945
|
(function(s) {
|
|
6946
6946
|
i.__extends(r, s);
|
|
@@ -6964,11 +6964,11 @@ function io() {
|
|
|
6964
6964
|
);
|
|
6965
6965
|
return Qn.PrioritySignal = n, Qn;
|
|
6966
6966
|
}
|
|
6967
|
-
var
|
|
6967
|
+
var Ri;
|
|
6968
6968
|
function Ju() {
|
|
6969
|
-
if (
|
|
6970
|
-
|
|
6971
|
-
var i =
|
|
6969
|
+
if (Ri) return Kn;
|
|
6970
|
+
Ri = 1, Object.defineProperty(Kn, "__esModule", { value: !0 });
|
|
6971
|
+
var i = Ls, e = io(), t = (
|
|
6972
6972
|
/** @class */
|
|
6973
6973
|
(function(n) {
|
|
6974
6974
|
i.__extends(s, n);
|
|
@@ -7010,10 +7010,10 @@ function Ju() {
|
|
|
7010
7010
|
);
|
|
7011
7011
|
return Kn.DeluxeSignal = t, Kn;
|
|
7012
7012
|
}
|
|
7013
|
-
var Jn = {},
|
|
7013
|
+
var Jn = {}, Ni;
|
|
7014
7014
|
function $u() {
|
|
7015
|
-
if (
|
|
7016
|
-
|
|
7015
|
+
if (Ni) return Jn;
|
|
7016
|
+
Ni = 1, Object.defineProperty(Jn, "__esModule", { value: !0 });
|
|
7017
7017
|
var i = (
|
|
7018
7018
|
/** @class */
|
|
7019
7019
|
(function() {
|
|
@@ -7067,27 +7067,27 @@ function $u() {
|
|
|
7067
7067
|
);
|
|
7068
7068
|
return Jn.GenericEvent = i, Jn;
|
|
7069
7069
|
}
|
|
7070
|
-
var $n = {},
|
|
7070
|
+
var $n = {}, ji;
|
|
7071
7071
|
function ed() {
|
|
7072
|
-
return
|
|
7072
|
+
return ji || (ji = 1, Object.defineProperty($n, "__esModule", { value: !0 }), $n.IOnceSignal = /* @__PURE__ */ Symbol("IOnceSignal")), $n;
|
|
7073
7073
|
}
|
|
7074
|
-
var es = {},
|
|
7074
|
+
var es = {}, Ui;
|
|
7075
7075
|
function td() {
|
|
7076
|
-
return
|
|
7076
|
+
return Ui || (Ui = 1, Object.defineProperty(es, "__esModule", { value: !0 }), es.IPrioritySignal = /* @__PURE__ */ Symbol("IPrioritySignal")), es;
|
|
7077
7077
|
}
|
|
7078
|
-
var ts = {},
|
|
7078
|
+
var ts = {}, Gi;
|
|
7079
7079
|
function nd() {
|
|
7080
|
-
return
|
|
7080
|
+
return Gi || (Gi = 1, Object.defineProperty(ts, "__esModule", { value: !0 }), ts.ISignal = /* @__PURE__ */ Symbol("ISignal")), ts;
|
|
7081
7081
|
}
|
|
7082
|
-
var ns = {},
|
|
7082
|
+
var ns = {}, Vi;
|
|
7083
7083
|
function sd() {
|
|
7084
|
-
return
|
|
7084
|
+
return Vi || (Vi = 1, Object.defineProperty(ns, "__esModule", { value: !0 }), ns.ISlot = /* @__PURE__ */ Symbol("ISlot")), ns;
|
|
7085
7085
|
}
|
|
7086
|
-
var ss = {},
|
|
7086
|
+
var ss = {}, Hi;
|
|
7087
7087
|
function rd() {
|
|
7088
|
-
if (
|
|
7089
|
-
|
|
7090
|
-
var i =
|
|
7088
|
+
if (Hi) return ss;
|
|
7089
|
+
Hi = 1, Object.defineProperty(ss, "__esModule", { value: !0 });
|
|
7090
|
+
var i = Fs(), e = (
|
|
7091
7091
|
/** @class */
|
|
7092
7092
|
(function() {
|
|
7093
7093
|
function t() {
|
|
@@ -7150,11 +7150,11 @@ function rd() {
|
|
|
7150
7150
|
);
|
|
7151
7151
|
return ss.MonoSignal = e, ss;
|
|
7152
7152
|
}
|
|
7153
|
-
var rs = {},
|
|
7153
|
+
var rs = {}, Wi;
|
|
7154
7154
|
function id() {
|
|
7155
|
-
if (
|
|
7156
|
-
|
|
7157
|
-
var i =
|
|
7155
|
+
if (Wi) return rs;
|
|
7156
|
+
Wi = 1, Object.defineProperty(rs, "__esModule", { value: !0 });
|
|
7157
|
+
var i = Ls, e = ei(), t = (
|
|
7158
7158
|
/** @class */
|
|
7159
7159
|
(function(n) {
|
|
7160
7160
|
i.__extends(s, n);
|
|
@@ -7175,10 +7175,10 @@ function id() {
|
|
|
7175
7175
|
);
|
|
7176
7176
|
return rs.Promise = t, rs;
|
|
7177
7177
|
}
|
|
7178
|
-
var
|
|
7178
|
+
var qi;
|
|
7179
7179
|
function ad() {
|
|
7180
|
-
if (
|
|
7181
|
-
|
|
7180
|
+
if (qi) return Le;
|
|
7181
|
+
qi = 1, Object.defineProperty(Le, "__esModule", { value: !0 });
|
|
7182
7182
|
var i = Ju();
|
|
7183
7183
|
Le.DeluxeSignal = i.DeluxeSignal;
|
|
7184
7184
|
var e = $u();
|
|
@@ -7193,7 +7193,7 @@ function ad() {
|
|
|
7193
7193
|
Le.ISlot = r.ISlot;
|
|
7194
7194
|
var a = rd();
|
|
7195
7195
|
Le.MonoSignal = a.MonoSignal;
|
|
7196
|
-
var o =
|
|
7196
|
+
var o = ei();
|
|
7197
7197
|
Le.OnceSignal = o.OnceSignal;
|
|
7198
7198
|
var l = io();
|
|
7199
7199
|
Le.PrioritySignal = l.PrioritySignal;
|
|
@@ -7201,13 +7201,13 @@ function ad() {
|
|
|
7201
7201
|
Le.Promise = c.Promise;
|
|
7202
7202
|
var u = ro();
|
|
7203
7203
|
Le.Signal = u.Signal;
|
|
7204
|
-
var h =
|
|
7204
|
+
var h = Fs();
|
|
7205
7205
|
Le.Slot = h.Slot;
|
|
7206
7206
|
var d = so();
|
|
7207
7207
|
return Le.SlotList = d.SlotList, Le;
|
|
7208
7208
|
}
|
|
7209
7209
|
var ae = ad();
|
|
7210
|
-
function
|
|
7210
|
+
function er(i) {
|
|
7211
7211
|
return i.charAt(0).toLowerCase() + i.slice(1);
|
|
7212
7212
|
}
|
|
7213
7213
|
function od(i) {
|
|
@@ -7262,7 +7262,7 @@ class ld {
|
|
|
7262
7262
|
const s = this.viewport.getIntersects(t, n);
|
|
7263
7263
|
if (s.length === 0) {
|
|
7264
7264
|
this.hoverSelectMap.forEach((g, v) => {
|
|
7265
|
-
const w =
|
|
7265
|
+
const w = er(v), S = this.signals[`${w}Hover`];
|
|
7266
7266
|
S && S.numListeners > 0 && is(this.signals, `${w}UnHover`).dispatch(g);
|
|
7267
7267
|
}), this.hoverSelectMap.clear(), e === "click" && this.signals.sceneClick.dispatch({
|
|
7268
7268
|
type: e,
|
|
@@ -7293,14 +7293,14 @@ class ld {
|
|
|
7293
7293
|
S ? S(g) : g.isEventPropagation = !0, g.isEventPropagation && (is(this.signals, v).dispatch(w), g.isEventPropagation = !1), e !== "hover" && g.dispatchEvent({ type: e });
|
|
7294
7294
|
};
|
|
7295
7295
|
o === "Hover" && this.hoverSelectMap.forEach((g, v) => {
|
|
7296
|
-
const w =
|
|
7296
|
+
const w = er(v), S = a.get(v);
|
|
7297
7297
|
S && S.length > 0 ? g.uuid !== S[0].target.uuid && (is(this.signals, `${w}UnHover`).dispatch(g), this.hoverSelectMap.delete(v)) : (this.signals[`${w}UnHover`]?.dispatch(g), this.hoverSelectMap.delete(v));
|
|
7298
7298
|
});
|
|
7299
7299
|
const c = r.type;
|
|
7300
7300
|
if (!c) return;
|
|
7301
7301
|
const u = a.get(c);
|
|
7302
7302
|
if (!u || u.length === 0) return;
|
|
7303
|
-
const { target: h } = u[0], f = `${
|
|
7303
|
+
const { target: h } = u[0], f = `${er(c)}${o}`;
|
|
7304
7304
|
let p;
|
|
7305
7305
|
c === "Model" ? p = {
|
|
7306
7306
|
target: h,
|
|
@@ -7377,7 +7377,7 @@ class ld {
|
|
|
7377
7377
|
this.container.removeEventListener("mousedown", this.handleMouseDown), this.container.removeEventListener("mousemove", this.handleMouseMove), this.container.removeEventListener("dblclick", this.handleDblClick), this.container.removeEventListener("wheel", this.handleMouseWheel), this.container.removeEventListener("touchstart", this.handleTouchStart), this.container.removeEventListener("contextmenu", this.handleContextmenu), document.removeEventListener("keydown", this.handleKeyDown), document.removeEventListener("keyup", this.handleKeyUp);
|
|
7378
7378
|
}
|
|
7379
7379
|
dispose() {
|
|
7380
|
-
this.removeEventListeners(), this.hoverSelectMap.clear();
|
|
7380
|
+
this.timer && clearTimeout(this.timer), this.timer = null, this.removeEventListeners(), this.hoverSelectMap.clear();
|
|
7381
7381
|
}
|
|
7382
7382
|
}
|
|
7383
7383
|
class cd {
|
|
@@ -7425,13 +7425,13 @@ class cd {
|
|
|
7425
7425
|
class hd extends je {
|
|
7426
7426
|
constructor(e, t, n) {
|
|
7427
7427
|
super(), this.camera = e, this.controls = n;
|
|
7428
|
-
const s = new me("#ff3653"), r = new me("#8adb00"), a = new me("#2c8fff"), o = new me("#000000"), l = {}, c = [], u = new
|
|
7428
|
+
const s = new me("#ff3653"), r = new me("#8adb00"), a = new me("#2c8fff"), o = new me("#000000"), l = {}, c = [], u = new Nn(), h = new oe(), d = new Qt(-2, 2, 2, -2, 0, 4);
|
|
7429
7429
|
d.position.set(0, 0, 2);
|
|
7430
7430
|
const f = new Ll(0.8, 0.05, 0.05).translate(0.4, 0, 0), p = new we(f, W(s)), g = new we(f, W(r)), v = new we(f, W(a));
|
|
7431
7431
|
g.rotation.z = Math.PI / 2, v.rotation.y = -Math.PI / 2, this.add(p), this.add(v), this.add(g);
|
|
7432
7432
|
const w = se(s), S = se(r), b = se(a), A = se(o), I = new Ut(w), C = new Ut(S), O = new Ut(b), j = new Ut(A), G = new Ut(A), V = new Ut(A);
|
|
7433
7433
|
I.userData.type = "right", C.userData.type = "top", O.userData.type = "front", j.userData.type = "left", G.userData.type = "bottom", V.userData.type = "back", I.position.x = 1, C.position.y = 1, O.position.z = 1, j.position.x = -1, j.scale.setScalar(0.8), G.position.y = -1, G.scale.setScalar(0.8), V.position.z = -1, V.scale.setScalar(0.8), this.add(I), this.add(C), this.add(O), this.add(j), this.add(G), this.add(V), c.push(I), c.push(C), c.push(O), c.push(j), c.push(G), c.push(V);
|
|
7434
|
-
const $ = new D(), J = new
|
|
7434
|
+
const $ = new D(), J = new Ts(), re = 128;
|
|
7435
7435
|
this.setLabels = function(L, q, U) {
|
|
7436
7436
|
l.labelX = L, l.labelY = q, l.labelZ = U, K();
|
|
7437
7437
|
}, this.setLabelStyle = function(L, q, U) {
|
|
@@ -7454,15 +7454,15 @@ class hd extends je {
|
|
|
7454
7454
|
f.dispose(), p.material.dispose(), g.material.dispose(), v.material.dispose(), I.material.map?.dispose(), C.material.map?.dispose(), O.material.map?.dispose(), j.material.map?.dispose(), G.material.map?.dispose(), V.material.map?.dispose(), I.material.dispose(), C.material.dispose(), O.material.dispose(), j.material.dispose(), G.material.dispose(), V.material.dispose();
|
|
7455
7455
|
};
|
|
7456
7456
|
function W(L) {
|
|
7457
|
-
return new
|
|
7457
|
+
return new un({ color: L, toneMapped: !1 });
|
|
7458
7458
|
}
|
|
7459
7459
|
function se(L, q) {
|
|
7460
7460
|
const { font: U = "24px Arial", color: _ = "#000000", radius: z = 16 } = l, H = document.createElement("canvas");
|
|
7461
7461
|
H.width = 64, H.height = 64;
|
|
7462
7462
|
const Z = H.getContext("2d");
|
|
7463
7463
|
Z.beginPath(), Z.arc(32, 32, z, 0, 2 * Math.PI), Z.closePath(), Z.fillStyle = L.getStyle(), Z.fill(), q && (Z.font = U, Z.textAlign = "center", Z.fillStyle = _, Z.fillText(q, 32, 41));
|
|
7464
|
-
const Y = new
|
|
7465
|
-
return Y.colorSpace = dt, new
|
|
7464
|
+
const Y = new kr(H);
|
|
7465
|
+
return Y.colorSpace = dt, new ur({ map: Y, toneMapped: !1 });
|
|
7466
7466
|
}
|
|
7467
7467
|
function K() {
|
|
7468
7468
|
I.material.map?.dispose(), C.material.map?.dispose(), O.material.map?.dispose(), I.material.dispose(), C.material.dispose(), O.material.dispose(), I.material = se(s, l.labelX), C.material = se(r, l.labelY), O.material = se(a, l.labelZ);
|
|
@@ -7479,8 +7479,8 @@ class hd extends je {
|
|
|
7479
7479
|
const Se = {
|
|
7480
7480
|
needsUpdate: !1
|
|
7481
7481
|
};
|
|
7482
|
-
let
|
|
7483
|
-
const
|
|
7482
|
+
let Ki = 0, Qi = 0;
|
|
7483
|
+
const Tn = (i) => {
|
|
7484
7484
|
i instanceof qt && i.dispose();
|
|
7485
7485
|
};
|
|
7486
7486
|
class ud {
|
|
@@ -7494,7 +7494,7 @@ class ud {
|
|
|
7494
7494
|
}, this.scener = new lu(this.signals, this.state), this.scene = this.scener.scene, this.cameraManager = new yu(this), this.camera = this.cameraManager.currentCamera, this.rendererManager = new mu(this), this.container = this.rendererManager.container, this.interactiveContainer = this.rendererManager.interactiveContainer, this.renderer = this.rendererManager.renderer, this.rendererCSS3D = this.rendererManager.rendererCSS3D, this.rendererCSS2D = this.rendererManager.rendererCSS2D, this.pmremGenerator = new Fl(this.renderer), this.pmremGenerator.compileEquirectangularShader(), this.effectManager = new _e(this.renderer, this.scene, this.camera), this.effectComposer = this.effectManager.effectComposer, this.bvh = new Eu(this), this.controls = new Ou(this), this.info = new cd(this.scene, this.signals), this.stats = new Tc(), this.mixer = new Bl(this.scene), this.clipsSet = /* @__PURE__ */ new Set(), this.postUpdate = /* @__PURE__ */ new Map(), this.postRender = /* @__PURE__ */ new Map(), this._loop = 0, this.viewHelper = new hd(this.camera, this.container, this.controls), this.viewHelper.setLabels("x", "y", "z"), this.eventHandler = new ld(this), this.resizeObserver.observe(this.container), this._initInfo(), this._initStats(), this._signalsEventListenr(), this.animate(0);
|
|
7495
7495
|
}
|
|
7496
7496
|
clock = new kl();
|
|
7497
|
-
raycaster = new
|
|
7497
|
+
raycaster = new Nn();
|
|
7498
7498
|
scene;
|
|
7499
7499
|
sky = null;
|
|
7500
7500
|
state;
|
|
@@ -7611,17 +7611,17 @@ class ud {
|
|
|
7611
7611
|
*/
|
|
7612
7612
|
async setSphereSkyBackground(e) {
|
|
7613
7613
|
const t = await ln({ file: e });
|
|
7614
|
-
|
|
7614
|
+
Tn(this.scene.background), this.scene.background = t, this.signals.backgroundChanged.dispatch();
|
|
7615
7615
|
}
|
|
7616
7616
|
async setSkyBackground(e, t = ["px.jpg", "nx.jpg", "py.jpg", "ny.jpg", "pz.jpg", "nz.jpg"]) {
|
|
7617
7617
|
const n = await ln({ path: e, file: t });
|
|
7618
|
-
|
|
7618
|
+
Tn(this.scene.background), this.scene.background = n, this.signals.backgroundChanged.dispatch();
|
|
7619
7619
|
}
|
|
7620
7620
|
setBackgroundColor(e) {
|
|
7621
|
-
|
|
7621
|
+
Tn(this.scene.background), this.scene.background = new me(e), this.signals.backgroundChanged.dispatch();
|
|
7622
7622
|
}
|
|
7623
7623
|
setBackgroundColorAlpha(e, t) {
|
|
7624
|
-
|
|
7624
|
+
Tn(this.scene.background), this.scene.background = null, this.renderer.setClearColor(new me(e), t), this.signals.backgroundChanged.dispatch();
|
|
7625
7625
|
}
|
|
7626
7626
|
async setBackgroundImage(e) {
|
|
7627
7627
|
const t = await ln({ file: e });
|
|
@@ -7636,7 +7636,7 @@ class ud {
|
|
|
7636
7636
|
this.sky || (this.sky = new Pc(), this.scene.add(this.sky)), this.sky.name = "sky", this.sky.position.set(n.x, n.y, n.z), this.sky.scale.setScalar(s);
|
|
7637
7637
|
const c = this.sky.material.uniforms;
|
|
7638
7638
|
c.turbidity.value = r, c.rayleigh.value = a, c.mieCoefficient.value = 5e-3, c.mieDirectionalG.value = 0.7;
|
|
7639
|
-
const u = new D(), h =
|
|
7639
|
+
const u = new D(), h = Ln(90 - o), d = Ln(l);
|
|
7640
7640
|
return u.setFromSphericalCoords(1, h, d), c.sunPosition.value.copy(u), this.signals.objectAdded.dispatch(), this.sky;
|
|
7641
7641
|
}
|
|
7642
7642
|
closeSky() {
|
|
@@ -7655,7 +7655,7 @@ class ud {
|
|
|
7655
7655
|
async setEnvironment(e) {
|
|
7656
7656
|
if (e) {
|
|
7657
7657
|
const { path: t, file: n, background: s } = e, r = await ln({ path: t, file: n });
|
|
7658
|
-
this.scene.environment = r instanceof Wl ? this.pmremGenerator.fromCubemap(r).texture : this.pmremGenerator.fromEquirectangular(r).texture, s && (
|
|
7658
|
+
this.scene.environment = r instanceof Wl ? this.pmremGenerator.fromCubemap(r).texture : this.pmremGenerator.fromEquirectangular(r).texture, s && (Tn(this.scene.background), this.scene.background = r);
|
|
7659
7659
|
} else
|
|
7660
7660
|
this.scene.environment = this.pmremGenerator.fromScene(new Mc(), 0.04).texture;
|
|
7661
7661
|
return this.signals.sceneChanged.dispatch(), this.scene.environment;
|
|
@@ -7709,11 +7709,11 @@ class ud {
|
|
|
7709
7709
|
*/
|
|
7710
7710
|
autoRender() {
|
|
7711
7711
|
if (!(this.state.useFreq <= 0 && !Se.needsUpdate) && (this.state.useFreq > 0 && this.state.useFreq--, Se.needsUpdate && (Se.needsUpdate = !1), !this.state.isPausedRender)) {
|
|
7712
|
-
if (
|
|
7712
|
+
if (Ki = performance.now(), this.signals.beforeRender.dispatch(), this._passesObserver(), this.renderer.info.reset(), this.state.enabledPostprocessing ? this.effectComposer.render(this.state.delta) : (this.renderer.clear(), this.renderer.render(this.scene, this.camera)), this.rendererCSS2D && this.rendererManager.internalOptions.enableRenderCss2D && this.rendererCSS2D.render(this.cache.classified.PoiNode, this.camera), this.rendererCSS3D && this.rendererManager.internalOptions.enableRenderCss3D && this.rendererCSS3D.render(this.cache.classified.PoiNode, this.camera), this.options.showViewHelper) {
|
|
7713
7713
|
const e = this.renderer.clippingPlanes;
|
|
7714
7714
|
this.renderer.clippingPlanes = [], this.viewHelper.render(this.renderer), this.renderer.clippingPlanes = e;
|
|
7715
7715
|
}
|
|
7716
|
-
this.postRender.forEach((e) => e()),
|
|
7716
|
+
this.postRender.forEach((e) => e()), Qi = performance.now(), this.signals.sceneRendered.dispatch(Qi - Ki);
|
|
7717
7717
|
}
|
|
7718
7718
|
}
|
|
7719
7719
|
animate(e) {
|
|
@@ -7721,7 +7721,7 @@ class ud {
|
|
|
7721
7721
|
this.animate(n);
|
|
7722
7722
|
}), this.clock.update(e);
|
|
7723
7723
|
const t = this.clock.getDelta();
|
|
7724
|
-
this.state.delta = t, this.clipsSet.size > 0 && (this.mixer.update(t), this.signals.modelAnimation.dispatch()),
|
|
7724
|
+
this.state.delta = t, this.clipsSet.size > 0 && (this.mixer.update(t), this.signals.modelAnimation.dispatch()), fr.update(e) && this.signals.tweenUpdate.dispatch(), this.controls.update(t) && this.signals.cameraChange.dispatch(), this.postUpdate.forEach((n) => n(e)), this.autoRender(), this.signals.getSceneInfo.dispatch(this.info.state);
|
|
7725
7725
|
}
|
|
7726
7726
|
getOffsetByPosition(e) {
|
|
7727
7727
|
const n = new D(e.x, e.y, e.z).project(this.camera), s = this.renderer.domElement.getBoundingClientRect(), r = s.left + s.width / 2 * (n.x + 1), a = s.top + s.height / 2 * (-n.y + 1);
|
|
@@ -7760,14 +7760,13 @@ class ud {
|
|
|
7760
7760
|
const h = this.renderer.clippingPlanes.every((p) => p.distanceToPoint(c) > 0);
|
|
7761
7761
|
let d = !0;
|
|
7762
7762
|
const f = u;
|
|
7763
|
-
return f.material &&
|
|
7763
|
+
return f.material && fn(f.material, (p) => {
|
|
7764
7764
|
d && ke(p.clippingPlanes) && (d = p.clippingPlanes.every((g) => g.distanceToPoint(c) > 0));
|
|
7765
7765
|
}), h && d;
|
|
7766
7766
|
}), l;
|
|
7767
7767
|
}
|
|
7768
7768
|
rayClash(e = this.camera.position, t = new D(0, -1, 0), n = this.scener.intersectsList.meshOfModelList) {
|
|
7769
|
-
|
|
7770
|
-
return s.set(e, t), ke(n) ? s.intersectObjects(n, !0) : s.intersectObject(n, !0);
|
|
7769
|
+
return this.raycaster.set(e, t), ke(n) ? this.raycaster.intersectObjects(n, !0) : this.raycaster.intersectObject(n, !0);
|
|
7771
7770
|
}
|
|
7772
7771
|
clearSignals() {
|
|
7773
7772
|
for (const e in this.signals) this.signals[e].removeAll();
|
|
@@ -7775,12 +7774,12 @@ class ud {
|
|
|
7775
7774
|
dispose() {
|
|
7776
7775
|
cancelAnimationFrame(this._loop), this.bvh.dispose(), this.mixer.stopAllAction(), this.clipsSet.forEach((e) => {
|
|
7777
7776
|
this.mixer.uncacheAction(e), this.mixer.uncacheClip(e);
|
|
7778
|
-
}), this.mixer.uncacheRoot(this.scene), this.clipsSet.clear(), this.controls.dispose(), this.viewHelper.dispose(),
|
|
7777
|
+
}), this.mixer.uncacheRoot(this.scene), this.clipsSet.clear(), this.controls.dispose(), this.viewHelper.dispose(), fr.removeAll(), this.clearSignals(), this.scene.clear(), this.pmremGenerator.dispose(), this.effectComposer.dispose(), this.renderer.dispose(), this.rendererCSS2D.domElement.remove(), this.rendererCSS3D.domElement.remove(), this.renderer.forceContextLoss(), this.container.remove(), this.state.isDisposed = !0, this.eventHandler.dispose(), this.resizeObserver.disconnect();
|
|
7779
7778
|
}
|
|
7780
7779
|
_signalsEventListenr() {
|
|
7781
7780
|
const e = () => {
|
|
7782
7781
|
const { clientWidth: s, clientHeight: r } = this.container;
|
|
7783
|
-
this.effectManager.updateCamera(this.camera), this.viewHelper.camera = this.camera, this.camera instanceof
|
|
7782
|
+
this.effectManager.updateCamera(this.camera), this.viewHelper.camera = this.camera, this.camera instanceof Is && (this.camera.aspect = s / r), this.camera instanceof Qt && (this.camera.left = s / -2, this.camera.right = s / 2, this.camera.top = r / 2, this.camera.bottom = r / -2), this.camera.updateProjectionMatrix(), this.effectComposer.setSize(s, r), this.rendererCSS3D && this.rendererCSS3D.setSize(s, r), this.rendererCSS2D && this.rendererCSS2D.setSize(s, r), this.triggerRender();
|
|
7784
7783
|
};
|
|
7785
7784
|
requestAnimationFrame(() => {
|
|
7786
7785
|
e();
|
|
@@ -7846,16 +7845,16 @@ class De extends je {
|
|
|
7846
7845
|
return wt(this.position, be(e), t, n, s);
|
|
7847
7846
|
}
|
|
7848
7847
|
setRotate(e, t, n, s) {
|
|
7849
|
-
return wt(this.rotation,
|
|
7848
|
+
return wt(this.rotation, Rr(e), t, n, s);
|
|
7850
7849
|
}
|
|
7851
7850
|
setScale(e, t, n, s) {
|
|
7852
7851
|
return wt(this.scale, be(e), t, n, s);
|
|
7853
7852
|
}
|
|
7854
7853
|
getBoundingBox() {
|
|
7855
|
-
return
|
|
7854
|
+
return pn(this);
|
|
7856
7855
|
}
|
|
7857
7856
|
getSpaceAttribute(e = !0) {
|
|
7858
|
-
return
|
|
7857
|
+
return Nr(this, e);
|
|
7859
7858
|
}
|
|
7860
7859
|
syncSpaceAttribute(e, t = !0) {
|
|
7861
7860
|
ba(this, e, t);
|
|
@@ -7886,7 +7885,7 @@ class ze extends De {
|
|
|
7886
7885
|
});
|
|
7887
7886
|
}
|
|
7888
7887
|
updateMaterial(e, t) {
|
|
7889
|
-
this.material.color = new me(e), this.material.map =
|
|
7888
|
+
this.material.color = new me(e), this.material.map?.dispose(), this.material.map = mn(t), this.material.needsUpdate = !0;
|
|
7890
7889
|
}
|
|
7891
7890
|
updateMaterialOpacity(e) {
|
|
7892
7891
|
const t = e < 1;
|
|
@@ -7924,13 +7923,13 @@ class ao extends De {
|
|
|
7924
7923
|
super(e), this.stype = "PluginObject";
|
|
7925
7924
|
}
|
|
7926
7925
|
}
|
|
7927
|
-
function
|
|
7926
|
+
function ti(i) {
|
|
7928
7927
|
return i === "2d" || i === "2D";
|
|
7929
7928
|
}
|
|
7930
|
-
function
|
|
7929
|
+
function ni(i) {
|
|
7931
7930
|
return i === "2.5d" || i === "2.5D";
|
|
7932
7931
|
}
|
|
7933
|
-
function
|
|
7932
|
+
function si(i) {
|
|
7934
7933
|
return i === "3D" || i === "3d";
|
|
7935
7934
|
}
|
|
7936
7935
|
class Ht extends De {
|
|
@@ -7947,7 +7946,7 @@ class Ht extends De {
|
|
|
7947
7946
|
this.elementType = t, this.element = n, this.elementAutoDisplay = s, this.occlude = r, this.occludeThrottle = a, this.onChange = o, this.scaleFixed = l, this.create(t);
|
|
7948
7947
|
}
|
|
7949
7948
|
create(e) {
|
|
7950
|
-
|
|
7949
|
+
ti(e) ? this._create2D() : ni(e) ? this._create2DHalf() : si(e) && this._create3D();
|
|
7951
7950
|
}
|
|
7952
7951
|
getBoundingBox(e = 50) {
|
|
7953
7952
|
e = e <= 0 ? 50 : e;
|
|
@@ -7955,7 +7954,7 @@ class Ht extends De {
|
|
|
7955
7954
|
return t.copy(this.position), n.copy(this.position), t.sub(s), n.add(s), new Wt(t, n);
|
|
7956
7955
|
}
|
|
7957
7956
|
_create2D() {
|
|
7958
|
-
this.add(new
|
|
7957
|
+
this.add(new Jr(this.element));
|
|
7959
7958
|
}
|
|
7960
7959
|
_create2DHalf() {
|
|
7961
7960
|
this.add(new Ja(this.element));
|
|
@@ -7985,7 +7984,7 @@ class xt extends De {
|
|
|
7985
7984
|
return super.copy(e, t), this.formatType = e.formatType, this;
|
|
7986
7985
|
}
|
|
7987
7986
|
}
|
|
7988
|
-
class
|
|
7987
|
+
class Bs extends De {
|
|
7989
7988
|
icon;
|
|
7990
7989
|
text;
|
|
7991
7990
|
iconType;
|
|
@@ -8011,7 +8010,7 @@ const pd = {
|
|
|
8011
8010
|
position: { x: 0, y: 0, z: 0 },
|
|
8012
8011
|
scale: { x: 1, y: 1, z: 1 }
|
|
8013
8012
|
};
|
|
8014
|
-
class
|
|
8013
|
+
class Tr extends Ut {
|
|
8015
8014
|
stype = "Icon";
|
|
8016
8015
|
constructor(e, t) {
|
|
8017
8016
|
super(e);
|
|
@@ -8019,7 +8018,7 @@ class Mr extends Ut {
|
|
|
8019
8018
|
this.position.set(n.x, n.y, n.z), this.scale.set(s.x, s.y, s.z), this.renderOrder = 1;
|
|
8020
8019
|
}
|
|
8021
8020
|
}
|
|
8022
|
-
class
|
|
8021
|
+
class ri extends ze {
|
|
8023
8022
|
constructor(e) {
|
|
8024
8023
|
const {
|
|
8025
8024
|
radius: t = 10,
|
|
@@ -8030,20 +8029,20 @@ class si extends ze {
|
|
|
8030
8029
|
super(e), this.params = e, this.updateGeometry(t), this.updateMaterialOpacity(s), this.updateMaterial(n, r), this.stype = "Point";
|
|
8031
8030
|
}
|
|
8032
8031
|
updateGeometry(e) {
|
|
8033
|
-
this.geometry.dispose(), this.geometry = new
|
|
8032
|
+
this.geometry.dispose(), this.geometry = new di(e);
|
|
8034
8033
|
}
|
|
8035
8034
|
setOptions(e) {
|
|
8036
8035
|
const { color: t, opacity: n, radius: s, gradient: r } = e, a = this.material;
|
|
8037
|
-
t && (a.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), s !== void 0 && (this.geometry = new
|
|
8036
|
+
t && (a.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), s !== void 0 && (this.geometry = new di(s, 32, 32)), r && (a.map = mn(r)), this.params && Object.assign(this.params, e), a.needsUpdate = !0, Se.needsUpdate = !0;
|
|
8038
8037
|
}
|
|
8039
8038
|
}
|
|
8040
|
-
class oo extends
|
|
8039
|
+
class oo extends ri {
|
|
8041
8040
|
graphs = [];
|
|
8042
8041
|
constructor(e) {
|
|
8043
8042
|
super(e), this.stype = "Node", e && (this.graphs = e.graphs);
|
|
8044
8043
|
}
|
|
8045
8044
|
}
|
|
8046
|
-
class
|
|
8045
|
+
class ii extends ze {
|
|
8047
8046
|
constructor(e) {
|
|
8048
8047
|
const {
|
|
8049
8048
|
radius: t = 50,
|
|
@@ -8058,10 +8057,13 @@ class ri extends ze {
|
|
|
8058
8057
|
}
|
|
8059
8058
|
setOptions(e) {
|
|
8060
8059
|
const { color: t, opacity: n, radius: s, gradient: r } = e, a = this.material;
|
|
8061
|
-
t && (a.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), s !== void 0 && this.updateGeometry(s), r && (a.map =
|
|
8060
|
+
t && (a.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), s !== void 0 && this.updateGeometry(s), r && (a.map = mn(r)), this.params && Object.assign(this.params, e), a.needsUpdate = !0, Se.needsUpdate = !0;
|
|
8062
8061
|
}
|
|
8063
8062
|
}
|
|
8064
|
-
const
|
|
8063
|
+
const ws = /* @__PURE__ */ new Map();
|
|
8064
|
+
function fd() {
|
|
8065
|
+
ws.forEach((i) => i.dispose()), ws.clear();
|
|
8066
|
+
}
|
|
8065
8067
|
class lo extends ze {
|
|
8066
8068
|
constructor(e) {
|
|
8067
8069
|
const {
|
|
@@ -8087,7 +8089,7 @@ class lo extends ze {
|
|
|
8087
8089
|
computeVertex() {
|
|
8088
8090
|
if (!this.params) return;
|
|
8089
8091
|
const { start: e, end: t, width: n } = this.params, s = be(e), r = be(t), a = new D().addVectors(s, r).divideScalar(2), o = s.distanceTo(r), l = new Q();
|
|
8090
|
-
this.geometry.dispose(), this.geometry = new
|
|
8092
|
+
this.geometry.dispose(), this.geometry = new dn(n, o), this.geometry.rotateX(-Math.PI / 2), l.lookAt(s, a, this.up), this.position.copy(a), this.quaternion.setFromRotationMatrix(l);
|
|
8091
8093
|
}
|
|
8092
8094
|
computeTextureRepeat(e) {
|
|
8093
8095
|
if (this.params && e.image) {
|
|
@@ -8097,13 +8099,13 @@ class lo extends ze {
|
|
|
8097
8099
|
}
|
|
8098
8100
|
createTexture(e) {
|
|
8099
8101
|
if (e) {
|
|
8100
|
-
const t =
|
|
8102
|
+
const t = ws.get(e);
|
|
8101
8103
|
if (t)
|
|
8102
8104
|
return t.clone();
|
|
8103
8105
|
const n = _t.load(
|
|
8104
8106
|
e,
|
|
8105
8107
|
() => {
|
|
8106
|
-
n.wrapS = ft, n.wrapT = ft, n.anisotropy = 16, this.computeTextureRepeat(n),
|
|
8108
|
+
n.wrapS = ft, n.wrapT = ft, n.anisotropy = 16, this.computeTextureRepeat(n), ws.set(e, n), Se.needsUpdate = !0;
|
|
8107
8109
|
}
|
|
8108
8110
|
);
|
|
8109
8111
|
return n;
|
|
@@ -8146,7 +8148,7 @@ class ht extends De {
|
|
|
8146
8148
|
color: a
|
|
8147
8149
|
});
|
|
8148
8150
|
if (r === !1 && d.hide(), this.nodes.push(d), !l && t && !r) {
|
|
8149
|
-
const f =
|
|
8151
|
+
const f = tr(s, d.graphs[0]?.passable);
|
|
8150
8152
|
this.createCircle({
|
|
8151
8153
|
id: `${h.id}_circle`,
|
|
8152
8154
|
name: `${h.name || h.id}_circle`,
|
|
@@ -8160,7 +8162,7 @@ class ht extends De {
|
|
|
8160
8162
|
const { linkInfo: p, targetNodeId: g, passable: v } = h.graphs[f], { id: w, name: S } = p, b = this.info.nodes.find((A) => A.id === g);
|
|
8161
8163
|
if (!u.includes(w) && b) {
|
|
8162
8164
|
u.push(w);
|
|
8163
|
-
const A =
|
|
8165
|
+
const A = tr(s, v), I = this.createLink({
|
|
8164
8166
|
id: w,
|
|
8165
8167
|
name: S,
|
|
8166
8168
|
start: h.position,
|
|
@@ -8188,7 +8190,7 @@ class ht extends De {
|
|
|
8188
8190
|
return this.add(t), t;
|
|
8189
8191
|
}
|
|
8190
8192
|
createCircle(e) {
|
|
8191
|
-
const t = new
|
|
8193
|
+
const t = new ii({
|
|
8192
8194
|
...e,
|
|
8193
8195
|
rotation: {
|
|
8194
8196
|
x: Math.PI / 2,
|
|
@@ -8212,7 +8214,7 @@ class ht extends De {
|
|
|
8212
8214
|
const { imgUrl: t, animation: n } = e;
|
|
8213
8215
|
if (t && !this.linksImgAnimation) {
|
|
8214
8216
|
let s = null;
|
|
8215
|
-
|
|
8217
|
+
Es(n) && n ? s = { repeat: !0, duration: 500 } : Ne(n) && Xe(n.duration) && n.duration > 0 && (s = { repeat: !0, ...n }), s && wt(
|
|
8216
8218
|
new oe(0, 0),
|
|
8217
8219
|
new oe(0, -1),
|
|
8218
8220
|
s,
|
|
@@ -8284,7 +8286,7 @@ class ht extends De {
|
|
|
8284
8286
|
const { linkInfo: h, targetNodeId: d, passable: f } = c.graphs[u], { id: p, name: g } = h, v = o.get(d);
|
|
8285
8287
|
if (!a.has(p) && v) {
|
|
8286
8288
|
a.set(p, p);
|
|
8287
|
-
const w =
|
|
8289
|
+
const w = tr(n, f), S = {
|
|
8288
8290
|
id: p,
|
|
8289
8291
|
name: g,
|
|
8290
8292
|
start: c.position,
|
|
@@ -8317,7 +8319,7 @@ class ht extends De {
|
|
|
8317
8319
|
return e;
|
|
8318
8320
|
}
|
|
8319
8321
|
}
|
|
8320
|
-
function
|
|
8322
|
+
function tr(i, e) {
|
|
8321
8323
|
return ke(i) ? i[e] ? i[e] : i[0] : i;
|
|
8322
8324
|
}
|
|
8323
8325
|
class co extends ze {
|
|
@@ -8385,7 +8387,7 @@ class co extends ze {
|
|
|
8385
8387
|
}
|
|
8386
8388
|
setOptions(e) {
|
|
8387
8389
|
const { color: t, opacity: n, points: s, width: r, gradient: a } = e, o = this.material;
|
|
8388
|
-
t && (o.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), a && (o.map =
|
|
8390
|
+
t && (o.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), a && (o.map = mn(a)), s && r !== void 0 ? this.updateGeometry(s, r) : s ? this.updateGeometry(s, this.params?.width ?? 20) : r !== void 0 && this.updateGeometry(this.params?.points ?? [], r), this.params && Object.assign(this.params, e), o.needsUpdate = !0, Se.needsUpdate = !0;
|
|
8389
8391
|
}
|
|
8390
8392
|
}
|
|
8391
8393
|
class ho extends ze {
|
|
@@ -8409,7 +8411,7 @@ class ho extends ze {
|
|
|
8409
8411
|
}
|
|
8410
8412
|
setOptions(e) {
|
|
8411
8413
|
const { color: t, opacity: n, yHeight: s, points: r, gradient: a, depth: o } = e, l = this.material;
|
|
8412
|
-
t && (l.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), a && (l.map =
|
|
8414
|
+
t && (l.color = new me(t)), n !== void 0 && this.updateMaterialOpacity(n), a && (l.map = mn(a)), s !== void 0 && this.position.set(0, s, 0), r && o !== void 0 ? this.updateGeometry(r, o) : r ? this.updateGeometry(r, this.params?.depth ?? 0) : o !== void 0 && this.updateGeometry(this.params?.points ?? [], o), this.params && Object.assign(this.params, e), l.needsUpdate = !0, Se.needsUpdate = !0;
|
|
8413
8415
|
}
|
|
8414
8416
|
}
|
|
8415
8417
|
class ds extends De {
|
|
@@ -8429,7 +8431,7 @@ class ds extends De {
|
|
|
8429
8431
|
for (let a = 0; a < r.length; a++) this.createCircle(r[a]);
|
|
8430
8432
|
}
|
|
8431
8433
|
createPoint(e) {
|
|
8432
|
-
const t = new
|
|
8434
|
+
const t = new ri(e);
|
|
8433
8435
|
return this.add(t), Se.needsUpdate = !0, t;
|
|
8434
8436
|
}
|
|
8435
8437
|
getPoint(e) {
|
|
@@ -8462,7 +8464,7 @@ class ds extends De {
|
|
|
8462
8464
|
t && this.remove(t), Se.needsUpdate = !0;
|
|
8463
8465
|
}
|
|
8464
8466
|
createCircle(e) {
|
|
8465
|
-
const t = new
|
|
8467
|
+
const t = new ii(e);
|
|
8466
8468
|
return this.add(t), Se.needsUpdate = !0, t;
|
|
8467
8469
|
}
|
|
8468
8470
|
getCircle(e) {
|
|
@@ -8483,8 +8485,8 @@ class uo extends ze {
|
|
|
8483
8485
|
super(e, t, n), this.stype = "Ground";
|
|
8484
8486
|
}
|
|
8485
8487
|
}
|
|
8486
|
-
var
|
|
8487
|
-
function
|
|
8488
|
+
var md = Object.defineProperty, gd = (i, e, t) => e in i ? md(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, te = (i, e, t) => (gd(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
8489
|
+
function yd(i, e, t) {
|
|
8488
8490
|
const n = [i];
|
|
8489
8491
|
for (; n.length; ) {
|
|
8490
8492
|
const s = n.shift();
|
|
@@ -8493,16 +8495,16 @@ function gd(i, e, t) {
|
|
|
8493
8495
|
n.push(...s[e]);
|
|
8494
8496
|
}
|
|
8495
8497
|
}
|
|
8496
|
-
const
|
|
8497
|
-
function
|
|
8498
|
+
const Pr = [new oe(), new oe(), new oe(), new oe()], bt = [new D(), new D(), new D(), new D()], vd = [new Q(), new Q(), new Q(), new Q()], po = [new he(), new he(), new he(), new he()];
|
|
8499
|
+
function xd(i, e, t) {
|
|
8498
8500
|
return e.clone().sub(i).lengthSq() <= t ** 2;
|
|
8499
8501
|
}
|
|
8500
|
-
function
|
|
8502
|
+
function wd(i, e, t) {
|
|
8501
8503
|
const n = e.clone().sub(i).lengthSq(), s = Math.max(i.lengthSq(), e.length());
|
|
8502
8504
|
return n <= t ** 2 * s;
|
|
8503
8505
|
}
|
|
8504
|
-
function
|
|
8505
|
-
const { epsilon: t = 0, relativeEpsilon: n } = e || {}, s = t === 0 ? (c, u) => c.equals(u) : n ?
|
|
8506
|
+
function Rn(i, e) {
|
|
8507
|
+
const { epsilon: t = 0, relativeEpsilon: n } = e || {}, s = t === 0 ? (c, u) => c.equals(u) : n ? wd : xd, r = i.length / 3, a = new Array(r), [o, l] = bt;
|
|
8506
8508
|
for (let c = 0; c < r; c++) {
|
|
8507
8509
|
o.fromArray(i, c * 3), a[c] = c;
|
|
8508
8510
|
for (let u = 0; u < c; u++)
|
|
@@ -8551,7 +8553,7 @@ function mo(i, e, t, n = !1) {
|
|
|
8551
8553
|
});
|
|
8552
8554
|
}), s;
|
|
8553
8555
|
}
|
|
8554
|
-
function
|
|
8556
|
+
function bd(i, e = {}) {
|
|
8555
8557
|
const { indexes: t, a: n, b: s, c: r, equalVertexIndexMap: a, faceIndex: o, onlyC: l, maxCount: c = l ? 2 : 3, positions: u, getParentMidpoint: h, isAncestor: d, getDepth: f } = i, p = t.length / 3, g = o ?? Math.trunc(p / 2), v = a ? (L) => a[L] : (L) => L, w = v(n), S = v(s), b = v(r), A = [];
|
|
8556
8558
|
let I = () => 0, C = 0;
|
|
8557
8559
|
o != null && f && (C = f(o) + 1, I = (L) => C - f(L));
|
|
@@ -8660,7 +8662,7 @@ function go(i) {
|
|
|
8660
8662
|
e[t] = t;
|
|
8661
8663
|
return e;
|
|
8662
8664
|
}
|
|
8663
|
-
function
|
|
8665
|
+
function Sd(i, e) {
|
|
8664
8666
|
const t = i.length, n = t / 3;
|
|
8665
8667
|
e || (e = go(n));
|
|
8666
8668
|
const s = e.length, [r, a, o] = bt, l = new Array(n);
|
|
@@ -8689,7 +8691,7 @@ function bd(i, e) {
|
|
|
8689
8691
|
}
|
|
8690
8692
|
return c;
|
|
8691
8693
|
}
|
|
8692
|
-
class
|
|
8694
|
+
class bs extends je {
|
|
8693
8695
|
constructor(e) {
|
|
8694
8696
|
super(), te(this, "isFaceNode", !0), te(this, "triangle"), te(this, "faceIndex"), te(this, "geometry"), te(this, "a"), te(this, "b"), te(this, "c"), te(this, "d"), te(this, "order"), te(this, "real"), te(this, "branchFace"), te(this, "_root", null), te(this, "depth", 0), te(this, "childrenFaceIndexes"), te(this, "_equalVertexIndexMap"), te(this, "_equalVertexIndexes", null), Object.assign(this, e);
|
|
8695
8697
|
const { geometry: t, a: n, b: s, c: r, real: a, faceIndex: o } = e, { attributes: { position: l } } = t, c = new D().fromBufferAttribute(l, n), u = new D().fromBufferAttribute(l, s), h = new D().fromBufferAttribute(l, r);
|
|
@@ -8733,7 +8735,7 @@ class ws extends je {
|
|
|
8733
8735
|
onlyC: o != null,
|
|
8734
8736
|
equalVertexIndexMap: t
|
|
8735
8737
|
};
|
|
8736
|
-
return e && (d.positions = n.attributes.position.array, d.getParentMidpoint = (f) => e[f].triangle.getMidpoint(h), d.getDepth = (f) => e[f].depth), c.branchFace && (d.maxCount = 1 / 0),
|
|
8738
|
+
return e && (d.positions = n.attributes.position.array, d.getParentMidpoint = (f) => e[f].triangle.getMidpoint(h), d.getDepth = (f) => e[f].depth), c.branchFace && (d.maxCount = 1 / 0), bd(d, e);
|
|
8737
8739
|
}
|
|
8738
8740
|
removeFromParent() {
|
|
8739
8741
|
return super.removeFromParent(), this.root = null, this;
|
|
@@ -8768,15 +8770,15 @@ class ws extends je {
|
|
|
8768
8770
|
const { geometry: n } = this;
|
|
8769
8771
|
return this.removeChildFaces(e), this.getAdjacentFaces(e, t).forEach((s) => {
|
|
8770
8772
|
s.consumed && this.removeFace(s.faceIndex, e);
|
|
8771
|
-
const r = new
|
|
8773
|
+
const r = new bs({ geometry: n, ...s });
|
|
8772
8774
|
e[s.faceIndex] = r, this.add(r);
|
|
8773
8775
|
}), e;
|
|
8774
8776
|
}
|
|
8775
8777
|
updateChildrenDFS(e, t) {
|
|
8776
8778
|
const { geometry: n } = this;
|
|
8777
|
-
return e || (e = this.root.childrenFaceIndexes = { [this.faceIndex]: this }), t || (t = this.equalVertexIndexMap = this.root.equalVertexIndexMap ??
|
|
8779
|
+
return e || (e = this.root.childrenFaceIndexes = { [this.faceIndex]: this }), t || (t = this.equalVertexIndexMap = this.root.equalVertexIndexMap ?? Rn(n.attributes.position.array)), this.getAdjacentFaces(e, t).forEach((s) => {
|
|
8778
8780
|
s.consumed && this.removeFace(s.faceIndex, e);
|
|
8779
|
-
const r = new
|
|
8781
|
+
const r = new bs({ geometry: n, ...s });
|
|
8780
8782
|
return e[s.faceIndex] = r, this.add(r), r.updateChildrenDFS(e, t), r;
|
|
8781
8783
|
}), e;
|
|
8782
8784
|
}
|
|
@@ -8797,24 +8799,24 @@ class ws extends je {
|
|
|
8797
8799
|
return !e && t && (this._equalVertexIndexes = e = fo(t)), e;
|
|
8798
8800
|
}
|
|
8799
8801
|
updateChildrenBFS(e) {
|
|
8800
|
-
const t = this.childrenFaceIndexes = { [this.faceIndex]: this }, n = this.equalVertexIndexMap = e?.epsilon == null && this.equalVertexIndexMap ? this.equalVertexIndexMap :
|
|
8802
|
+
const t = this.childrenFaceIndexes = { [this.faceIndex]: this }, n = this.equalVertexIndexMap = e?.epsilon == null && this.equalVertexIndexMap ? this.equalVertexIndexMap : Rn(this.geometry.attributes.position.array, e);
|
|
8801
8803
|
return this.traversalBFS(function(s) {
|
|
8802
8804
|
s.updateSelfChildren(t, n);
|
|
8803
8805
|
}), t;
|
|
8804
8806
|
}
|
|
8805
8807
|
traversalBFS(e) {
|
|
8806
|
-
return
|
|
8808
|
+
return yd(this, "children", e);
|
|
8807
8809
|
}
|
|
8808
8810
|
// makeMeRootNode(){
|
|
8809
8811
|
// const {parent} = this;
|
|
8810
8812
|
// if (parent) return;
|
|
8811
8813
|
// }
|
|
8812
8814
|
}
|
|
8813
|
-
var
|
|
8814
|
-
function
|
|
8815
|
-
return i.w !== void 0 ? [
|
|
8815
|
+
var Md = Object.defineProperty, Td = (i, e, t) => e in i ? Md(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, In = (i, e, t) => (Td(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
8816
|
+
function Pd(i) {
|
|
8817
|
+
return i.w !== void 0 ? [Ts, 4] : i.z !== void 0 ? [D, 3] : [oe, 2];
|
|
8816
8818
|
}
|
|
8817
|
-
function
|
|
8819
|
+
function Dn(i, e) {
|
|
8818
8820
|
const t = e.toArray(), n = t.findIndex((r) => r !== 0);
|
|
8819
8821
|
if (n === -1)
|
|
8820
8822
|
return 0;
|
|
@@ -8825,7 +8827,7 @@ function Yi(i, e) {
|
|
|
8825
8827
|
const t = i.clone().cross(e);
|
|
8826
8828
|
return typeof t == "number" ? t === 0 : t.lengthSq() === 0;
|
|
8827
8829
|
}
|
|
8828
|
-
function
|
|
8830
|
+
function Id(i, e, t = 0) {
|
|
8829
8831
|
let n = i.lengthSq() * e.lengthSq();
|
|
8830
8832
|
if (n === 0)
|
|
8831
8833
|
return t;
|
|
@@ -8833,15 +8835,15 @@ function Pd(i, e, t = 0) {
|
|
|
8833
8835
|
let s = i.dot(e) / n;
|
|
8834
8836
|
return s = Math.max(-1, Math.min(1, s)), Math.acos(s);
|
|
8835
8837
|
}
|
|
8836
|
-
function
|
|
8837
|
-
let n =
|
|
8838
|
+
function nr(i, e, t) {
|
|
8839
|
+
let n = Id(i, e);
|
|
8838
8840
|
return n === 0 ? n : i.clone().cross(e).dot(t) < 0 ? -n : n;
|
|
8839
8841
|
}
|
|
8840
|
-
function
|
|
8841
|
-
const n = e.clone().negate(), s = t.clone().projectOnPlane(e), r = i.clone().projectOnPlane(s), a =
|
|
8842
|
+
function Dd(i, e, t) {
|
|
8843
|
+
const n = e.clone().negate(), s = t.clone().projectOnPlane(e), r = i.clone().projectOnPlane(s), a = nr(e, r, s), o = e.clone().cross(s), l = i.clone().projectOnPlane(o), c = nr(e, l, o), u = i.clone().projectOnPlane(n), h = nr(s, u, n);
|
|
8842
8844
|
return { yaw: a, pitch: c, roll: h };
|
|
8843
8845
|
}
|
|
8844
|
-
const
|
|
8846
|
+
const sr = 180 / Math.PI, Ir = {
|
|
8845
8847
|
yaw: [
|
|
8846
8848
|
{ name: "前", range: [-15, 15] },
|
|
8847
8849
|
{ name: "左", range: [15, 165] },
|
|
@@ -8864,27 +8866,27 @@ const nr = 180 / Math.PI, Pr = {
|
|
|
8864
8866
|
{ name: "下", range: [165, 180.1] }
|
|
8865
8867
|
]
|
|
8866
8868
|
};
|
|
8867
|
-
function
|
|
8869
|
+
function Cd(i) {
|
|
8868
8870
|
const e = {};
|
|
8869
8871
|
for (const [t, n] of Object.entries(i))
|
|
8870
8872
|
e[t] = Array.isArray(n) ? n : Object.entries(n).map(([s, r]) => ({ name: s, range: r }));
|
|
8871
8873
|
return e;
|
|
8872
8874
|
}
|
|
8873
|
-
const
|
|
8875
|
+
const rr = {
|
|
8874
8876
|
degrees: !0,
|
|
8875
|
-
map:
|
|
8877
|
+
map: Ir,
|
|
8876
8878
|
front: { x: 0, y: 0, z: 1 },
|
|
8877
8879
|
up: { x: 0, y: 1, z: 0 }
|
|
8878
8880
|
};
|
|
8879
8881
|
class yo {
|
|
8880
8882
|
constructor(e) {
|
|
8881
|
-
|
|
8883
|
+
In(this, "_options"), In(this, "_listMap"), In(this, "_front"), In(this, "_up"), e && (this.options = e);
|
|
8882
8884
|
}
|
|
8883
8885
|
static get options() {
|
|
8884
|
-
return this._options ?? (this.options =
|
|
8886
|
+
return this._options ?? (this.options = rr);
|
|
8885
8887
|
}
|
|
8886
8888
|
static set options(e) {
|
|
8887
|
-
this._options = Object.assign({}, structuredClone(
|
|
8889
|
+
this._options = Object.assign({}, structuredClone(Ir), e);
|
|
8888
8890
|
}
|
|
8889
8891
|
/**
|
|
8890
8892
|
* 默认选项
|
|
@@ -8911,7 +8913,7 @@ class yo {
|
|
|
8911
8913
|
return this.options.map || (this.map = this.defaultOptions.map), this.options.map;
|
|
8912
8914
|
}
|
|
8913
8915
|
set map(e) {
|
|
8914
|
-
const t = structuredClone(this.defaultOptions.map), n = structuredClone(
|
|
8916
|
+
const t = structuredClone(this.defaultOptions.map), n = structuredClone(Ir);
|
|
8915
8917
|
e = e ? {
|
|
8916
8918
|
yaw: e.yaw ?? t.yaw ?? n.yaw,
|
|
8917
8919
|
pitch: e.pitch ?? t.pitch ?? n.pitch,
|
|
@@ -8919,16 +8921,16 @@ class yo {
|
|
|
8919
8921
|
} : t, this.options.map = e, this._listMap = null;
|
|
8920
8922
|
}
|
|
8921
8923
|
get listMap() {
|
|
8922
|
-
return this._listMap ?? (this._listMap =
|
|
8924
|
+
return this._listMap ?? (this._listMap = Cd(this.map ?? {}));
|
|
8923
8925
|
}
|
|
8924
8926
|
get front() {
|
|
8925
|
-
return this._front || (this.front = this.options.front ?? this.defaultOptions.front ??
|
|
8927
|
+
return this._front || (this.front = this.options.front ?? this.defaultOptions.front ?? rr.front), this._front;
|
|
8926
8928
|
}
|
|
8927
8929
|
set front(e) {
|
|
8928
8930
|
this._front = new D().copy(e);
|
|
8929
8931
|
}
|
|
8930
8932
|
get up() {
|
|
8931
|
-
return this._up || (this.up = this.options.up ?? this.defaultOptions.up ??
|
|
8933
|
+
return this._up || (this.up = this.options.up ?? this.defaultOptions.up ?? rr.up), this._up;
|
|
8932
8934
|
}
|
|
8933
8935
|
set up(e) {
|
|
8934
8936
|
this._up = new D().copy(e);
|
|
@@ -8941,8 +8943,8 @@ class yo {
|
|
|
8941
8943
|
*/
|
|
8942
8944
|
computeAzimuth(e, t, n) {
|
|
8943
8945
|
const s = new D().copy(e), r = new D().copy(t ?? this.front), a = new D().copy(n ?? this.up);
|
|
8944
|
-
let { yaw: o, pitch: l, roll: c } =
|
|
8945
|
-
return this.degrees && (o *=
|
|
8946
|
+
let { yaw: o, pitch: l, roll: c } = Dd(s, r, a);
|
|
8947
|
+
return this.degrees && (o *= sr, l *= sr, c *= sr), {
|
|
8946
8948
|
yaw: {
|
|
8947
8949
|
angle: o,
|
|
8948
8950
|
name: this.findAzimuthNames("yaw", o)
|
|
@@ -8972,7 +8974,7 @@ class yo {
|
|
|
8972
8974
|
return n;
|
|
8973
8975
|
}
|
|
8974
8976
|
}
|
|
8975
|
-
|
|
8977
|
+
In(yo, "_options");
|
|
8976
8978
|
new yo();
|
|
8977
8979
|
new Q(
|
|
8978
8980
|
1,
|
|
@@ -8993,7 +8995,7 @@ new Q(
|
|
|
8993
8995
|
1
|
|
8994
8996
|
);
|
|
8995
8997
|
var le = /* @__PURE__ */ ((i) => (i[i.ThroughIntersect = 1] = "ThroughIntersect", i[i.JointIntersect = 2] = "JointIntersect", i[i.Intersect = 3] = "Intersect", i[i.Tangency = 4] = "Tangency", i[i.Contain = 8] = "Contain", i[i.Dissociation = 16] = "Dissociation", i))(le || {});
|
|
8996
|
-
function
|
|
8998
|
+
function Ad(i, e) {
|
|
8997
8999
|
const [t, n] = i, s = n.clone().sub(t), [r, a] = e, o = a.clone().sub(r);
|
|
8998
9000
|
if (Yi(o, s)) {
|
|
8999
9001
|
const l = r.clone().sub(t);
|
|
@@ -9001,33 +9003,33 @@ function Cd(i, e) {
|
|
|
9001
9003
|
}
|
|
9002
9004
|
return le.Intersect;
|
|
9003
9005
|
}
|
|
9004
|
-
function
|
|
9005
|
-
const [t, n] = i, s = n.clone().sub(t), [r, a] = e, o = a.clone().sub(r), l = s.clone().cross(o), [c, u] =
|
|
9006
|
+
function Ed(i, e) {
|
|
9007
|
+
const [t, n] = i, s = n.clone().sub(t), [r, a] = e, o = a.clone().sub(r), l = s.clone().cross(o), [c, u] = Pd(t);
|
|
9006
9008
|
if (u === 2 ? l === 0 : l.equals(new c()))
|
|
9007
9009
|
return null;
|
|
9008
|
-
const h = r.clone().sub(t).cross(o), d = u === 2 ? h / l :
|
|
9010
|
+
const h = r.clone().sub(t).cross(o), d = u === 2 ? h / l : Dn(l, h);
|
|
9009
9011
|
return s.clone().multiplyScalar(d).add(t);
|
|
9010
9012
|
}
|
|
9011
|
-
function
|
|
9012
|
-
const [t, n] = i, [s, r] = e, a = n.clone().sub(t), o =
|
|
9013
|
+
function Od(i, e) {
|
|
9014
|
+
const [t, n] = i, [s, r] = e, a = n.clone().sub(t), o = Ad(i, e);
|
|
9013
9015
|
if (o === le.Tangency) {
|
|
9014
9016
|
let d = 0, f = 0;
|
|
9015
|
-
const p =
|
|
9017
|
+
const p = Dn(a, s.clone().sub(t));
|
|
9016
9018
|
p < 0 ? d++ : p > 1 && f++;
|
|
9017
|
-
const g =
|
|
9019
|
+
const g = Dn(a, r.clone().sub(t));
|
|
9018
9020
|
return g < 0 ? d++ : g > 1 && f++, d === 2 || f === 2 ? le.Dissociation : d + f === 1 ? le.Tangency : le.Contain;
|
|
9019
9021
|
}
|
|
9020
9022
|
if (o !== le.Intersect)
|
|
9021
9023
|
return o;
|
|
9022
|
-
const l =
|
|
9024
|
+
const l = Ed(i, e), c = r.clone().sub(s), u = Dn(c, l.clone().sub(s));
|
|
9023
9025
|
if (u < 0 || u > 1)
|
|
9024
9026
|
return le.Dissociation;
|
|
9025
9027
|
if (u === 0 || u === 1)
|
|
9026
9028
|
return le.JointIntersect;
|
|
9027
|
-
const h =
|
|
9029
|
+
const h = Dn(a, l.clone().sub(t));
|
|
9028
9030
|
return h < 0 || h > 1 ? le.Dissociation : h === 0 || h === 1 ? le.JointIntersect : le.ThroughIntersect;
|
|
9029
9031
|
}
|
|
9030
|
-
function
|
|
9032
|
+
function Ss(i, e) {
|
|
9031
9033
|
const t = e.length;
|
|
9032
9034
|
let n, s = !1;
|
|
9033
9035
|
for (let r = 0; r < t; r++) {
|
|
@@ -9048,32 +9050,32 @@ function bs(i, e) {
|
|
|
9048
9050
|
}
|
|
9049
9051
|
return s ? le.Tangency : le.Contain;
|
|
9050
9052
|
}
|
|
9051
|
-
function
|
|
9053
|
+
function Ld(i, e) {
|
|
9052
9054
|
const t = i.length;
|
|
9053
9055
|
let n = 0;
|
|
9054
9056
|
for (let o = 0; o < t; o++) {
|
|
9055
9057
|
const l = i[o];
|
|
9056
9058
|
let c = o + 1;
|
|
9057
9059
|
c === t && (c = 0);
|
|
9058
|
-
const u = i[c], h =
|
|
9060
|
+
const u = i[c], h = Od([l, u], e);
|
|
9059
9061
|
if (h & (le.ThroughIntersect | le.Tangency | le.Contain))
|
|
9060
9062
|
return h;
|
|
9061
9063
|
h === le.JointIntersect && n++;
|
|
9062
9064
|
}
|
|
9063
|
-
const s =
|
|
9065
|
+
const s = Ss(e[0], i);
|
|
9064
9066
|
if (n === 0 || n === 1 && s !== le.Tangency)
|
|
9065
9067
|
return s;
|
|
9066
|
-
const r =
|
|
9068
|
+
const r = Ss(e[1], i), a = s | r;
|
|
9067
9069
|
return a === le.Tangency ? le.Contain : a & le.Tangency ? a & le.Contain ? le.Contain : le.JointIntersect : s;
|
|
9068
9070
|
}
|
|
9069
|
-
function
|
|
9071
|
+
function Fd(i, e) {
|
|
9070
9072
|
const t = i.length;
|
|
9071
9073
|
let n = 0, s = !1;
|
|
9072
9074
|
for (let a = 0; a < t; a++) {
|
|
9073
9075
|
const o = i[a];
|
|
9074
9076
|
let l = a + 1;
|
|
9075
9077
|
l === t && (l = 0);
|
|
9076
|
-
const c = i[l], u =
|
|
9078
|
+
const c = i[l], u = Ld(e, [o, c]);
|
|
9077
9079
|
if (u === le.ThroughIntersect)
|
|
9078
9080
|
return u;
|
|
9079
9081
|
u === le.JointIntersect ? n++ : u === le.Tangency && (s = !0);
|
|
@@ -9082,12 +9084,12 @@ function Ld(i, e) {
|
|
|
9082
9084
|
return le.Tangency;
|
|
9083
9085
|
if (n)
|
|
9084
9086
|
return le.JointIntersect;
|
|
9085
|
-
let r =
|
|
9086
|
-
return r === le.Contain || (r =
|
|
9087
|
+
let r = Ss(i[0], e);
|
|
9088
|
+
return r === le.Contain || (r = Ss(e[0], i), r === le.Contain) ? le.Contain : le.Dissociation;
|
|
9087
9089
|
}
|
|
9088
9090
|
new Kt();
|
|
9089
|
-
const
|
|
9090
|
-
class
|
|
9091
|
+
const Bd = le.Contain | le.ThroughIntersect;
|
|
9092
|
+
class Ms extends bs {
|
|
9091
9093
|
constructor(e, t, n = !0) {
|
|
9092
9094
|
super(e), te(this, "flatTriangle"), te(this, "matrixInvert", new Q()), te(this, "needUpdateFace", !0), this.matrixAutoUpdate = !1, t && (t.add(this), n && this.updateFace());
|
|
9093
9095
|
}
|
|
@@ -9115,14 +9117,14 @@ class Ss extends ws {
|
|
|
9115
9117
|
* @returns
|
|
9116
9118
|
*/
|
|
9117
9119
|
isOutFlatRange(e) {
|
|
9118
|
-
const { flatTriangle: { a: t, b: n, c: s } } = this, [r, a, o] =
|
|
9119
|
-
return r.copy(t), a.copy(n), o.copy(s), !(
|
|
9120
|
+
const { flatTriangle: { a: t, b: n, c: s } } = this, [r, a, o] = Pr;
|
|
9121
|
+
return r.copy(t), a.copy(n), o.copy(s), !(Fd([r, a, o], e) & Bd);
|
|
9120
9122
|
}
|
|
9121
9123
|
updateSelfChildren(e = {}, t = this.root.equalVertexIndexMap, n) {
|
|
9122
9124
|
this.updateFace();
|
|
9123
9125
|
const { geometry: s } = this;
|
|
9124
9126
|
return this.removeChildFaces(e), this.getAdjacentFaces(e, t).forEach((r) => {
|
|
9125
|
-
const a = new
|
|
9127
|
+
const a = new Ms({ geometry: s, ...r }, this, !0);
|
|
9126
9128
|
if (n && a.isOutFlatRange(n)) {
|
|
9127
9129
|
this.remove(a);
|
|
9128
9130
|
return;
|
|
@@ -9138,8 +9140,8 @@ class Ss extends ws {
|
|
|
9138
9140
|
return this.removeFromParent(), e;
|
|
9139
9141
|
e[this.faceIndex] = this;
|
|
9140
9142
|
}
|
|
9141
|
-
return t || (t = this.equalVertexIndexMap = this.root.equalVertexIndexMap ??
|
|
9142
|
-
const a = new
|
|
9143
|
+
return t || (t = this.equalVertexIndexMap = this.root.equalVertexIndexMap ?? Rn(s.attributes.position.array)), this.getAdjacentFaces(e, t).forEach((r) => {
|
|
9144
|
+
const a = new Ms({ geometry: s, ...r }, this);
|
|
9143
9145
|
if (n && a.isOutFlatRange(n)) {
|
|
9144
9146
|
this.remove(a);
|
|
9145
9147
|
return;
|
|
@@ -9153,7 +9155,7 @@ class Ss extends ws {
|
|
|
9153
9155
|
if (t && this.isOutFlatRange(t))
|
|
9154
9156
|
return this.removeFromParent(), n;
|
|
9155
9157
|
n[this.faceIndex] = this;
|
|
9156
|
-
const s = this.equalVertexIndexMap = e?.epsilon == null && this.equalVertexIndexMap ? this.equalVertexIndexMap :
|
|
9158
|
+
const s = this.equalVertexIndexMap = e?.epsilon == null && this.equalVertexIndexMap ? this.equalVertexIndexMap : Rn(this.geometry.attributes.position.array, e);
|
|
9157
9159
|
return this.traversalBFS(function(r) {
|
|
9158
9160
|
r.updateSelfChildren(n, s, t);
|
|
9159
9161
|
}), n;
|
|
@@ -9288,7 +9290,7 @@ class Ss extends ws {
|
|
|
9288
9290
|
return s;
|
|
9289
9291
|
}
|
|
9290
9292
|
}
|
|
9291
|
-
class
|
|
9293
|
+
class ai extends Ms {
|
|
9292
9294
|
constructor(e) {
|
|
9293
9295
|
var t;
|
|
9294
9296
|
const { geometry: n, faceIndex: s, origin: r, normal: a, angle: o = 0, xyPlane: l = !1, meshMatrix: c, flatRange: u } = e;
|
|
@@ -9309,7 +9311,7 @@ class ii extends Ss {
|
|
|
9309
9311
|
* @returns
|
|
9310
9312
|
*/
|
|
9311
9313
|
static createFlatFaceTreeByRay(e) {
|
|
9312
|
-
const { object: t, origin: n, direction: s, angle: r, planeNormal: a, ...o } = e, l = new
|
|
9314
|
+
const { object: t, origin: n, direction: s, angle: r, planeNormal: a, ...o } = e, l = new Nn(n, s), [c] = l.intersectObject(t);
|
|
9313
9315
|
if (!c)
|
|
9314
9316
|
return null;
|
|
9315
9317
|
const { object: u, instanceId: h, point: d, normal: f, faceIndex: p, face: g } = c;
|
|
@@ -9317,7 +9319,7 @@ class ii extends Ss {
|
|
|
9317
9319
|
return null;
|
|
9318
9320
|
const { geometry: v, matrixWorld: w } = u, S = new Q();
|
|
9319
9321
|
h == null ? S.copy(w) : (u.getMatrixAt(h, S), S.premultiply(w));
|
|
9320
|
-
const b =
|
|
9322
|
+
const b = vd[0].copy(S).invert();
|
|
9321
9323
|
let A;
|
|
9322
9324
|
switch (a) {
|
|
9323
9325
|
case 1: {
|
|
@@ -9331,7 +9333,7 @@ class ii extends Ss {
|
|
|
9331
9333
|
default:
|
|
9332
9334
|
A = g.normal;
|
|
9333
9335
|
}
|
|
9334
|
-
return d.applyMatrix4(b), new
|
|
9336
|
+
return d.applyMatrix4(b), new ai({ ...o, geometry: v, origin: d, faceIndex: p, normal: A, angle: r, meshMatrix: S });
|
|
9335
9337
|
}
|
|
9336
9338
|
updateMatrix() {
|
|
9337
9339
|
if (!this.xyPlane)
|
|
@@ -9508,7 +9510,7 @@ class ii extends Ss {
|
|
|
9508
9510
|
return t && e.matrix.copy(t), e.matrix.multiply(n), e.matrix.decompose(e.position, e.quaternion, e.scale), e;
|
|
9509
9511
|
}
|
|
9510
9512
|
}
|
|
9511
|
-
function
|
|
9513
|
+
function kd(i, e, t) {
|
|
9512
9514
|
for (let n = 0; n < t.length; n++) {
|
|
9513
9515
|
const s = t[n];
|
|
9514
9516
|
i = _i(i, e, n, s), i = _i(i, e, n, -s);
|
|
@@ -9565,7 +9567,7 @@ function Qe(i, e, t, n, s = []) {
|
|
|
9565
9567
|
}
|
|
9566
9568
|
return s;
|
|
9567
9569
|
}
|
|
9568
|
-
function
|
|
9570
|
+
function zd(i, e) {
|
|
9569
9571
|
const t = i.length / e | 0;
|
|
9570
9572
|
for (let n = 0; n < e; n++) {
|
|
9571
9573
|
const s = n * t, r = i.slice(s, s + t);
|
|
@@ -9577,7 +9579,7 @@ function kd(i, e) {
|
|
|
9577
9579
|
return i;
|
|
9578
9580
|
}
|
|
9579
9581
|
var Lt = /* @__PURE__ */ ((i) => (i[i.Projection = 0] = "Projection", i[i.Distance = 1] = "Distance", i[i.ContinuousDistance = 2] = "ContinuousDistance", i[i.UVIncrement = 3] = "UVIncrement", i[i.Mapping = 4] = "Mapping", i[i.Original = 5] = "Original", i))(Lt || {});
|
|
9580
|
-
class
|
|
9582
|
+
class Rd extends Ce {
|
|
9581
9583
|
constructor() {
|
|
9582
9584
|
super(...arguments), te(this, "isDecalGeometry", !0), te(this, "originalUVs"), te(this, "uvMap", 1), te(this, "offsetFactor", 0), te(this, "offsetUnits", 0), te(this, "epsilon", 1e-8), te(this, "relativeEpsilon", !1), te(this, "_equalVertexIndexMap", null), te(this, "_equalVertexIndexes", null), te(this, "border", []);
|
|
9583
9585
|
}
|
|
@@ -9588,7 +9590,7 @@ class zd extends Ce {
|
|
|
9588
9590
|
let { _equalVertexIndexMap: e } = this;
|
|
9589
9591
|
if (!e) {
|
|
9590
9592
|
const { cutPositions: t, epsilon: n, relativeEpsilon: s } = this;
|
|
9591
|
-
this._equalVertexIndexMap = e =
|
|
9593
|
+
this._equalVertexIndexMap = e = Rn(t, { epsilon: n, relativeEpsilon: s }), this._equalVertexIndexes = null;
|
|
9592
9594
|
}
|
|
9593
9595
|
return e;
|
|
9594
9596
|
}
|
|
@@ -9615,7 +9617,7 @@ class zd extends Ce {
|
|
|
9615
9617
|
* @returns
|
|
9616
9618
|
*/
|
|
9617
9619
|
clipGeometryData(e, t) {
|
|
9618
|
-
return
|
|
9620
|
+
return kd(e, t, this.border);
|
|
9619
9621
|
}
|
|
9620
9622
|
/**
|
|
9621
9623
|
* 生成偏移的顶点
|
|
@@ -9631,7 +9633,7 @@ class zd extends Ce {
|
|
|
9631
9633
|
t.boundingBox || t.computeBoundingBox();
|
|
9632
9634
|
let l = o.normal;
|
|
9633
9635
|
if (!l) {
|
|
9634
|
-
const S =
|
|
9636
|
+
const S = Sd(e, (n = this.index) == null ? void 0 : n.array);
|
|
9635
9637
|
o.normal = l = new ge(S, 3);
|
|
9636
9638
|
}
|
|
9637
9639
|
const { array: c, itemSize: u, count: h } = l, d = mo(c, u, a, !0), [f, p, g, v] = bt;
|
|
@@ -9651,7 +9653,7 @@ class zd extends Ce {
|
|
|
9651
9653
|
* @returns
|
|
9652
9654
|
*/
|
|
9653
9655
|
generateDistanceUVs(e) {
|
|
9654
|
-
const t = [], n =
|
|
9656
|
+
const t = [], n = Pr[0], s = new dr();
|
|
9655
9657
|
for (let h = 0; h < e.length; h += 3)
|
|
9656
9658
|
n.fromArray(e, h), n.toArray(t, t.length), s.expandByPoint(n);
|
|
9657
9659
|
const { x: r, y: a } = s.getSize(new oe()), { x: o, y: l } = s.min, c = new Kt(
|
|
@@ -9689,7 +9691,7 @@ class zd extends Ce {
|
|
|
9689
9691
|
const { originalUVs: e } = this;
|
|
9690
9692
|
if (!e)
|
|
9691
9693
|
throw "ProjectionDecalGeometry#mesh 缺少 uv; DecalUVMapType.Mapping 类型的 uvMap 需要 uv";
|
|
9692
|
-
const t =
|
|
9694
|
+
const t = Pr[0], n = new dr(), s = e.length;
|
|
9693
9695
|
for (let h = 0; h < s; h += 2)
|
|
9694
9696
|
t.fromArray(e, h), n.expandByPoint(t);
|
|
9695
9697
|
const { x: r, y: a } = n.getSize(t), { x: o, y: l } = n.min, c = new Kt(
|
|
@@ -9706,7 +9708,7 @@ class zd extends Ce {
|
|
|
9706
9708
|
return u.applyMatrix3(c), u;
|
|
9707
9709
|
}
|
|
9708
9710
|
}
|
|
9709
|
-
class
|
|
9711
|
+
class Nd extends Rd {
|
|
9710
9712
|
constructor(e) {
|
|
9711
9713
|
super(), te(this, "isRigidDecalGeometry", !0), te(this, "object"), te(this, "origin", new D()), te(this, "direction", new D()), te(this, "angle", -0), te(this, "_size", new oe()), te(this, "cutPositions", []), te(this, "flatPositions", []), te(this, "averageFlatPositions"), te(this, "faceTree", null), te(this, "branchFace", !1), this.setOptions(e);
|
|
9712
9714
|
}
|
|
@@ -9740,7 +9742,7 @@ class Rd extends zd {
|
|
|
9740
9742
|
* 更新几何体
|
|
9741
9743
|
*/
|
|
9742
9744
|
updateGeometry() {
|
|
9743
|
-
const { object: e, origin: t, direction: n, angle: s, border: [r, a], branchFace: o, epsilon: l, relativeEpsilon: c } = this, u = this.faceTree =
|
|
9745
|
+
const { object: e, origin: t, direction: n, angle: s, border: [r, a], branchFace: o, epsilon: l, relativeEpsilon: c } = this, u = this.faceTree = ai.createFlatFaceTreeByRay({ object: e, origin: t, direction: n, angle: s, flatRange: [new oe(r, a), new oe(-r, a), new oe(-r, -a), new oe(r, -a)], xyPlane: !0, branchFace: o, epsilon: l, relativeEpsilon: c });
|
|
9744
9746
|
if (this._equalVertexIndexMap = this._equalVertexIndexes = null, !u)
|
|
9745
9747
|
return this.empty();
|
|
9746
9748
|
const { flatPositions: h, positions: d, normals: f, uvs: p, averagePositions: g } = this.generateDecalGeometryData(this.geometry);
|
|
@@ -9776,7 +9778,7 @@ class Rd extends zd {
|
|
|
9776
9778
|
};
|
|
9777
9779
|
return r.forEach((f, p) => {
|
|
9778
9780
|
d[f] = c[p + 1];
|
|
9779
|
-
}), d.normals &&
|
|
9781
|
+
}), d.normals && zd(d.normals, 3), l && (d.averagePositions = c.at(-1)), d;
|
|
9780
9782
|
}
|
|
9781
9783
|
updatePosition() {
|
|
9782
9784
|
const { cutPositions: e, geometry: t } = this, n = this.generateOffsetPosition(e, t), s = new ge(n, 3);
|
|
@@ -9845,7 +9847,7 @@ class Rd extends zd {
|
|
|
9845
9847
|
}
|
|
9846
9848
|
}
|
|
9847
9849
|
const Xi = /* @__PURE__ */ new Map();
|
|
9848
|
-
class
|
|
9850
|
+
class Dr extends De {
|
|
9849
9851
|
constructor(e) {
|
|
9850
9852
|
super(e), this.params = e, this.stype = "Decal";
|
|
9851
9853
|
const { material: t } = this.decalMesh;
|
|
@@ -9860,7 +9862,7 @@ class Ir extends De {
|
|
|
9860
9862
|
n.map = t;
|
|
9861
9863
|
else {
|
|
9862
9864
|
const r = new qt();
|
|
9863
|
-
r.image = await
|
|
9865
|
+
r.image = await As.loadAsync(e), r.colorSpace = dt, r.needsUpdate = !0, n.map = r, Xi.set(e, r);
|
|
9864
9866
|
}
|
|
9865
9867
|
n.needsUpdate = !0;
|
|
9866
9868
|
const { image: s } = n.map;
|
|
@@ -9874,20 +9876,20 @@ class Ir extends De {
|
|
|
9874
9876
|
s.color.set(t), s.opacity = n;
|
|
9875
9877
|
}
|
|
9876
9878
|
}
|
|
9877
|
-
function
|
|
9878
|
-
const e =
|
|
9879
|
+
function jd(i) {
|
|
9880
|
+
const e = Ud(i), t = new Q();
|
|
9879
9881
|
t.setFromMatrix3(e);
|
|
9880
9882
|
const n = i[0], s = t.clone();
|
|
9881
9883
|
s.setPosition(n);
|
|
9882
9884
|
const r = s.clone().invert(), a = i.map((d) => {
|
|
9883
9885
|
const f = d.clone().applyMatrix4(r);
|
|
9884
9886
|
return new oe(f.x, f.y);
|
|
9885
|
-
}), o = new fa(a), l = new Yl(o), c = new
|
|
9887
|
+
}), o = new fa(a), l = new Yl(o), c = new dr();
|
|
9886
9888
|
c.setFromPoints(a);
|
|
9887
|
-
const u =
|
|
9889
|
+
const u = Gd(c);
|
|
9888
9890
|
return l.getAttribute("uv").applyMatrix3(u), l.applyMatrix4(t), { geometry: l, polygonBox: c, modelMatrix: t, planeMatrix: s, projectionMatrix: r, position: n };
|
|
9889
9891
|
}
|
|
9890
|
-
function
|
|
9892
|
+
function Ud(i) {
|
|
9891
9893
|
const [e, t, n] = i, s = new _l();
|
|
9892
9894
|
s.setFromCoplanarPoints(t, e, n);
|
|
9893
9895
|
const r = s.normal, a = r.clone().cross(new D(0, 0, 1));
|
|
@@ -9907,7 +9909,7 @@ function jd(i) {
|
|
|
9907
9909
|
r.z
|
|
9908
9910
|
], l;
|
|
9909
9911
|
}
|
|
9910
|
-
function
|
|
9912
|
+
function Gd(i) {
|
|
9911
9913
|
const e = i.min, t = i.getSize(new oe()), n = new Kt();
|
|
9912
9914
|
return n.elements = [
|
|
9913
9915
|
t.x,
|
|
@@ -9922,48 +9924,48 @@ function Ud(i) {
|
|
|
9922
9924
|
], n.invert();
|
|
9923
9925
|
}
|
|
9924
9926
|
function vo(i, e) {
|
|
9925
|
-
const t =
|
|
9927
|
+
const t = pn(e);
|
|
9926
9928
|
return i.intersectsBox(t);
|
|
9927
9929
|
}
|
|
9928
|
-
function
|
|
9930
|
+
function oi(i, e, t) {
|
|
9929
9931
|
if (typeof i == "string") {
|
|
9930
9932
|
let n = e ? t?.get(i) : null;
|
|
9931
9933
|
return n || (n = _t.load(i, () => {
|
|
9932
9934
|
Se.needsUpdate = !0;
|
|
9933
9935
|
}), t?.set(i, n)), n;
|
|
9934
9936
|
}
|
|
9935
|
-
return i instanceof HTMLImageElement ? new qt(i) : i instanceof HTMLCanvasElement ? new
|
|
9937
|
+
return i instanceof HTMLImageElement ? new qt(i) : i instanceof HTMLCanvasElement ? new kr(i) : new Ql(i);
|
|
9936
9938
|
}
|
|
9937
|
-
function
|
|
9938
|
-
const s = i.map, r =
|
|
9939
|
+
function Vd(i, e, t, n) {
|
|
9940
|
+
const s = i.map, r = oi(e, t, n);
|
|
9939
9941
|
if (s) {
|
|
9940
9942
|
const a = r.source;
|
|
9941
9943
|
r.copy(s), r.source = a;
|
|
9942
9944
|
}
|
|
9943
9945
|
return i.map = r, r;
|
|
9944
9946
|
}
|
|
9945
|
-
function
|
|
9947
|
+
function Hd(i, e) {
|
|
9946
9948
|
const { top: t, left: n, bottom: s, right: r, front: a, back: o } = i, l = new D(r, t, a), c = new D(n, s, o), u = new Wt();
|
|
9947
9949
|
return function(d) {
|
|
9948
9950
|
return u.max.addVectors(d, l), u.min.subVectors(d, c), e.filter((f) => vo(u, f));
|
|
9949
9951
|
};
|
|
9950
9952
|
}
|
|
9951
|
-
function
|
|
9952
|
-
const t = new
|
|
9953
|
+
function Wd(i, e) {
|
|
9954
|
+
const t = new Ds(new D(), i);
|
|
9953
9955
|
return function(s) {
|
|
9954
9956
|
return t.center.copy(s), e.filter((r) => vo(t, r));
|
|
9955
9957
|
};
|
|
9956
9958
|
}
|
|
9957
|
-
function
|
|
9959
|
+
function qd(i, e) {
|
|
9958
9960
|
const t = i.length - 1, n = [];
|
|
9959
9961
|
for (let r = 0; r < t; r++) {
|
|
9960
9962
|
const a = i[r], o = i[r + 1], l = new ua(a, o);
|
|
9961
9963
|
n.push(l);
|
|
9962
9964
|
}
|
|
9963
|
-
const s = new
|
|
9965
|
+
const s = new Ds(new D(), e);
|
|
9964
9966
|
return function(a) {
|
|
9965
9967
|
return a.filter((o) => {
|
|
9966
|
-
const l =
|
|
9968
|
+
const l = pn(o), c = new D();
|
|
9967
9969
|
l.getCenter(c);
|
|
9968
9970
|
const u = n.filter((f) => {
|
|
9969
9971
|
const p = f.closestPointToPointParameter(c);
|
|
@@ -9987,9 +9989,9 @@ class xo extends ze {
|
|
|
9987
9989
|
const w = n ? {
|
|
9988
9990
|
transparent: !0,
|
|
9989
9991
|
...v,
|
|
9990
|
-
map:
|
|
9992
|
+
map: oi(n, g, t)
|
|
9991
9993
|
} : v;
|
|
9992
|
-
this.geometry = new
|
|
9994
|
+
this.geometry = new dn(r, a), this.material = c ? new Br(w) : new un(w), this.material.depthWrite = !this.material.transparent, this.image = n;
|
|
9993
9995
|
}
|
|
9994
9996
|
}
|
|
9995
9997
|
class wo extends ze {
|
|
@@ -9998,8 +10000,8 @@ class wo extends ze {
|
|
|
9998
10000
|
const { points: n, image: s, color: r, needLight: a, id: o, name: l, userData: c, level: u, visible: h, cache: d, ...f } = e, p = n.map((A) => new D(A.x, A.y, A.z)), g = s ? {
|
|
9999
10001
|
transparent: !0,
|
|
10000
10002
|
...f,
|
|
10001
|
-
map:
|
|
10002
|
-
} : f, v = a ? new
|
|
10003
|
+
map: oi(s, d ?? !0, t)
|
|
10004
|
+
} : f, v = a ? new Br(g) : new un(g), { geometry: w, position: S } = jd(p), b = { id: o, name: l, userData: c, level: u, visible: h };
|
|
10003
10005
|
super(b, w, v), this.position.copy(S), this.material = v, this.geometry = w, this.image = s;
|
|
10004
10006
|
}
|
|
10005
10007
|
}
|
|
@@ -10008,27 +10010,28 @@ const Zi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
10008
10010
|
BaseMesh: ze,
|
|
10009
10011
|
BaseObject3D: De,
|
|
10010
10012
|
Canvas3D: ds,
|
|
10011
|
-
Circle:
|
|
10012
|
-
Decal:
|
|
10013
|
+
Circle: ii,
|
|
10014
|
+
Decal: Dr,
|
|
10013
10015
|
DecalUVMapType: Lt,
|
|
10014
10016
|
Ground: uo,
|
|
10015
10017
|
Group: Yt,
|
|
10016
|
-
Icon:
|
|
10018
|
+
Icon: Tr,
|
|
10017
10019
|
Line: co,
|
|
10018
10020
|
Link: lo,
|
|
10019
10021
|
Model: xt,
|
|
10020
10022
|
Node: oo,
|
|
10021
10023
|
PluginObject: ao,
|
|
10022
|
-
Poi:
|
|
10024
|
+
Poi: Bs,
|
|
10023
10025
|
PoiMesh: xo,
|
|
10024
10026
|
PoiNode: Ht,
|
|
10025
|
-
Point:
|
|
10027
|
+
Point: ri,
|
|
10026
10028
|
Polygon: ho,
|
|
10027
10029
|
PolygonPoiMesh: wo,
|
|
10028
10030
|
Topology: ht,
|
|
10029
|
-
|
|
10030
|
-
|
|
10031
|
-
|
|
10031
|
+
clearLinkTextureCache: fd,
|
|
10032
|
+
isPoiNode25D: ni,
|
|
10033
|
+
isPoiNode2D: ti,
|
|
10034
|
+
isPoiNode3D: si
|
|
10032
10035
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
10033
10036
|
function bo(i) {
|
|
10034
10037
|
const e = {};
|
|
@@ -10042,23 +10045,23 @@ function bo(i) {
|
|
|
10042
10045
|
e.curve = i;
|
|
10043
10046
|
return e;
|
|
10044
10047
|
}
|
|
10045
|
-
function
|
|
10048
|
+
function Kd(i, e, t, n) {
|
|
10046
10049
|
const s = n ? cn(n, !1) : null, r = bo(e), { clip: a } = zh({ ...s, ...r, target: i }), o = t.playModelAnimation(i, a), { points: l } = r;
|
|
10047
10050
|
return l ? (o.enableKeyframeEvent = !1, o.points = l) : o.enablePointEvent = !1, o;
|
|
10048
10051
|
}
|
|
10049
|
-
function
|
|
10052
|
+
function Qd(i, e, t, n) {
|
|
10050
10053
|
const s = n ? cn(n, !1) : null, r = bo(e), a = Gh({ ...s, ...r, target: i }), { model: o, clip: l } = a, c = t.playModelAnimation(o, l);
|
|
10051
10054
|
return { ...a, action: c };
|
|
10052
10055
|
}
|
|
10053
|
-
function
|
|
10056
|
+
function Yd(i, e) {
|
|
10054
10057
|
const t = Ha({ ...e, target: i }), { model: n, skeleton: s } = t;
|
|
10055
10058
|
return { skeletalModel: n, skeleton: s };
|
|
10056
10059
|
}
|
|
10057
|
-
function
|
|
10060
|
+
function _d(i, e, t, n) {
|
|
10058
10061
|
const s = Ka({ ...n, target: i, skeleton: e });
|
|
10059
10062
|
return t.playModelAnimation(e, s);
|
|
10060
10063
|
}
|
|
10061
|
-
const
|
|
10064
|
+
const Xd = () => ({
|
|
10062
10065
|
// window
|
|
10063
10066
|
windowResize: new ae.Signal(),
|
|
10064
10067
|
cameraObjectChange: new ae.Signal(),
|
|
@@ -10121,7 +10124,7 @@ const _d = () => ({
|
|
|
10121
10124
|
// Properties changed
|
|
10122
10125
|
propertiesChanged: new ae.Signal()
|
|
10123
10126
|
});
|
|
10124
|
-
class
|
|
10127
|
+
class Zd {
|
|
10125
10128
|
objects = /* @__PURE__ */ new Map();
|
|
10126
10129
|
classified = {
|
|
10127
10130
|
Group: /* @__PURE__ */ new Set(),
|
|
@@ -10170,7 +10173,7 @@ class mt {
|
|
|
10170
10173
|
}), this.viewport.signals.objectChanged.dispatch();
|
|
10171
10174
|
}
|
|
10172
10175
|
}
|
|
10173
|
-
class
|
|
10176
|
+
class Jd extends mt {
|
|
10174
10177
|
constructor(e, t) {
|
|
10175
10178
|
super(et.Light, e, t.classified.Light), this.viewport = e, this.cache = t, Lc.init();
|
|
10176
10179
|
}
|
|
@@ -10298,7 +10301,7 @@ class Zd extends mt {
|
|
|
10298
10301
|
openShadow: l = !1,
|
|
10299
10302
|
shadowAutoUpdate: c = !1,
|
|
10300
10303
|
mapSize: u = 4096
|
|
10301
|
-
} = e, h = new
|
|
10304
|
+
} = e, h = new pr(s, r, a);
|
|
10302
10305
|
return h.name = n, h.userData.sid = t, h.userData.stype = "Light", h.position.set(o.x, o.y, o.z), h.castShadow = l, l && (h.shadow.bias = -5e-3, h.shadow.camera.far = a, h.shadow.autoUpdate = c, h.shadow.needsUpdate = !c, h.shadow.mapSize.width = u, h.shadow.mapSize.height = u, h.shadow.camera.updateProjectionMatrix()), this.viewport.scener.addObject(h, this.scene), h;
|
|
10303
10306
|
}
|
|
10304
10307
|
setPointLight(e, t) {
|
|
@@ -10350,12 +10353,12 @@ class Zd extends mt {
|
|
|
10350
10353
|
}
|
|
10351
10354
|
}
|
|
10352
10355
|
let de, Pe, Re;
|
|
10353
|
-
class
|
|
10356
|
+
class $d extends ms {
|
|
10354
10357
|
constructor(e) {
|
|
10355
10358
|
super(e);
|
|
10356
10359
|
}
|
|
10357
10360
|
load(e, t, n, s) {
|
|
10358
|
-
const r = this, a = r.path === "" ? Jl.extractUrlBase(e) : r.path, o = new
|
|
10361
|
+
const r = this, a = r.path === "" ? Jl.extractUrlBase(e) : r.path, o = new Or(this.manager);
|
|
10359
10362
|
o.setPath(r.path), o.setResponseType("arraybuffer"), o.setRequestHeader(r.requestHeader), o.setWithCredentials(r.withCredentials), o.load(e, function(l) {
|
|
10360
10363
|
try {
|
|
10361
10364
|
t(r.parse(l, a));
|
|
@@ -10365,27 +10368,27 @@ class Jd extends ms {
|
|
|
10365
10368
|
}, n, s);
|
|
10366
10369
|
}
|
|
10367
10370
|
parse(e, t) {
|
|
10368
|
-
if (
|
|
10369
|
-
de = new
|
|
10371
|
+
if (ip(e))
|
|
10372
|
+
de = new rp().parse(e);
|
|
10370
10373
|
else {
|
|
10371
10374
|
const s = Po(e);
|
|
10372
|
-
if (!
|
|
10375
|
+
if (!ap(s))
|
|
10373
10376
|
throw new Error("THREE.FBXLoader: Unknown format.");
|
|
10374
10377
|
if ($i(s) < 7e3)
|
|
10375
10378
|
throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + $i(s));
|
|
10376
|
-
de = new
|
|
10379
|
+
de = new sp().parse(s);
|
|
10377
10380
|
}
|
|
10378
10381
|
const n = new ha(this.manager).setPath(this.resourcePath || t).setCrossOrigin(this.crossOrigin);
|
|
10379
|
-
return new
|
|
10382
|
+
return new ep(n, this.manager).parse(de);
|
|
10380
10383
|
}
|
|
10381
10384
|
}
|
|
10382
|
-
class
|
|
10385
|
+
class ep {
|
|
10383
10386
|
constructor(e, t) {
|
|
10384
10387
|
this.textureLoader = e, this.manager = t;
|
|
10385
10388
|
}
|
|
10386
10389
|
parse() {
|
|
10387
10390
|
Pe = this.parseConnections();
|
|
10388
|
-
const e = this.parseImages(), t = this.parseTextures(e), n = this.parseMaterials(t), s = this.parseDeformers(), r = new
|
|
10391
|
+
const e = this.parseImages(), t = this.parseTextures(e), n = this.parseMaterials(t), s = this.parseDeformers(), r = new tp().parse(s);
|
|
10389
10392
|
return this.parseScene(s, r, n), Re;
|
|
10390
10393
|
}
|
|
10391
10394
|
// Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )
|
|
@@ -10482,7 +10485,7 @@ class $d {
|
|
|
10482
10485
|
const n = this.loadTexture(e, t);
|
|
10483
10486
|
n.ID = e.id, n.name = e.attrName;
|
|
10484
10487
|
const s = e.WrapModeU, r = e.WrapModeV, a = s !== void 0 ? s.value : 0, o = r !== void 0 ? r.value : 0;
|
|
10485
|
-
if (n.wrapS = a === 0 ? ft :
|
|
10488
|
+
if (n.wrapS = a === 0 ? ft : pi, n.wrapT = o === 0 ? ft : pi, "Scaling" in e) {
|
|
10486
10489
|
const l = e.Scaling.value;
|
|
10487
10490
|
n.repeat.x = l[0], n.repeat.y = l[1];
|
|
10488
10491
|
}
|
|
@@ -10567,7 +10570,7 @@ class $d {
|
|
|
10567
10570
|
s.normalMap = r.getTexture(t, a.ID);
|
|
10568
10571
|
break;
|
|
10569
10572
|
case "ReflectionColor":
|
|
10570
|
-
s.envMap = r.getTexture(t, a.ID), s.envMap !== void 0 && (s.envMap.mapping =
|
|
10573
|
+
s.envMap = r.getTexture(t, a.ID), s.envMap !== void 0 && (s.envMap.mapping = cr, s.envMap.colorSpace = dt);
|
|
10571
10574
|
break;
|
|
10572
10575
|
case "SpecularColor":
|
|
10573
10576
|
s.specularMap = r.getTexture(t, a.ID), s.specularMap !== void 0 && (s.specularMap.colorSpace = dt);
|
|
@@ -10668,7 +10671,7 @@ class $d {
|
|
|
10668
10671
|
l.applyMatrix4(c), l.updateWorldMatrix();
|
|
10669
10672
|
}
|
|
10670
10673
|
});
|
|
10671
|
-
const o = new
|
|
10674
|
+
const o = new np().parse();
|
|
10672
10675
|
Re.children.length === 1 && Re.children[0].isGroup && (Re.children[0].animations = o, Re = Re.children[0]), Re.animations = o;
|
|
10673
10676
|
}
|
|
10674
10677
|
// parse nodes in FBXTree.Objects.Model
|
|
@@ -10742,7 +10745,7 @@ class $d {
|
|
|
10742
10745
|
const h = n.FocalLength ? n.FocalLength.value : null;
|
|
10743
10746
|
switch (s) {
|
|
10744
10747
|
case 0:
|
|
10745
|
-
t = new
|
|
10748
|
+
t = new Is(u, c, r, a), h !== null && t.setFocalLength(h);
|
|
10746
10749
|
break;
|
|
10747
10750
|
case 1:
|
|
10748
10751
|
t = new Qt(-o / 2, o / 2, l / 2, -l / 2, r, a);
|
|
@@ -10774,7 +10777,7 @@ class $d {
|
|
|
10774
10777
|
const l = 1;
|
|
10775
10778
|
switch (s) {
|
|
10776
10779
|
case 0:
|
|
10777
|
-
t = new
|
|
10780
|
+
t = new pr(r, a, o, l);
|
|
10778
10781
|
break;
|
|
10779
10782
|
case 1:
|
|
10780
10783
|
t = new ya(r, a);
|
|
@@ -10786,7 +10789,7 @@ class $d {
|
|
|
10786
10789
|
n.OuterAngle !== void 0 && (u = Oe.degToRad(n.OuterAngle.value), u = Math.max(u, 1)), t = new va(r, a, o, c, u, l);
|
|
10787
10790
|
break;
|
|
10788
10791
|
default:
|
|
10789
|
-
console.warn("THREE.FBXLoader: Unknown light type " + n.LightType.value + ", defaulting to a PointLight."), t = new
|
|
10792
|
+
console.warn("THREE.FBXLoader: Unknown light type " + n.LightType.value + ", defaulting to a PointLight."), t = new pr(r, a);
|
|
10790
10793
|
break;
|
|
10791
10794
|
}
|
|
10792
10795
|
n.CastShadows !== void 0 && n.CastShadows.value === 1 && (t.castShadow = !0);
|
|
@@ -10803,12 +10806,12 @@ class $d {
|
|
|
10803
10806
|
color: 13421772
|
|
10804
10807
|
}), o.push(a)), "color" in r.attributes && o.forEach(function(l) {
|
|
10805
10808
|
l.vertexColors = !0;
|
|
10806
|
-
}), r.FBX_Deformer ? (s = new
|
|
10809
|
+
}), r.FBX_Deformer ? (s = new Fr(r, a), s.normalizeSkinWeights()) : (s = new we(r, a), s.castShadow = !0, s.receiveShadow = !0), s;
|
|
10807
10810
|
}
|
|
10808
10811
|
createCurve(e, t) {
|
|
10809
10812
|
const n = e.children.reduce(function(r, a) {
|
|
10810
10813
|
return t.has(a.ID) && (r = t.get(a.ID)), r;
|
|
10811
|
-
}, null), s = new
|
|
10814
|
+
}, null), s = new An({
|
|
10812
10815
|
name: ms.DEFAULT_MATERIAL_NAME,
|
|
10813
10816
|
color: 3342591,
|
|
10814
10817
|
linewidth: 1
|
|
@@ -10839,7 +10842,7 @@ class $d {
|
|
|
10839
10842
|
if (t.has(l.ID)) {
|
|
10840
10843
|
const c = l.ID;
|
|
10841
10844
|
Pe.get(c).parents.forEach(function(h) {
|
|
10842
|
-
n.has(h.ID) && n.get(h.ID).bind(new
|
|
10845
|
+
n.has(h.ID) && n.get(h.ID).bind(new Lr(a.bones), s[h.ID]);
|
|
10843
10846
|
});
|
|
10844
10847
|
}
|
|
10845
10848
|
});
|
|
@@ -10870,7 +10873,7 @@ class $d {
|
|
|
10870
10873
|
}
|
|
10871
10874
|
}
|
|
10872
10875
|
}
|
|
10873
|
-
class
|
|
10876
|
+
class tp {
|
|
10874
10877
|
constructor() {
|
|
10875
10878
|
this.negativeMaterialIndices = !1;
|
|
10876
10879
|
}
|
|
@@ -11145,7 +11148,7 @@ class ep {
|
|
|
11145
11148
|
return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s", e.Order, e.id), new Ce();
|
|
11146
11149
|
const n = t - 1, s = e.KnotVector.a, r = [], a = e.Points.a;
|
|
11147
11150
|
for (let h = 0, d = a.length; h < d; h += 4)
|
|
11148
|
-
r.push(new
|
|
11151
|
+
r.push(new Ts().fromArray(a, h));
|
|
11149
11152
|
let o, l;
|
|
11150
11153
|
if (e.Form === "Closed")
|
|
11151
11154
|
r.push(r[0]);
|
|
@@ -11158,7 +11161,7 @@ class ep {
|
|
|
11158
11161
|
return new Ce().setFromPoints(u);
|
|
11159
11162
|
}
|
|
11160
11163
|
}
|
|
11161
|
-
class
|
|
11164
|
+
class np {
|
|
11162
11165
|
// take raw animation clips and turn them into three.js animation clips
|
|
11163
11166
|
parse() {
|
|
11164
11167
|
const e = [], t = this.parseClips();
|
|
@@ -11202,7 +11205,7 @@ class tp {
|
|
|
11202
11205
|
for (const n in t) {
|
|
11203
11206
|
const s = {
|
|
11204
11207
|
id: t[n].id,
|
|
11205
|
-
times: t[n].KeyTime.a.map(
|
|
11208
|
+
times: t[n].KeyTime.a.map(op),
|
|
11206
11209
|
values: t[n].KeyValueFloat.a
|
|
11207
11210
|
}, r = Pe.get(s.id);
|
|
11208
11211
|
if (r !== void 0) {
|
|
@@ -11410,7 +11413,7 @@ class tp {
|
|
|
11410
11413
|
return [r, a];
|
|
11411
11414
|
}
|
|
11412
11415
|
}
|
|
11413
|
-
class
|
|
11416
|
+
class sp {
|
|
11414
11417
|
getPrevNode() {
|
|
11415
11418
|
return this.nodeStack[this.currentIndent - 2];
|
|
11416
11419
|
}
|
|
@@ -11464,13 +11467,13 @@ class np {
|
|
|
11464
11467
|
let h = r.split(",").slice(3);
|
|
11465
11468
|
h = h.map(function(d) {
|
|
11466
11469
|
return d.trim().replace(/^"/, "");
|
|
11467
|
-
}), s = "connections", r = [c, u],
|
|
11470
|
+
}), s = "connections", r = [c, u], cp(r, h), a[s] === void 0 && (a[s] = []);
|
|
11468
11471
|
}
|
|
11469
|
-
s === "Node" && (a.id = r), s in a && Array.isArray(a[s]) ? a[s].push(r) : s !== "a" ? a[s] = r : a.a = r, this.setCurrentProp(a, s), s === "a" && r.slice(-1) !== "," && (a.a =
|
|
11472
|
+
s === "Node" && (a.id = r), s in a && Array.isArray(a[s]) ? a[s].push(r) : s !== "a" ? a[s] = r : a.a = r, this.setCurrentProp(a, s), s === "a" && r.slice(-1) !== "," && (a.a = ar(r));
|
|
11470
11473
|
}
|
|
11471
11474
|
parseNodePropertyContinued(e) {
|
|
11472
11475
|
const t = this.getCurrentNode();
|
|
11473
|
-
t.a += e, e.slice(-1) !== "," && (t.a =
|
|
11476
|
+
t.a += e, e.slice(-1) !== "," && (t.a = ar(t.a));
|
|
11474
11477
|
}
|
|
11475
11478
|
// parse "Property70"
|
|
11476
11479
|
parseNodeSpecialProperty(e, t, n) {
|
|
@@ -11494,7 +11497,7 @@ class np {
|
|
|
11494
11497
|
case "Lcl_Translation":
|
|
11495
11498
|
case "Lcl_Rotation":
|
|
11496
11499
|
case "Lcl_Scaling":
|
|
11497
|
-
c =
|
|
11500
|
+
c = ar(c);
|
|
11498
11501
|
break;
|
|
11499
11502
|
}
|
|
11500
11503
|
this.getPrevNode()[r] = {
|
|
@@ -11505,7 +11508,7 @@ class np {
|
|
|
11505
11508
|
}, this.setCurrentProp(this.getPrevNode(), r);
|
|
11506
11509
|
}
|
|
11507
11510
|
}
|
|
11508
|
-
class
|
|
11511
|
+
class rp {
|
|
11509
11512
|
parse(e) {
|
|
11510
11513
|
const t = new Ji(e);
|
|
11511
11514
|
t.skip(23);
|
|
@@ -11734,11 +11737,11 @@ class So {
|
|
|
11734
11737
|
this[e] = t;
|
|
11735
11738
|
}
|
|
11736
11739
|
}
|
|
11737
|
-
function
|
|
11740
|
+
function ip(i) {
|
|
11738
11741
|
const e = "Kaydara FBX Binary \0";
|
|
11739
11742
|
return i.byteLength >= e.length && e === Po(i, 0, e.length);
|
|
11740
11743
|
}
|
|
11741
|
-
function
|
|
11744
|
+
function ap(i) {
|
|
11742
11745
|
const e = ["K", "a", "y", "d", "a", "r", "a", "\\", "F", "B", "X", "\\", "B", "i", "n", "a", "r", "y", "\\", "\\"];
|
|
11743
11746
|
let t = 0;
|
|
11744
11747
|
function n(s) {
|
|
@@ -11756,10 +11759,10 @@ function $i(i) {
|
|
|
11756
11759
|
return parseInt(t[1]);
|
|
11757
11760
|
throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.");
|
|
11758
11761
|
}
|
|
11759
|
-
function
|
|
11762
|
+
function op(i) {
|
|
11760
11763
|
return i / 46186158e3;
|
|
11761
11764
|
}
|
|
11762
|
-
const
|
|
11765
|
+
const lp = [];
|
|
11763
11766
|
function as(i, e, t, n) {
|
|
11764
11767
|
let s;
|
|
11765
11768
|
switch (n.mappingType) {
|
|
@@ -11780,22 +11783,22 @@ function as(i, e, t, n) {
|
|
|
11780
11783
|
}
|
|
11781
11784
|
n.referenceType === "IndexToDirect" && (s = n.indices[s]);
|
|
11782
11785
|
const r = s * n.dataSize, a = r + n.dataSize;
|
|
11783
|
-
return
|
|
11786
|
+
return hp(lp, n.buffer, r, a);
|
|
11784
11787
|
}
|
|
11785
|
-
const
|
|
11788
|
+
const ir = new pe(), rn = new D();
|
|
11786
11789
|
function Mo(i) {
|
|
11787
11790
|
const e = new Q(), t = new Q(), n = new Q(), s = new Q(), r = new Q(), a = new Q(), o = new Q(), l = new Q(), c = new Q(), u = new Q(), h = new Q(), d = new Q(), f = i.inheritType ? i.inheritType : 0;
|
|
11788
11791
|
if (i.translation && e.setPosition(rn.fromArray(i.translation)), i.preRotation) {
|
|
11789
11792
|
const V = i.preRotation.map(Oe.degToRad);
|
|
11790
|
-
V.push(i.eulerOrder || pe.DEFAULT_ORDER), t.makeRotationFromEuler(
|
|
11793
|
+
V.push(i.eulerOrder || pe.DEFAULT_ORDER), t.makeRotationFromEuler(ir.fromArray(V));
|
|
11791
11794
|
}
|
|
11792
11795
|
if (i.rotation) {
|
|
11793
11796
|
const V = i.rotation.map(Oe.degToRad);
|
|
11794
|
-
V.push(i.eulerOrder || pe.DEFAULT_ORDER), n.makeRotationFromEuler(
|
|
11797
|
+
V.push(i.eulerOrder || pe.DEFAULT_ORDER), n.makeRotationFromEuler(ir.fromArray(V));
|
|
11795
11798
|
}
|
|
11796
11799
|
if (i.postRotation) {
|
|
11797
11800
|
const V = i.postRotation.map(Oe.degToRad);
|
|
11798
|
-
V.push(i.eulerOrder || pe.DEFAULT_ORDER), s.makeRotationFromEuler(
|
|
11801
|
+
V.push(i.eulerOrder || pe.DEFAULT_ORDER), s.makeRotationFromEuler(ir.fromArray(V)), s.invert();
|
|
11799
11802
|
}
|
|
11800
11803
|
i.scale && r.scale(rn.fromArray(i.scale)), i.scalingOffset && o.setPosition(rn.fromArray(i.scalingOffset)), i.scalingPivot && a.setPosition(rn.fromArray(i.scalingPivot)), i.rotationOffset && l.setPosition(rn.fromArray(i.rotationOffset)), i.rotationPivot && c.setPosition(rn.fromArray(i.rotationPivot)), i.parentMatrixWorld && (h.copy(i.parentMatrix), u.copy(i.parentMatrixWorld));
|
|
11801
11804
|
const p = t.clone().multiply(n).multiply(s), g = new Q();
|
|
@@ -11835,7 +11838,7 @@ function To(i) {
|
|
|
11835
11838
|
];
|
|
11836
11839
|
return i === 6 ? (console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."), e[0]) : e[i];
|
|
11837
11840
|
}
|
|
11838
|
-
function
|
|
11841
|
+
function ar(i) {
|
|
11839
11842
|
return i.split(",").map(function(t) {
|
|
11840
11843
|
return parseFloat(t);
|
|
11841
11844
|
});
|
|
@@ -11843,17 +11846,17 @@ function ir(i) {
|
|
|
11843
11846
|
function Po(i, e, t) {
|
|
11844
11847
|
return e === void 0 && (e = 0), t === void 0 && (t = i.byteLength), new TextDecoder().decode(new Uint8Array(i, e, t));
|
|
11845
11848
|
}
|
|
11846
|
-
function
|
|
11849
|
+
function cp(i, e) {
|
|
11847
11850
|
for (let t = 0, n = i.length, s = e.length; t < s; t++, n++)
|
|
11848
11851
|
i[n] = e[t];
|
|
11849
11852
|
}
|
|
11850
|
-
function
|
|
11853
|
+
function hp(i, e, t, n) {
|
|
11851
11854
|
for (let s = t, r = 0; s < n; s++, r++)
|
|
11852
11855
|
i[r] = e[s];
|
|
11853
11856
|
return i;
|
|
11854
11857
|
}
|
|
11855
|
-
const
|
|
11856
|
-
function
|
|
11858
|
+
const up = /^[og]\s*(.+)?/, dp = /^mtllib /, pp = /^usemtl /, fp = /^usemap /, ea = /\s+/, ta = new D(), or = new D(), na = new D(), sa = new D(), Ye = new D(), os = new me();
|
|
11859
|
+
function mp() {
|
|
11857
11860
|
const i = {
|
|
11858
11861
|
objects: [],
|
|
11859
11862
|
object: {},
|
|
@@ -11962,7 +11965,7 @@ function fp() {
|
|
|
11962
11965
|
},
|
|
11963
11966
|
addFaceNormal: function(e, t, n) {
|
|
11964
11967
|
const s = this.vertices, r = this.object.geometry.normals;
|
|
11965
|
-
ta.fromArray(s, e),
|
|
11968
|
+
ta.fromArray(s, e), or.fromArray(s, t), na.fromArray(s, n), Ye.subVectors(na, or), sa.subVectors(ta, or), Ye.cross(sa), Ye.normalize(), r.push(Ye.x, Ye.y, Ye.z), r.push(Ye.x, Ye.y, Ye.z), r.push(Ye.x, Ye.y, Ye.z);
|
|
11966
11969
|
},
|
|
11967
11970
|
addColor: function(e, t, n) {
|
|
11968
11971
|
const s = this.colors, r = this.object.geometry.colors;
|
|
@@ -12013,12 +12016,12 @@ function fp() {
|
|
|
12013
12016
|
};
|
|
12014
12017
|
return i.startObject("", !1), i;
|
|
12015
12018
|
}
|
|
12016
|
-
class
|
|
12019
|
+
class gp extends ms {
|
|
12017
12020
|
constructor(e) {
|
|
12018
12021
|
super(e), this.materials = null;
|
|
12019
12022
|
}
|
|
12020
12023
|
load(e, t, n, s) {
|
|
12021
|
-
const r = this, a = new
|
|
12024
|
+
const r = this, a = new Or(this.manager);
|
|
12022
12025
|
a.setPath(this.path), a.setRequestHeader(this.requestHeader), a.setWithCredentials(this.withCredentials), a.load(e, function(o) {
|
|
12023
12026
|
try {
|
|
12024
12027
|
t(r.parse(o));
|
|
@@ -12031,7 +12034,7 @@ class mp extends ms {
|
|
|
12031
12034
|
return this.materials = e, this;
|
|
12032
12035
|
}
|
|
12033
12036
|
parse(e) {
|
|
12034
|
-
const t = new
|
|
12037
|
+
const t = new mp();
|
|
12035
12038
|
e.indexOf(`\r
|
|
12036
12039
|
`) !== -1 && (e = e.replace(/\r\n/g, `
|
|
12037
12040
|
`)), e.indexOf(`\\
|
|
@@ -12111,14 +12114,14 @@ class mp extends ms {
|
|
|
12111
12114
|
} else if (u === "p") {
|
|
12112
12115
|
const d = c.slice(1).trim().split(" ");
|
|
12113
12116
|
t.addPointGeometry(d);
|
|
12114
|
-
} else if ((s =
|
|
12117
|
+
} else if ((s = up.exec(c)) !== null) {
|
|
12115
12118
|
const h = (" " + s[0].slice(1).trim()).slice(1);
|
|
12116
12119
|
t.startObject(h);
|
|
12117
|
-
} else if (
|
|
12120
|
+
} else if (pp.test(c))
|
|
12118
12121
|
t.object.startMaterial(c.substring(7).trim(), t.materialLibraries);
|
|
12119
|
-
else if (
|
|
12122
|
+
else if (dp.test(c))
|
|
12120
12123
|
t.materialLibraries.push(c.substring(7).trim());
|
|
12121
|
-
else if (
|
|
12124
|
+
else if (fp.test(c))
|
|
12122
12125
|
console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
|
|
12123
12126
|
else if (u === "s") {
|
|
12124
12127
|
if (s = c.split(" "), s.length > 1) {
|
|
@@ -12147,15 +12150,15 @@ class mp extends ms {
|
|
|
12147
12150
|
const A = h[S], I = A.name + "_" + A.smooth + "_" + p;
|
|
12148
12151
|
let C = t.materials[I];
|
|
12149
12152
|
if (this.materials !== null) {
|
|
12150
|
-
if (C = this.materials.create(A.name), d && C && !(C instanceof
|
|
12151
|
-
const O = new
|
|
12152
|
-
|
|
12153
|
+
if (C = this.materials.create(A.name), d && C && !(C instanceof An)) {
|
|
12154
|
+
const O = new An();
|
|
12155
|
+
fi.prototype.copy.call(O, C), O.color.copy(C.color), C = O;
|
|
12153
12156
|
} else if (f && C && !(C instanceof Hn)) {
|
|
12154
12157
|
const O = new Hn({ size: 10, sizeAttenuation: !1 });
|
|
12155
|
-
|
|
12158
|
+
fi.prototype.copy.call(O, C), O.color.copy(C.color), O.map = C.map, C = O;
|
|
12156
12159
|
}
|
|
12157
12160
|
}
|
|
12158
|
-
C === void 0 && (d ? C = new
|
|
12161
|
+
C === void 0 && (d ? C = new An() : f ? C = new Hn({ size: 1, sizeAttenuation: !1 }) : C = new Ue(), C.name = A.name, C.flatShading = !A.smooth, C.vertexColors = p, t.materials[I] = C), v.push(C);
|
|
12159
12162
|
}
|
|
12160
12163
|
let w;
|
|
12161
12164
|
if (v.length > 1) {
|
|
@@ -12163,25 +12166,25 @@ class mp extends ms {
|
|
|
12163
12166
|
const A = h[S];
|
|
12164
12167
|
g.addGroup(A.groupStart, A.groupCount, S);
|
|
12165
12168
|
}
|
|
12166
|
-
d ? w = new
|
|
12169
|
+
d ? w = new hr(g, v) : f ? w = new js(g, v) : w = new we(g, v);
|
|
12167
12170
|
} else
|
|
12168
|
-
d ? w = new
|
|
12171
|
+
d ? w = new hr(g, v[0]) : f ? w = new js(g, v[0]) : w = new we(g, v[0]);
|
|
12169
12172
|
w.name = c.name, r.add(w);
|
|
12170
12173
|
}
|
|
12171
12174
|
else if (t.vertices.length > 0) {
|
|
12172
12175
|
const o = new Hn({ size: 1, sizeAttenuation: !1 }), l = new Ce();
|
|
12173
12176
|
l.setAttribute("position", new ge(t.vertices, 3)), t.colors.length > 0 && t.colors[0] !== void 0 && (l.setAttribute("color", new ge(t.colors, 3)), o.vertexColors = !0);
|
|
12174
|
-
const c = new
|
|
12177
|
+
const c = new js(l, o);
|
|
12175
12178
|
r.add(c);
|
|
12176
12179
|
}
|
|
12177
12180
|
return r;
|
|
12178
12181
|
}
|
|
12179
12182
|
}
|
|
12180
|
-
const
|
|
12183
|
+
const lr = /* @__PURE__ */ new Map(), Cr = (i) => i?.toLowerCase().endsWith(".png") ?? !1, yp = new TextDecoder(), ra = (i, e, t) => {
|
|
12181
12184
|
const n = i.buffer.slice(t, t + e);
|
|
12182
|
-
return
|
|
12183
|
-
},
|
|
12184
|
-
function
|
|
12185
|
+
return yp.decode(n).replace("\\", "/");
|
|
12186
|
+
}, vp = /^\w+:\/\//;
|
|
12187
|
+
function xp(i) {
|
|
12185
12188
|
let e = i.match(/(^[./]*)\/(.*)$/);
|
|
12186
12189
|
return e ? e.shift() : e = [i], e;
|
|
12187
12190
|
}
|
|
@@ -12190,10 +12193,10 @@ const ia = (i, e) => {
|
|
|
12190
12193
|
const n = e.lastIndexOf("/");
|
|
12191
12194
|
n !== -1 && (t = e.substring(n + 1));
|
|
12192
12195
|
let s = [];
|
|
12193
|
-
const r = "http://guo.bin.yong", a = !
|
|
12196
|
+
const r = "http://guo.bin.yong", a = !vp.test(i);
|
|
12194
12197
|
let o;
|
|
12195
12198
|
if (a) {
|
|
12196
|
-
s =
|
|
12199
|
+
s = xp(i);
|
|
12197
12200
|
const h = s.pop();
|
|
12198
12201
|
o = new URL(h, r);
|
|
12199
12202
|
} else
|
|
@@ -12211,16 +12214,16 @@ const ia = (i, e) => {
|
|
|
12211
12214
|
u = new URL(`./Maps/${t}`, h).href;
|
|
12212
12215
|
}
|
|
12213
12216
|
return a && (u = u.substring(r.length + 1)), u = u.replaceAll("#", "%23"), u.length > 0 && s.push(u), u = s.join("/"), u;
|
|
12214
|
-
},
|
|
12215
|
-
if (
|
|
12216
|
-
const n =
|
|
12217
|
+
}, Ar = (i, e) => {
|
|
12218
|
+
if (lr.has(e)) {
|
|
12219
|
+
const n = lr.get(e);
|
|
12217
12220
|
i.map = n, i.needsUpdate = !0, Se.needsUpdate = !0;
|
|
12218
12221
|
}
|
|
12219
12222
|
const t = new qt();
|
|
12220
|
-
t.colorSpace = dt, t.wrapS = ft, t.wrapT = ft, t.flipY = !1, t.anisotropy = 16, t.mipmaps = [], t.generateMipmaps = !0,
|
|
12221
|
-
t.image = n, t.needsUpdate = !0,
|
|
12223
|
+
t.colorSpace = dt, t.wrapS = ft, t.wrapT = ft, t.flipY = !1, t.anisotropy = 16, t.mipmaps = [], t.generateMipmaps = !0, As.load(e, (n) => {
|
|
12224
|
+
t.image = n, t.needsUpdate = !0, lr.set(e, t), i.map = t, i.needsUpdate = !0, Se.needsUpdate = !0;
|
|
12222
12225
|
});
|
|
12223
|
-
},
|
|
12226
|
+
}, Er = (i, e, t) => {
|
|
12224
12227
|
const [n, s, r, a, o] = e, l = t || a < 1;
|
|
12225
12228
|
return new Ue({
|
|
12226
12229
|
name: i,
|
|
@@ -12230,16 +12233,16 @@ const ia = (i, e) => {
|
|
|
12230
12233
|
alphaTest: 0.01,
|
|
12231
12234
|
side: o
|
|
12232
12235
|
});
|
|
12233
|
-
},
|
|
12234
|
-
function
|
|
12235
|
-
let e =
|
|
12236
|
+
}, wp = 8, bp = 130, aa = 66, Sp = "SBK-----", Mp = "SBM-----", Tp = new TextDecoder(), Pp = new TextEncoder();
|
|
12237
|
+
function Ip(i) {
|
|
12238
|
+
let e = wp;
|
|
12236
12239
|
const t = new Uint8Array(i, 0, e);
|
|
12237
|
-
if (
|
|
12240
|
+
if (Tp.decode(t) !== Sp)
|
|
12238
12241
|
return i;
|
|
12239
|
-
e +=
|
|
12242
|
+
e += bp;
|
|
12240
12243
|
const s = new Uint8Array(i, 0, e);
|
|
12241
12244
|
if (s[40] === 1) {
|
|
12242
|
-
const a =
|
|
12245
|
+
const a = Pp.encode(Mp), o = new Uint8Array([s[41]]), l = Dp(s), c = Cp(l);
|
|
12243
12246
|
let u = aa % c.length;
|
|
12244
12247
|
const h = e + aa, d = new Uint8Array(i, h), f = new Uint8Array(d.length);
|
|
12245
12248
|
for (let g = 0; g < d.length; g++)
|
|
@@ -12248,16 +12251,16 @@ function Pp(i) {
|
|
|
12248
12251
|
return p.set(a), p.set(o, a.length), p.set(f, a.length + o.length), p.buffer;
|
|
12249
12252
|
}
|
|
12250
12253
|
}
|
|
12251
|
-
function
|
|
12254
|
+
function Dp(i) {
|
|
12252
12255
|
const e = new Uint8Array(128);
|
|
12253
12256
|
return e.set(i.slice(42, 74), 0), e.set(i.slice(74, 138), 32), e.set(i.slice(8, 40), 96), e;
|
|
12254
12257
|
}
|
|
12255
|
-
function
|
|
12258
|
+
function Cp(i) {
|
|
12256
12259
|
const e = new Uint8Array(64);
|
|
12257
12260
|
return e.set(i.slice(0, 8), 0), e.set(i.slice(24, 32), 8), e.set(i.slice(40, 56), 16), e.set(i.slice(64, 88), 32), e.set(i.slice(96, 104), 56), e;
|
|
12258
12261
|
}
|
|
12259
|
-
const
|
|
12260
|
-
class
|
|
12262
|
+
const Ap = new TextDecoder();
|
|
12263
|
+
class Ep {
|
|
12261
12264
|
materials;
|
|
12262
12265
|
sbmInfo;
|
|
12263
12266
|
isLE;
|
|
@@ -12271,7 +12274,7 @@ class Ap {
|
|
|
12271
12274
|
* @param onProgress 模型加载进度回填函数
|
|
12272
12275
|
*/
|
|
12273
12276
|
parseBuffer(e, t, n) {
|
|
12274
|
-
const s =
|
|
12277
|
+
const s = Ip(e);
|
|
12275
12278
|
s && (e = s), this.sbmInfo = t;
|
|
12276
12279
|
const r = new DataView(e);
|
|
12277
12280
|
let a = 0;
|
|
@@ -12312,17 +12315,17 @@ class Ap {
|
|
|
12312
12315
|
const S = e.getFloat32(t, this.isLE);
|
|
12313
12316
|
t += 4, e.getFloat32(t, this.isLE), t += 4, e.getFloat32(t, this.isLE), t += 4, e.getFloat32(t, this.isLE), t += 4, e.getFloat32(t, this.isLE), t += 4;
|
|
12314
12317
|
let b = e.getUint8(t);
|
|
12315
|
-
t += 1, b === 0 ? b =
|
|
12318
|
+
t += 1, b === 0 ? b = mi : b === 1 ? b = gi : b === 2 && (b = Tt);
|
|
12316
12319
|
const A = e.getUint16(t, this.isLE);
|
|
12317
12320
|
t += 2;
|
|
12318
12321
|
const I = A > 0 ? ra(e, A, t) : "";
|
|
12319
12322
|
if (t += A, !this.materials.has(p)) {
|
|
12320
|
-
const C = [g, v, w, S, b], O =
|
|
12323
|
+
const C = [g, v, w, S, b], O = Er(p, C, Cr(I));
|
|
12321
12324
|
if (this.materials.set(p, O), u[p].materialInfo = C, I) {
|
|
12322
12325
|
const {
|
|
12323
12326
|
url: j
|
|
12324
12327
|
} = this.sbmInfo, G = ia(j, I);
|
|
12325
|
-
u[p].textureUrl = G,
|
|
12328
|
+
u[p].textureUrl = G, Ar(O, G);
|
|
12326
12329
|
}
|
|
12327
12330
|
}
|
|
12328
12331
|
}
|
|
@@ -12423,17 +12426,17 @@ class Ap {
|
|
|
12423
12426
|
const S = e.getFloat32(t, this.isLE);
|
|
12424
12427
|
t += 4, e.getFloat32(t, this.isLE), t += 4, e.getFloat32(t, this.isLE), t += 4, e.getFloat32(t, this.isLE), t += 4, e.getFloat32(t, this.isLE), t += 4;
|
|
12425
12428
|
let b = e.getUint8(t);
|
|
12426
|
-
t += 1, b === 0 ? b =
|
|
12429
|
+
t += 1, b === 0 ? b = mi : b === 1 ? b = gi : b === 2 && (b = Tt);
|
|
12427
12430
|
const A = e.getUint16(t, this.isLE);
|
|
12428
12431
|
t += 2;
|
|
12429
12432
|
const I = A > 0 ? ra(e, A, t) : "";
|
|
12430
12433
|
if (t += A, !this.materials.has(p)) {
|
|
12431
|
-
const C = [g, v, w, S, b], O =
|
|
12434
|
+
const C = [g, v, w, S, b], O = Er(p, C, Cr(I));
|
|
12432
12435
|
if (this.materials.set(p, O), u[p].materialInfo = C, I) {
|
|
12433
12436
|
const {
|
|
12434
12437
|
url: j
|
|
12435
12438
|
} = this.sbmInfo, G = ia(j, I);
|
|
12436
|
-
u[p].textureUrl = G,
|
|
12439
|
+
u[p].textureUrl = G, Ar(O, G);
|
|
12437
12440
|
}
|
|
12438
12441
|
}
|
|
12439
12442
|
}
|
|
@@ -12446,7 +12449,7 @@ class Ap {
|
|
|
12446
12449
|
let v = "";
|
|
12447
12450
|
if (g > 0) {
|
|
12448
12451
|
const K = new Uint8Array(e.buffer, t, g);
|
|
12449
|
-
v =
|
|
12452
|
+
v = Ap.decode(K), t += g;
|
|
12450
12453
|
}
|
|
12451
12454
|
const w = e.getUint16(t, this.isLE).toString();
|
|
12452
12455
|
t += 2, h[p] = {
|
|
@@ -12512,8 +12515,8 @@ class Ap {
|
|
|
12512
12515
|
return Promise.resolve({ model: a, caches: d });
|
|
12513
12516
|
}
|
|
12514
12517
|
}
|
|
12515
|
-
const
|
|
12516
|
-
class
|
|
12518
|
+
const Op = new TextDecoder();
|
|
12519
|
+
class Lp {
|
|
12517
12520
|
/**
|
|
12518
12521
|
* @todo onProgress
|
|
12519
12522
|
*/
|
|
@@ -12522,16 +12525,16 @@ class Op {
|
|
|
12522
12525
|
* @param sbmInfo
|
|
12523
12526
|
*/
|
|
12524
12527
|
parseBuffer(e, t) {
|
|
12525
|
-
switch (
|
|
12528
|
+
switch (Op.decode(e.slice(0, 8))) {
|
|
12526
12529
|
case "SBK-----":
|
|
12527
12530
|
case "SBM-----":
|
|
12528
|
-
return new
|
|
12531
|
+
return new Ep().parseBuffer(e, t);
|
|
12529
12532
|
default:
|
|
12530
12533
|
return Promise.reject(`In soonspacejs: sbm 资源模型(${t.url})格式或数据错误!`);
|
|
12531
12534
|
}
|
|
12532
12535
|
}
|
|
12533
12536
|
}
|
|
12534
|
-
class
|
|
12537
|
+
class Fp {
|
|
12535
12538
|
// material 缓存
|
|
12536
12539
|
materials = /* @__PURE__ */ new Map();
|
|
12537
12540
|
constructor() {
|
|
@@ -12559,8 +12562,8 @@ class Lp {
|
|
|
12559
12562
|
for (const [o, l] of Object.entries(r)) {
|
|
12560
12563
|
if (this.materials.has(o))
|
|
12561
12564
|
continue;
|
|
12562
|
-
const { textureUrl: c, materialInfo: u } = l, h =
|
|
12563
|
-
this.materials.set(o, h), c &&
|
|
12565
|
+
const { textureUrl: c, materialInfo: u } = l, h = Er(o, u, Cr(c));
|
|
12566
|
+
this.materials.set(o, h), c && Ar(h, c);
|
|
12564
12567
|
}
|
|
12565
12568
|
for (const [o, l] of Object.entries(a)) {
|
|
12566
12569
|
const { meshName: c, materialId: u, position: h, uv: d, normal: f } = l, p = this.materials.get(u.toString());
|
|
@@ -12573,8 +12576,11 @@ class Lp {
|
|
|
12573
12576
|
}
|
|
12574
12577
|
return n;
|
|
12575
12578
|
}
|
|
12579
|
+
clearCache() {
|
|
12580
|
+
this.materials.forEach((e) => e.dispose()), this.materials.clear();
|
|
12581
|
+
}
|
|
12576
12582
|
}
|
|
12577
|
-
class
|
|
12583
|
+
class Bp extends mt {
|
|
12578
12584
|
constructor(e, t) {
|
|
12579
12585
|
super(et.Model, e, t.classified.Model), this.viewport = e, this.cache = t, this.gltfLoader.setMeshoptDecoder(Nc), this._initLoadingManager(this.loadingManager);
|
|
12580
12586
|
}
|
|
@@ -12588,18 +12594,18 @@ class Fp extends mt {
|
|
|
12588
12594
|
/**
|
|
12589
12595
|
* workaround for types
|
|
12590
12596
|
*/
|
|
12591
|
-
store =
|
|
12597
|
+
store = wr.createInstance({
|
|
12592
12598
|
name: "soonspace",
|
|
12593
12599
|
storeName: "modelData"
|
|
12594
12600
|
});
|
|
12595
|
-
cacheStore =
|
|
12601
|
+
cacheStore = wr.createInstance({
|
|
12596
12602
|
name: "soonspace",
|
|
12597
12603
|
storeName: "modelCache"
|
|
12598
12604
|
});
|
|
12599
12605
|
loadingManager = new tc();
|
|
12600
12606
|
gltfLoader = new Fc(this.loadingManager);
|
|
12601
|
-
fbxLoader = new
|
|
12602
|
-
objLoader = new
|
|
12607
|
+
fbxLoader = new $d(this.loadingManager);
|
|
12608
|
+
objLoader = new gp(this.loadingManager);
|
|
12603
12609
|
stlLoader = new Bc(this.loadingManager);
|
|
12604
12610
|
/**
|
|
12605
12611
|
* 设置 draco path
|
|
@@ -12640,7 +12646,7 @@ class Fp extends mt {
|
|
|
12640
12646
|
const { url: t, id: n, format: s } = e;
|
|
12641
12647
|
if (!t)
|
|
12642
12648
|
return R(`id: ${n} url: ${t} is empty`), null;
|
|
12643
|
-
switch (await this._checkDbReady(), (s ??
|
|
12649
|
+
switch (await this._checkDbReady(), (s ?? Hr(t))?.toLocaleUpperCase()) {
|
|
12644
12650
|
case "SBM":
|
|
12645
12651
|
return this._parseSbm(e);
|
|
12646
12652
|
case "SBMX":
|
|
@@ -12655,7 +12661,7 @@ class Fp extends mt {
|
|
|
12655
12661
|
case "STL":
|
|
12656
12662
|
return this._parseStl(e);
|
|
12657
12663
|
default:
|
|
12658
|
-
return
|
|
12664
|
+
return zr(`模型资源( id: ${n}, url: ${t} )格式错误,当前格式支持 sbm、sbmx、fbx、gltf、glb !`), null;
|
|
12659
12665
|
}
|
|
12660
12666
|
}
|
|
12661
12667
|
clone(e, t, n) {
|
|
@@ -12675,7 +12681,7 @@ class Fp extends mt {
|
|
|
12675
12681
|
onLoad: v,
|
|
12676
12682
|
userData: w,
|
|
12677
12683
|
extraIds: S
|
|
12678
|
-
} = t, b =
|
|
12684
|
+
} = t, b = wi.clone(e);
|
|
12679
12685
|
b.animations = b.animations.map((A) => A.clone()), a && (b.sid = a), o && (b.name = o), l && (b.level = l), c === !1 ? b.hide() : c === !0 && b.show(), u && b.position.set(u.x, u.y, u.z), h && b.rotation.set(h.x, h.y, h.z), d && b.scale.set(d.x, d.y, d.z), f ? b.onClick = f.bind(b) : b.onClick = null, p ? b.onDblClick = p.bind(b) : b.onDblClick = null, g ? b.onRightClick = g.bind(b) : b.onRightClick = null, v ? b.onLoad = v.bind(b) : b.onLoad = null, b.onLoad?.(b), w && (b.userData = w), S && (b.extraIds = S), n !== null && this.viewport.scener.addObject(b, n || this.scene || e.parent), s(b);
|
|
12680
12686
|
});
|
|
12681
12687
|
}
|
|
@@ -12706,7 +12712,7 @@ class Fp extends mt {
|
|
|
12706
12712
|
}
|
|
12707
12713
|
// 保存模型缓存
|
|
12708
12714
|
_setModelsMap(e, t) {
|
|
12709
|
-
this.modelsMap.has(e) || this.modelsMap.set(e,
|
|
12715
|
+
this.modelsMap.has(e) || this.modelsMap.set(e, wi.clone(t));
|
|
12710
12716
|
}
|
|
12711
12717
|
/**
|
|
12712
12718
|
* 解析 sbm 格式
|
|
@@ -12715,7 +12721,7 @@ class Fp extends mt {
|
|
|
12715
12721
|
*/
|
|
12716
12722
|
async _parseSbm(e) {
|
|
12717
12723
|
const { useIndexedDB: t } = this.viewport.options, { url: n } = e, s = async (a) => {
|
|
12718
|
-
const o = await new
|
|
12724
|
+
const o = await new Lp().parseBuffer(a, e), { model: l, caches: c } = o;
|
|
12719
12725
|
return c && Oa(() => {
|
|
12720
12726
|
this.cacheStore.setItem(n, c);
|
|
12721
12727
|
}), l;
|
|
@@ -12725,7 +12731,7 @@ class Fp extends mt {
|
|
|
12725
12731
|
if (t) {
|
|
12726
12732
|
const a = await this.cacheStore.getItem(n);
|
|
12727
12733
|
if (a) {
|
|
12728
|
-
const o = new
|
|
12734
|
+
const o = new Fp().parseObject(a, e);
|
|
12729
12735
|
return r(o), o;
|
|
12730
12736
|
} else {
|
|
12731
12737
|
const o = await this.store.getItem(n) || await this._fetchBuffer(n), l = await s(o);
|
|
@@ -12743,7 +12749,7 @@ class Fp extends mt {
|
|
|
12743
12749
|
*/
|
|
12744
12750
|
async _parseSbmx(e) {
|
|
12745
12751
|
const { url: t } = e, n = await this._getBuffer(t);
|
|
12746
|
-
if (
|
|
12752
|
+
if (gr(n.slice(0, 8)) === "SBMG----") {
|
|
12747
12753
|
const r = us(n.slice(8));
|
|
12748
12754
|
return this._parseGltf(e, r);
|
|
12749
12755
|
} else
|
|
@@ -12756,14 +12762,14 @@ class Fp extends mt {
|
|
|
12756
12762
|
* @returns
|
|
12757
12763
|
*/
|
|
12758
12764
|
async _parseGltf(e, t) {
|
|
12759
|
-
const { url: n } = e, s =
|
|
12765
|
+
const { url: n } = e, s = mr(n), r = t || await this._getBuffer(n), a = new xt({ ...e, format: Ft.gltf });
|
|
12760
12766
|
try {
|
|
12761
12767
|
const o = await this.gltfLoader.parseAsync(r, s), { animations: l } = o;
|
|
12762
12768
|
l && l.length > 0 && (a.animations = l), o.scene.traverse((c) => {
|
|
12763
12769
|
(c.type === "AmbientLight" || c.type === "DirectionalLight") && (c.visible = !1), c instanceof nc && (c.frustumCulled = !0), c.castShadow = !0, c.receiveShadow = !0;
|
|
12764
12770
|
}), a.add(o.scene);
|
|
12765
12771
|
} catch (o) {
|
|
12766
|
-
throw o.message.includes("No DRACOLoader") ? new Error(`${
|
|
12772
|
+
throw o.message.includes("No DRACOLoader") ? new Error(`${On}请使用 setModelDracoDecoderPath 设置 draco 解压库路径`) : o.message.includes("setKTX2Loader") ? new Error(`${On}请使用 setModelKtx2DecoderPath 设置 ktx2 解压库路径`) : o;
|
|
12767
12773
|
}
|
|
12768
12774
|
return a;
|
|
12769
12775
|
}
|
|
@@ -12773,8 +12779,8 @@ class Fp extends mt {
|
|
|
12773
12779
|
* @returns
|
|
12774
12780
|
*/
|
|
12775
12781
|
async _parseFbx(e) {
|
|
12776
|
-
const { url: t } = e, n =
|
|
12777
|
-
if (
|
|
12782
|
+
const { url: t } = e, n = mr(t), s = await this._getBuffer(t);
|
|
12783
|
+
if (gr(us(s.slice(0, 3))) === "ssp") {
|
|
12778
12784
|
const c = us(s.slice(3));
|
|
12779
12785
|
return this._parseGltf(e, c);
|
|
12780
12786
|
}
|
|
@@ -12804,7 +12810,7 @@ class Fp extends mt {
|
|
|
12804
12810
|
return s ? (s.onLoad?.(s), this._setModelsMap(n, s), t !== null && this.viewport.scener.addObject(s, t), s) : null;
|
|
12805
12811
|
}
|
|
12806
12812
|
async _fetchBuffer(e) {
|
|
12807
|
-
const { useIndexedDB: t } = this.viewport.options, n = await
|
|
12813
|
+
const { useIndexedDB: t } = this.viewport.options, n = await Ur(e, "arraybuffer");
|
|
12808
12814
|
return t && this.store.setItem(e, n), n;
|
|
12809
12815
|
}
|
|
12810
12816
|
async _getBuffer(e) {
|
|
@@ -12816,25 +12822,28 @@ class Fp extends mt {
|
|
|
12816
12822
|
return this._fetchBuffer(e);
|
|
12817
12823
|
}
|
|
12818
12824
|
}
|
|
12819
|
-
const oa = new
|
|
12820
|
-
class
|
|
12825
|
+
const oa = new dn(1, 1);
|
|
12826
|
+
class kp extends mt {
|
|
12821
12827
|
constructor(e, t) {
|
|
12822
12828
|
super(et.Poi, e, t.classified.Poi), this.viewport = e, this.cache = t;
|
|
12823
12829
|
}
|
|
12824
12830
|
textures = /* @__PURE__ */ new Map();
|
|
12831
|
+
dispose() {
|
|
12832
|
+
this.textures.forEach((e) => e.dispose()), this.textures.clear();
|
|
12833
|
+
}
|
|
12825
12834
|
_createIcon(e) {
|
|
12826
12835
|
const t = this._createIconMaterial(e), n = {
|
|
12827
12836
|
scale: e.iconScale
|
|
12828
12837
|
};
|
|
12829
12838
|
let s;
|
|
12830
|
-
return ls(e.type) ? (s = new we(), s.renderOrder = 1, s.geometry = oa, s.material = t, e.iconScale && s.scale.set(e.iconScale.x, e.iconScale.y, e.iconScale.z)) : (s = new
|
|
12839
|
+
return ls(e.type) ? (s = new we(), s.renderOrder = 1, s.geometry = oa, s.material = t, e.iconScale && s.scale.set(e.iconScale.x, e.iconScale.y, e.iconScale.z)) : (s = new Tr(t, n), this._computeMaterialSizeAttenuation(t, e.type)), s.name = "icon", s;
|
|
12831
12840
|
}
|
|
12832
12841
|
_createIconMaterial({ url: e, type: t }) {
|
|
12833
12842
|
if (!e) return;
|
|
12834
12843
|
let n = this.textures.get(e);
|
|
12835
12844
|
return n || (n = _t.load(e, (s) => {
|
|
12836
12845
|
this.textures.set(e, s), Se.needsUpdate = !0;
|
|
12837
|
-
}), n.colorSpace = dt, n.flipY = !0), ls(t) ? new
|
|
12846
|
+
}), n.colorSpace = dt, n.flipY = !0), ls(t) ? new un({ map: n, transparent: !0, depthWrite: !1, side: Tt }) : new ur({ map: n, depthWrite: !1 });
|
|
12838
12847
|
}
|
|
12839
12848
|
_createText(e) {
|
|
12840
12849
|
const t = this._createTextMaterial(e), n = {
|
|
@@ -12842,17 +12851,17 @@ class Bp extends mt {
|
|
|
12842
12851
|
scale: e.nameScale
|
|
12843
12852
|
};
|
|
12844
12853
|
let s;
|
|
12845
|
-
return ls(e.type) ? (s = new we(), s.renderOrder = 1, s.geometry = oa, s.material = t, e.namePosition && s.position.set(e.namePosition.x, e.namePosition.y, e.namePosition.z), e.nameScale && s.scale.set(e.nameScale.x, e.nameScale.y, e.nameScale.z)) : (s = new
|
|
12854
|
+
return ls(e.type) ? (s = new we(), s.renderOrder = 1, s.geometry = oa, s.material = t, e.namePosition && s.position.set(e.namePosition.x, e.namePosition.y, e.namePosition.z), e.nameScale && s.scale.set(e.nameScale.x, e.nameScale.y, e.nameScale.z)) : (s = new Tr(t, n), this._computeMaterialSizeAttenuation(t, e.type)), s.name = "text", s;
|
|
12846
12855
|
}
|
|
12847
12856
|
_createTextMaterial(e) {
|
|
12848
12857
|
const t = this._createTextTexture(e);
|
|
12849
|
-
return ls(e.type) ? new
|
|
12858
|
+
return ls(e.type) ? new un({ map: t, transparent: !0, depthWrite: !1, side: Tt }) : new ur({
|
|
12850
12859
|
map: t,
|
|
12851
12860
|
depthWrite: !1
|
|
12852
12861
|
});
|
|
12853
12862
|
}
|
|
12854
12863
|
_createTextTexture(e) {
|
|
12855
|
-
const t = this._createTextCanvas(e.name || "", e.nameCanvasInfo), n = new
|
|
12864
|
+
const t = this._createTextCanvas(e.name || "", e.nameCanvasInfo), n = new kr(t);
|
|
12856
12865
|
return n.colorSpace = dt, n;
|
|
12857
12866
|
}
|
|
12858
12867
|
_createTextCanvas(e, t = {}) {
|
|
@@ -12883,7 +12892,7 @@ class Bp extends mt {
|
|
|
12883
12892
|
iconScale: { x: 16, y: 16, z: 1 },
|
|
12884
12893
|
...e
|
|
12885
12894
|
};
|
|
12886
|
-
const t = new
|
|
12895
|
+
const t = new Bs(e), n = this._createText(e);
|
|
12887
12896
|
if (t.text = n, t.add(n), e.url) {
|
|
12888
12897
|
const s = this._createIcon(e);
|
|
12889
12898
|
t.icon = s, t.add(s);
|
|
@@ -12915,9 +12924,9 @@ class Bp extends mt {
|
|
|
12915
12924
|
} = t, b = e.clone();
|
|
12916
12925
|
if (r !== b.name && b.text) {
|
|
12917
12926
|
const A = b.text.material.clone();
|
|
12918
|
-
A.map = this._createTextTexture(t), b.text.material = A;
|
|
12927
|
+
A.map?.dispose(), A.map = this._createTextTexture(t), b.text.material = A;
|
|
12919
12928
|
}
|
|
12920
|
-
return o && b.text?.position.set(o.x, o.y, o.z), l && b.text?.scale.set(l.x, l.y, l.z), c && b.icon?.scale.set(c.x, c.y, c.z), s && (b.sid = s), r && (b.name = r), a && (b.level = a), u && (b.scaleFixed = u),
|
|
12929
|
+
return o && b.text?.position.set(o.x, o.y, o.z), l && b.text?.scale.set(l.x, l.y, l.z), c && b.icon?.scale.set(c.x, c.y, c.z), s && (b.sid = s), r && (b.name = r), a && (b.level = a), u && (b.scaleFixed = u), Es(h) && (b.visible = h), d && b.position.set(d.x, d.y, d.z), f && b.rotation.set(f.x, f.y, f.z), p && b.scale.set(p.x, p.y, p.z), g ? b.onClick = g.bind(b) : b.onClick = null, v ? b.onDblClick = v.bind(b) : b.onDblClick = null, w ? b.onRightClick = w.bind(b) : b.onRightClick = null, S && (b.userData = S), n !== null && this.viewport.scener.addObject(b, n || this.scene || e.parent), b;
|
|
12921
12930
|
}
|
|
12922
12931
|
createToGroup(e, t) {
|
|
12923
12932
|
const n = this.createGroup(e, null);
|
|
@@ -12936,7 +12945,7 @@ class Bp extends mt {
|
|
|
12936
12945
|
function ls(i) {
|
|
12937
12946
|
return i === "3D" || i === "3d";
|
|
12938
12947
|
}
|
|
12939
|
-
class
|
|
12948
|
+
class zp extends mt {
|
|
12940
12949
|
constructor(e, t) {
|
|
12941
12950
|
super(et.PoiNode, e, t.classified.PoiNode), this.viewport = e, this.cache = t;
|
|
12942
12951
|
}
|
|
@@ -12975,7 +12984,7 @@ class kp extends mt {
|
|
|
12975
12984
|
}
|
|
12976
12985
|
}
|
|
12977
12986
|
}
|
|
12978
|
-
class
|
|
12987
|
+
class Rp extends mt {
|
|
12979
12988
|
constructor(e, t) {
|
|
12980
12989
|
super(et.Canvas3D, e, t.classified.Canvas3D), this.viewport = e, this.cache = t;
|
|
12981
12990
|
}
|
|
@@ -12997,7 +13006,7 @@ class zp extends mt {
|
|
|
12997
13006
|
}), e;
|
|
12998
13007
|
}
|
|
12999
13008
|
}
|
|
13000
|
-
class
|
|
13009
|
+
class Np {
|
|
13001
13010
|
graph;
|
|
13002
13011
|
queue;
|
|
13003
13012
|
previous;
|
|
@@ -13060,7 +13069,7 @@ class Rp {
|
|
|
13060
13069
|
}
|
|
13061
13070
|
}
|
|
13062
13071
|
const Io = '(function(){"use strict";const Vt="srgb-linear";function mt(m){return document.createElementNS("http://www.w3.org/1999/xhtml",m)}function Tt(m){const t=m[0];if(typeof t=="string"&&t.startsWith("TSL:")){const e=m[1];e&&e.isStackTrace?m[0]+=" "+e.getLocation():m[1]=\'Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.\'}return m}function q(...m){m=Tt(m);const t="THREE."+m.shift();{const e=m[0];e&&e.isStackTrace?console.warn(e.getError(t)):console.warn(t,...m)}}function St(...m){m=Tt(m);const t="THREE."+m.shift();{const e=m[0];e&&e.isStackTrace?console.error(e.getError(t)):console.error(t,...m)}}class Et{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const s=this._listeners;s[t]===void 0&&(s[t]=[]),s[t].indexOf(e)===-1&&s[t].push(e)}hasEventListener(t,e){const s=this._listeners;return s===void 0?!1:s[t]!==void 0&&s[t].indexOf(e)!==-1}removeEventListener(t,e){const s=this._listeners;if(s===void 0)return;const i=s[t];if(i!==void 0){const n=i.indexOf(e);n!==-1&&i.splice(n,1)}}dispatchEvent(t){const e=this._listeners;if(e===void 0)return;const s=e[t.type];if(s!==void 0){t.target=this;const i=s.slice(0);for(let n=0,a=i.length;n<a;n++)i[n].call(this,t);t.target=null}}}const I=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];function ft(){const m=Math.random()*4294967295|0,t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,s=Math.random()*4294967295|0;return(I[m&255]+I[m>>8&255]+I[m>>16&255]+I[m>>24&255]+"-"+I[t&255]+I[t>>8&255]+"-"+I[t>>16&15|64]+I[t>>24&255]+"-"+I[e&63|128]+I[e>>8&255]+"-"+I[e>>16&255]+I[e>>24&255]+I[s&255]+I[s>>8&255]+I[s>>16&255]+I[s>>24&255]).toLowerCase()}function U(m,t,e){return Math.max(t,Math.min(e,m))}class nt{constructor(t=0,e=0){nt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,s=this.y,i=t.elements;return this.x=i[0]*e+i[3]*s+i[6],this.y=i[1]*e+i[4]*s+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=U(this.x,t.x,e.x),this.y=U(this.y,t.y,e.y),this}clampScalar(t,e){return this.x=U(this.x,t,e),this.y=U(this.y,t,e),this}clampLength(t,e){const s=this.length();return this.divideScalar(s||1).multiplyScalar(U(s,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const s=this.dot(t)/e;return Math.acos(U(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,s=this.y-t.y;return e*e+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,s){return this.x=t.x+(e.x-t.x)*s,this.y=t.y+(e.y-t.y)*s,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const s=Math.cos(e),i=Math.sin(e),n=this.x-t.x,a=this.y-t.y;return this.x=n*s-a*i+t.x,this.y=n*i+a*s+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class rt{constructor(t=0,e=0,s=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=s,this._w=i}static slerpFlat(t,e,s,i,n,a,o){let h=s[i+0],r=s[i+1],l=s[i+2],c=s[i+3],u=n[a+0],d=n[a+1],p=n[a+2],f=n[a+3];if(c!==f||h!==u||r!==d||l!==p){let M=h*u+r*d+l*p+c*f;M<0&&(u=-u,d=-d,p=-p,f=-f,M=-M);let y=1-o;if(M<.9995){const z=Math.acos(M),C=Math.sin(z);y=Math.sin(y*z)/C,o=Math.sin(o*z)/C,h=h*y+u*o,r=r*y+d*o,l=l*y+p*o,c=c*y+f*o}else{h=h*y+u*o,r=r*y+d*o,l=l*y+p*o,c=c*y+f*o;const z=1/Math.sqrt(h*h+r*r+l*l+c*c);h*=z,r*=z,l*=z,c*=z}}t[e]=h,t[e+1]=r,t[e+2]=l,t[e+3]=c}static multiplyQuaternionsFlat(t,e,s,i,n,a){const o=s[i],h=s[i+1],r=s[i+2],l=s[i+3],c=n[a],u=n[a+1],d=n[a+2],p=n[a+3];return t[e]=o*p+l*c+h*d-r*u,t[e+1]=h*p+l*u+r*c-o*d,t[e+2]=r*p+l*d+o*u-h*c,t[e+3]=l*p-o*c-h*u-r*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,s,i){return this._x=t,this._y=e,this._z=s,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const s=t._x,i=t._y,n=t._z,a=t._order,o=Math.cos,h=Math.sin,r=o(s/2),l=o(i/2),c=o(n/2),u=h(s/2),d=h(i/2),p=h(n/2);switch(a){case"XYZ":this._x=u*l*c+r*d*p,this._y=r*d*c-u*l*p,this._z=r*l*p+u*d*c,this._w=r*l*c-u*d*p;break;case"YXZ":this._x=u*l*c+r*d*p,this._y=r*d*c-u*l*p,this._z=r*l*p-u*d*c,this._w=r*l*c+u*d*p;break;case"ZXY":this._x=u*l*c-r*d*p,this._y=r*d*c+u*l*p,this._z=r*l*p+u*d*c,this._w=r*l*c-u*d*p;break;case"ZYX":this._x=u*l*c-r*d*p,this._y=r*d*c+u*l*p,this._z=r*l*p-u*d*c,this._w=r*l*c+u*d*p;break;case"YZX":this._x=u*l*c+r*d*p,this._y=r*d*c+u*l*p,this._z=r*l*p-u*d*c,this._w=r*l*c-u*d*p;break;case"XZY":this._x=u*l*c-r*d*p,this._y=r*d*c-u*l*p,this._z=r*l*p+u*d*c,this._w=r*l*c+u*d*p;break;default:q("Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const s=e/2,i=Math.sin(s);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(s),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,s=e[0],i=e[4],n=e[8],a=e[1],o=e[5],h=e[9],r=e[2],l=e[6],c=e[10],u=s+o+c;if(u>0){const d=.5/Math.sqrt(u+1);this._w=.25/d,this._x=(l-h)*d,this._y=(n-r)*d,this._z=(a-i)*d}else if(s>o&&s>c){const d=2*Math.sqrt(1+s-o-c);this._w=(l-h)/d,this._x=.25*d,this._y=(i+a)/d,this._z=(n+r)/d}else if(o>c){const d=2*Math.sqrt(1+o-s-c);this._w=(n-r)/d,this._x=(i+a)/d,this._y=.25*d,this._z=(h+l)/d}else{const d=2*Math.sqrt(1+c-s-o);this._w=(a-i)/d,this._x=(n+r)/d,this._y=(h+l)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let s=t.dot(e)+1;return s<1e-8?(s=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=s):(this._x=0,this._y=-t.z,this._z=t.y,this._w=s)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=s),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(U(this.dot(t),-1,1)))}rotateTowards(t,e){const s=this.angleTo(t);if(s===0)return this;const i=Math.min(1,e/s);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const s=t._x,i=t._y,n=t._z,a=t._w,o=e._x,h=e._y,r=e._z,l=e._w;return this._x=s*l+a*o+i*r-n*h,this._y=i*l+a*h+n*o-s*r,this._z=n*l+a*r+s*h-i*o,this._w=a*l-s*o-i*h-n*r,this._onChangeCallback(),this}slerp(t,e){let s=t._x,i=t._y,n=t._z,a=t._w,o=this.dot(t);o<0&&(s=-s,i=-i,n=-n,a=-a,o=-o);let h=1-e;if(o<.9995){const r=Math.acos(o),l=Math.sin(r);h=Math.sin(h*r)/l,e=Math.sin(e*r)/l,this._x=this._x*h+s*e,this._y=this._y*h+i*e,this._z=this._z*h+n*e,this._w=this._w*h+a*e,this._onChangeCallback()}else this._x=this._x*h+s*e,this._y=this._y*h+i*e,this._z=this._z*h+n*e,this._w=this._w*h+a*e,this.normalize();return this}slerpQuaternions(t,e,s){return this.copy(t).slerp(e,s)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),s=Math.random(),i=Math.sqrt(1-s),n=Math.sqrt(s);return this.set(i*Math.sin(t),i*Math.cos(t),n*Math.sin(e),n*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class D{constructor(t=0,e=0,s=0){D.prototype.isVector3=!0,this.x=t,this.y=e,this.z=s}set(t,e,s){return s===void 0&&(s=this.z),this.x=t,this.y=e,this.z=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Ct.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ct.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,s=this.y,i=this.z,n=t.elements;return this.x=n[0]*e+n[3]*s+n[6]*i,this.y=n[1]*e+n[4]*s+n[7]*i,this.z=n[2]*e+n[5]*s+n[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,s=this.y,i=this.z,n=t.elements,a=1/(n[3]*e+n[7]*s+n[11]*i+n[15]);return this.x=(n[0]*e+n[4]*s+n[8]*i+n[12])*a,this.y=(n[1]*e+n[5]*s+n[9]*i+n[13])*a,this.z=(n[2]*e+n[6]*s+n[10]*i+n[14])*a,this}applyQuaternion(t){const e=this.x,s=this.y,i=this.z,n=t.x,a=t.y,o=t.z,h=t.w,r=2*(a*i-o*s),l=2*(o*e-n*i),c=2*(n*s-a*e);return this.x=e+h*r+a*c-o*l,this.y=s+h*l+o*r-n*c,this.z=i+h*c+n*l-a*r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,s=this.y,i=this.z,n=t.elements;return this.x=n[0]*e+n[4]*s+n[8]*i,this.y=n[1]*e+n[5]*s+n[9]*i,this.z=n[2]*e+n[6]*s+n[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=U(this.x,t.x,e.x),this.y=U(this.y,t.y,e.y),this.z=U(this.z,t.z,e.z),this}clampScalar(t,e){return this.x=U(this.x,t,e),this.y=U(this.y,t,e),this.z=U(this.z,t,e),this}clampLength(t,e){const s=this.length();return this.divideScalar(s||1).multiplyScalar(U(s,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,s){return this.x=t.x+(e.x-t.x)*s,this.y=t.y+(e.y-t.y)*s,this.z=t.z+(e.z-t.z)*s,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const s=t.x,i=t.y,n=t.z,a=e.x,o=e.y,h=e.z;return this.x=i*h-n*o,this.y=n*a-s*h,this.z=s*o-i*a,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const s=t.dot(this)/e;return this.copy(t).multiplyScalar(s)}projectOnPlane(t){return yt.copy(this).projectOnVector(t),this.sub(yt)}reflect(t){return this.sub(yt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const s=this.dot(t)/e;return Math.acos(U(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,s=this.y-t.y,i=this.z-t.z;return e*e+s*s+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,s){const i=Math.sin(e)*t;return this.x=i*Math.sin(s),this.y=Math.cos(e)*t,this.z=i*Math.cos(s),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,s){return this.x=t*Math.sin(e),this.y=s,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),s=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=s,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=Math.random()*2-1,s=Math.sqrt(1-e*e);return this.x=s*Math.cos(t),this.y=e,this.z=s*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const yt=new D,Ct=new rt;class at{constructor(t,e,s,i,n,a,o,h,r){at.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,s,i,n,a,o,h,r)}set(t,e,s,i,n,a,o,h,r){const l=this.elements;return l[0]=t,l[1]=i,l[2]=o,l[3]=e,l[4]=n,l[5]=h,l[6]=s,l[7]=a,l[8]=r,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,s=t.elements;return e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],e[4]=s[4],e[5]=s[5],e[6]=s[6],e[7]=s[7],e[8]=s[8],this}extractBasis(t,e,s){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),s.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const s=t.elements,i=e.elements,n=this.elements,a=s[0],o=s[3],h=s[6],r=s[1],l=s[4],c=s[7],u=s[2],d=s[5],p=s[8],f=i[0],M=i[3],y=i[6],z=i[1],C=i[4],k=i[7],L=i[2],F=i[5],A=i[8];return n[0]=a*f+o*z+h*L,n[3]=a*M+o*C+h*F,n[6]=a*y+o*k+h*A,n[1]=r*f+l*z+c*L,n[4]=r*M+l*C+c*F,n[7]=r*y+l*k+c*A,n[2]=u*f+d*z+p*L,n[5]=u*M+d*C+p*F,n[8]=u*y+d*k+p*A,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],s=t[1],i=t[2],n=t[3],a=t[4],o=t[5],h=t[6],r=t[7],l=t[8];return e*a*l-e*o*r-s*n*l+s*o*h+i*n*r-i*a*h}invert(){const t=this.elements,e=t[0],s=t[1],i=t[2],n=t[3],a=t[4],o=t[5],h=t[6],r=t[7],l=t[8],c=l*a-o*r,u=o*h-l*n,d=r*n-a*h,p=e*c+s*u+i*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=c*f,t[1]=(i*r-l*s)*f,t[2]=(o*s-i*a)*f,t[3]=u*f,t[4]=(l*e-i*h)*f,t[5]=(i*n-o*e)*f,t[6]=d*f,t[7]=(s*h-r*e)*f,t[8]=(a*e-s*n)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,s,i,n,a,o){const h=Math.cos(n),r=Math.sin(n);return this.set(s*h,s*r,-s*(h*a+r*o)+a+t,-i*r,i*h,-i*(-r*a+h*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(xt.makeScale(t,e)),this}rotate(t){return this.premultiply(xt.makeRotation(-t)),this}translate(t,e){return this.premultiply(xt.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),s=Math.sin(t);return this.set(e,-s,0,s,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,s=t.elements;for(let i=0;i<9;i++)if(e[i]!==s[i])return!1;return!0}fromArray(t,e=0){for(let s=0;s<9;s++)this.elements[s]=t[s+e];return this}toArray(t=[],e=0){const s=this.elements;return t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3],t[e+4]=s[4],t[e+5]=s[5],t[e+6]=s[6],t[e+7]=s[7],t[e+8]=s[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const xt=new at;function gt(m){return m<.04045?m*.0773993808:Math.pow(m*.9478672986+.0521327014,2.4)}let Q;class qt{static getDataURL(t,e="image/png"){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let s;if(t instanceof HTMLCanvasElement)s=t;else{Q===void 0&&(Q=mt("canvas")),Q.width=t.width,Q.height=t.height;const i=Q.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),s=Q}return s.toDataURL(e)}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=mt("canvas");e.width=t.width,e.height=t.height;const s=e.getContext("2d");s.drawImage(t,0,0,t.width,t.height);const i=s.getImageData(0,0,t.width,t.height),n=i.data;for(let a=0;a<n.length;a++)n[a]=gt(n[a]/255)*255;return s.putImageData(i,0,0),e}else if(t.data){const e=t.data.slice(0);for(let s=0;s<e.length;s++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[s]=Math.floor(gt(e[s]/255)*255):e[s]=gt(e[s]);return{data:e,width:t.width,height:t.height}}else return q("ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),t}}let Ht=0;class Bt{constructor(t=null){this.isSource=!0,Object.defineProperty(this,"id",{value:Ht++}),this.uuid=ft(),this.data=t,this.dataReady=!0,this.version=0}getSize(t){const e=this.data;return typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement?t.set(e.videoWidth,e.videoHeight,0):typeof VideoFrame<"u"&&e instanceof VideoFrame?t.set(e.displayHeight,e.displayWidth,0):e!==null?t.set(e.width,e.height,e.depth||0):t.set(0,0,0),t}set needsUpdate(t){t===!0&&this.version++}toJSON(t){const e=t===void 0||typeof t=="string";if(!e&&t.images[this.uuid]!==void 0)return t.images[this.uuid];const s={uuid:this.uuid,url:""},i=this.data;if(i!==null){let n;if(Array.isArray(i)){n=[];for(let a=0,o=i.length;a<o;a++)i[a].isDataTexture?n.push(_t(i[a].image)):n.push(_t(i[a]))}else n=_t(i);s.url=n}return e||(t.images[this.uuid]=s),s}}function _t(m){return typeof HTMLImageElement<"u"&&m instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&m instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&m instanceof ImageBitmap?qt.getDataURL(m):m.data?{data:Array.from(m.data),width:m.width,height:m.height,type:m.data.constructor.name}:(q("Texture: Unable to serialize Texture."),{})}let vt=0;const Mt=new D;class H extends Et{constructor(t=H.DEFAULT_IMAGE,e=H.DEFAULT_MAPPING,s=1001,i=1001,n=1006,a=1008,o=1023,h=1009,r=H.DEFAULT_ANISOTROPY,l=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:vt++}),this.uuid=ft(),this.name="",this.source=new Bt(t),this.mipmaps=[],this.mapping=e,this.channel=0,this.wrapS=s,this.wrapT=i,this.magFilter=n,this.minFilter=a,this.anisotropy=r,this.format=o,this.internalFormat=null,this.type=h,this.offset=new nt(0,0),this.repeat=new nt(1,1),this.center=new nt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new at,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=l,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(t&&t.depth&&t.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(Mt).x}get height(){return this.source.getSize(Mt).y}get depth(){return this.source.getSize(Mt).z}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.renderTarget=t.renderTarget,this.isRenderTargetTexture=t.isRenderTargetTexture,this.isArrayTexture=t.isArrayTexture,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}setValues(t){for(const e in t){const s=t[e];if(s===void 0){q(`Texture.setValues(): parameter \'${e}\' has value of undefined.`);continue}const i=this[e];if(i===void 0){q(`Texture.setValues(): property \'${e}\' does not exist.`);continue}i&&s&&i.isVector2&&s.isVector2||i&&s&&i.isVector3&&s.isVector3||i&&s&&i.isMatrix3&&s.isMatrix3?i.copy(s):this[e]=s}}toJSON(t){const e=t===void 0||typeof t=="string";if(!e&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];const s={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(s.userData=this.userData),e||(t.textures[this.uuid]=s),s}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==300)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case 1e3:t.x=t.x-Math.floor(t.x);break;case 1001:t.x=t.x<0?0:1;break;case 1002:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case 1e3:t.y=t.y-Math.floor(t.y);break;case 1001:t.y=t.y<0?0:1;break;case 1002:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}}H.DEFAULT_IMAGE=null,H.DEFAULT_MAPPING=300,H.DEFAULT_ANISOTROPY=1;class B{constructor(t,e,s,i,n,a,o,h,r,l,c,u,d,p,f,M){B.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,s,i,n,a,o,h,r,l,c,u,d,p,f,M)}set(t,e,s,i,n,a,o,h,r,l,c,u,d,p,f,M){const y=this.elements;return y[0]=t,y[4]=e,y[8]=s,y[12]=i,y[1]=n,y[5]=a,y[9]=o,y[13]=h,y[2]=r,y[6]=l,y[10]=c,y[14]=u,y[3]=d,y[7]=p,y[11]=f,y[15]=M,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new B().fromArray(this.elements)}copy(t){const e=this.elements,s=t.elements;return e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],e[4]=s[4],e[5]=s[5],e[6]=s[6],e[7]=s[7],e[8]=s[8],e[9]=s[9],e[10]=s[10],e[11]=s[11],e[12]=s[12],e[13]=s[13],e[14]=s[14],e[15]=s[15],this}copyPosition(t){const e=this.elements,s=t.elements;return e[12]=s[12],e[13]=s[13],e[14]=s[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,s){return this.determinant()===0?(t.set(1,0,0),e.set(0,1,0),s.set(0,0,1),this):(t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),s.setFromMatrixColumn(this,2),this)}makeBasis(t,e,s){return this.set(t.x,e.x,s.x,0,t.y,e.y,s.y,0,t.z,e.z,s.z,0,0,0,0,1),this}extractRotation(t){if(t.determinant()===0)return this.identity();const e=this.elements,s=t.elements,i=1/K.setFromMatrixColumn(t,0).length(),n=1/K.setFromMatrixColumn(t,1).length(),a=1/K.setFromMatrixColumn(t,2).length();return e[0]=s[0]*i,e[1]=s[1]*i,e[2]=s[2]*i,e[3]=0,e[4]=s[4]*n,e[5]=s[5]*n,e[6]=s[6]*n,e[7]=0,e[8]=s[8]*a,e[9]=s[9]*a,e[10]=s[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,s=t.x,i=t.y,n=t.z,a=Math.cos(s),o=Math.sin(s),h=Math.cos(i),r=Math.sin(i),l=Math.cos(n),c=Math.sin(n);if(t.order==="XYZ"){const u=a*l,d=a*c,p=o*l,f=o*c;e[0]=h*l,e[4]=-h*c,e[8]=r,e[1]=d+p*r,e[5]=u-f*r,e[9]=-o*h,e[2]=f-u*r,e[6]=p+d*r,e[10]=a*h}else if(t.order==="YXZ"){const u=h*l,d=h*c,p=r*l,f=r*c;e[0]=u+f*o,e[4]=p*o-d,e[8]=a*r,e[1]=a*c,e[5]=a*l,e[9]=-o,e[2]=d*o-p,e[6]=f+u*o,e[10]=a*h}else if(t.order==="ZXY"){const u=h*l,d=h*c,p=r*l,f=r*c;e[0]=u-f*o,e[4]=-a*c,e[8]=p+d*o,e[1]=d+p*o,e[5]=a*l,e[9]=f-u*o,e[2]=-a*r,e[6]=o,e[10]=a*h}else if(t.order==="ZYX"){const u=a*l,d=a*c,p=o*l,f=o*c;e[0]=h*l,e[4]=p*r-d,e[8]=u*r+f,e[1]=h*c,e[5]=f*r+u,e[9]=d*r-p,e[2]=-r,e[6]=o*h,e[10]=a*h}else if(t.order==="YZX"){const u=a*h,d=a*r,p=o*h,f=o*r;e[0]=h*l,e[4]=f-u*c,e[8]=p*c+d,e[1]=c,e[5]=a*l,e[9]=-o*l,e[2]=-r*l,e[6]=d*c+p,e[10]=u-f*c}else if(t.order==="XZY"){const u=a*h,d=a*r,p=o*h,f=o*r;e[0]=h*l,e[4]=-c,e[8]=r*l,e[1]=u*c+f,e[5]=a*l,e[9]=d*c-p,e[2]=p*c-d,e[6]=o*l,e[10]=f*c+u}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Yt,t,Gt)}lookAt(t,e,s){const i=this.elements;return W.subVectors(t,e),W.lengthSq()===0&&(W.z=1),W.normalize(),Z.crossVectors(s,W),Z.lengthSq()===0&&(Math.abs(s.z)===1?W.x+=1e-4:W.z+=1e-4,W.normalize(),Z.crossVectors(s,W)),Z.normalize(),ct.crossVectors(W,Z),i[0]=Z.x,i[4]=ct.x,i[8]=W.x,i[1]=Z.y,i[5]=ct.y,i[9]=W.y,i[2]=Z.z,i[6]=ct.z,i[10]=W.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const s=t.elements,i=e.elements,n=this.elements,a=s[0],o=s[4],h=s[8],r=s[12],l=s[1],c=s[5],u=s[9],d=s[13],p=s[2],f=s[6],M=s[10],y=s[14],z=s[3],C=s[7],k=s[11],L=s[15],F=i[0],A=i[4],x=i[8],b=i[12],w=i[1],T=i[5],R=i[9],S=i[13],g=i[2],_=i[6],E=i[10],P=i[14],$=i[3],V=i[7],O=i[11],it=i[15];return n[0]=a*F+o*w+h*g+r*$,n[4]=a*A+o*T+h*_+r*V,n[8]=a*x+o*R+h*E+r*O,n[12]=a*b+o*S+h*P+r*it,n[1]=l*F+c*w+u*g+d*$,n[5]=l*A+c*T+u*_+d*V,n[9]=l*x+c*R+u*E+d*O,n[13]=l*b+c*S+u*P+d*it,n[2]=p*F+f*w+M*g+y*$,n[6]=p*A+f*T+M*_+y*V,n[10]=p*x+f*R+M*E+y*O,n[14]=p*b+f*S+M*P+y*it,n[3]=z*F+C*w+k*g+L*$,n[7]=z*A+C*T+k*_+L*V,n[11]=z*x+C*R+k*E+L*O,n[15]=z*b+C*S+k*P+L*it,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],s=t[4],i=t[8],n=t[12],a=t[1],o=t[5],h=t[9],r=t[13],l=t[2],c=t[6],u=t[10],d=t[14],p=t[3],f=t[7],M=t[11],y=t[15],z=h*d-r*u,C=o*d-r*c,k=o*u-h*c,L=a*d-r*l,F=a*u-h*l,A=a*c-o*l;return e*(f*z-M*C+y*k)-s*(p*z-M*L+y*F)+i*(p*C-f*L+y*A)-n*(p*k-f*F+M*A)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,s){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=s),this}invert(){const t=this.elements,e=t[0],s=t[1],i=t[2],n=t[3],a=t[4],o=t[5],h=t[6],r=t[7],l=t[8],c=t[9],u=t[10],d=t[11],p=t[12],f=t[13],M=t[14],y=t[15],z=e*o-s*a,C=e*h-i*a,k=e*r-n*a,L=s*h-i*o,F=s*r-n*o,A=i*r-n*h,x=l*f-c*p,b=l*M-u*p,w=l*y-d*p,T=c*M-u*f,R=c*y-d*f,S=u*y-d*M,g=z*S-C*R+k*T+L*w-F*b+A*x;if(g===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const _=1/g;return t[0]=(o*S-h*R+r*T)*_,t[1]=(i*R-s*S-n*T)*_,t[2]=(f*A-M*F+y*L)*_,t[3]=(u*F-c*A-d*L)*_,t[4]=(h*w-a*S-r*b)*_,t[5]=(e*S-i*w+n*b)*_,t[6]=(M*k-p*A-y*C)*_,t[7]=(l*A-u*k+d*C)*_,t[8]=(a*R-o*w+r*x)*_,t[9]=(s*w-e*R-n*x)*_,t[10]=(p*F-f*k+y*z)*_,t[11]=(c*k-l*F-d*z)*_,t[12]=(o*b-a*T-h*x)*_,t[13]=(e*T-s*b+i*x)*_,t[14]=(f*C-p*L-M*z)*_,t[15]=(l*L-c*C+u*z)*_,this}scale(t){const e=this.elements,s=t.x,i=t.y,n=t.z;return e[0]*=s,e[4]*=i,e[8]*=n,e[1]*=s,e[5]*=i,e[9]*=n,e[2]*=s,e[6]*=i,e[10]*=n,e[3]*=s,e[7]*=i,e[11]*=n,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],s=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,s,i))}makeTranslation(t,e,s){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,s,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),s=Math.sin(t);return this.set(1,0,0,0,0,e,-s,0,0,s,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),s=Math.sin(t);return this.set(e,0,s,0,0,1,0,0,-s,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),s=Math.sin(t);return this.set(e,-s,0,0,s,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const s=Math.cos(e),i=Math.sin(e),n=1-s,a=t.x,o=t.y,h=t.z,r=n*a,l=n*o;return this.set(r*a+s,r*o-i*h,r*h+i*o,0,r*o+i*h,l*o+s,l*h-i*a,0,r*h-i*o,l*h+i*a,n*h*h+s,0,0,0,0,1),this}makeScale(t,e,s){return this.set(t,0,0,0,0,e,0,0,0,0,s,0,0,0,0,1),this}makeShear(t,e,s,i,n,a){return this.set(1,s,n,0,t,1,a,0,e,i,1,0,0,0,0,1),this}compose(t,e,s){const i=this.elements,n=e._x,a=e._y,o=e._z,h=e._w,r=n+n,l=a+a,c=o+o,u=n*r,d=n*l,p=n*c,f=a*l,M=a*c,y=o*c,z=h*r,C=h*l,k=h*c,L=s.x,F=s.y,A=s.z;return i[0]=(1-(f+y))*L,i[1]=(d+k)*L,i[2]=(p-C)*L,i[3]=0,i[4]=(d-k)*F,i[5]=(1-(u+y))*F,i[6]=(M+z)*F,i[7]=0,i[8]=(p+C)*A,i[9]=(M-z)*A,i[10]=(1-(u+f))*A,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,s){const i=this.elements;t.x=i[12],t.y=i[13],t.z=i[14];const n=this.determinant();if(n===0)return s.set(1,1,1),e.identity(),this;let a=K.set(i[0],i[1],i[2]).length();const o=K.set(i[4],i[5],i[6]).length(),h=K.set(i[8],i[9],i[10]).length();n<0&&(a=-a),N.copy(this);const r=1/a,l=1/o,c=1/h;return N.elements[0]*=r,N.elements[1]*=r,N.elements[2]*=r,N.elements[4]*=l,N.elements[5]*=l,N.elements[6]*=l,N.elements[8]*=c,N.elements[9]*=c,N.elements[10]*=c,e.setFromRotationMatrix(N),s.x=a,s.y=o,s.z=h,this}makePerspective(t,e,s,i,n,a,o=2e3,h=!1){const r=this.elements,l=2*n/(e-t),c=2*n/(s-i),u=(e+t)/(e-t),d=(s+i)/(s-i);let p,f;if(h)p=n/(a-n),f=a*n/(a-n);else if(o===2e3)p=-(a+n)/(a-n),f=-2*a*n/(a-n);else if(o===2001)p=-a/(a-n),f=-a*n/(a-n);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return r[0]=l,r[4]=0,r[8]=u,r[12]=0,r[1]=0,r[5]=c,r[9]=d,r[13]=0,r[2]=0,r[6]=0,r[10]=p,r[14]=f,r[3]=0,r[7]=0,r[11]=-1,r[15]=0,this}makeOrthographic(t,e,s,i,n,a,o=2e3,h=!1){const r=this.elements,l=2/(e-t),c=2/(s-i),u=-(e+t)/(e-t),d=-(s+i)/(s-i);let p,f;if(h)p=1/(a-n),f=a/(a-n);else if(o===2e3)p=-2/(a-n),f=-(a+n)/(a-n);else if(o===2001)p=-1/(a-n),f=-n/(a-n);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return r[0]=l,r[4]=0,r[8]=0,r[12]=u,r[1]=0,r[5]=c,r[9]=0,r[13]=d,r[2]=0,r[6]=0,r[10]=p,r[14]=f,r[3]=0,r[7]=0,r[11]=0,r[15]=1,this}equals(t){const e=this.elements,s=t.elements;for(let i=0;i<16;i++)if(e[i]!==s[i])return!1;return!0}fromArray(t,e=0){for(let s=0;s<16;s++)this.elements[s]=t[s+e];return this}toArray(t=[],e=0){const s=this.elements;return t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3],t[e+4]=s[4],t[e+5]=s[5],t[e+6]=s[6],t[e+7]=s[7],t[e+8]=s[8],t[e+9]=s[9],t[e+10]=s[10],t[e+11]=s[11],t[e+12]=s[12],t[e+13]=s[13],t[e+14]=s[14],t[e+15]=s[15],t}}const K=new D,N=new B,Yt=new D(0,0,0),Gt=new D(1,1,1),Z=new D,ct=new D,W=new D,At=new B,Rt=new rt;class dt{constructor(t=0,e=0,s=0,i=dt.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=s,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,s,i=this._order){return this._x=t,this._y=e,this._z=s,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,s=!0){const i=t.elements,n=i[0],a=i[4],o=i[8],h=i[1],r=i[5],l=i[9],c=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(U(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-l,d),this._z=Math.atan2(-a,n)):(this._x=Math.atan2(u,r),this._z=0);break;case"YXZ":this._x=Math.asin(-U(l,-1,1)),Math.abs(l)<.9999999?(this._y=Math.atan2(o,d),this._z=Math.atan2(h,r)):(this._y=Math.atan2(-c,n),this._z=0);break;case"ZXY":this._x=Math.asin(U(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-a,r)):(this._y=0,this._z=Math.atan2(h,n));break;case"ZYX":this._y=Math.asin(-U(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(h,n)):(this._x=0,this._z=Math.atan2(-a,r));break;case"YZX":this._z=Math.asin(U(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-l,r),this._y=Math.atan2(-c,n)):(this._x=0,this._y=Math.atan2(o,d));break;case"XZY":this._z=Math.asin(-U(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,r),this._y=Math.atan2(o,n)):(this._x=Math.atan2(-l,d),this._y=0);break;default:q("Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,s===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,s){return At.makeRotationFromQuaternion(t),this.setFromRotationMatrix(At,e,s)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Rt.setFromEuler(this),this.setFromQuaternion(Rt,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}dt.DEFAULT_ORDER="XYZ";class Xt{constructor(){this.mask=1}set(t){this.mask=(1<<t|0)>>>0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return(this.mask&t.mask)!==0}isEnabled(t){return(this.mask&(1<<t|0))!==0}}let jt=0;const Ft=new D,tt=new rt,v=new B,ut=new D,ht=new D,Zt=new D,Jt=new rt,kt=new D(1,0,0),Lt=new D(0,1,0),Dt=new D(0,0,1),Ut={type:"added"},$t={type:"removed"},et={type:"childadded",child:null},bt={type:"childremoved",child:null};class J extends Et{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:jt++}),this.uuid=ft(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=J.DEFAULT_UP.clone();const t=new D,e=new dt,s=new rt,i=new D(1,1,1);function n(){s.setFromEuler(e,!1)}function a(){e.setFromQuaternion(s,void 0,!1)}e._onChange(n),s._onChange(a),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:s},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new B},normalMatrix:{value:new at}}),this.matrix=new B,this.matrixWorld=new B,this.matrixAutoUpdate=J.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=J.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new Xt,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.static=!1,this.userData={},this.pivot=null}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return tt.setFromAxisAngle(t,e),this.quaternion.multiply(tt),this}rotateOnWorldAxis(t,e){return tt.setFromAxisAngle(t,e),this.quaternion.premultiply(tt),this}rotateX(t){return this.rotateOnAxis(kt,t)}rotateY(t){return this.rotateOnAxis(Lt,t)}rotateZ(t){return this.rotateOnAxis(Dt,t)}translateOnAxis(t,e){return Ft.copy(t).applyQuaternion(this.quaternion),this.position.add(Ft.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(kt,t)}translateY(t){return this.translateOnAxis(Lt,t)}translateZ(t){return this.translateOnAxis(Dt,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(v.copy(this.matrixWorld).invert())}lookAt(t,e,s){t.isVector3?ut.copy(t):ut.set(t,e,s);const i=this.parent;this.updateWorldMatrix(!0,!1),ht.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?v.lookAt(ht,ut,this.up):v.lookAt(ut,ht,this.up),this.quaternion.setFromRotationMatrix(v),i&&(v.extractRotation(i.matrixWorld),tt.setFromRotationMatrix(v),this.quaternion.premultiply(tt.invert()))}add(t){if(arguments.length>1){for(let e=0;e<arguments.length;e++)this.add(arguments[e]);return this}return t===this?(St("Object3D.add: object can\'t be added as a child of itself.",t),this):(t&&t.isObject3D?(t.removeFromParent(),t.parent=this,this.children.push(t),t.dispatchEvent(Ut),et.child=t,this.dispatchEvent(et),et.child=null):St("Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let s=0;s<arguments.length;s++)this.remove(arguments[s]);return this}const e=this.children.indexOf(t);return e!==-1&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent($t),bt.child=t,this.dispatchEvent(bt),bt.child=null),this}removeFromParent(){const t=this.parent;return t!==null&&t.remove(this),this}clear(){return this.remove(...this.children)}attach(t){return this.updateWorldMatrix(!0,!1),v.copy(this.matrixWorld).invert(),t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),v.multiply(t.parent.matrixWorld)),t.applyMatrix4(v),t.removeFromParent(),t.parent=this,this.children.push(t),t.updateWorldMatrix(!1,!0),t.dispatchEvent(Ut),et.child=t,this.dispatchEvent(et),et.child=null,this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let s=0,i=this.children.length;s<i;s++){const a=this.children[s].getObjectByProperty(t,e);if(a!==void 0)return a}}getObjectsByProperty(t,e,s=[]){this[t]===e&&s.push(this);const i=this.children;for(let n=0,a=i.length;n<a;n++)i[n].getObjectsByProperty(t,e,s);return s}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ht,t,Zt),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ht,Jt,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let s=0,i=e.length;s<i;s++)e[s].traverse(t)}traverseVisible(t){if(this.visible===!1)return;t(this);const e=this.children;for(let s=0,i=e.length;s<i;s++)e[s].traverseVisible(t)}traverseAncestors(t){const e=this.parent;e!==null&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);const t=this.pivot;if(t!==null){const e=t.x,s=t.y,i=t.z,n=this.matrix.elements;n[12]+=e-n[0]*e-n[4]*s-n[8]*i,n[13]+=s-n[1]*e-n[5]*s-n[9]*i,n[14]+=i-n[2]*e-n[6]*s-n[10]*i}this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let s=0,i=e.length;s<i;s++)e[s].updateMatrixWorld(t)}updateWorldMatrix(t,e){const s=this.parent;if(t===!0&&s!==null&&s.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),e===!0){const i=this.children;for(let n=0,a=i.length;n<a;n++)i[n].updateWorldMatrix(!1,!0)}}toJSON(t){const e=t===void 0||typeof t=="string",s={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},s.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});const i={};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.castShadow===!0&&(i.castShadow=!0),this.receiveShadow===!0&&(i.receiveShadow=!0),this.visible===!1&&(i.visible=!1),this.frustumCulled===!1&&(i.frustumCulled=!1),this.renderOrder!==0&&(i.renderOrder=this.renderOrder),this.static!==!1&&(i.static=this.static),Object.keys(this.userData).length>0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),this.pivot!==null&&(i.pivot=this.pivot.toArray()),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.morphTargetDictionary!==void 0&&(i.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(i.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.geometryInfo=this._geometryInfo.map(o=>({...o,boundingBox:o.boundingBox?o.boundingBox.toJSON():void 0,boundingSphere:o.boundingSphere?o.boundingSphere.toJSON():void 0})),i.instanceInfo=this._instanceInfo.map(o=>({...o})),i.availableInstanceIds=this._availableInstanceIds.slice(),i.availableGeometryIds=this._availableGeometryIds.slice(),i.nextIndexStart=this._nextIndexStart,i.nextVertexStart=this._nextVertexStart,i.geometryCount=this._geometryCount,i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.matricesTexture=this._matricesTexture.toJSON(t),i.indirectTexture=this._indirectTexture.toJSON(t),this._colorsTexture!==null&&(i.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(i.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(i.boundingBox=this.boundingBox.toJSON()));function n(o,h){return o[h.uuid]===void 0&&(o[h.uuid]=h.toJSON(t)),h.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=n(t.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const h=o.shapes;if(Array.isArray(h))for(let r=0,l=h.length;r<l;r++){const c=h[r];n(t.shapes,c)}else n(t.shapes,h)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(n(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const o=[];for(let h=0,r=this.material.length;h<r;h++)o.push(n(t.materials,this.material[h]));i.material=o}else i.material=n(t.materials,this.material);if(this.children.length>0){i.children=[];for(let o=0;o<this.children.length;o++)i.children.push(this.children[o].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let o=0;o<this.animations.length;o++){const h=this.animations[o];i.animations.push(n(t.animations,h))}}if(e){const o=a(t.geometries),h=a(t.materials),r=a(t.textures),l=a(t.images),c=a(t.shapes),u=a(t.skeletons),d=a(t.animations),p=a(t.nodes);o.length>0&&(s.geometries=o),h.length>0&&(s.materials=h),r.length>0&&(s.textures=r),l.length>0&&(s.images=l),c.length>0&&(s.shapes=c),u.length>0&&(s.skeletons=u),d.length>0&&(s.animations=d),p.length>0&&(s.nodes=p)}return s.object=i,s;function a(o){const h=[];for(const r in o){const l=o[r];delete l.metadata,h.push(l)}return h}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),t.pivot!==null&&(this.pivot=t.pivot.clone()),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.static=t.static,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let s=0;s<t.children.length;s++){const i=t.children[s];this.add(i.clone())}return this}}J.DEFAULT_UP=new D(0,1,0),J.DEFAULT_MATRIX_AUTO_UPDATE=!0,J.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const Y=Qt();function Qt(){const m=new ArrayBuffer(4),t=new Float32Array(m),e=new Uint32Array(m),s=new Uint32Array(512),i=new Uint32Array(512);for(let h=0;h<256;++h){const r=h-127;r<-27?(s[h]=0,s[h|256]=32768,i[h]=24,i[h|256]=24):r<-14?(s[h]=1024>>-r-14,s[h|256]=1024>>-r-14|32768,i[h]=-r-1,i[h|256]=-r-1):r<=15?(s[h]=r+15<<10,s[h|256]=r+15<<10|32768,i[h]=13,i[h|256]=13):r<128?(s[h]=31744,s[h|256]=64512,i[h]=24,i[h|256]=24):(s[h]=31744,s[h|256]=64512,i[h]=13,i[h|256]=13)}const n=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let h=1;h<1024;++h){let r=h<<13,l=0;for(;(r&8388608)===0;)r<<=1,l-=8388608;r&=-8388609,l+=947912704,n[h]=r|l}for(let h=1024;h<2048;++h)n[h]=939524096+(h-1024<<13);for(let h=1;h<31;++h)a[h]=h<<23;a[31]=1199570944,a[32]=2147483648;for(let h=33;h<63;++h)a[h]=2147483648+(h-32<<23);a[63]=3347054592;for(let h=1;h<64;++h)h!==32&&(o[h]=1024);return{floatView:t,uint32View:e,baseTable:s,shiftTable:i,mantissaTable:n,exponentTable:a,offsetTable:o}}function Kt(m){Math.abs(m)>65504&&q("DataUtils.toHalfFloat(): Value out of range."),m=U(m,-65504,65504),Y.floatView[0]=m;const t=Y.uint32View[0],e=t>>23&511;return Y.baseTable[e]+((t&8388607)>>Y.shiftTable[e])}function te(m){const t=m>>10;return Y.uint32View[0]=Y.mantissaTable[Y.offsetTable[t]+(m&1023)]+Y.exponentTable[t],Y.floatView[0]}class pt{static toHalfFloat(t){return Kt(t)}static fromHalfFloat(t){return te(t)}}class ee extends H{constructor(t=null,e=1,s=1,i,n,a,o,h,r=1003,l=1003,c,u){super(null,a,o,h,r,l,i,n,c,u),this.isDataTexture=!0,this.image={data:t,width:e,height:s},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const ot={enabled:!1,files:{},add:function(m,t){this.enabled!==!1&&(It(m)||(this.files[m]=t))},get:function(m){if(this.enabled!==!1&&!It(m))return this.files[m]},remove:function(m){delete this.files[m]},clear:function(){this.files={}}};function It(m){try{const t=m.slice(m.indexOf(":")+1);return new URL(t).protocol==="blob:"}catch{return!1}}class se{constructor(t,e,s){const i=this;let n=!1,a=0,o=0,h;const r=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=s,this._abortController=null,this.itemStart=function(l){o++,n===!1&&i.onStart!==void 0&&i.onStart(l,a,o),n=!0},this.itemEnd=function(l){a++,i.onProgress!==void 0&&i.onProgress(l,a,o),a===o&&(n=!1,i.onLoad!==void 0&&i.onLoad())},this.itemError=function(l){i.onError!==void 0&&i.onError(l)},this.resolveURL=function(l){return h?h(l):l},this.setURLModifier=function(l){return h=l,this},this.addHandler=function(l,c){return r.push(l,c),this},this.removeHandler=function(l){const c=r.indexOf(l);return c!==-1&&r.splice(c,2),this},this.getHandler=function(l){for(let c=0,u=r.length;c<u;c+=2){const d=r[c],p=r[c+1];if(d.global&&(d.lastIndex=0),d.test(l))return p}return null},this.abort=function(){return this.abortController.abort(),this._abortController=null,this}}get abortController(){return this._abortController||(this._abortController=new AbortController),this._abortController}}const ie=new se;class lt{constructor(t){this.manager=t!==void 0?t:ie,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}load(){}loadAsync(t,e){const s=this;return new Promise(function(i,n){s.load(t,i,e,n)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}abort(){return this}}lt.DEFAULT_MATERIAL_NAME="__DEFAULT";const G={};class ne extends Error{constructor(t,e){super(t),this.response=e}}class Ot extends lt{constructor(t){super(t),this.mimeType="",this.responseType="",this._abortController=new AbortController}load(t,e,s,i){t===void 0&&(t=""),this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const n=ot.get(`file:${t}`);if(n!==void 0)return this.manager.itemStart(t),setTimeout(()=>{e&&e(n),this.manager.itemEnd(t)},0),n;if(G[t]!==void 0){G[t].push({onLoad:e,onProgress:s,onError:i});return}G[t]=[],G[t].push({onLoad:e,onProgress:s,onError:i});const a=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),o=this.mimeType,h=this.responseType;fetch(a).then(r=>{if(r.status===200||r.status===0){if(r.status===0&&q("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||r.body===void 0||r.body.getReader===void 0)return r;const l=G[t],c=r.body.getReader(),u=r.headers.get("X-File-Size")||r.headers.get("Content-Length"),d=u?parseInt(u):0,p=d!==0;let f=0;const M=new ReadableStream({start(y){z();function z(){c.read().then(({done:C,value:k})=>{if(C)y.close();else{f+=k.byteLength;const L=new ProgressEvent("progress",{lengthComputable:p,loaded:f,total:d});for(let F=0,A=l.length;F<A;F++){const x=l[F];x.onProgress&&x.onProgress(L)}y.enqueue(k),z()}},C=>{y.error(C)})}}});return new Response(M)}else throw new ne(`fetch for "${r.url}" responded with ${r.status}: ${r.statusText}`,r)}).then(r=>{switch(h){case"arraybuffer":return r.arrayBuffer();case"blob":return r.blob();case"document":return r.text().then(l=>new DOMParser().parseFromString(l,o));case"json":return r.json();default:if(o==="")return r.text();{const c=/charset="?([^;"\\s]*)"?/i.exec(o),u=c&&c[1]?c[1].toLowerCase():void 0,d=new TextDecoder(u);return r.arrayBuffer().then(p=>d.decode(p))}}}).then(r=>{ot.add(`file:${t}`,r);const l=G[t];delete G[t];for(let c=0,u=l.length;c<u;c++){const d=l[c];d.onLoad&&d.onLoad(r)}}).catch(r=>{const l=G[t];if(l===void 0)throw this.manager.itemError(t),r;delete G[t];for(let c=0,u=l.length;c<u;c++){const d=l[c];d.onError&&d.onError(r)}this.manager.itemError(t)}).finally(()=>{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}const st=new WeakMap;class Wt extends lt{constructor(t){super(t)}load(t,e,s,i){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const n=this,a=ot.get(`image:${t}`);if(a!==void 0){if(a.complete===!0)n.manager.itemStart(t),setTimeout(function(){e&&e(a),n.manager.itemEnd(t)},0);else{let c=st.get(a);c===void 0&&(c=[],st.set(a,c)),c.push({onLoad:e,onError:i})}return a}const o=mt("img");function h(){l(),e&&e(this);const c=st.get(this)||[];for(let u=0;u<c.length;u++){const d=c[u];d.onLoad&&d.onLoad(this)}st.delete(this),n.manager.itemEnd(t)}function r(c){l(),i&&i(c),ot.remove(`image:${t}`);const u=st.get(this)||[];for(let d=0;d<u.length;d++){const p=u[d];p.onError&&p.onError(c)}st.delete(this),n.manager.itemError(t),n.manager.itemEnd(t)}function l(){o.removeEventListener("load",h,!1),o.removeEventListener("error",r,!1)}return o.addEventListener("load",h,!1),o.addEventListener("error",r,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(o.crossOrigin=this.crossOrigin),ot.add(`image:${t}`,o),n.manager.itemStart(t),o.src=t,o}}class re extends lt{constructor(t){super(t)}load(t,e,s,i){const n=this,a=new ee,o=new Ot(this.manager);return o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setPath(this.path),o.setWithCredentials(n.withCredentials),o.load(t,function(h){let r;try{r=n.parse(h)}catch(l){if(i!==void 0)i(l);else{l(l);return}}r.image!==void 0?a.image=r.image:r.data!==void 0&&(a.image.width=r.width,a.image.height=r.height,a.image.data=r.data),a.wrapS=r.wrapS!==void 0?r.wrapS:1001,a.wrapT=r.wrapT!==void 0?r.wrapT:1001,a.magFilter=r.magFilter!==void 0?r.magFilter:1006,a.minFilter=r.minFilter!==void 0?r.minFilter:1006,a.anisotropy=r.anisotropy!==void 0?r.anisotropy:1,r.colorSpace!==void 0&&(a.colorSpace=r.colorSpace),r.flipY!==void 0&&(a.flipY=r.flipY),r.format!==void 0&&(a.format=r.format),r.type!==void 0&&(a.type=r.type),r.mipmaps!==void 0&&(a.mipmaps=r.mipmaps,a.minFilter=1008),r.mipmapCount===1&&(a.minFilter=1006),r.generateMipmaps!==void 0&&(a.generateMipmaps=r.generateMipmaps),a.needsUpdate=!0,e&&e(a,r)},s,i),a}}class ae extends lt{constructor(t){super(t)}load(t,e,s,i){const n=new H,a=new Wt(this.manager);return a.setCrossOrigin(this.crossOrigin),a.setPath(this.path),a.load(t,function(o){n.image=o,n.needsUpdate=!0,e!==void 0&&e(n)},s,i),n}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"183"}})),typeof window<"u"&&(window.__THREE__?q("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="183"),new D,new D,new D;class he{min;roots;nodes;constructor(){this.min=null,this.roots=[],this.nodes=new Map}shift(){const t=this.min;if(t===null||this.roots.length<1)return this.min=null,t;this.remove(t),this.roots.length>50&&this.consolidate();let e=1/0;const s=this.roots.length;for(let i=0;i<s;i++){const n=this.roots[i],a=this.getDistance(n);a<e&&(e=a,this.min=n)}return t}consolidate(){const t=[[],[],[],[],[],[],[]],e=t.length-1,s=this.roots.length;for(let i=0;i<s;i++){const n=this.roots[i],a=this.nodes.get(n);a&&a.depth<e&&t[a.depth].push(n)}for(let i=0;i<=e;i++)for(;t[i].length>1;){const n=t[i].shift(),a=t[i].shift(),o=i+1;let h=-1;if(n!==void 0&&a!==void 0){const r=this.nodes.get(n),l=this.nodes.get(a);r&&l&&(r.distance<l.distance?(r.depth=o,r.children.push(a),l.parent=n,o<=e&&t[o].push(n),h=this.roots.indexOf(a)):(l.depth=o,l.children.push(n),r.parent=a,o<=e&&t[o].push(a),h=this.roots.indexOf(n)))}h>-1&&this.roots.splice(h,1)}}add(t,e){if(this.nodes.set(t,{nodeIndex:t,distance:e,depth:0,parent:null,children:[]}),this.min===null)this.min=t;else{const s=this.nodes.get(this.min);s&&e<s.distance&&(this.min=t)}this.roots.push(t)}update(t,e){this.remove(t),this.add(t,e)}remove(t){if(!this.nodes.has(t))return;const e=this.nodes.get(t)?.children;if(e&&e.length>0)for(let i=0;i<e.length;i++){const n=e[i],a=this.nodes.get(n),o=this.nodes.get(t);a&&o&&(a.parent=o.parent),a&&a.parent===null&&this.roots.push(n)}let s=this.nodes.get(t)?.parent;if(s===null){const i=this.roots.indexOf(t);i>-1&&this.roots.splice(i,1)}else for(;s;){const i=this.nodes.get(s);i&&(i.depth--,s=i.parent)}}getDistance(t){const e=this.nodes.get(t);return e?e.distance:1/0}}const wt={};class oe extends re{constructor(t){super(t),this.type=1016}parse(t){const a=function(x,b){switch(x){case 1:throw new Error("THREE.HDRLoader: Read Error: "+(b||""));case 2:throw new Error("THREE.HDRLoader: Write Error: "+(b||""));case 3:throw new Error("THREE.HDRLoader: Bad File Format: "+(b||""));default:case 4:throw new Error("THREE.HDRLoader: Memory Error: "+(b||""))}},c=function(x,b,w){b=b||1024;let R=x.pos,S=-1,g=0,_="",E=String.fromCharCode.apply(null,new Uint16Array(x.subarray(R,R+128)));for(;0>(S=E.indexOf(`\n`))&&g<b&&R<x.byteLength;)_+=E,g+=E.length,R+=128,E+=String.fromCharCode.apply(null,new Uint16Array(x.subarray(R,R+128)));return-1<S?(x.pos+=g+S+1,_+E.slice(0,S)):!1},u=function(x){const b=/^#\\?(\\S+)/,w=/^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,T=/^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,R=/^\\s*FORMAT=(\\S+)\\s*$/,S=/^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/,g={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let _,E;for((x.pos>=x.byteLength||!(_=c(x)))&&a(1,"no header found"),(E=_.match(b))||a(3,"bad initial token"),g.valid|=1,g.programtype=E[1],g.string+=_+`\n`;_=c(x),_!==!1;){if(g.string+=_+`\n`,_.charAt(0)==="#"){g.comments+=_+`\n`;continue}if((E=_.match(w))&&(g.gamma=parseFloat(E[1])),(E=_.match(T))&&(g.exposure=parseFloat(E[1])),(E=_.match(R))&&(g.valid|=2,g.format=E[1]),(E=_.match(S))&&(g.valid|=4,g.height=parseInt(E[1],10),g.width=parseInt(E[2],10)),g.valid&2&&g.valid&4)break}return g.valid&2||a(3,"missing format specifier"),g.valid&4||a(3,"missing image size specifier"),g},d=function(x,b,w){const T=b;if(T<8||T>32767||x[0]!==2||x[1]!==2||x[2]&128)return new Uint8Array(x);T!==(x[2]<<8|x[3])&&a(3,"wrong scanline width");const R=new Uint8Array(4*b*w);R.length||a(4,"unable to allocate buffer space");let S=0,g=0;const _=4*T,E=new Uint8Array(4),P=new Uint8Array(_);let $=w;for(;$>0&&g<x.byteLength;){g+4>x.byteLength&&a(1),E[0]=x[g++],E[1]=x[g++],E[2]=x[g++],E[3]=x[g++],(E[0]!=2||E[1]!=2||(E[2]<<8|E[3])!=T)&&a(3,"bad rgbe scanline format");let V=0,O;for(;V<_&&g<x.byteLength;){O=x[g++];const X=O>128;if(X&&(O-=128),(O===0||V+O>_)&&a(3,"bad scanline data"),X){const j=x[g++];for(let Pt=0;Pt<O;Pt++)P[V++]=j}else P.set(x.subarray(g,g+O),V),V+=O,g+=O}const it=T;for(let X=0;X<it;X++){let j=0;R[S]=P[X+j],j+=T,R[S+1]=P[X+j],j+=T,R[S+2]=P[X+j],j+=T,R[S+3]=P[X+j],S+=4}$--}return R},p=function(x,b,w,T){const R=x[b+3],S=Math.pow(2,R-128)/255;w[T+0]=x[b+0]*S,w[T+1]=x[b+1]*S,w[T+2]=x[b+2]*S,w[T+3]=1},f=function(x,b,w,T){const R=x[b+3],S=Math.pow(2,R-128)/255;w[T+0]=pt.toHalfFloat(Math.min(x[b+0]*S,65504)),w[T+1]=pt.toHalfFloat(Math.min(x[b+1]*S,65504)),w[T+2]=pt.toHalfFloat(Math.min(x[b+2]*S,65504)),w[T+3]=pt.toHalfFloat(1)},M=new Uint8Array(t);M.pos=0;const y=u(M),z=y.width,C=y.height,k=d(M.subarray(M.pos),z,C);let L,F,A;switch(this.type){case 1015:A=k.length/4;const x=new Float32Array(A*4);for(let w=0;w<A;w++)p(k,w*4,x,w*4);L=x,F=1015;break;case 1016:A=k.length/4;const b=new Uint16Array(A*4);for(let w=0;w<A;w++)f(k,w*4,b,w*4);L=b,F=1016;break;default:throw new Error("THREE.HDRLoader: Unsupported type: "+this.type)}return{width:z,height:C,data:L,header:y.string,gamma:y.gamma,exposure:y.exposure,type:F}}setDataType(t){return this.type=t,this}load(t,e,s,i){function n(a,o){switch(a.type){case 1015:case 1016:a.colorSpace=Vt,a.minFilter=1006,a.magFilter=1006,a.generateMipmaps=!1,a.flipY=!0;break}e&&e(a,o)}return super.load(t,n,s,i)}}const zt=new Ot;zt.setRequestHeader(wt);const le=new Wt;le.load=(m,t,e,s)=>{const i=new Image;return zt.setResponseType("blob"),zt.load(m,function(n){i.src=URL.createObjectURL(n),i.onload=()=>{URL.revokeObjectURL(i.src),t?.(i)}},e,s),i},new ae().setRequestHeader(wt),new oe().setRequestHeader(wt),new D,new D,new D;class ce{graph;queue;previous;constructor(){this.graph=new Map,this.queue=null,this.previous=new Map}setGraph(t){if(!(t.length<1))for(const e of t){const[s,i]=e;this.graph.set(s,new Map);for(const n of i){const[a,o]=n;this.graph.get(s)?.set(a,o)}}}getPath(t,e){if(t===e)return[];const s=this.queue=new he;s.add(t,0),this.previous.set(t,null);let i=null;for(;i=s.shift();){if(i===e){const o=[];for(;i!==null&&this.previous.get(i)!==null;)o.unshift(i),i=this.previous.get(i)??null;return o}const n=s.getDistance(i);if(n===1/0)return[];const a=this.graph.get(i);a&&a.forEach((o,h)=>{const r=s.getDistance(h),l=n+o;l<r&&(s.update(h,l),this.previous.set(h,i))})}return[]}}const Nt=new ce;onmessage=function({data:m}){const{type:t}=m;switch(t){case"setGraph":{Nt.graph=m.graph,postMessage({type:"done"});break}case"getPath":{const e=Nt.getPath(...m.st);postMessage({type:"done",pathIds:e});break}}}})();\n', la = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", Io], { type: "text/javascript;charset=utf-8" });
|
|
13063
|
-
function
|
|
13072
|
+
function jp(i) {
|
|
13064
13073
|
let e;
|
|
13065
13074
|
try {
|
|
13066
13075
|
if (e = la && (self.URL || self.webkitURL).createObjectURL(la), !e) throw "";
|
|
@@ -13079,9 +13088,9 @@ function Np(i) {
|
|
|
13079
13088
|
);
|
|
13080
13089
|
}
|
|
13081
13090
|
}
|
|
13082
|
-
class
|
|
13091
|
+
class Up {
|
|
13083
13092
|
constructor(e) {
|
|
13084
|
-
this.dijkstra = e, this.workerPool.setWorkerCreator(() => new
|
|
13093
|
+
this.dijkstra = e, this.workerPool.setWorkerCreator(() => new jp());
|
|
13085
13094
|
}
|
|
13086
13095
|
workerPool = new xa(4);
|
|
13087
13096
|
_mainThreadGraph = [];
|
|
@@ -13095,12 +13104,12 @@ class jp {
|
|
|
13095
13104
|
this.workerPool.dispose();
|
|
13096
13105
|
}
|
|
13097
13106
|
}
|
|
13098
|
-
class
|
|
13107
|
+
class Gp extends mt {
|
|
13099
13108
|
constructor(e, t) {
|
|
13100
13109
|
super(et.Topology, e, t.classified.Topology), this.viewport = e, this.cache = t;
|
|
13101
13110
|
}
|
|
13102
|
-
dijkstra = new
|
|
13103
|
-
dijkstraWorker = new
|
|
13111
|
+
dijkstra = new Np();
|
|
13112
|
+
dijkstraWorker = new Up(this.dijkstra);
|
|
13104
13113
|
async createFromGml(e) {
|
|
13105
13114
|
const { url: t, linkWidth: n = 20, linkColor: s = 65280, renderNode: r = !0, nodeColor: a = 255 } = e;
|
|
13106
13115
|
return La(t).then((o) => {
|
|
@@ -13162,10 +13171,10 @@ class Up extends mt {
|
|
|
13162
13171
|
*/
|
|
13163
13172
|
setPassable(e, t) {
|
|
13164
13173
|
if (e.topologyType === "line") {
|
|
13165
|
-
|
|
13174
|
+
zr("只支持 network 类型");
|
|
13166
13175
|
return;
|
|
13167
13176
|
}
|
|
13168
|
-
const n =
|
|
13177
|
+
const n = Cs(e.info.nodes), s = n.reduce((a, o) => (a.set(o.id, o), a), /* @__PURE__ */ new Map()), r = e.nodes.reduce((a, o) => (a.set(o.sid, o), a), /* @__PURE__ */ new Map());
|
|
13169
13178
|
t.forEach(({ sourceNodeId: a, targetNodeId: o, passable: l }) => {
|
|
13170
13179
|
const c = s.get(a), u = s.get(o);
|
|
13171
13180
|
if (!c || !u) {
|
|
@@ -13457,7 +13466,7 @@ class Up extends mt {
|
|
|
13457
13466
|
this.dijkstraWorker.dispose();
|
|
13458
13467
|
}
|
|
13459
13468
|
}
|
|
13460
|
-
class
|
|
13469
|
+
class Vp extends mt {
|
|
13461
13470
|
constructor(e, t) {
|
|
13462
13471
|
super(et.Helper, e, t.classified.Helper), this.viewport = e, this.cache = t;
|
|
13463
13472
|
}
|
|
@@ -13505,8 +13514,8 @@ class Gp extends mt {
|
|
|
13505
13514
|
rotation: l,
|
|
13506
13515
|
scale: c
|
|
13507
13516
|
},
|
|
13508
|
-
new
|
|
13509
|
-
new
|
|
13517
|
+
new dn(n, s),
|
|
13518
|
+
new un({
|
|
13510
13519
|
color: r,
|
|
13511
13520
|
opacity: a,
|
|
13512
13521
|
transparent: u,
|
|
@@ -13527,7 +13536,7 @@ class Gp extends mt {
|
|
|
13527
13536
|
rotation: l = { x: 0, y: 0, z: 0 },
|
|
13528
13537
|
scale: c = { x: 1, y: 1, z: 1 },
|
|
13529
13538
|
repeat: u = { x: 10, y: 10 }
|
|
13530
|
-
} = e, h = await _t.loadAsync(t), d = new
|
|
13539
|
+
} = e, h = await _t.loadAsync(t), d = new dn(s, r);
|
|
13531
13540
|
d.computeBoundingBox();
|
|
13532
13541
|
const f = new Ue({
|
|
13533
13542
|
side: Tt,
|
|
@@ -13561,7 +13570,7 @@ class Gp extends mt {
|
|
|
13561
13570
|
return r.userData.sid = t, r.userData.stype = "Helper", this.viewport.scener.addObject(r, this.scene), r;
|
|
13562
13571
|
}
|
|
13563
13572
|
}
|
|
13564
|
-
class
|
|
13573
|
+
class Hp extends mt {
|
|
13565
13574
|
constructor(e, t) {
|
|
13566
13575
|
super(et.PluginObject, e, t.classified.PluginObject), this.viewport = e, this.cache = t;
|
|
13567
13576
|
}
|
|
@@ -13573,13 +13582,13 @@ class Vp extends mt {
|
|
|
13573
13582
|
return e ? (this.viewport.scener.addObject(t, e), e) : null;
|
|
13574
13583
|
}
|
|
13575
13584
|
}
|
|
13576
|
-
class
|
|
13585
|
+
class Wp extends mt {
|
|
13577
13586
|
constructor(e, t) {
|
|
13578
13587
|
super(et.Group, e, t.classified.Group), this.viewport = e, this.cache = t;
|
|
13579
13588
|
}
|
|
13580
13589
|
}
|
|
13581
|
-
const cs = new
|
|
13582
|
-
class
|
|
13590
|
+
const cs = new Nn();
|
|
13591
|
+
class qp extends mt {
|
|
13583
13592
|
constructor(e, t) {
|
|
13584
13593
|
super(et.Decal, e, t.classified.Decal), this.viewport = e, this.cache = t;
|
|
13585
13594
|
}
|
|
@@ -13587,7 +13596,7 @@ class Wp extends mt {
|
|
|
13587
13596
|
* 创建贴花
|
|
13588
13597
|
*/
|
|
13589
13598
|
async create(e, t) {
|
|
13590
|
-
const n = new
|
|
13599
|
+
const n = new Dr(e);
|
|
13591
13600
|
return t !== null && this.viewport.scener.addObject(n, t), await n.updateTexture(e.url), n.updateMaterial(e), this.updateGeometry(n, e), n;
|
|
13592
13601
|
}
|
|
13593
13602
|
updateAllGeometry(e = {}) {
|
|
@@ -13613,9 +13622,9 @@ class Wp extends mt {
|
|
|
13613
13622
|
scale: new D()
|
|
13614
13623
|
};
|
|
13615
13624
|
l.matrixWorld.decompose(p.position, p.quaternion, p.scale), p.scale.multiply(e.textureAspect), l.getWorldPosition(h), d.set(-f[8], -f[9], -f[10]).normalize(), cs.set(h, d), cs.near = 0, cs.far = r;
|
|
13616
|
-
const [g] = cs.intersectObjects(a).filter(({ object: v }) => !(v instanceof
|
|
13625
|
+
const [g] = cs.intersectObjects(a).filter(({ object: v }) => !(v instanceof Dr));
|
|
13617
13626
|
if (g) {
|
|
13618
|
-
const { object: v } = g, w = new pe().setFromRotationMatrix(l.matrixWorld, "XYZ"), S = new
|
|
13627
|
+
const { object: v } = g, w = new pe().setFromRotationMatrix(l.matrixWorld, "XYZ"), S = new Nd({
|
|
13619
13628
|
offsetUnits: o,
|
|
13620
13629
|
...t,
|
|
13621
13630
|
object: v,
|
|
@@ -13628,26 +13637,26 @@ class Wp extends mt {
|
|
|
13628
13637
|
}
|
|
13629
13638
|
}
|
|
13630
13639
|
const { x: c, y: u } = e.textureAspect;
|
|
13631
|
-
return l.geometry = new
|
|
13640
|
+
return l.geometry = new dn(c, u), e;
|
|
13632
13641
|
}
|
|
13633
13642
|
}
|
|
13634
|
-
class
|
|
13643
|
+
class Kp {
|
|
13635
13644
|
viewport;
|
|
13636
13645
|
cache;
|
|
13637
13646
|
scene;
|
|
13638
13647
|
store;
|
|
13639
13648
|
constructor(e, t) {
|
|
13640
13649
|
this.viewport = e, this.cache = t, this.scene = e.scene, this.store = {
|
|
13641
|
-
groupManager: new
|
|
13642
|
-
lightManager: new
|
|
13643
|
-
modelManager: new
|
|
13644
|
-
poiManager: new
|
|
13645
|
-
poiNodeManager: new
|
|
13646
|
-
canvas3DManager: new
|
|
13647
|
-
topologyManager: new
|
|
13648
|
-
helperManager: new
|
|
13649
|
-
decalManager: new
|
|
13650
|
-
pluginObjectManager: new
|
|
13650
|
+
groupManager: new Wp(this.viewport, this.cache),
|
|
13651
|
+
lightManager: new Jd(this.viewport, this.cache),
|
|
13652
|
+
modelManager: new Bp(this.viewport, this.cache),
|
|
13653
|
+
poiManager: new kp(this.viewport, this.cache),
|
|
13654
|
+
poiNodeManager: new zp(this.viewport, this.cache),
|
|
13655
|
+
canvas3DManager: new Rp(this.viewport, this.cache),
|
|
13656
|
+
topologyManager: new Gp(this.viewport, this.cache),
|
|
13657
|
+
helperManager: new Vp(this.viewport, this.cache),
|
|
13658
|
+
decalManager: new qp(this.viewport, this.cache),
|
|
13659
|
+
pluginObjectManager: new Hp(this.viewport, this.cache)
|
|
13651
13660
|
}, e.signals.beforeRender.add(this.update.bind(this)), e.signals.objectAdded.add(this.setObjectCache.bind(this)), e.signals.objectRemoved.add(this.deleteObjectCache.bind(this));
|
|
13652
13661
|
}
|
|
13653
13662
|
/**
|
|
@@ -13677,7 +13686,7 @@ class qp {
|
|
|
13677
13686
|
*/
|
|
13678
13687
|
scaleFixedUpdate() {
|
|
13679
13688
|
this.cache.objects.forEach((e) => {
|
|
13680
|
-
if (e instanceof
|
|
13689
|
+
if (e instanceof Bs || e instanceof Ht) {
|
|
13681
13690
|
const { scaleFixed: t } = e;
|
|
13682
13691
|
if (t) {
|
|
13683
13692
|
const n = new D();
|
|
@@ -13793,21 +13802,21 @@ class qp {
|
|
|
13793
13802
|
this.clearObject(), this.store.lightManager.clear();
|
|
13794
13803
|
}
|
|
13795
13804
|
dispose() {
|
|
13796
|
-
this.store.modelManager.dispose(), this.store.topologyManager.dispose(), this.store.lightManager.dispose(), this.clear();
|
|
13805
|
+
this.store.modelManager.dispose(), this.store.topologyManager.dispose(), this.store.lightManager.dispose(), this.store.poiManager.dispose(), this.clear();
|
|
13797
13806
|
}
|
|
13798
13807
|
}
|
|
13799
13808
|
Ce.prototype.computeBoundsTree = Ac;
|
|
13800
13809
|
Ce.prototype.disposeBoundsTree = Ec;
|
|
13801
13810
|
we.prototype.raycast = Oc;
|
|
13802
|
-
|
|
13803
|
-
|
|
13804
|
-
class
|
|
13805
|
-
static THREE =
|
|
13806
|
-
THREE =
|
|
13807
|
-
static TWEEN =
|
|
13808
|
-
TWEEN =
|
|
13809
|
-
static utils =
|
|
13810
|
-
utils =
|
|
13811
|
+
Nn.prototype.firstHitOnly = !0;
|
|
13812
|
+
Cn.ColorManagement.enabled = !0;
|
|
13813
|
+
class If {
|
|
13814
|
+
static THREE = Cn;
|
|
13815
|
+
THREE = Cn;
|
|
13816
|
+
static TWEEN = yi;
|
|
13817
|
+
TWEEN = yi;
|
|
13818
|
+
static utils = Si;
|
|
13819
|
+
utils = Si;
|
|
13811
13820
|
//
|
|
13812
13821
|
static animation = wt;
|
|
13813
13822
|
animation = wt;
|
|
@@ -13815,9 +13824,9 @@ class Pf {
|
|
|
13815
13824
|
static library = Zi;
|
|
13816
13825
|
library = Zi;
|
|
13817
13826
|
// controls action
|
|
13818
|
-
static ACTION =
|
|
13827
|
+
static ACTION = En.ACTION;
|
|
13819
13828
|
//
|
|
13820
|
-
version =
|
|
13829
|
+
version = bi.version;
|
|
13821
13830
|
//
|
|
13822
13831
|
options;
|
|
13823
13832
|
//
|
|
@@ -13852,7 +13861,7 @@ class Pf {
|
|
|
13852
13861
|
if (this.options = {
|
|
13853
13862
|
...t,
|
|
13854
13863
|
...s
|
|
13855
|
-
}, this.signals =
|
|
13864
|
+
}, this.signals = Xd(), this.objectsCache = new Zd(), this.viewport = new ud(this.options, this.signals, this.objectsCache), this.controls = this.viewport.controls, this.manager = new Kp(this.viewport, this.objectsCache), n && (this.domElement = n instanceof HTMLElement ? n : document.querySelector(n), this.domElement?.appendChild(this.viewport.container)), !this.domElement) throw new Error("In SoonSpace: Can't find container!");
|
|
13856
13865
|
this._init(), this._initEvents(r), this._initDefaultSettings();
|
|
13857
13866
|
}
|
|
13858
13867
|
/******/
|
|
@@ -13877,7 +13886,7 @@ class Pf {
|
|
|
13877
13886
|
___) | (_) | (_) | | | |___) | |_) | (_| | (_| __/_ | \\__ \\
|
|
13878
13887
|
|____/ \\___/ \\___/|_| |_|____/| .__/ \\__,_|\\___\\___(_)/ |___/
|
|
13879
13888
|
|_| |__/
|
|
13880
|
-
`, { color: "#3eaf7c" }), Gt(
|
|
13889
|
+
`, { color: "#3eaf7c" }), Gt(bi.name, { color: "#3eaf7c", "font-size": "24px" }), Gt(`当前版本: ${this.version}`, {
|
|
13881
13890
|
color: "#3eaf7c",
|
|
13882
13891
|
"font-size": "12px"
|
|
13883
13892
|
}), Gt("文档: https://www.xwbuilders.com/soonspacejs/", {
|
|
@@ -13916,7 +13925,7 @@ class Pf {
|
|
|
13916
13925
|
this.options.scaleFixedEnabled = e;
|
|
13917
13926
|
}
|
|
13918
13927
|
setFileCacheEnabled(e) {
|
|
13919
|
-
|
|
13928
|
+
Cn.Cache.enabled = e;
|
|
13920
13929
|
}
|
|
13921
13930
|
registerPlugin(e, t, n) {
|
|
13922
13931
|
const s = new e(this, n);
|
|
@@ -14106,7 +14115,11 @@ class Pf {
|
|
|
14106
14115
|
* 销毁场景
|
|
14107
14116
|
*/
|
|
14108
14117
|
dispose() {
|
|
14109
|
-
|
|
14118
|
+
for (const e of Object.values(this.plugins))
|
|
14119
|
+
e?.dispose && e.dispose();
|
|
14120
|
+
this.manager.dispose(), this.viewport.dispose(), this.objectsCache.dispose(), this.textureCache.forEach((e) => e.dispose()), this.textureCache.clear();
|
|
14121
|
+
for (const e in this.signals)
|
|
14122
|
+
this.signals[e].removeAll();
|
|
14110
14123
|
}
|
|
14111
14124
|
/******/
|
|
14112
14125
|
/******/
|
|
@@ -15076,7 +15089,7 @@ class Pf {
|
|
|
15076
15089
|
let a = e.material;
|
|
15077
15090
|
if (r && (a = a.clone(), e.material = a), t === null)
|
|
15078
15091
|
return a.map = null, this.render(), null;
|
|
15079
|
-
const o =
|
|
15092
|
+
const o = Vd(
|
|
15080
15093
|
a,
|
|
15081
15094
|
t,
|
|
15082
15095
|
s,
|
|
@@ -15599,7 +15612,7 @@ class Pf {
|
|
|
15599
15612
|
* @returns 用于查找的函数
|
|
15600
15613
|
*/
|
|
15601
15614
|
createFindObjectsInBoxNearPosition(e, t) {
|
|
15602
|
-
return
|
|
15615
|
+
return Hd(e, t);
|
|
15603
15616
|
}
|
|
15604
15617
|
/**
|
|
15605
15618
|
* 创建用于 查找位置附近的球形区域范围内的物体 的查找器
|
|
@@ -15609,7 +15622,7 @@ class Pf {
|
|
|
15609
15622
|
* @returns 用于查找的函数
|
|
15610
15623
|
*/
|
|
15611
15624
|
createFindObjectsInSphereNearPosition(e, t) {
|
|
15612
|
-
return
|
|
15625
|
+
return Wd(e, t);
|
|
15613
15626
|
}
|
|
15614
15627
|
/**
|
|
15615
15628
|
* 创建用于 查找路径附近的范围内的物体 的查找器
|
|
@@ -15619,7 +15632,7 @@ class Pf {
|
|
|
15619
15632
|
* @returns 用于查找的函数
|
|
15620
15633
|
*/
|
|
15621
15634
|
createFindObjectsNearPath(e, t) {
|
|
15622
|
-
return
|
|
15635
|
+
return qd(e, t);
|
|
15623
15636
|
}
|
|
15624
15637
|
/**
|
|
15625
15638
|
* 创建路径动画
|
|
@@ -15629,7 +15642,7 @@ class Pf {
|
|
|
15629
15642
|
* @returns
|
|
15630
15643
|
*/
|
|
15631
15644
|
createPathAnimation(e, t, n) {
|
|
15632
|
-
return new
|
|
15645
|
+
return new Mi(e, t, n);
|
|
15633
15646
|
}
|
|
15634
15647
|
/**
|
|
15635
15648
|
* 创建沿拓扑路径运动的动画
|
|
@@ -15640,7 +15653,7 @@ class Pf {
|
|
|
15640
15653
|
*/
|
|
15641
15654
|
createTopologyAnimation(e, t, n) {
|
|
15642
15655
|
const s = t.nodes.map((r) => r.getWorldPosition(new D()));
|
|
15643
|
-
return new
|
|
15656
|
+
return new Mi(e, s, n);
|
|
15644
15657
|
}
|
|
15645
15658
|
/**
|
|
15646
15659
|
* 创建沿路径运动的动画 action
|
|
@@ -15651,7 +15664,7 @@ class Pf {
|
|
|
15651
15664
|
* @returns 返回 AnimationOperate,它是对 AnimationAction 的扩展
|
|
15652
15665
|
*/
|
|
15653
15666
|
createPathAnimationAction(e, t, n) {
|
|
15654
|
-
return
|
|
15667
|
+
return Kd(e, t, this, n);
|
|
15655
15668
|
}
|
|
15656
15669
|
/**
|
|
15657
15670
|
* 创建相机动画
|
|
@@ -15668,7 +15681,7 @@ class Pf {
|
|
|
15668
15681
|
* @returns
|
|
15669
15682
|
*/
|
|
15670
15683
|
createBonePathAnimation(e, t, n) {
|
|
15671
|
-
return
|
|
15684
|
+
return Qd(e, t, this, n);
|
|
15672
15685
|
}
|
|
15673
15686
|
/**
|
|
15674
15687
|
* 为指定的 模型 创建其对应的链式骨骼模型
|
|
@@ -15677,7 +15690,7 @@ class Pf {
|
|
|
15677
15690
|
* @returns
|
|
15678
15691
|
*/
|
|
15679
15692
|
createChainSkeletalModel(e, t) {
|
|
15680
|
-
return
|
|
15693
|
+
return Yd(e, t);
|
|
15681
15694
|
}
|
|
15682
15695
|
/**
|
|
15683
15696
|
* 创建骨骼沿曲线路径运动的动画
|
|
@@ -15687,12 +15700,12 @@ class Pf {
|
|
|
15687
15700
|
* @returns
|
|
15688
15701
|
*/
|
|
15689
15702
|
createPathAnimationForBones(e, t, n) {
|
|
15690
|
-
return
|
|
15703
|
+
return _d(e, t, this, n);
|
|
15691
15704
|
}
|
|
15692
15705
|
}
|
|
15693
15706
|
export {
|
|
15694
15707
|
Zh as AnimationActionController,
|
|
15695
|
-
|
|
15708
|
+
Tf as AnimationActionCreator,
|
|
15696
15709
|
_h as AnimationActionKeyframe,
|
|
15697
15710
|
Xh as AnimationActionOperate,
|
|
15698
15711
|
Xa as AnimationClipCreator,
|
|
@@ -15701,15 +15714,15 @@ export {
|
|
|
15701
15714
|
ze as BaseMesh,
|
|
15702
15715
|
De as BaseObject3D,
|
|
15703
15716
|
ds as Canvas3D,
|
|
15704
|
-
|
|
15705
|
-
|
|
15717
|
+
ii as Circle,
|
|
15718
|
+
Dr as Decal,
|
|
15706
15719
|
Lt as DecalUVMapType,
|
|
15707
|
-
|
|
15720
|
+
jr as FileRequestHeaders,
|
|
15708
15721
|
uo as Ground,
|
|
15709
15722
|
Yt as Group,
|
|
15710
15723
|
_a as GuiAnimationActionController,
|
|
15711
15724
|
wa as INNER_ID,
|
|
15712
|
-
|
|
15725
|
+
Tr as Icon,
|
|
15713
15726
|
co as Line,
|
|
15714
15727
|
lo as Link,
|
|
15715
15728
|
xt as Model,
|
|
@@ -15717,61 +15730,62 @@ export {
|
|
|
15717
15730
|
oo as Node,
|
|
15718
15731
|
et as ObjecType,
|
|
15719
15732
|
ao as PluginObject,
|
|
15720
|
-
|
|
15733
|
+
Bs as Poi,
|
|
15721
15734
|
xo as PoiMesh,
|
|
15722
15735
|
Ht as PoiNode,
|
|
15723
|
-
|
|
15736
|
+
ri as Point,
|
|
15724
15737
|
ho as Polygon,
|
|
15725
15738
|
wo as PolygonPoiMesh,
|
|
15726
15739
|
ht as Topology,
|
|
15727
15740
|
ut as TrackProperty_Common,
|
|
15728
15741
|
$h as ValueTypeNames,
|
|
15729
15742
|
vo as boundingIsIntersected,
|
|
15743
|
+
fd as clearLinkTextureCache,
|
|
15730
15744
|
Bh as configVertexWeightByEquallyDivided,
|
|
15731
15745
|
Ga as configVertexWeightForChainBones,
|
|
15732
|
-
|
|
15746
|
+
yf as configVertexWeightForEqualChainBones,
|
|
15733
15747
|
Qa as createAnimationOperate,
|
|
15734
15748
|
Gh as createBonePathAnimation,
|
|
15735
15749
|
Ua as createChainBones,
|
|
15736
|
-
|
|
15750
|
+
Yr as createChainBonesByAxials,
|
|
15737
15751
|
Lh as createChainBonesByJoints,
|
|
15738
15752
|
Ha as createChainSkeletalModel,
|
|
15739
|
-
|
|
15740
|
-
|
|
15753
|
+
vf as createChainSkinnedMesh,
|
|
15754
|
+
xf as createChainSkinnedMeshForMesh,
|
|
15741
15755
|
zh as createCurveAnimationClip,
|
|
15742
15756
|
Rh as createCurveAnimationClipByCurve,
|
|
15743
15757
|
Nh as createCurveAnimationClipByPolyline,
|
|
15744
15758
|
Ka as createCurveAnimationClipForBones,
|
|
15745
15759
|
Wh as createCurveAnimationClipForBonesTarget,
|
|
15746
15760
|
Fh as createEqualChainBones,
|
|
15747
|
-
|
|
15748
|
-
|
|
15749
|
-
|
|
15750
|
-
|
|
15761
|
+
Hd as createFindObjectsInBoxNearPosition,
|
|
15762
|
+
Wd as createFindObjectsInSphereNearPosition,
|
|
15763
|
+
qd as createFindObjectsNearPath,
|
|
15764
|
+
Mf as createGuiAnimationController,
|
|
15751
15765
|
Vh as createKeyframeTracksForBones,
|
|
15752
15766
|
qh as createKeyframeTracksForBonesTarget,
|
|
15753
15767
|
qa as createKeyframeTracksOfCurveAnimation,
|
|
15754
15768
|
jh as createKeyframeTracksOfCurveAnimationByPolyline,
|
|
15755
|
-
|
|
15756
|
-
|
|
15757
|
-
|
|
15758
|
-
|
|
15759
|
-
|
|
15760
|
-
|
|
15769
|
+
Ud as createPlaneMatrix,
|
|
15770
|
+
oi as createTexture,
|
|
15771
|
+
Gd as createUVMatrix,
|
|
15772
|
+
If as default,
|
|
15773
|
+
wf as getAllRootBones,
|
|
15774
|
+
Pf as getClosestContinuousIndexes,
|
|
15761
15775
|
nu as getContinuousNumsList,
|
|
15762
|
-
|
|
15776
|
+
Os as getDurationOfPathAnimationOptions,
|
|
15763
15777
|
kh as getFirstRootBone,
|
|
15764
|
-
|
|
15778
|
+
_r as getKeyframeTransformDatas,
|
|
15765
15779
|
Uh as getKeyframeTransformDatasByPolyline,
|
|
15766
|
-
|
|
15767
|
-
|
|
15780
|
+
jd as getPolygonGeometryInfo,
|
|
15781
|
+
bf as getRootBone,
|
|
15768
15782
|
Hh as getSampleDataForBones,
|
|
15769
15783
|
Kh as getSampleDataForBonesTarget,
|
|
15770
|
-
|
|
15771
|
-
|
|
15772
|
-
|
|
15773
|
-
|
|
15774
|
-
|
|
15775
|
-
|
|
15776
|
-
|
|
15784
|
+
Xr as getTS,
|
|
15785
|
+
Zr as getTimes,
|
|
15786
|
+
ni as isPoiNode25D,
|
|
15787
|
+
ti as isPoiNode2D,
|
|
15788
|
+
si as isPoiNode3D,
|
|
15789
|
+
Hs as renderLoop,
|
|
15790
|
+
Vd as setTexture
|
|
15777
15791
|
};
|