u-space 0.0.27 → 0.0.28
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.cjs +3 -3
- package/dist/index.js +316 -324
- package/dist/plugins/u-manager/index.cjs +56 -56
- package/dist/plugins/u-manager/index.d.ts +2 -0
- package/dist/plugins/u-manager/index.js +8214 -8304
- package/dist/plugins/u-manager/instances/SemanticInstanceObject.d.ts +37 -0
- package/dist/plugins/u-manager/instances/SemanticModelInstancedLayer.d.ts +33 -0
- package/dist/plugins/u-manager/instances/index.d.ts +2 -0
- package/dist/plugins/u-manager/loaders/SceneInstancedLayer.d.ts +6 -22
- package/dist/plugins/u-manager/loaders/UManagerLoader.d.ts +24 -0
- package/dist/plugins/u-manager/semantics/SemanticLoader.d.ts +2 -2
- package/dist/plugins/u-manager/semantics/SemanticParser.d.ts +3 -3
- package/dist/plugins/u-manager/semantics/index.d.ts +1 -1
- package/dist/plugins/u-manager/semantics/objects/BuildingGroup.d.ts +4 -10
- package/dist/plugins/u-manager/semantics/objects/FacilityInstancedLayer.d.ts +5 -39
- package/dist/plugins/u-manager/semantics/objects/FloorMesh.d.ts +30 -15
- package/dist/plugins/u-manager/semantics/objects/SemanticGroup.d.ts +26 -0
- package/dist/plugins/u-manager/semantics/types.d.ts +1 -0
- package/dist/src/effects/MaterialEffects.d.ts +1 -0
- package/docs/api-effects.md +3 -2
- package/docs/api-managers.md +1 -1
- package/docs/api-plugin-u-manager.md +145 -90
- package/docs/changelog.md +21 -9
- package/docs/examples-guide.md +28 -14
- package/docs/getting-started.md +1 -1
- package/docs/mcp.md +14 -7
- package/package.json +1 -1
- package/dist/plugins/u-manager/semantics/objects/SemanticSceneGroup.d.ts +0 -31
package/dist/index.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { Raycaster as
|
|
2
|
-
import { pass as fe, mrt as
|
|
3
|
-
import { bloom as
|
|
4
|
-
import { ssgi as
|
|
5
|
-
import { traa as
|
|
6
|
-
import
|
|
7
|
-
import { RoomEnvironment as
|
|
8
|
-
import { ViewHelper as
|
|
9
|
-
import { CSS2DRenderer as
|
|
10
|
-
import { CSS2DObject as
|
|
11
|
-
import { CSS3DRenderer as
|
|
12
|
-
import { CSS3DObject as
|
|
13
|
-
import { GLTFLoader as
|
|
14
|
-
import { FBXLoader as
|
|
15
|
-
import { OBJLoader as
|
|
16
|
-
import { STLLoader as
|
|
17
|
-
import { DRACOLoader as
|
|
18
|
-
import { KTX2Loader as
|
|
19
|
-
import { MeshoptDecoder as
|
|
20
|
-
import { HDRLoader as
|
|
21
|
-
import { clone as
|
|
22
|
-
import { Easing as f, Tween as
|
|
23
|
-
class
|
|
1
|
+
import { Raycaster as Ne, Vector2 as C, EventDispatcher as De, Box2 as at, Matrix4 as ke, Vector3 as v, Box3 as V, Scene as je, Color as M, AmbientLight as ct, DirectionalLight as ye, PointLight as we, SpotLight as ve, HemisphereLight as be, DirectionalLightHelper as ht, PointLightHelper as lt, SpotLightHelper as dt, HemisphereLightHelper as pt, RenderPipeline as ut, PerspectiveCamera as se, Sphere as Ue, Spherical as T, Quaternion as mt, Vector4 as ft, MathUtils as gt, PMREMGenerator as yt, OrthographicCamera as ne, TimestampQuery as Z, Cache as wt, Timer as vt, WebGPURenderer as bt, PCFShadowMap as xt, AgXToneMapping as St, Fog as Ct, FogExp2 as Mt, MeshStandardNodeMaterial as L, Loader as Tt, LoaderUtils as I, FileLoader as He, TextureLoader as Fe, Group as R, SRGBColorSpace as Ge, RepeatWrapping as xe, BufferGeometry as Q, BufferAttribute as Se, Mesh as k, FrontSide as _t, BackSide as Et, DoubleSide as Pt, REVISION as Ce, CubeTextureLoader as Ot, EquirectangularReflectionMapping as At, Sprite as Bt, AnimationMixer as It, LoopRepeat as Rt, LoopOnce as Lt, SphereGeometry as zt, TubeGeometry as Nt, LineCurve3 as Dt, CatmullRomCurve3 as kt, SpriteNodeMaterial as jt, CanvasTexture as Ut, ShapeGeometry as Ht, Shape as $e, ExtrudeGeometry as Ft, PlaneGeometry as Gt, CircleGeometry as $t, ClippingGroup as Wt, Plane as Kt, PlaneHelper as Qt, LineBasicMaterial as ie, Line as re } from "three/webgpu";
|
|
2
|
+
import { pass as fe, mrt as qt, output as Xt, add as Me, blendColor as Yt, emissive as Vt, normalView as Jt, velocity as Zt, color as H, uv as Te, time as oe, pow as ae, sin as ge, mix as ce, mx_noise_float as _e, Fn as We, userData as O, materialColor as Ee, select as q, materialOpacity as Pe, vec3 as es } from "three/tsl";
|
|
3
|
+
import { bloom as ts } from "three/addons/tsl/display/BloomNode.js";
|
|
4
|
+
import { ssgi as ss } from "three/addons/tsl/display/SSGINode.js";
|
|
5
|
+
import { traa as ns } from "three/addons/tsl/display/TRAANode.js";
|
|
6
|
+
import Ke from "camera-controls";
|
|
7
|
+
import { RoomEnvironment as is } from "three/addons/environments/RoomEnvironment.js";
|
|
8
|
+
import { ViewHelper as rs } from "three/addons/helpers/ViewHelper.js";
|
|
9
|
+
import { CSS2DRenderer as os, CSS2DObject as as } from "three/addons/renderers/CSS2DRenderer.js";
|
|
10
|
+
import { CSS2DObject as Gn } from "three/addons/renderers/CSS2DRenderer.js";
|
|
11
|
+
import { CSS3DRenderer as cs, CSS3DSprite as hs, CSS3DObject as ls } from "three/addons/renderers/CSS3DRenderer.js";
|
|
12
|
+
import { CSS3DObject as Wn, CSS3DSprite as Kn } from "three/addons/renderers/CSS3DRenderer.js";
|
|
13
|
+
import { GLTFLoader as Qe } from "three/addons/loaders/GLTFLoader.js";
|
|
14
|
+
import { FBXLoader as ds } from "three/addons/loaders/FBXLoader.js";
|
|
15
|
+
import { OBJLoader as ps } from "three/addons/loaders/OBJLoader.js";
|
|
16
|
+
import { STLLoader as us } from "three/addons/loaders/STLLoader.js";
|
|
17
|
+
import { DRACOLoader as ms } from "three/addons/loaders/DRACOLoader.js";
|
|
18
|
+
import { KTX2Loader as fs } from "three/addons/loaders/KTX2Loader.js";
|
|
19
|
+
import { MeshoptDecoder as Oe } from "three/addons/libs/meshopt_decoder.module.js";
|
|
20
|
+
import { HDRLoader as gs } from "three/addons/loaders/HDRLoader.js";
|
|
21
|
+
import { clone as ys } from "three/addons/utils/SkeletonUtils.js";
|
|
22
|
+
import { Easing as f, Tween as ws } from "three/addons/libs/tween.module.js";
|
|
23
|
+
class vs {
|
|
24
24
|
/** The type of event (e.g., 'click', 'pointerdown'). */
|
|
25
25
|
type;
|
|
26
26
|
/** The original 3D object that triggered the event. */
|
|
@@ -48,15 +48,15 @@ class ws {
|
|
|
48
48
|
return this._propagationStopped;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
class
|
|
51
|
+
class bs {
|
|
52
52
|
domElement;
|
|
53
53
|
scene;
|
|
54
54
|
camera;
|
|
55
|
-
raycaster = new
|
|
56
|
-
pointer = new
|
|
55
|
+
raycaster = new Ne();
|
|
56
|
+
pointer = new C();
|
|
57
57
|
hoveredObject = null;
|
|
58
58
|
pointerDownTime = 0;
|
|
59
|
-
pointerDownPos = new
|
|
59
|
+
pointerDownPos = new C();
|
|
60
60
|
clickTimer = null;
|
|
61
61
|
longPressThreshold = 500;
|
|
62
62
|
moveThreshold = 0.01;
|
|
@@ -143,7 +143,7 @@ class vs {
|
|
|
143
143
|
* Dispatches an event to the target object and bubbles up the parent chain.
|
|
144
144
|
*/
|
|
145
145
|
_dispatchToTarget(e, t, s, n) {
|
|
146
|
-
const i = new
|
|
146
|
+
const i = new vs({
|
|
147
147
|
type: e,
|
|
148
148
|
target: t,
|
|
149
149
|
intersect: s,
|
|
@@ -205,7 +205,7 @@ class vs {
|
|
|
205
205
|
this.domElement.removeEventListener("click", this._onClick), this.domElement.removeEventListener("dblclick", this._onDblClick), this.domElement.removeEventListener("contextmenu", this._onContextMenu), this.domElement.removeEventListener("pointerdown", this._onPointerDown), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.clickTimer && (clearTimeout(this.clickTimer), this.clickTimer = null), this.hoveredObject = null, this._excludeSet.clear();
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
|
-
class
|
|
208
|
+
class _n extends De {
|
|
209
209
|
scene;
|
|
210
210
|
camera;
|
|
211
211
|
domElement;
|
|
@@ -215,8 +215,8 @@ class Tn extends Ne {
|
|
|
215
215
|
// Box selection state
|
|
216
216
|
_boxSelectionEnabled = !1;
|
|
217
217
|
_isSelecting = !1;
|
|
218
|
-
_startPoint = new
|
|
219
|
-
_endPoint = new
|
|
218
|
+
_startPoint = new C();
|
|
219
|
+
_endPoint = new C();
|
|
220
220
|
_selectionBox = null;
|
|
221
221
|
_deep = !0;
|
|
222
222
|
/**
|
|
@@ -315,21 +315,21 @@ class Tn extends Ne {
|
|
|
315
315
|
this._selectionBox.style.left = `${e}px`, this._selectionBox.style.top = `${t}px`, this._selectionBox.style.width = `${s}px`, this._selectionBox.style.height = `${n}px`;
|
|
316
316
|
}
|
|
317
317
|
_getObjectsInBox() {
|
|
318
|
-
const e = this._container.getBoundingClientRect(), t = e.width, s = e.height, n = new
|
|
318
|
+
const e = this._container.getBoundingClientRect(), t = e.width, s = e.height, n = new C(
|
|
319
319
|
this._startPoint.x / t * 2 - 1,
|
|
320
320
|
-(this._startPoint.y / s) * 2 + 1
|
|
321
|
-
), i = new
|
|
321
|
+
), i = new C(
|
|
322
322
|
this._endPoint.x / t * 2 - 1,
|
|
323
323
|
-(this._endPoint.y / s) * 2 + 1
|
|
324
|
-
), r = new
|
|
325
|
-
new
|
|
326
|
-
new
|
|
327
|
-
), o = this.targetObjects || this.scene.children, a = [], c = new
|
|
324
|
+
), r = new at(
|
|
325
|
+
new C(Math.min(n.x, i.x), Math.min(n.y, i.y)),
|
|
326
|
+
new C(Math.max(n.x, i.x), Math.max(n.y, i.y))
|
|
327
|
+
), o = this.targetObjects || this.scene.children, a = [], c = new ke();
|
|
328
328
|
c.multiplyMatrices(this.camera.projectionMatrix, this.camera.matrixWorldInverse);
|
|
329
329
|
const l = (d) => {
|
|
330
330
|
if (!d.visible) return;
|
|
331
331
|
const p = new v();
|
|
332
|
-
if (p.setFromMatrixPosition(d.matrixWorld), p.applyMatrix4(c), p.z > -1 && p.z < 1 && r.containsPoint(new
|
|
332
|
+
if (p.setFromMatrixPosition(d.matrixWorld), p.applyMatrix4(c), p.z > -1 && p.z < 1 && r.containsPoint(new C(p.x, p.y)) && a.push(d), this._deep)
|
|
333
333
|
for (const u of d.children)
|
|
334
334
|
l(u);
|
|
335
335
|
};
|
|
@@ -341,19 +341,15 @@ class Tn extends Ne {
|
|
|
341
341
|
this.disableBoxSelection(), this._selected.clear();
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
|
-
function
|
|
344
|
+
function ee(h, e) {
|
|
345
345
|
const t = h;
|
|
346
|
-
if (t.
|
|
347
|
-
t.
|
|
346
|
+
if (t.setSemanticVisible) {
|
|
347
|
+
t.setSemanticVisible(e);
|
|
348
348
|
return;
|
|
349
349
|
}
|
|
350
|
-
|
|
351
|
-
t.setFacilityVisible(e);
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
h.visible = e, t.markSceneInstanceRenderDirty?.(), t.markFacilityRenderDirty?.();
|
|
350
|
+
h.visible = e, t.markSemanticRenderDirty?.();
|
|
355
351
|
}
|
|
356
|
-
class
|
|
352
|
+
class xs {
|
|
357
353
|
idMap = /* @__PURE__ */ new Map();
|
|
358
354
|
nameMap = /* @__PURE__ */ new Map();
|
|
359
355
|
typeMap = /* @__PURE__ */ new Map();
|
|
@@ -460,14 +456,14 @@ class bs {
|
|
|
460
456
|
*/
|
|
461
457
|
show(e) {
|
|
462
458
|
const t = this.idMap.get(e);
|
|
463
|
-
t &&
|
|
459
|
+
t && ee(t, !0);
|
|
464
460
|
}
|
|
465
461
|
/**
|
|
466
462
|
* Hide an object by id.
|
|
467
463
|
*/
|
|
468
464
|
hide(e) {
|
|
469
465
|
const t = this.idMap.get(e);
|
|
470
|
-
t &&
|
|
466
|
+
t && ee(t, !1);
|
|
471
467
|
}
|
|
472
468
|
/**
|
|
473
469
|
* Show only the specified objects, hide all others.
|
|
@@ -476,7 +472,7 @@ class bs {
|
|
|
476
472
|
const t = new Set(e);
|
|
477
473
|
for (const s of this.allObjects) {
|
|
478
474
|
const n = this.objectIds.get(s) ?? /* @__PURE__ */ new Set();
|
|
479
|
-
|
|
475
|
+
ee(s, [...n].some((i) => t.has(i)));
|
|
480
476
|
}
|
|
481
477
|
}
|
|
482
478
|
/**
|
|
@@ -486,12 +482,8 @@ class bs {
|
|
|
486
482
|
const s = this.idMap.get(e);
|
|
487
483
|
if (!s) return;
|
|
488
484
|
const n = s;
|
|
489
|
-
if (n.
|
|
490
|
-
n.
|
|
491
|
-
return;
|
|
492
|
-
}
|
|
493
|
-
if (n.setFacilityOpacity) {
|
|
494
|
-
n.setFacilityOpacity(t);
|
|
485
|
+
if (n.setSemanticOpacity) {
|
|
486
|
+
n.setSemanticOpacity(t);
|
|
495
487
|
return;
|
|
496
488
|
}
|
|
497
489
|
s.traverse((i) => {
|
|
@@ -507,7 +499,7 @@ class bs {
|
|
|
507
499
|
* Get the bounding box of an object by id, or all objects if no id provided.
|
|
508
500
|
*/
|
|
509
501
|
getBoundingBox(e) {
|
|
510
|
-
const t = new
|
|
502
|
+
const t = new V();
|
|
511
503
|
if (e) {
|
|
512
504
|
const s = this.idMap.get(e);
|
|
513
505
|
s && t.setFromObject(s);
|
|
@@ -539,10 +531,10 @@ class bs {
|
|
|
539
531
|
*/
|
|
540
532
|
showAll() {
|
|
541
533
|
for (const e of this.allObjects)
|
|
542
|
-
|
|
534
|
+
ee(e, !0);
|
|
543
535
|
}
|
|
544
536
|
}
|
|
545
|
-
class
|
|
537
|
+
class En {
|
|
546
538
|
scenes = /* @__PURE__ */ new Map();
|
|
547
539
|
_activeSceneKey = null;
|
|
548
540
|
/**
|
|
@@ -555,7 +547,7 @@ class _n {
|
|
|
555
547
|
* Create and register a new scene.
|
|
556
548
|
*/
|
|
557
549
|
create(e, t = {}) {
|
|
558
|
-
const s = new
|
|
550
|
+
const s = new je();
|
|
559
551
|
return t.background !== void 0 && (s.background = new M(t.background)), this.scenes.set(e, s), s;
|
|
560
552
|
}
|
|
561
553
|
/**
|
|
@@ -616,7 +608,7 @@ class _n {
|
|
|
616
608
|
return this.scenes.size;
|
|
617
609
|
}
|
|
618
610
|
}
|
|
619
|
-
class
|
|
611
|
+
class Pn {
|
|
620
612
|
scene;
|
|
621
613
|
lights = /* @__PURE__ */ new Map();
|
|
622
614
|
helpers = /* @__PURE__ */ new Map();
|
|
@@ -624,7 +616,7 @@ class En {
|
|
|
624
616
|
this.scene = e;
|
|
625
617
|
}
|
|
626
618
|
addAmbient(e, t = {}) {
|
|
627
|
-
const { color: s = 16777215, intensity: n = 0.5 } = t, i = new
|
|
619
|
+
const { color: s = 16777215, intensity: n = 0.5 } = t, i = new ct(s, n);
|
|
628
620
|
return i.name = e, this._register(e, i), i;
|
|
629
621
|
}
|
|
630
622
|
addDirectional(e, t = {}) {
|
|
@@ -701,7 +693,7 @@ class En {
|
|
|
701
693
|
const t = this.lights.get(e);
|
|
702
694
|
if (!t) return;
|
|
703
695
|
let s = null;
|
|
704
|
-
t instanceof ye ? s = new
|
|
696
|
+
t instanceof ye ? s = new ht(t, 1) : t instanceof we ? s = new lt(t, 0.5) : t instanceof ve ? s = new dt(t) : t instanceof be && (s = new pt(t, 1)), s && (this.scene.add(s), this.helpers.set(e, s));
|
|
705
697
|
}
|
|
706
698
|
/**
|
|
707
699
|
* Hide (remove) the helper for a light.
|
|
@@ -732,7 +724,7 @@ class En {
|
|
|
732
724
|
this.removeAll(), this.hideAllHelpers();
|
|
733
725
|
}
|
|
734
726
|
}
|
|
735
|
-
class
|
|
727
|
+
class Ss extends ut {
|
|
736
728
|
scene;
|
|
737
729
|
camera;
|
|
738
730
|
scenePass;
|
|
@@ -832,10 +824,10 @@ class xs extends dt {
|
|
|
832
824
|
}
|
|
833
825
|
#g() {
|
|
834
826
|
if (this.#s || this.#o || this.#h || this.#c.size > 0) {
|
|
835
|
-
const t = { output:
|
|
827
|
+
const t = { output: Xt };
|
|
836
828
|
this.#c.forEach((s, n) => {
|
|
837
829
|
n !== "output" && (t[n] = s);
|
|
838
|
-
}), this.#s && (t.emissive =
|
|
830
|
+
}), this.#s && (t.emissive = Vt), this.#o && (t.normal = Jt), this.#h && (t.velocity = Zt), this.scenePass.setMRT(qt(t));
|
|
839
831
|
}
|
|
840
832
|
}
|
|
841
833
|
#y() {
|
|
@@ -846,15 +838,15 @@ class xs extends dt {
|
|
|
846
838
|
#w() {
|
|
847
839
|
let e = this.scenePass.getTextureNode();
|
|
848
840
|
if (this.#o)
|
|
849
|
-
if (!(this.camera instanceof
|
|
841
|
+
if (!(this.camera instanceof se))
|
|
850
842
|
console.warn("RenderPipeline: SSGI requires a PerspectiveCamera, skipping.");
|
|
851
843
|
else {
|
|
852
|
-
const t = this.scenePass.getTextureNode(), s = this.scenePass.getTextureNode("depth"), n = this.scenePass.getTextureNode("normal"), i =
|
|
844
|
+
const t = this.scenePass.getTextureNode(), s = this.scenePass.getTextureNode("depth"), n = this.scenePass.getTextureNode("normal"), i = ss(t, s, n, this.camera);
|
|
853
845
|
i.sliceCount.value = this.#a.sliceCount, i.stepCount.value = this.#a.stepCount, i.aoIntensity.value = this.#a.aoIntensity, i.giIntensity.value = this.#a.giIntensity, i.radius.value = this.#a.radius, i.thickness.value = this.#a.thickness, this.#p = i, e = Me(e, i), this.#e.push(i);
|
|
854
846
|
}
|
|
855
847
|
if (this.#s) {
|
|
856
848
|
const t = this.scenePass.getTextureNode("emissive");
|
|
857
|
-
this.#n =
|
|
849
|
+
this.#n = ts(
|
|
858
850
|
t,
|
|
859
851
|
this.#r.strength,
|
|
860
852
|
this.#r.radius,
|
|
@@ -874,11 +866,11 @@ class xs extends dt {
|
|
|
874
866
|
t ||= i.includesTemporalAntialias === !0, s ||= i.includesOutputTransform === !0, e = i(this.scenePass, e);
|
|
875
867
|
}), this.#v(s), this.#h && !t) {
|
|
876
868
|
const i = this.scenePass.getTextureNode("depth"), r = this.scenePass.getTextureNode("velocity");
|
|
877
|
-
this.#l =
|
|
869
|
+
this.#l = ns(e, i, r, this.camera), this.#e.push(this.#l), e = this.#l;
|
|
878
870
|
} else
|
|
879
871
|
this.#l = null;
|
|
880
872
|
this.#t.size > 0 && this.#t.forEach((i) => {
|
|
881
|
-
const r =
|
|
873
|
+
const r = Yt(e, i);
|
|
882
874
|
this.#e.push(r), e = r;
|
|
883
875
|
}), this.outputNode = e, this.needsUpdate = !0;
|
|
884
876
|
}
|
|
@@ -890,18 +882,18 @@ class xs extends dt {
|
|
|
890
882
|
}
|
|
891
883
|
}
|
|
892
884
|
const Cs = {
|
|
893
|
-
Vector2:
|
|
885
|
+
Vector2: C,
|
|
894
886
|
Vector3: v,
|
|
895
|
-
Vector4:
|
|
896
|
-
Quaternion:
|
|
897
|
-
Matrix4:
|
|
887
|
+
Vector4: ft,
|
|
888
|
+
Quaternion: mt,
|
|
889
|
+
Matrix4: ke,
|
|
898
890
|
Spherical: T,
|
|
899
|
-
Box3:
|
|
900
|
-
Sphere:
|
|
901
|
-
Raycaster:
|
|
891
|
+
Box3: V,
|
|
892
|
+
Sphere: Ue,
|
|
893
|
+
Raycaster: Ne
|
|
902
894
|
};
|
|
903
|
-
|
|
904
|
-
class
|
|
895
|
+
Ke.install({ THREE: Cs });
|
|
896
|
+
class Ms extends Ke {
|
|
905
897
|
constructor(...e) {
|
|
906
898
|
super(...e), this.minDistance = 0.2, this.smoothTime = 0.2, this.dollySpeed = 0.2;
|
|
907
899
|
}
|
|
@@ -909,7 +901,7 @@ class Ss extends We {
|
|
|
909
901
|
* Set absolute angle for azimuth to avoid spinning
|
|
910
902
|
*/
|
|
911
903
|
absoluteRotations() {
|
|
912
|
-
this.azimuthAngle =
|
|
904
|
+
this.azimuthAngle = Ts(this.azimuthAngle, 0);
|
|
913
905
|
}
|
|
914
906
|
async flyToBox(e, t = {}) {
|
|
915
907
|
if (e.isEmpty())
|
|
@@ -917,7 +909,7 @@ class Ss extends We {
|
|
|
917
909
|
this.absoluteRotations();
|
|
918
910
|
const { viewpoint: s = "frontTop", enableTransition: n = !0, padding: i = 0.1, cover: r = !1 } = t, o = [];
|
|
919
911
|
if (s !== "current") {
|
|
920
|
-
const a =
|
|
912
|
+
const a = Ae[s.toUpperCase()] ?? Ae.FRONTTOP, c = a.theta, l = a.phi;
|
|
921
913
|
o.push(
|
|
922
914
|
this.fitToBox(e, n, {
|
|
923
915
|
paddingLeft: i,
|
|
@@ -928,13 +920,13 @@ class Ss extends We {
|
|
|
928
920
|
})
|
|
929
921
|
), o.push(this.rotateTo(c, l, n));
|
|
930
922
|
} else {
|
|
931
|
-
const a = new
|
|
923
|
+
const a = new Ue();
|
|
932
924
|
e.getBoundingSphere(a), a.radius += i, o.push(this.fitToSphere(a, n));
|
|
933
925
|
}
|
|
934
926
|
return await Promise.all(o), !0;
|
|
935
927
|
}
|
|
936
928
|
async flyToObject(e, t = {}) {
|
|
937
|
-
const s = new
|
|
929
|
+
const s = new V().setFromObject(e);
|
|
938
930
|
return this.flyToBox(s, t);
|
|
939
931
|
}
|
|
940
932
|
/**
|
|
@@ -985,7 +977,7 @@ class Ss extends We {
|
|
|
985
977
|
]);
|
|
986
978
|
}
|
|
987
979
|
}
|
|
988
|
-
const
|
|
980
|
+
const Ae = {
|
|
989
981
|
LEFT: new T(0, Math.PI / 2, -Math.PI / 2),
|
|
990
982
|
RIGHT: new T(0, Math.PI / 2, Math.PI / 2),
|
|
991
983
|
FRONT: new T(0, Math.PI / 2, 0),
|
|
@@ -1001,17 +993,17 @@ const Oe = {
|
|
|
1001
993
|
LEFTBACKTOP: new T(0, Math.PI / 4, -Math.PI / 4 * 3),
|
|
1002
994
|
RIGHTBACKTOP: new T(0, Math.PI / 4, Math.PI / 4 * 3)
|
|
1003
995
|
};
|
|
1004
|
-
function
|
|
996
|
+
function Ts(h, e) {
|
|
1005
997
|
const t = h - e;
|
|
1006
|
-
return
|
|
998
|
+
return gt.euclideanModulo(t + Math.PI, Math.PI * 2) - Math.PI;
|
|
1007
999
|
}
|
|
1008
|
-
class
|
|
1009
|
-
environment = new
|
|
1000
|
+
class _s {
|
|
1001
|
+
environment = new is();
|
|
1010
1002
|
renderer;
|
|
1011
1003
|
pmremGenerator;
|
|
1012
1004
|
envMap = null;
|
|
1013
1005
|
constructor(e) {
|
|
1014
|
-
this.renderer = e, this.pmremGenerator = new
|
|
1006
|
+
this.renderer = e, this.pmremGenerator = new yt(e);
|
|
1015
1007
|
}
|
|
1016
1008
|
update() {
|
|
1017
1009
|
this.envMap || (this.envMap = this.pmremGenerator.fromScene(this.environment).texture);
|
|
@@ -1020,20 +1012,20 @@ class Ts {
|
|
|
1020
1012
|
this.pmremGenerator.dispose(), this.envMap?.dispose();
|
|
1021
1013
|
}
|
|
1022
1014
|
}
|
|
1023
|
-
const
|
|
1024
|
-
class
|
|
1015
|
+
const te = 128;
|
|
1016
|
+
class Es extends rs {
|
|
1025
1017
|
viewer;
|
|
1026
1018
|
overlayPass;
|
|
1027
1019
|
constructor(e) {
|
|
1028
1020
|
super(e.camera, e.el), this.viewer = e;
|
|
1029
|
-
const t = new
|
|
1021
|
+
const t = new ne(-2, 2, 2, -2, 0, 4);
|
|
1030
1022
|
t.position.set(0, 0, 2), this.overlayPass = fe(this, t), this.setLabels("x", "y", "z");
|
|
1031
1023
|
}
|
|
1032
1024
|
_update = () => {
|
|
1033
1025
|
this.quaternion.copy(this.viewer.camera.quaternion).invert();
|
|
1034
1026
|
const e = this.location;
|
|
1035
1027
|
let t, s;
|
|
1036
|
-
e.left !== null ? t = e.left : t = this.viewer.el.offsetWidth -
|
|
1028
|
+
e.left !== null ? t = e.left : t = this.viewer.el.offsetWidth - te - e.right, e.top !== null ? s = e.top : s = this.viewer.el.offsetHeight - te - e.bottom, this.overlayPass.setViewport(t, s, te, te);
|
|
1037
1029
|
};
|
|
1038
1030
|
enable() {
|
|
1039
1031
|
return this.viewer.renderPipeline.addOverlayPass(this.overlayPass), this.viewer.addEventListener("beforeRender", this._update), this.viewer.render(), this;
|
|
@@ -1042,8 +1034,8 @@ class _s extends is {
|
|
|
1042
1034
|
return this.viewer.renderPipeline.removeOverlayPass(this.overlayPass), this.viewer.removeEventListener("beforeRender", this._update), this.viewer.render(), this;
|
|
1043
1035
|
}
|
|
1044
1036
|
}
|
|
1045
|
-
const
|
|
1046
|
-
class
|
|
1037
|
+
const qe = "position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;", Ps = qe + "z-index:0;", Os = qe + "z-index:1;";
|
|
1038
|
+
class As {
|
|
1047
1039
|
el;
|
|
1048
1040
|
css2dRenderer = null;
|
|
1049
1041
|
css3dRenderer = null;
|
|
@@ -1051,21 +1043,21 @@ class Os {
|
|
|
1051
1043
|
this.el = e, getComputedStyle(e).position === "static" && (e.style.position = "relative");
|
|
1052
1044
|
}
|
|
1053
1045
|
initCSS2DRenderer() {
|
|
1054
|
-
const e = new
|
|
1055
|
-
return e.setSize(this.el.clientWidth, this.el.clientHeight), e.domElement.style.cssText =
|
|
1046
|
+
const e = new os();
|
|
1047
|
+
return e.setSize(this.el.clientWidth, this.el.clientHeight), e.domElement.style.cssText = Os, this.el.appendChild(e.domElement), this.css2dRenderer = e, e;
|
|
1056
1048
|
}
|
|
1057
1049
|
initCSS3DRenderer() {
|
|
1058
|
-
const e = new
|
|
1059
|
-
return e.setSize(this.el.clientWidth, this.el.clientHeight), e.domElement.style.cssText =
|
|
1050
|
+
const e = new cs();
|
|
1051
|
+
return e.setSize(this.el.clientWidth, this.el.clientHeight), e.domElement.style.cssText = Ps, this.el.appendChild(e.domElement), this.css3dRenderer = e, e;
|
|
1060
1052
|
}
|
|
1061
1053
|
createCSS2DObject(e) {
|
|
1062
|
-
return this.css2dRenderer || this.initCSS2DRenderer(), new
|
|
1054
|
+
return this.css2dRenderer || this.initCSS2DRenderer(), new as(e);
|
|
1063
1055
|
}
|
|
1064
1056
|
createCSS25DObject(e) {
|
|
1065
|
-
return this.css3dRenderer || this.initCSS3DRenderer(), new
|
|
1057
|
+
return this.css3dRenderer || this.initCSS3DRenderer(), new hs(e);
|
|
1066
1058
|
}
|
|
1067
1059
|
createCSS3DObject(e) {
|
|
1068
|
-
return this.css3dRenderer || this.initCSS3DRenderer(), new
|
|
1060
|
+
return this.css3dRenderer || this.initCSS3DRenderer(), new ls(e);
|
|
1069
1061
|
}
|
|
1070
1062
|
render(e, t) {
|
|
1071
1063
|
this.css2dRenderer && this.css2dRenderer.render(e, t), this.css3dRenderer && this.css3dRenderer.render(e, t);
|
|
@@ -1077,7 +1069,7 @@ class Os {
|
|
|
1077
1069
|
this.css2dRenderer && (this.el.removeChild(this.css2dRenderer.domElement), this.css2dRenderer = null), this.css3dRenderer && (this.el.removeChild(this.css3dRenderer.domElement), this.css3dRenderer = null);
|
|
1078
1070
|
}
|
|
1079
1071
|
}
|
|
1080
|
-
const
|
|
1072
|
+
const Bs = "timestamp-query";
|
|
1081
1073
|
class Is {
|
|
1082
1074
|
el;
|
|
1083
1075
|
renderer;
|
|
@@ -1110,9 +1102,9 @@ class Is {
|
|
|
1110
1102
|
this.timestampText.innerText = "0";
|
|
1111
1103
|
return;
|
|
1112
1104
|
}
|
|
1113
|
-
this.#n(
|
|
1105
|
+
this.#n(Z.RENDER).then((t) => {
|
|
1114
1106
|
this._enabled && (this.timestampText.innerText = t?.toFixed(2) ?? "0");
|
|
1115
|
-
}), this.#n(
|
|
1107
|
+
}), this.#n(Z.COMPUTE);
|
|
1116
1108
|
}
|
|
1117
1109
|
}
|
|
1118
1110
|
enable() {
|
|
@@ -1129,7 +1121,7 @@ class Is {
|
|
|
1129
1121
|
}
|
|
1130
1122
|
#s() {
|
|
1131
1123
|
try {
|
|
1132
|
-
return this.renderer.hasFeature(
|
|
1124
|
+
return this.renderer.hasFeature(Bs);
|
|
1133
1125
|
} catch {
|
|
1134
1126
|
return !0;
|
|
1135
1127
|
}
|
|
@@ -1148,11 +1140,11 @@ class Is {
|
|
|
1148
1140
|
}) : Promise.resolve(void 0);
|
|
1149
1141
|
}
|
|
1150
1142
|
#o() {
|
|
1151
|
-
this.#n(
|
|
1143
|
+
this.#n(Z.RENDER), this.#n(Z.COMPUTE);
|
|
1152
1144
|
}
|
|
1153
1145
|
}
|
|
1154
|
-
|
|
1155
|
-
class
|
|
1146
|
+
wt.enabled = !0;
|
|
1147
|
+
class On extends De {
|
|
1156
1148
|
el;
|
|
1157
1149
|
renderer;
|
|
1158
1150
|
scene;
|
|
@@ -1169,11 +1161,11 @@ class Pn extends Ne {
|
|
|
1169
1161
|
frameCount = 1;
|
|
1170
1162
|
frameloop = "demand";
|
|
1171
1163
|
constructor({ el: e, rendererOptions: t }) {
|
|
1172
|
-
super(), this.el = e, this.renderer = this._initRenderer(t), this.scene = this.createScene(), this.camera = this.createPerspectiveCamera(), this.info = new Is(this.el, this.renderer), this.controls = new
|
|
1164
|
+
super(), this.el = e, this.renderer = this._initRenderer(t), this.scene = this.createScene(), this.camera = this.createPerspectiveCamera(), this.info = new Is(this.el, this.renderer), this.controls = new Ms(this.camera, this.renderer.domElement), this.renderPipeline = new Ss(this.renderer, this.scene, this.camera), this.timer = new vt(), this.roomEnvironment = new _s(this.renderer), this.interactionManager = new bs(this.renderer.domElement, this.scene, this.camera), this.objectManager = new xs(), this.viewerHelper = new Es(this), this.cssRenderer = new As(this.el), window.addEventListener("resize", this.onWindowResize);
|
|
1173
1165
|
}
|
|
1174
1166
|
onWindowResize = () => {
|
|
1175
1167
|
const e = this.el.clientWidth, t = this.el.clientHeight;
|
|
1176
|
-
this.camera instanceof
|
|
1168
|
+
this.camera instanceof se ? (this.camera.aspect = e / t, this.camera.updateProjectionMatrix()) : this.camera instanceof ne && (this.camera.left = -e / 2, this.camera.right = e / 2, this.camera.top = t / 2, this.camera.bottom = -t / 2, this.camera.updateProjectionMatrix()), this.renderer.setSize(e, t), this.cssRenderer.resize(e, t), this.render();
|
|
1177
1169
|
};
|
|
1178
1170
|
async init() {
|
|
1179
1171
|
await this.renderer.init(), this.roomEnvironment.update(), this.scene.environment = this.roomEnvironment.envMap;
|
|
@@ -1182,7 +1174,7 @@ class Pn extends Ne {
|
|
|
1182
1174
|
this.camera = e, this.controls.camera = e, this.interactionManager.setCamera(e), this.renderPipeline.setCamera(e), this.onWindowResize(), this.dispatchEvent({ type: "cameraChange", camera: e });
|
|
1183
1175
|
}
|
|
1184
1176
|
setCameraByType(e) {
|
|
1185
|
-
e === "perspective" && !(this.camera instanceof
|
|
1177
|
+
e === "perspective" && !(this.camera instanceof se) ? this.setCamera(this.createPerspectiveCamera()) : e === "orthographic" && !(this.camera instanceof ne) && this.setCamera(this.createOrthographicCamera());
|
|
1186
1178
|
}
|
|
1187
1179
|
render(e = 1) {
|
|
1188
1180
|
return this.frameCount += e, new Promise((t) => {
|
|
@@ -1200,25 +1192,25 @@ class Pn extends Ne {
|
|
|
1200
1192
|
this.dispatchEvent({ type: "afterControlsUpdate", time: e, delta: t }), this.frameCount > 0 && (this.frameCount--, s = !0), this.frameloop === "always" && (s = !0), s && (this.dispatchEvent({ type: "beforeRender", time: e, delta: t }), this.renderer.info.reset(), this.renderPipeline.render(), this.cssRenderer.render(this.scene, this.camera), this.info.update(), this.dispatchEvent({ type: "afterRender", time: e, delta: t }));
|
|
1201
1193
|
};
|
|
1202
1194
|
_initRenderer(e) {
|
|
1203
|
-
const t = new
|
|
1195
|
+
const t = new bt({
|
|
1204
1196
|
reversedDepthBuffer: !0,
|
|
1205
1197
|
antialias: !1,
|
|
1206
1198
|
depth: !1,
|
|
1207
1199
|
trackTimestamp: !1,
|
|
1208
1200
|
...e
|
|
1209
1201
|
});
|
|
1210
|
-
return t.setSize(this.el.clientWidth, this.el.clientHeight), t.shadowMap.enabled = !0, t.shadowMap.type =
|
|
1202
|
+
return t.setSize(this.el.clientWidth, this.el.clientHeight), t.shadowMap.enabled = !0, t.shadowMap.type = xt, t.toneMapping = St, t.toneMappingExposure = 1, t.info.autoReset = !1, t.setPixelRatio(Math.min(window.devicePixelRatio, 1.5)), t.setAnimationLoop(this.animate), this.el.appendChild(t.domElement), t;
|
|
1211
1203
|
}
|
|
1212
1204
|
createScene() {
|
|
1213
|
-
const e = new
|
|
1205
|
+
const e = new je();
|
|
1214
1206
|
return e.background = new M(0), e;
|
|
1215
1207
|
}
|
|
1216
1208
|
createPerspectiveCamera() {
|
|
1217
|
-
const e = new
|
|
1209
|
+
const e = new se(50, this.el.clientWidth / this.el.clientHeight, 0.1, 1e5);
|
|
1218
1210
|
return e.position.setScalar(5), e;
|
|
1219
1211
|
}
|
|
1220
1212
|
createOrthographicCamera() {
|
|
1221
|
-
const e = new
|
|
1213
|
+
const e = new ne(
|
|
1222
1214
|
-this.el.clientWidth / 2,
|
|
1223
1215
|
this.el.clientWidth / 2,
|
|
1224
1216
|
this.el.clientHeight / 2,
|
|
@@ -1272,14 +1264,14 @@ class Pn extends Ne {
|
|
|
1272
1264
|
*/
|
|
1273
1265
|
enableFog(e = {}) {
|
|
1274
1266
|
const { color: t = 13421772, near: s = 10, far: n = 100 } = e;
|
|
1275
|
-
this.scene.fog = new
|
|
1267
|
+
this.scene.fog = new Ct(t, s, n), this.render();
|
|
1276
1268
|
}
|
|
1277
1269
|
/**
|
|
1278
1270
|
* Enable exponential fog.
|
|
1279
1271
|
*/
|
|
1280
1272
|
enableFogExp2(e = {}) {
|
|
1281
1273
|
const { color: t = 13421772, density: s = 0.01 } = e;
|
|
1282
|
-
this.scene.fog = new
|
|
1274
|
+
this.scene.fog = new Mt(t, s), this.render();
|
|
1283
1275
|
}
|
|
1284
1276
|
/**
|
|
1285
1277
|
* Disable fog.
|
|
@@ -1291,22 +1283,22 @@ class Pn extends Ne {
|
|
|
1291
1283
|
this.el.removeChild(this.renderer.domElement), window.removeEventListener("resize", this.onWindowResize), this.info.dispose(), this.interactionManager.dispose(), this.roomEnvironment.dispose(), this.cssRenderer.dispose(), this.renderPipeline.dispose(), this.renderer.dispose();
|
|
1292
1284
|
}
|
|
1293
1285
|
}
|
|
1294
|
-
class
|
|
1286
|
+
class Rs extends Qe {
|
|
1295
1287
|
constructor(e) {
|
|
1296
1288
|
super(e);
|
|
1297
1289
|
}
|
|
1298
1290
|
parse(e, t, s, n) {
|
|
1299
|
-
if (
|
|
1300
|
-
const r =
|
|
1291
|
+
if (Ls(e.slice(0, 8)) === "SBMG----") {
|
|
1292
|
+
const r = zs(e.slice(8));
|
|
1301
1293
|
return super.parse(r, t, s, n);
|
|
1302
1294
|
} else
|
|
1303
1295
|
return super.parse(e, t, s, n);
|
|
1304
1296
|
}
|
|
1305
1297
|
}
|
|
1306
|
-
function
|
|
1298
|
+
function Ls(h) {
|
|
1307
1299
|
return new TextDecoder().decode(new Uint8Array(h));
|
|
1308
1300
|
}
|
|
1309
|
-
function
|
|
1301
|
+
function zs(h) {
|
|
1310
1302
|
const e = new DataView(h);
|
|
1311
1303
|
for (let t = 0; t < e.byteLength; t++) {
|
|
1312
1304
|
const s = e.getUint8(t), n = (s >> 4 & 15) + (s << 4 & 240);
|
|
@@ -1314,37 +1306,37 @@ function Ls(h) {
|
|
|
1314
1306
|
}
|
|
1315
1307
|
return e.buffer;
|
|
1316
1308
|
}
|
|
1317
|
-
const
|
|
1318
|
-
function
|
|
1319
|
-
let e =
|
|
1309
|
+
const Ns = 8, Ds = 130, Be = 66, ks = "SBK-----", js = "SBM-----", Xe = new TextDecoder(), Us = new TextEncoder();
|
|
1310
|
+
function Hs(h) {
|
|
1311
|
+
let e = Ns;
|
|
1320
1312
|
const t = new Uint8Array(h, 0, e);
|
|
1321
|
-
if (
|
|
1313
|
+
if (Xe.decode(t) !== ks)
|
|
1322
1314
|
return h;
|
|
1323
|
-
e +=
|
|
1315
|
+
e += Ds;
|
|
1324
1316
|
const n = new Uint8Array(h, 0, e);
|
|
1325
1317
|
if (n[40] === 1) {
|
|
1326
|
-
const r =
|
|
1327
|
-
let l =
|
|
1328
|
-
const d = e +
|
|
1318
|
+
const r = Us.encode(js), o = new Uint8Array([n[41]]), a = Fs(n), c = Gs(a);
|
|
1319
|
+
let l = Be % c.length;
|
|
1320
|
+
const d = e + Be, p = new Uint8Array(h, d), u = new Uint8Array(p.length);
|
|
1329
1321
|
for (let w = 0; w < p.length; w++)
|
|
1330
1322
|
u[w] = p[w] ^ c[l], l = (l + 1) % c.length;
|
|
1331
1323
|
const m = new Uint8Array(r.length + o.length + u.length);
|
|
1332
1324
|
return m.set(r), m.set(o, r.length), m.set(u, r.length + o.length), m.buffer;
|
|
1333
1325
|
}
|
|
1334
1326
|
}
|
|
1335
|
-
function
|
|
1327
|
+
function Fs(h) {
|
|
1336
1328
|
const e = new Uint8Array(128);
|
|
1337
1329
|
return e.set(h.slice(42, 74), 0), e.set(h.slice(74, 138), 32), e.set(h.slice(8, 40), 96), e;
|
|
1338
1330
|
}
|
|
1339
|
-
function
|
|
1331
|
+
function Gs(h) {
|
|
1340
1332
|
const e = new Uint8Array(64);
|
|
1341
1333
|
return e.set(h.slice(0, 8), 0), e.set(h.slice(24, 32), 8), e.set(h.slice(40, 56), 16), e.set(h.slice(64, 88), 32), e.set(h.slice(96, 104), 56), e;
|
|
1342
1334
|
}
|
|
1343
|
-
const
|
|
1335
|
+
const $s = (h, e, t) => {
|
|
1344
1336
|
const s = h.buffer.slice(t, t + e);
|
|
1345
|
-
let n =
|
|
1337
|
+
let n = Xe.decode(s);
|
|
1346
1338
|
return n = n.replace("\\", "/"), n.startsWith("Maps/") || (n = `Maps/${n}`), n;
|
|
1347
|
-
},
|
|
1339
|
+
}, Ws = (h, e, t) => {
|
|
1348
1340
|
const [s, n, i, r, o] = e, a = t || r < 1;
|
|
1349
1341
|
return new L({
|
|
1350
1342
|
name: h,
|
|
@@ -1354,19 +1346,19 @@ const Gs = (h, e, t) => {
|
|
|
1354
1346
|
alphaTest: 0.01,
|
|
1355
1347
|
side: o
|
|
1356
1348
|
});
|
|
1357
|
-
},
|
|
1358
|
-
class
|
|
1349
|
+
}, Ks = (h) => h?.toLowerCase().endsWith(".png") ?? !1;
|
|
1350
|
+
class Qs {
|
|
1359
1351
|
data;
|
|
1360
1352
|
options;
|
|
1361
1353
|
textureLoader;
|
|
1362
1354
|
littleEndian = !0;
|
|
1363
1355
|
materials = /* @__PURE__ */ new Map();
|
|
1364
1356
|
constructor(e, t) {
|
|
1365
|
-
this.data = e, this.options = t, this.textureLoader = new
|
|
1357
|
+
this.data = e, this.options = t, this.textureLoader = new Fe(t.manager), this.textureLoader.setCrossOrigin(t.crossOrigin), this.textureLoader.setRequestHeader(t.requestHeader);
|
|
1366
1358
|
}
|
|
1367
1359
|
parse(e, t) {
|
|
1368
1360
|
let s = this.data;
|
|
1369
|
-
const n =
|
|
1361
|
+
const n = Hs(this.data);
|
|
1370
1362
|
n && (s = n);
|
|
1371
1363
|
const i = new DataView(s);
|
|
1372
1364
|
let r = 8;
|
|
@@ -1390,14 +1382,14 @@ class Ks {
|
|
|
1390
1382
|
const p = e.getFloat32(t, this.littleEndian);
|
|
1391
1383
|
t += 4, t += 4, t += 4, t += 4, t += 4;
|
|
1392
1384
|
let u = e.getUint8(t);
|
|
1393
|
-
t += 1, u === 0 ? u =
|
|
1385
|
+
t += 1, u === 0 ? u = _t : u === 1 ? u = Et : u === 2 && (u = Pt);
|
|
1394
1386
|
const m = e.getUint16(t, this.littleEndian);
|
|
1395
1387
|
t += 2;
|
|
1396
|
-
const w = m > 0 ?
|
|
1388
|
+
const w = m > 0 ? $s(e, m, t) : "";
|
|
1397
1389
|
if (t += m, !this.materials.has(a)) {
|
|
1398
|
-
const x =
|
|
1399
|
-
this.materials.set(a, x), w && this.options.path && this.textureLoader.load(
|
|
1400
|
-
y.colorSpace =
|
|
1390
|
+
const x = Ws(a, [c, l, d, p, u], Ks(w));
|
|
1391
|
+
this.materials.set(a, x), w && this.options.path && this.textureLoader.load(I.resolveURL(w, this.options.path), (y) => {
|
|
1392
|
+
y.colorSpace = Ge, y.wrapS = xe, y.wrapT = xe, y.flipY = !1, y.anisotropy = 16, x.map = y;
|
|
1401
1393
|
});
|
|
1402
1394
|
}
|
|
1403
1395
|
}
|
|
@@ -1416,10 +1408,10 @@ class Ks {
|
|
|
1416
1408
|
if (t += 2, w > 0)
|
|
1417
1409
|
for (let g = 0; g < w; g++)
|
|
1418
1410
|
t += 4, t += 4, t += 4;
|
|
1419
|
-
const
|
|
1420
|
-
if (t += 2,
|
|
1421
|
-
for (let g = 0; g <
|
|
1422
|
-
const b = new
|
|
1411
|
+
const S = e.getUint16(t, this.littleEndian);
|
|
1412
|
+
if (t += 2, S > 0)
|
|
1413
|
+
for (let g = 0; g < S; g++) {
|
|
1414
|
+
const b = new C();
|
|
1423
1415
|
b.setX(e.getFloat32(t, this.littleEndian)), t += 4, b.setY(e.getFloat32(t, this.littleEndian)), t += 4, d.push(b);
|
|
1424
1416
|
}
|
|
1425
1417
|
const x = e.getUint16(t, this.littleEndian);
|
|
@@ -1438,12 +1430,12 @@ class Ks {
|
|
|
1438
1430
|
for (let g = 0; g < p.length; g++) {
|
|
1439
1431
|
const b = p[g], z = l[b[0]], N = l[b[1]], P = l[b[2]];
|
|
1440
1432
|
y.push(...z.toArray(), ...N.toArray(), ...P.toArray());
|
|
1441
|
-
let
|
|
1433
|
+
let J = new C(), W = new C(), j = new C();
|
|
1442
1434
|
const U = u[g];
|
|
1443
|
-
U !== void 0 && (
|
|
1435
|
+
U !== void 0 && (J = U[0], W = U[1], j = U[2]), _.push(...J.toArray(), ...W.toArray(), ...j.toArray());
|
|
1444
1436
|
}
|
|
1445
|
-
const
|
|
1446
|
-
if (
|
|
1437
|
+
const A = new Float32Array(y), B = new Float32Array(_), E = new Q();
|
|
1438
|
+
if (A.length > 0 && E.setAttribute("position", new Se(A, 3)), B.length > 0 && E.setAttribute("uv", new Se(B, 2)), E.computeVertexNormals(), this.materials.has(c)) {
|
|
1447
1439
|
const g = new k(E, this.materials.get(c));
|
|
1448
1440
|
g.name = a, g.castShadow = !0, g.receiveShadow = !0, n.add(g);
|
|
1449
1441
|
}
|
|
@@ -1455,20 +1447,20 @@ class Ks {
|
|
|
1455
1447
|
console.warn("SBMLoader: SBM version 3 is not supported yet."), s(n);
|
|
1456
1448
|
}
|
|
1457
1449
|
}
|
|
1458
|
-
class
|
|
1450
|
+
class qs extends Tt {
|
|
1459
1451
|
load(e, t, s, n) {
|
|
1460
1452
|
let i;
|
|
1461
1453
|
if (this.resourcePath !== "")
|
|
1462
1454
|
i = this.resourcePath;
|
|
1463
1455
|
else if (this.path !== "") {
|
|
1464
|
-
const a =
|
|
1465
|
-
i =
|
|
1456
|
+
const a = I.extractUrlBase(e);
|
|
1457
|
+
i = I.resolveURL(a, this.path);
|
|
1466
1458
|
} else
|
|
1467
|
-
i =
|
|
1459
|
+
i = I.extractUrlBase(e);
|
|
1468
1460
|
this.manager.itemStart(e);
|
|
1469
1461
|
const r = (a) => {
|
|
1470
1462
|
n ? n(a) : console.error(a), this.manager.itemError(e), this.manager.itemEnd(e);
|
|
1471
|
-
}, o = new
|
|
1463
|
+
}, o = new He(this.manager);
|
|
1472
1464
|
o.setPath(this.path), o.setResponseType("arraybuffer"), o.setRequestHeader(this.requestHeader), o.setWithCredentials(this.withCredentials), o.load(
|
|
1473
1465
|
e,
|
|
1474
1466
|
(a) => {
|
|
@@ -1495,7 +1487,7 @@ class Qs extends St {
|
|
|
1495
1487
|
n?.(new Error(`SBMLoader: Invalid SBM format: ${i}`));
|
|
1496
1488
|
return;
|
|
1497
1489
|
}
|
|
1498
|
-
new
|
|
1490
|
+
new Qs(e, {
|
|
1499
1491
|
path: t,
|
|
1500
1492
|
crossOrigin: this.crossOrigin,
|
|
1501
1493
|
requestHeader: this.requestHeader,
|
|
@@ -1517,7 +1509,7 @@ class Qs extends St {
|
|
|
1517
1509
|
});
|
|
1518
1510
|
}
|
|
1519
1511
|
}
|
|
1520
|
-
const
|
|
1512
|
+
const Xs = [
|
|
1521
1513
|
"map",
|
|
1522
1514
|
"alphaMap",
|
|
1523
1515
|
"aoMap",
|
|
@@ -1544,14 +1536,14 @@ const qs = [
|
|
|
1544
1536
|
"thicknessMap",
|
|
1545
1537
|
"transmissionMap"
|
|
1546
1538
|
];
|
|
1547
|
-
function
|
|
1539
|
+
function K(h) {
|
|
1548
1540
|
return h.traverse((e) => {
|
|
1549
1541
|
if (!(e instanceof k)) return;
|
|
1550
1542
|
const t = Array.isArray(e.material) ? e.material : [e.material];
|
|
1551
1543
|
for (const s of t) {
|
|
1552
1544
|
if (!s) continue;
|
|
1553
1545
|
let n = !1;
|
|
1554
|
-
for (const i of
|
|
1546
|
+
for (const i of Xs) {
|
|
1555
1547
|
const r = s[i];
|
|
1556
1548
|
r?.isTexture && r.image == null && (r.dispose(), s[i] = null, n = !0);
|
|
1557
1549
|
}
|
|
@@ -1561,19 +1553,19 @@ function W(h) {
|
|
|
1561
1553
|
}
|
|
1562
1554
|
class D {
|
|
1563
1555
|
static CACHE_NAME = "u-space-model-loader-cache";
|
|
1564
|
-
static fileLoader = new
|
|
1565
|
-
static dracoLoader = new
|
|
1566
|
-
`https://cdn.jsdelivr.net/npm/three@0.${
|
|
1556
|
+
static fileLoader = new He().setResponseType("arraybuffer");
|
|
1557
|
+
static dracoLoader = new ms().setDecoderPath(
|
|
1558
|
+
`https://cdn.jsdelivr.net/npm/three@0.${Ce}.0/examples/jsm/libs/draco/`
|
|
1567
1559
|
);
|
|
1568
|
-
static ktx2Loader = new
|
|
1569
|
-
`https://cdn.jsdelivr.net/npm/three@0.${
|
|
1560
|
+
static ktx2Loader = new fs().setTranscoderPath(
|
|
1561
|
+
`https://cdn.jsdelivr.net/npm/three@0.${Ce}.0/examples/jsm/libs/basis/`
|
|
1570
1562
|
);
|
|
1571
|
-
static gltfLoader = new
|
|
1572
|
-
static sbmxLoader = new
|
|
1573
|
-
static sbmLoader = new
|
|
1574
|
-
static fbxLoader = new
|
|
1575
|
-
static objLoader = new
|
|
1576
|
-
static stlLoader = new
|
|
1563
|
+
static gltfLoader = new Qe().setDRACOLoader(D.dracoLoader).setKTX2Loader(D.ktx2Loader).setMeshoptDecoder(Oe);
|
|
1564
|
+
static sbmxLoader = new Rs().setDRACOLoader(D.dracoLoader).setKTX2Loader(D.ktx2Loader).setMeshoptDecoder(Oe);
|
|
1565
|
+
static sbmLoader = new qs();
|
|
1566
|
+
static fbxLoader = new ds();
|
|
1567
|
+
static objLoader = new ps();
|
|
1568
|
+
static stlLoader = new us();
|
|
1577
1569
|
static setLoadingManager(e) {
|
|
1578
1570
|
this.fileLoader.manager = e, this.dracoLoader.manager = e, this.ktx2Loader.manager = e, this.gltfLoader.manager = e, this.sbmxLoader.manager = e, this.sbmLoader.manager = e, this.fbxLoader.manager = e, this.objLoader.manager = e, this.stlLoader.manager = e;
|
|
1579
1571
|
}
|
|
@@ -1601,20 +1593,20 @@ class D {
|
|
|
1601
1593
|
switch (t.persistent && typeof caches < "u" ? n = await this.getPersistentData(e) : n = await this.fileLoader.loadAsync(e), s) {
|
|
1602
1594
|
case "gltf":
|
|
1603
1595
|
case "glb":
|
|
1604
|
-
const i = await this.gltfLoader.parseAsync(n,
|
|
1605
|
-
return i.scene.animations = i.animations,
|
|
1596
|
+
const i = await this.gltfLoader.parseAsync(n, I.extractUrlBase(e));
|
|
1597
|
+
return i.scene.animations = i.animations, K(i.scene);
|
|
1606
1598
|
case "sbmx":
|
|
1607
|
-
const r = await this.sbmxLoader.parseAsync(n,
|
|
1608
|
-
return r.scene.animations = r.animations,
|
|
1599
|
+
const r = await this.sbmxLoader.parseAsync(n, I.extractUrlBase(e));
|
|
1600
|
+
return r.scene.animations = r.animations, K(r.scene);
|
|
1609
1601
|
case "sbm":
|
|
1610
|
-
const o = await this.sbmLoader.parseAsync(n,
|
|
1611
|
-
return
|
|
1602
|
+
const o = await this.sbmLoader.parseAsync(n, I.extractUrlBase(e));
|
|
1603
|
+
return K(o);
|
|
1612
1604
|
case "fbx":
|
|
1613
|
-
const a = this.fbxLoader.parse(n,
|
|
1614
|
-
return
|
|
1605
|
+
const a = this.fbxLoader.parse(n, I.extractUrlBase(e));
|
|
1606
|
+
return K(a);
|
|
1615
1607
|
case "obj":
|
|
1616
1608
|
const c = new TextDecoder().decode(n), l = this.objLoader.parse(c);
|
|
1617
|
-
return
|
|
1609
|
+
return K(l);
|
|
1618
1610
|
case "stl":
|
|
1619
1611
|
const d = this.stlLoader.parse(n);
|
|
1620
1612
|
return new k(d, new L());
|
|
@@ -1634,10 +1626,10 @@ class D {
|
|
|
1634
1626
|
}
|
|
1635
1627
|
}
|
|
1636
1628
|
}
|
|
1637
|
-
class
|
|
1638
|
-
static textureLoader = new
|
|
1639
|
-
static hdrLoader = new
|
|
1640
|
-
static cubeTextureLoader = new
|
|
1629
|
+
class An {
|
|
1630
|
+
static textureLoader = new Fe();
|
|
1631
|
+
static hdrLoader = new gs();
|
|
1632
|
+
static cubeTextureLoader = new Ot();
|
|
1641
1633
|
static setLoadingManager(e) {
|
|
1642
1634
|
this.textureLoader.manager = e, this.hdrLoader.manager = e, this.cubeTextureLoader.manager = e;
|
|
1643
1635
|
}
|
|
@@ -1646,7 +1638,7 @@ class On {
|
|
|
1646
1638
|
}
|
|
1647
1639
|
static async loadAsyncHDR(e) {
|
|
1648
1640
|
const t = await this.hdrLoader.loadAsync(e);
|
|
1649
|
-
return t.mapping =
|
|
1641
|
+
return t.mapping = At, t;
|
|
1650
1642
|
}
|
|
1651
1643
|
static async loadAsyncCubeTexture(e, t) {
|
|
1652
1644
|
return this.cubeTextureLoader.setPath(e), await this.cubeTextureLoader.loadAsync(t);
|
|
@@ -1665,7 +1657,7 @@ class G extends k {
|
|
|
1665
1657
|
return this.visible === !1 && this.ignoreInvisibleWhenRaycast === !0 ? !1 : super.raycast(e, t);
|
|
1666
1658
|
}
|
|
1667
1659
|
}
|
|
1668
|
-
class
|
|
1660
|
+
class Ye extends R {
|
|
1669
1661
|
isBaseGroup = !0;
|
|
1670
1662
|
type = "BaseGroup";
|
|
1671
1663
|
ignoreInvisibleWhenRaycast = !0;
|
|
@@ -1676,7 +1668,7 @@ class Xe extends R {
|
|
|
1676
1668
|
return this.visible === !1 && this.ignoreInvisibleWhenRaycast === !0 ? !1 : super.raycast(e, t);
|
|
1677
1669
|
}
|
|
1678
1670
|
}
|
|
1679
|
-
class
|
|
1671
|
+
class Ys extends Bt {
|
|
1680
1672
|
isBaseSprite = !0;
|
|
1681
1673
|
type = "BaseSprite";
|
|
1682
1674
|
ignoreInvisibleWhenRaycast = !0;
|
|
@@ -1687,7 +1679,7 @@ class Xs extends Ot {
|
|
|
1687
1679
|
return this.visible === !1 && this.ignoreInvisibleWhenRaycast === !0 ? !1 : super.raycast(e, t);
|
|
1688
1680
|
}
|
|
1689
1681
|
}
|
|
1690
|
-
class he extends
|
|
1682
|
+
class he extends Ye {
|
|
1691
1683
|
isModel = !0;
|
|
1692
1684
|
type = "Model";
|
|
1693
1685
|
static memoryCache = /* @__PURE__ */ new Map();
|
|
@@ -1702,8 +1694,8 @@ class he extends Xe {
|
|
|
1702
1694
|
try {
|
|
1703
1695
|
let i;
|
|
1704
1696
|
s ? he.memoryCache.has(t) ? i = he.memoryCache.get(t) : (i = D.loadAsync(t, { persistent: n }), he.memoryCache.set(t, i)) : i = D.loadAsync(t, { persistent: n });
|
|
1705
|
-
const r = await i, o =
|
|
1706
|
-
return this.add(o), o.animations && o.animations.length > 0 && (this.animations = o.animations, this.mixer = new
|
|
1697
|
+
const r = await i, o = ys(r);
|
|
1698
|
+
return this.add(o), o.animations && o.animations.length > 0 && (this.animations = o.animations, this.mixer = new It(o)), o;
|
|
1707
1699
|
} catch (i) {
|
|
1708
1700
|
return console.error(`[Model] Failed to load model from ${t}:`, i), null;
|
|
1709
1701
|
}
|
|
@@ -1715,7 +1707,7 @@ class he extends Xe {
|
|
|
1715
1707
|
if (e === void 0 ? o = this.animations[0] : typeof e == "number" ? o = this.animations[e] : o = this.animations.find((c) => c.name === e), !o)
|
|
1716
1708
|
return console.warn(`[Model] Animation not found: ${e}`), null;
|
|
1717
1709
|
let a = this.actions.get(o.name);
|
|
1718
|
-
return a || (a = this.mixer.clipAction(o), this.actions.set(o.name, a)), a.setLoop(s ?
|
|
1710
|
+
return a || (a = this.mixer.clipAction(o), this.actions.set(o.name, a)), a.setLoop(s ? Rt : Lt, n), a.clampWhenFinished = r, a.timeScale = i, a.reset().play(), a;
|
|
1719
1711
|
}
|
|
1720
1712
|
playAllAnimations(e = {}) {
|
|
1721
1713
|
return this.animations.map((t, s) => this.playAnimation(s, e)).filter((t) => t !== null);
|
|
@@ -1736,7 +1728,7 @@ class he extends Xe {
|
|
|
1736
1728
|
* Get the axis-aligned bounding box of this model.
|
|
1737
1729
|
*/
|
|
1738
1730
|
getBoundingBox() {
|
|
1739
|
-
return new
|
|
1731
|
+
return new V().setFromObject(this);
|
|
1740
1732
|
}
|
|
1741
1733
|
/**
|
|
1742
1734
|
* Get the center point of this model's bounding box.
|
|
@@ -1760,11 +1752,11 @@ class he extends Xe {
|
|
|
1760
1752
|
typeof caches < "u" && await caches.delete("u-space-loader-cache");
|
|
1761
1753
|
}
|
|
1762
1754
|
}
|
|
1763
|
-
class
|
|
1755
|
+
class Vs extends G {
|
|
1764
1756
|
isSphereMesh = !0;
|
|
1765
1757
|
type = "SphereMesh";
|
|
1766
1758
|
constructor({ geometryParameters: e, materialParameters: t } = {}) {
|
|
1767
|
-
super(), this.geometry = new
|
|
1759
|
+
super(), this.geometry = new zt(
|
|
1768
1760
|
e?.radius,
|
|
1769
1761
|
e?.widthSegments,
|
|
1770
1762
|
e?.heightSegments,
|
|
@@ -1779,7 +1771,7 @@ class Ie extends G {
|
|
|
1779
1771
|
isTubeMesh = !0;
|
|
1780
1772
|
type = "TubeMesh";
|
|
1781
1773
|
constructor({ geometryParameters: e, materialParameters: t } = {}) {
|
|
1782
|
-
super(), this.geometry = new
|
|
1774
|
+
super(), this.geometry = new Nt(
|
|
1783
1775
|
e?.path,
|
|
1784
1776
|
e?.tubularSegments,
|
|
1785
1777
|
e?.radius,
|
|
@@ -1788,7 +1780,7 @@ class Ie extends G {
|
|
|
1788
1780
|
), this.material = new L(t);
|
|
1789
1781
|
}
|
|
1790
1782
|
}
|
|
1791
|
-
class
|
|
1783
|
+
class Bn extends Ye {
|
|
1792
1784
|
isTopology = !0;
|
|
1793
1785
|
type = "Topology";
|
|
1794
1786
|
// Visuals
|
|
@@ -1892,7 +1884,7 @@ class An extends Xe {
|
|
|
1892
1884
|
*/
|
|
1893
1885
|
renderGraph() {
|
|
1894
1886
|
this.clearGraph(), this.graphGroup = new R();
|
|
1895
|
-
const e = new
|
|
1887
|
+
const e = new Vs({
|
|
1896
1888
|
geometryParameters: {
|
|
1897
1889
|
radius: this.parameters.nodeRadius,
|
|
1898
1890
|
widthSegments: 16,
|
|
@@ -1914,7 +1906,7 @@ class An extends Xe {
|
|
|
1914
1906
|
t.add(o);
|
|
1915
1907
|
const a = this.nodes.get(n), c = this.nodes.get(r);
|
|
1916
1908
|
if (a && c) {
|
|
1917
|
-
const l = new
|
|
1909
|
+
const l = new Dt(a, c), d = new Ie({
|
|
1918
1910
|
geometryParameters: {
|
|
1919
1911
|
path: l,
|
|
1920
1912
|
tubularSegments: 1,
|
|
@@ -1941,7 +1933,7 @@ class An extends Xe {
|
|
|
1941
1933
|
*/
|
|
1942
1934
|
renderPath(e, t = this.parameters.pathColor) {
|
|
1943
1935
|
if (e.length < 2) return;
|
|
1944
|
-
const s = new
|
|
1936
|
+
const s = new kt(e, !1, "catmullrom", 0), n = new Ie({
|
|
1945
1937
|
geometryParameters: {
|
|
1946
1938
|
path: s,
|
|
1947
1939
|
tubularSegments: e.length * 10,
|
|
@@ -1991,7 +1983,7 @@ class An extends Xe {
|
|
|
1991
1983
|
return this.adjacencyMap.get(e);
|
|
1992
1984
|
}
|
|
1993
1985
|
}
|
|
1994
|
-
class In extends
|
|
1986
|
+
class In extends Ys {
|
|
1995
1987
|
isPoi = !0;
|
|
1996
1988
|
type = "Poi";
|
|
1997
1989
|
parameters = {
|
|
@@ -2010,7 +2002,7 @@ class In extends Xs {
|
|
|
2010
2002
|
_canvas = document.createElement("canvas");
|
|
2011
2003
|
_lastParametersJSON = "";
|
|
2012
2004
|
constructor(e = {}) {
|
|
2013
|
-
super(new
|
|
2005
|
+
super(new jt()), Object.assign(this.parameters, e), this.updateAsync();
|
|
2014
2006
|
}
|
|
2015
2007
|
/**
|
|
2016
2008
|
* Update the POI with new parameters
|
|
@@ -2026,33 +2018,33 @@ class In extends Xs {
|
|
|
2026
2018
|
n.font = `${this.parameters.fontSize}px ${this.parameters.fontFamily}`;
|
|
2027
2019
|
let i = null;
|
|
2028
2020
|
this.parameters.img && (i = await this._loadImage(this.parameters.img));
|
|
2029
|
-
const { text: r, fontSize: o, color: a, iconSize: c, padding: l, backgroundColor: d, borderRadius: p, textPosition: u, scaleFactor: m } = this.parameters, w = n.measureText(r),
|
|
2030
|
-
let y = 0, _ = 0,
|
|
2021
|
+
const { text: r, fontSize: o, color: a, iconSize: c, padding: l, backgroundColor: d, borderRadius: p, textPosition: u, scaleFactor: m } = this.parameters, w = n.measureText(r), S = r ? w.width : 0, x = r ? o : 0;
|
|
2022
|
+
let y = 0, _ = 0, A = 0, B = 0, E = 0, g = 0;
|
|
2031
2023
|
const b = !!i, z = !!r;
|
|
2032
2024
|
if (b && z)
|
|
2033
2025
|
switch (u) {
|
|
2034
2026
|
case "top":
|
|
2035
|
-
y = Math.max(c,
|
|
2027
|
+
y = Math.max(c, S), _ = c + l + x, E = (y - S) / 2, g = x / 2, A = (y - c) / 2, B = x + l;
|
|
2036
2028
|
break;
|
|
2037
2029
|
case "bottom":
|
|
2038
|
-
y = Math.max(c,
|
|
2030
|
+
y = Math.max(c, S), _ = c + l + x, A = (y - c) / 2, B = 0, E = (y - S) / 2, g = c + l + x / 2;
|
|
2039
2031
|
break;
|
|
2040
2032
|
case "left":
|
|
2041
|
-
y = c + l +
|
|
2033
|
+
y = c + l + S, _ = Math.max(c, x), E = 0, g = _ / 2, A = S + l, B = (_ - c) / 2;
|
|
2042
2034
|
break;
|
|
2043
2035
|
default:
|
|
2044
|
-
y = c + l +
|
|
2036
|
+
y = c + l + S, _ = Math.max(c, x), A = 0, B = (_ - c) / 2, E = c + l, g = _ / 2;
|
|
2045
2037
|
break;
|
|
2046
2038
|
}
|
|
2047
|
-
else b ? (y = c, _ = c,
|
|
2039
|
+
else b ? (y = c, _ = c, A = 0, B = 0) : z && (y = S, _ = x, E = 0, g = x / 2);
|
|
2048
2040
|
const N = y + l * 2, P = _ + l * 2;
|
|
2049
|
-
if (s.width = N, s.height = P, n.font = `${o}px ${this.parameters.fontFamily}`, d && (n.fillStyle = d, this._drawRoundedRect(n, 0, 0, N, P, p), n.fill()), b && n.drawImage(i,
|
|
2041
|
+
if (s.width = N, s.height = P, n.font = `${o}px ${this.parameters.fontFamily}`, d && (n.fillStyle = d, this._drawRoundedRect(n, 0, 0, N, P, p), n.fill()), b && n.drawImage(i, A + l, B + l, c, c), z) {
|
|
2050
2042
|
n.fillStyle = a;
|
|
2051
|
-
const j = n.measureText(r), U = j.actualBoundingBoxAscent + j.actualBoundingBoxDescent,
|
|
2052
|
-
n.textBaseline = "alphabetic", n.fillText(r, E + l, g + l +
|
|
2043
|
+
const j = n.measureText(r), U = j.actualBoundingBoxAscent + j.actualBoundingBoxDescent, ot = j.actualBoundingBoxAscent - U / 2;
|
|
2044
|
+
n.textBaseline = "alphabetic", n.fillText(r, E + l, g + l + ot);
|
|
2053
2045
|
}
|
|
2054
|
-
const
|
|
2055
|
-
|
|
2046
|
+
const J = this.material.map, W = new Ut(s);
|
|
2047
|
+
W.colorSpace = Ge, this.material.map = W, J?.dispose(), this.scale.set(N * m, P * m, 1);
|
|
2056
2048
|
}
|
|
2057
2049
|
_loadImage(e) {
|
|
2058
2050
|
return new Promise((t, s) => {
|
|
@@ -2070,43 +2062,43 @@ class In extends Xs {
|
|
|
2070
2062
|
this.material.map?.dispose(), this.material.dispose();
|
|
2071
2063
|
}
|
|
2072
2064
|
}
|
|
2073
|
-
class
|
|
2065
|
+
class Ve extends G {
|
|
2074
2066
|
isShapeMesh = !0;
|
|
2075
2067
|
type = "ShapeMesh";
|
|
2076
2068
|
constructor({ geometryParameters: e, materialParameters: t } = {}) {
|
|
2077
|
-
super(), this.geometry = new
|
|
2069
|
+
super(), this.geometry = new Ht(e?.shape, e?.curveSegments), this.material = new L(t), this.geometry.rotateX(-Math.PI / 2);
|
|
2078
2070
|
}
|
|
2079
2071
|
static createFromPoints(e, t = {}) {
|
|
2080
|
-
return new
|
|
2072
|
+
return new Ve({
|
|
2081
2073
|
...t,
|
|
2082
2074
|
geometryParameters: {
|
|
2083
2075
|
...t.geometryParameters,
|
|
2084
|
-
shape: new
|
|
2076
|
+
shape: new $e(e.map((s) => new C(s.x, -s.z)))
|
|
2085
2077
|
}
|
|
2086
2078
|
});
|
|
2087
2079
|
}
|
|
2088
2080
|
}
|
|
2089
|
-
class
|
|
2081
|
+
class Je extends G {
|
|
2090
2082
|
isExtrudeMesh = !0;
|
|
2091
2083
|
type = "ExtrudeMesh";
|
|
2092
2084
|
constructor({ geometryParameters: e, materialParameters: t } = {}) {
|
|
2093
|
-
super(), this.geometry = new
|
|
2085
|
+
super(), this.geometry = new Ft(e?.shape, e?.options), this.material = new L(t), this.geometry.rotateX(-Math.PI / 2);
|
|
2094
2086
|
}
|
|
2095
2087
|
static createFromPoints(e, t = {}) {
|
|
2096
|
-
return e && e.length === 0 && (e = void 0), new
|
|
2088
|
+
return e && e.length === 0 && (e = void 0), new Je({
|
|
2097
2089
|
...t,
|
|
2098
2090
|
geometryParameters: {
|
|
2099
2091
|
...t.geometryParameters,
|
|
2100
|
-
shape: new
|
|
2092
|
+
shape: new $e(e?.map((s) => new C(s.x, -s.z)))
|
|
2101
2093
|
}
|
|
2102
2094
|
});
|
|
2103
2095
|
}
|
|
2104
2096
|
}
|
|
2105
|
-
class
|
|
2097
|
+
class Rn extends G {
|
|
2106
2098
|
isPlaneMesh = !0;
|
|
2107
2099
|
type = "PlaneMesh";
|
|
2108
2100
|
constructor({ geometryParameters: e, materialParameters: t } = {}) {
|
|
2109
|
-
super(), this.geometry = new
|
|
2101
|
+
super(), this.geometry = new Gt(
|
|
2110
2102
|
e?.width,
|
|
2111
2103
|
e?.height,
|
|
2112
2104
|
e?.widthSegments,
|
|
@@ -2114,12 +2106,12 @@ class Bn extends G {
|
|
|
2114
2106
|
), this.material = new L(t);
|
|
2115
2107
|
}
|
|
2116
2108
|
}
|
|
2117
|
-
class
|
|
2109
|
+
class Ln extends G {
|
|
2118
2110
|
isCircleMesh = !0;
|
|
2119
2111
|
type = "CircleMesh";
|
|
2120
2112
|
constructor({ geometryParameters: e, materialParameters: t } = {}) {
|
|
2121
2113
|
super(
|
|
2122
|
-
new
|
|
2114
|
+
new $t(
|
|
2123
2115
|
e?.radius,
|
|
2124
2116
|
e?.segments,
|
|
2125
2117
|
e?.thetaStart,
|
|
@@ -2136,14 +2128,14 @@ class F {
|
|
|
2136
2128
|
});
|
|
2137
2129
|
}
|
|
2138
2130
|
}
|
|
2139
|
-
class
|
|
2131
|
+
class zn {
|
|
2140
2132
|
static flow(e = {}) {
|
|
2141
|
-
const { baseColor: t = 16777215, flowColor: s = 65280, speed: n = 1, scale: i = 3, intensity: r = 4 } = e, o = H(new M(t)), a = H(new M(s)), c = Te().x.mul(i).sub(
|
|
2142
|
-
return
|
|
2133
|
+
const { baseColor: t = 16777215, flowColor: s = 65280, speed: n = 1, scale: i = 3, intensity: r = 4 } = e, o = H(new M(t)), a = H(new M(s)), c = Te().x.mul(i).sub(oe.mul(n)), l = ae(ge(c).add(1).mul(0.5), r);
|
|
2134
|
+
return ce(o, a, l);
|
|
2143
2135
|
}
|
|
2144
2136
|
static breathe(e = {}) {
|
|
2145
|
-
const { baseColor: t = 16777215, breathColor: s = 65280, speed: n = 1, intensity: i = 2 } = e, r = H(new M(t)), o = H(new M(s)), a = ge(
|
|
2146
|
-
return
|
|
2137
|
+
const { baseColor: t = 16777215, breathColor: s = 65280, speed: n = 1, intensity: i = 2 } = e, r = H(new M(t)), o = H(new M(s)), a = ge(oe.mul(n)).add(1).mul(0.5), c = ae(a, i);
|
|
2138
|
+
return ce(r, o, c);
|
|
2147
2139
|
}
|
|
2148
2140
|
static fluid(e = {}) {
|
|
2149
2141
|
const {
|
|
@@ -2153,24 +2145,24 @@ class Ln {
|
|
|
2153
2145
|
scale: i = 1,
|
|
2154
2146
|
intensity: r = 1,
|
|
2155
2147
|
distortion: o = 0.5
|
|
2156
|
-
} = e, a = H(new M(t)), c = H(new M(s)), l = Te().mul(i), d =
|
|
2157
|
-
return
|
|
2148
|
+
} = e, a = H(new M(t)), c = H(new M(s)), l = Te().mul(i), d = oe.mul(n), p = _e(l.add(d), 1, 0), u = l.add(p.mul(o)), m = _e(u, 1, 0).add(1).mul(0.5), w = ae(m, r);
|
|
2149
|
+
return ce(a, c, w);
|
|
2158
2150
|
}
|
|
2159
2151
|
}
|
|
2160
|
-
function
|
|
2152
|
+
function Nn(h) {
|
|
2161
2153
|
}
|
|
2162
|
-
const
|
|
2163
|
-
const h =
|
|
2164
|
-
return
|
|
2165
|
-
})(),
|
|
2166
|
-
const h =
|
|
2167
|
-
return
|
|
2154
|
+
const $ = "uSpaceHighlight", Y = `${$}/enabled`, Ze = `${$}/opacity`, et = `${$}/color`, tt = `${$}/overwrite`, st = `${$}/multiplyOpacity`, de = `${$}/instancedOriginalOpacity`, me = "uSpaceBreathe", pe = `${me}/enabled`, nt = `${me}/color`, it = `${me}/speed`, rt = `${me}/intensity`, ue = /* @__PURE__ */ new WeakMap(), Js = We(() => {
|
|
2155
|
+
const h = O(Y, "uint"), e = O(et, "uint"), t = O(tt, "uint"), s = ze(e), n = Ee.mul(s), i = q(t.greaterThan(0), s, n), r = q(h.greaterThan(0), i, Ee), o = O(pe, "uint"), a = O(nt, "uint"), c = O(it, "float"), l = O(rt, "float"), d = ze(a), p = ge(oe.mul(c)).add(1).mul(0.5), u = ae(p, l), m = ce(r, d, u);
|
|
2156
|
+
return q(o.greaterThan(0), m, r);
|
|
2157
|
+
})(), Zs = We(() => {
|
|
2158
|
+
const h = O(Y, "uint"), e = O(Ze, "float"), t = O(st, "uint"), s = q(t.greaterThan(0), Pe.mul(e), e);
|
|
2159
|
+
return q(h.greaterThan(0), s, Pe);
|
|
2168
2160
|
})();
|
|
2169
|
-
function
|
|
2161
|
+
function X(h) {
|
|
2170
2162
|
return Array.isArray(h.material) ? h.material : [h.material];
|
|
2171
2163
|
}
|
|
2172
|
-
function
|
|
2173
|
-
|
|
2164
|
+
function Re(h) {
|
|
2165
|
+
X(h).forEach((t) => {
|
|
2174
2166
|
if (!t) return;
|
|
2175
2167
|
let s = ue.get(t);
|
|
2176
2168
|
s || (s = {
|
|
@@ -2179,53 +2171,53 @@ function Be(h) {
|
|
|
2179
2171
|
transparent: t.transparent,
|
|
2180
2172
|
depthWrite: t.depthWrite,
|
|
2181
2173
|
activeMeshes: /* @__PURE__ */ new Set()
|
|
2182
|
-
}, ue.set(t, s)), s.activeMeshes.add(h), t.transparent = !0, t.colorNode =
|
|
2174
|
+
}, ue.set(t, s)), s.activeMeshes.add(h), t.transparent = !0, t.colorNode = Js, t.opacityNode = Zs, t.needsUpdate = !0;
|
|
2183
2175
|
});
|
|
2184
2176
|
}
|
|
2185
|
-
function
|
|
2186
|
-
const e = h.userData[
|
|
2177
|
+
function Le(h) {
|
|
2178
|
+
const e = h.userData[Y], t = h.userData[pe];
|
|
2187
2179
|
if (e || t) return;
|
|
2188
|
-
|
|
2180
|
+
X(h).forEach((n) => {
|
|
2189
2181
|
if (!n) return;
|
|
2190
2182
|
const i = ue.get(n);
|
|
2191
2183
|
i && (i.activeMeshes.delete(h), !(i.activeMeshes.size > 0) && (n.colorNode = i.colorNode, n.opacityNode = i.opacityNode, n.transparent = i.transparent, n.depthWrite = i.depthWrite, n.needsUpdate = !0, ue.delete(n)));
|
|
2192
2184
|
});
|
|
2193
2185
|
}
|
|
2194
|
-
function
|
|
2195
|
-
const n = h, i = n.
|
|
2186
|
+
function en(h, e, t, s) {
|
|
2187
|
+
const n = h, i = n.setSemanticHighlight;
|
|
2196
2188
|
if (i)
|
|
2197
2189
|
return i.call(h, e, t, s), !0;
|
|
2198
|
-
const r = n.
|
|
2190
|
+
const r = n.setSemanticColor, o = n.setSemanticOpacity, a = n.getSemanticOpacity, c = n.getSemanticColor, l = n.hasSemanticColor;
|
|
2199
2191
|
return !r || !o ? !1 : (h.userData[de] === void 0 && (h.userData[de] = {
|
|
2200
2192
|
hasColor: l?.call(h) ?? !1,
|
|
2201
2193
|
color: c?.call(h, new M()).getHex() ?? 16777215,
|
|
2202
2194
|
opacity: a?.call(h) ?? 1
|
|
2203
2195
|
}), r.call(h, e), o.call(h, t), !0);
|
|
2204
2196
|
}
|
|
2205
|
-
function
|
|
2206
|
-
const e = h, t = e.
|
|
2197
|
+
function tn(h) {
|
|
2198
|
+
const e = h, t = e.clearSemanticHighlight;
|
|
2207
2199
|
if (t)
|
|
2208
2200
|
return t.call(h), !0;
|
|
2209
|
-
const s = e.
|
|
2201
|
+
const s = e.resetSemanticColor, n = e.setSemanticColor, i = e.setSemanticOpacity;
|
|
2210
2202
|
if (!s || !i) return !1;
|
|
2211
2203
|
const r = h.userData[de];
|
|
2212
2204
|
return r && (r.hasColor && n ? n.call(h, r.color) : s.call(h), i.call(h, r.opacity), Reflect.deleteProperty(h.userData, de)), !0;
|
|
2213
2205
|
}
|
|
2214
2206
|
class le {
|
|
2215
2207
|
static highlightColor(e, t = {}) {
|
|
2216
|
-
const s = Array.isArray(e) ? e : [e], { opacity: n = 0.5, color: i = 16711680, overwrite: r = !1, depthWrite: o } = t,
|
|
2217
|
-
for (const
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2208
|
+
const s = Array.isArray(e) ? e : [e], { opacity: n = 0.5, color: i = 16711680, overwrite: r = !1, depthWrite: o, multiplyOpacity: a = !1 } = t, c = new M(i).getHex();
|
|
2209
|
+
for (const l of s)
|
|
2210
|
+
en(l, i, n, r) || F.traverseMeshes(l, (d) => {
|
|
2211
|
+
d.userData[Y] = 1, d.userData[Ze] = n, d.userData[et] = c, d.userData[tt] = r ? 1 : 0, d.userData[st] = a ? 1 : 0, Re(d), o !== void 0 && X(d).forEach((u) => {
|
|
2212
|
+
u && (u.depthWrite = o);
|
|
2221
2213
|
});
|
|
2222
2214
|
});
|
|
2223
2215
|
}
|
|
2224
2216
|
static removeHighlightColor(e) {
|
|
2225
2217
|
const t = Array.isArray(e) ? e : [e];
|
|
2226
2218
|
for (const s of t)
|
|
2227
|
-
|
|
2228
|
-
n.userData[
|
|
2219
|
+
tn(s) || F.traverseMeshes(s, (n) => {
|
|
2220
|
+
n.userData[Y] = 0, Le(n);
|
|
2229
2221
|
});
|
|
2230
2222
|
}
|
|
2231
2223
|
static breatheColor(e, t = {}) {
|
|
@@ -2240,14 +2232,14 @@ class le {
|
|
|
2240
2232
|
n.color = new M(n.color).getHex();
|
|
2241
2233
|
for (const i of s)
|
|
2242
2234
|
F.traverseMeshes(i, (r) => {
|
|
2243
|
-
r.userData[pe] = 1, r.userData[
|
|
2235
|
+
r.userData[pe] = 1, r.userData[nt] = n.color, r.userData[it] = n.speed, r.userData[rt] = n.intensity, Re(r);
|
|
2244
2236
|
});
|
|
2245
2237
|
}
|
|
2246
2238
|
static removeBreatheColor(e) {
|
|
2247
2239
|
const t = Array.isArray(e) ? e : [e];
|
|
2248
2240
|
for (const s of t)
|
|
2249
2241
|
F.traverseMeshes(s, (n) => {
|
|
2250
|
-
n.userData[pe] = 0,
|
|
2242
|
+
n.userData[pe] = 0, Le(n);
|
|
2251
2243
|
});
|
|
2252
2244
|
}
|
|
2253
2245
|
/**
|
|
@@ -2257,7 +2249,7 @@ class le {
|
|
|
2257
2249
|
const s = Array.isArray(e) ? e : [e];
|
|
2258
2250
|
for (const n of s)
|
|
2259
2251
|
F.traverseMeshes(n, (i) => {
|
|
2260
|
-
|
|
2252
|
+
X(i).forEach((r) => {
|
|
2261
2253
|
if (!r) return;
|
|
2262
2254
|
const o = r;
|
|
2263
2255
|
o.wireframe = t, o.needsUpdate = !0;
|
|
@@ -2290,7 +2282,7 @@ class le {
|
|
|
2290
2282
|
const i = Array.isArray(e) ? e : [e], r = /* @__PURE__ */ new Map();
|
|
2291
2283
|
for (const o of i)
|
|
2292
2284
|
F.traverseMeshes(o, (a) => {
|
|
2293
|
-
|
|
2285
|
+
X(a).forEach((c) => {
|
|
2294
2286
|
if (!c || r.has(c)) return;
|
|
2295
2287
|
const l = c.opacity, d = c.transparent, p = s >= 1 ? l : s;
|
|
2296
2288
|
r.set(c, {
|
|
@@ -2316,8 +2308,8 @@ class le {
|
|
|
2316
2308
|
c = requestAnimationFrame(l);
|
|
2317
2309
|
else {
|
|
2318
2310
|
if (s >= 1)
|
|
2319
|
-
for (const { material: m, originalOpacity: w, originalTransparent:
|
|
2320
|
-
m.opacity = w, m.transparent =
|
|
2311
|
+
for (const { material: m, originalOpacity: w, originalTransparent: S } of r.values())
|
|
2312
|
+
m.opacity = w, m.transparent = S, m.needsUpdate = !0;
|
|
2321
2313
|
o();
|
|
2322
2314
|
}
|
|
2323
2315
|
};
|
|
@@ -2325,11 +2317,11 @@ class le {
|
|
|
2325
2317
|
});
|
|
2326
2318
|
}
|
|
2327
2319
|
}
|
|
2328
|
-
const
|
|
2320
|
+
const ze = (h) => {
|
|
2329
2321
|
const e = h.shiftRight(16).bitAnd(255).toFloat().div(255), t = h.shiftRight(8).bitAnd(255).toFloat().div(255), s = h.bitAnd(255).toFloat().div(255);
|
|
2330
|
-
return
|
|
2322
|
+
return es(e, t, s);
|
|
2331
2323
|
};
|
|
2332
|
-
class
|
|
2324
|
+
class sn extends ws {
|
|
2333
2325
|
viewer;
|
|
2334
2326
|
constructor(e, t) {
|
|
2335
2327
|
super(t), this.viewer = e;
|
|
@@ -2338,7 +2330,7 @@ class tn extends ys {
|
|
|
2338
2330
|
this.update(e) && this.viewer.render();
|
|
2339
2331
|
};
|
|
2340
2332
|
easingByMode(e) {
|
|
2341
|
-
const t =
|
|
2333
|
+
const t = nn[e];
|
|
2342
2334
|
return super.easing(t);
|
|
2343
2335
|
}
|
|
2344
2336
|
start(e, t) {
|
|
@@ -2348,9 +2340,9 @@ class tn extends ys {
|
|
|
2348
2340
|
return this.viewer.removeEventListener("afterControlsUpdate", this._update), super.stop();
|
|
2349
2341
|
}
|
|
2350
2342
|
}
|
|
2351
|
-
function
|
|
2343
|
+
function Dn(h, e, t, s = {}, n, i) {
|
|
2352
2344
|
return new Promise((r, o) => {
|
|
2353
|
-
const { duration: a = 1e3, delay: c = 0, repeat: l = !1, mode: d = "Linear.None", yoyo: p = !1 } = s, u = new
|
|
2345
|
+
const { duration: a = 1e3, delay: c = 0, repeat: l = !1, mode: d = "Linear.None", yoyo: p = !1 } = s, u = new sn(h, e).to(t, a).easingByMode(d).delay(c).onUpdate((m) => {
|
|
2354
2346
|
n?.(m, u);
|
|
2355
2347
|
}).onComplete(() => {
|
|
2356
2348
|
r();
|
|
@@ -2362,7 +2354,7 @@ function Nn(h, e, t, s = {}, n, i) {
|
|
|
2362
2354
|
typeof l == "number" ? u.repeat(l) : typeof l == "boolean" && l && u.repeat(1 / 0), p && u.repeatDelay(20), u.yoyo(p), u.start();
|
|
2363
2355
|
});
|
|
2364
2356
|
}
|
|
2365
|
-
const
|
|
2357
|
+
const nn = {
|
|
2366
2358
|
"Linear.None": f.Linear.None,
|
|
2367
2359
|
"Quadratic.In": f.Quadratic.In,
|
|
2368
2360
|
"Quadratic.Out": f.Quadratic.Out,
|
|
@@ -2395,7 +2387,7 @@ const sn = {
|
|
|
2395
2387
|
"Bounce.Out": f.Bounce.Out,
|
|
2396
2388
|
"Bounce.InOut": f.Bounce.InOut
|
|
2397
2389
|
};
|
|
2398
|
-
class
|
|
2390
|
+
class kn {
|
|
2399
2391
|
scene;
|
|
2400
2392
|
planes = /* @__PURE__ */ new Map();
|
|
2401
2393
|
helpers = /* @__PURE__ */ new Map();
|
|
@@ -2404,7 +2396,7 @@ class Dn {
|
|
|
2404
2396
|
*/
|
|
2405
2397
|
group;
|
|
2406
2398
|
constructor(e) {
|
|
2407
|
-
this.scene = e, this.group = new
|
|
2399
|
+
this.scene = e, this.group = new Wt(), this.group.name = "__clippingToolGroup", this.scene.add(this.group);
|
|
2408
2400
|
}
|
|
2409
2401
|
/**
|
|
2410
2402
|
* Move all current scene children (except the clipping group itself) into the ClippingGroup,
|
|
@@ -2445,7 +2437,7 @@ class Dn {
|
|
|
2445
2437
|
showHelper: i = !1,
|
|
2446
2438
|
helperSize: r = 5,
|
|
2447
2439
|
helperColor: o = 16711680
|
|
2448
|
-
} = t, a = new
|
|
2440
|
+
} = t, a = new Kt(new v(s.x, s.y, s.z), n);
|
|
2449
2441
|
return this.planes.set(e, a), this._syncPlanes(), i && this.showHelper(e, r, o), a;
|
|
2450
2442
|
}
|
|
2451
2443
|
/**
|
|
@@ -2471,7 +2463,7 @@ class Dn {
|
|
|
2471
2463
|
* Add a clipping box from an object's bounding box with optional padding.
|
|
2472
2464
|
*/
|
|
2473
2465
|
addBoxFromObject(e, t, s = 0, n = {}) {
|
|
2474
|
-
const i = new
|
|
2466
|
+
const i = new V().setFromObject(t);
|
|
2475
2467
|
return i.expandByScalar(s), this.addBox(e, i, n);
|
|
2476
2468
|
}
|
|
2477
2469
|
/**
|
|
@@ -2511,7 +2503,7 @@ class Dn {
|
|
|
2511
2503
|
this.hideHelper(e);
|
|
2512
2504
|
const n = this.planes.get(e);
|
|
2513
2505
|
if (!n) return;
|
|
2514
|
-
const i = new
|
|
2506
|
+
const i = new Qt(n, t, new M(s).getHex());
|
|
2515
2507
|
i.name = e, this.helpers.set(e, i), this.scene.add(i);
|
|
2516
2508
|
}
|
|
2517
2509
|
/**
|
|
@@ -2537,7 +2529,7 @@ class Dn {
|
|
|
2537
2529
|
this.detach(), this.removeAll(), this.scene.remove(this.group);
|
|
2538
2530
|
}
|
|
2539
2531
|
}
|
|
2540
|
-
class
|
|
2532
|
+
class jn {
|
|
2541
2533
|
scene;
|
|
2542
2534
|
measurements = /* @__PURE__ */ new Map();
|
|
2543
2535
|
_idCounter = 0;
|
|
@@ -2550,7 +2542,7 @@ class kn {
|
|
|
2550
2542
|
measureDistance(e, t, s = {}) {
|
|
2551
2543
|
const { lineColor: n = 16776960 } = s, i = new v(e.x, e.y, e.z), r = new v(t.x, t.y, t.z), o = i.distanceTo(r), a = `measure_dist_${this._idCounter++}`, c = new R();
|
|
2552
2544
|
c.name = a;
|
|
2553
|
-
const l = new
|
|
2545
|
+
const l = new Q().setFromPoints([i, r]), d = new ie({ color: n }), p = new re(l, d);
|
|
2554
2546
|
c.add(p), this.scene.add(c);
|
|
2555
2547
|
const u = {
|
|
2556
2548
|
id: a,
|
|
@@ -2571,7 +2563,7 @@ class kn {
|
|
|
2571
2563
|
throw new Error("MeasureTool.measureArea requires at least 3 points");
|
|
2572
2564
|
const n = e.map((u) => new v(u.x, u.y, u.z)), i = this._calculatePolygonArea(n), r = `measure_area_${this._idCounter++}`, o = new R();
|
|
2573
2565
|
o.name = r;
|
|
2574
|
-
const a = [...n, n[0]], c = new
|
|
2566
|
+
const a = [...n, n[0]], c = new Q().setFromPoints(a), l = new ie({ color: s }), d = new re(c, l);
|
|
2575
2567
|
o.add(d), this.scene.add(o);
|
|
2576
2568
|
const p = {
|
|
2577
2569
|
id: r,
|
|
@@ -2589,7 +2581,7 @@ class kn {
|
|
|
2589
2581
|
measureAngle(e, t, s, n = {}) {
|
|
2590
2582
|
const { lineColor: i = 16746496 } = n, r = new v(e.x, e.y, e.z), o = new v(t.x, t.y, t.z), a = new v(s.x, s.y, s.z), c = r.clone().sub(o).normalize(), l = a.clone().sub(o).normalize(), p = Math.acos(Math.max(-1, Math.min(1, c.dot(l)))) * 180 / Math.PI, u = `measure_angle_${this._idCounter++}`, m = new R();
|
|
2591
2583
|
m.name = u;
|
|
2592
|
-
const w = new
|
|
2584
|
+
const w = new Q().setFromPoints([r, o, a]), S = new ie({ color: i }), x = new re(w, S);
|
|
2593
2585
|
m.add(x), this.scene.add(m);
|
|
2594
2586
|
const y = {
|
|
2595
2587
|
id: u,
|
|
@@ -2650,7 +2642,7 @@ class kn {
|
|
|
2650
2642
|
this.removeAll();
|
|
2651
2643
|
}
|
|
2652
2644
|
}
|
|
2653
|
-
class
|
|
2645
|
+
class Un {
|
|
2654
2646
|
scene;
|
|
2655
2647
|
annotations = /* @__PURE__ */ new Map();
|
|
2656
2648
|
_idCounter = 0;
|
|
@@ -2691,11 +2683,11 @@ class jn {
|
|
|
2691
2683
|
let r = null;
|
|
2692
2684
|
const o = t.labelOffset || { x: 0, y: 2, z: 0 };
|
|
2693
2685
|
if (t.showLeaderLine !== !1) {
|
|
2694
|
-
const { lineColor: c = 16777215 } = t, l = new
|
|
2686
|
+
const { lineColor: c = 16777215 } = t, l = new Q().setFromPoints([
|
|
2695
2687
|
new v(0, 0, 0),
|
|
2696
2688
|
new v(o.x, o.y, o.z)
|
|
2697
|
-
]), d = new
|
|
2698
|
-
r = new
|
|
2689
|
+
]), d = new ie({ color: c });
|
|
2690
|
+
r = new re(l, d), s.add(r);
|
|
2699
2691
|
}
|
|
2700
2692
|
if (this._createCSSObject) {
|
|
2701
2693
|
const c = this._createCSSObject(i);
|
|
@@ -2803,47 +2795,47 @@ class jn {
|
|
|
2803
2795
|
this.removeAll();
|
|
2804
2796
|
}
|
|
2805
2797
|
}
|
|
2806
|
-
const
|
|
2807
|
-
window.__USPACE__ = { version:
|
|
2798
|
+
const rn = "0.0.28";
|
|
2799
|
+
window.__USPACE__ = { version: rn };
|
|
2808
2800
|
export {
|
|
2809
|
-
|
|
2810
|
-
|
|
2801
|
+
Un as AnnotationManager,
|
|
2802
|
+
Ye as BaseGroup,
|
|
2811
2803
|
G as BaseMesh,
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2804
|
+
Ys as BaseSprite,
|
|
2805
|
+
Gn as CSS2DObject,
|
|
2806
|
+
Wn as CSS3DObject,
|
|
2807
|
+
Kn as CSS3DSprite,
|
|
2808
|
+
As as CSSRenderer,
|
|
2809
|
+
Ms as CameraControls,
|
|
2810
|
+
Ln as CircleMesh,
|
|
2811
|
+
kn as ClippingTool,
|
|
2812
|
+
Je as ExtrudeMesh,
|
|
2813
|
+
vs as InteractionEvent,
|
|
2814
|
+
bs as InteractionManager,
|
|
2815
|
+
Pn as LightManager,
|
|
2824
2816
|
le as MaterialEffects,
|
|
2825
|
-
|
|
2817
|
+
jn as MeasureTool,
|
|
2826
2818
|
he as Model,
|
|
2827
2819
|
D as ModelLoaderManager,
|
|
2828
|
-
|
|
2820
|
+
xs as ObjectManager,
|
|
2829
2821
|
F as ObjectUtils,
|
|
2830
|
-
|
|
2822
|
+
Rn as PlaneMesh,
|
|
2831
2823
|
In as Poi,
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2824
|
+
Ss as RenderPipeline,
|
|
2825
|
+
_s as RoomEnvironment,
|
|
2826
|
+
qs as SBMLoader,
|
|
2827
|
+
Rs as SBMXLoader,
|
|
2828
|
+
En as SceneManager,
|
|
2829
|
+
_n as Selection,
|
|
2830
|
+
Ve as ShapeMesh,
|
|
2831
|
+
Vs as SphereMesh,
|
|
2832
|
+
zn as TSLEffects,
|
|
2833
|
+
An as TextureLoaderManager,
|
|
2834
|
+
Bn as Topology,
|
|
2843
2835
|
Ie as TubeMesh,
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2836
|
+
sn as Tween,
|
|
2837
|
+
On as Viewer,
|
|
2838
|
+
Nn as reinterpretType,
|
|
2839
|
+
Dn as tweenAnimation,
|
|
2840
|
+
rn as version
|
|
2849
2841
|
};
|