iflow-engine-base-3d 3.12.12 → 3.12.14
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { S as Ei, G as de, P as wt, O as Ee, M as z, V as d, e as Qe, T as Ln, C as Cs, W as Si, a as As, b as We, N as Pi, c as Es, d as it, f as G, Q as De, E as kn, R as fe, g as Ti, h as Bn, B as R, i as Ii, A as Ss, j as U, k as O, I as W, l as ti, m as ii, n as zn, o as Rn, L as Gt, p as Ps, q as Ts, r as Is, s as Vi, D as ae, t as Ui, u as _s, F as Ds, v as me, w as On, x as Fn, y as _i, z as Ls, H as Nn, J as ge, K as ks, U as xt, X as Bs, Y as zs, Z as Rs, _ as Os, $ as Ge, a0 as Wt, a1 as Di, a2 as Z, a3 as le, a4 as Fs, a5 as Ke, a6 as Kt, a7 as qt, a8 as Ne, a9 as Pt, aa as Ns, ab as Hn, ac as gi, ad as at, ae as Hs, af as rt, ag as Vs, ah as Us, ai as Vn, aj as jt, ak as bt, al as Yt, am as Gs, an as Gi, ao as lt, ap as Ct, aq as At, ar as Ws, as as Ks, at as Wi, au as qs, av as js, aw as Ys, ax as Xs, ay as Qs, az as $s, aA as Zs, aB as Js, aC as Ki, aD as eo, aE as to, aF as fi, aG as qe, aH as io, aI as no, aJ as so, aK as oo, aL as ro, aM as ao, aN as lo } from "./three-vendor-CKzI3UEa.js";
|
|
2
|
-
import { W as pe, C as co, L as mt, B as qi, g as Le, a as ho, E as uo, r as po } from "./sdk-runtime-
|
|
2
|
+
import { W as pe, C as co, L as mt, B as qi, g as Le, a as ho, E as uo, r as po } from "./sdk-runtime-BYjLeg5n.js";
|
|
3
3
|
import { r as ee, g as mo } from "./sdk-assets-DWhsnp7n.js";
|
|
4
4
|
import { a as Xt, J as yi, c as go, b as fo, P as ni, q as yo, k as Mo, n as ji, E as Yi, S as vo } from "./sdk-vendor-DYgn7sFs.js";
|
|
5
5
|
class wo {
|
|
@@ -11968,7 +11968,8 @@ class dl {
|
|
|
11968
11968
|
e.matrixAutoUpdate = !1, e.matrix.copy(t), e.matrixWorldNeedsUpdate = !0, e.updateMatrixWorld(!0);
|
|
11969
11969
|
}
|
|
11970
11970
|
}
|
|
11971
|
-
|
|
11971
|
+
const ul = "path-roaming-animation";
|
|
11972
|
+
class pl {
|
|
11972
11973
|
engine;
|
|
11973
11974
|
/** 点位列表 */
|
|
11974
11975
|
points = [];
|
|
@@ -12085,7 +12086,7 @@ class ul {
|
|
|
12085
12086
|
* @returns 是否开始播放
|
|
12086
12087
|
*/
|
|
12087
12088
|
play(e = {}) {
|
|
12088
|
-
return this.points.length < 2 ? (console.warn("PathRoaming: 至少需要2个点位才能播放"), !1) : (this.isPlaying && this.stop(), this.isPlaying = !0, this.playOptions = {
|
|
12089
|
+
return this.points.length < 2 ? (console.warn("PathRoaming: 至少需要2个点位才能播放"), !1) : (this.isPlaying && this.stop(), this.isPlaying = !0, this.setFrameRateExempt(!0), this.playOptions = {
|
|
12089
12090
|
duration: 3e3,
|
|
12090
12091
|
// 默认每个过渡3秒
|
|
12091
12092
|
loop: !1,
|
|
@@ -12100,7 +12101,7 @@ class ul {
|
|
|
12100
12101
|
* @returns 是否开始播放
|
|
12101
12102
|
*/
|
|
12102
12103
|
playRange(e, t, i = {}) {
|
|
12103
|
-
return e < 0 || t >= this.points.length || e >= t ? (console.warn("PathRoaming: 无效的索引范围"), !1) : this.points.length < 2 ? (console.warn("PathRoaming: 至少需要2个点位才能播放"), !1) : (this.isPlaying && this.stop(), this.isPlaying = !0, this.playOptions = {
|
|
12104
|
+
return e < 0 || t >= this.points.length || e >= t ? (console.warn("PathRoaming: 无效的索引范围"), !1) : this.points.length < 2 ? (console.warn("PathRoaming: 至少需要2个点位才能播放"), !1) : (this.isPlaying && this.stop(), this.isPlaying = !0, this.setFrameRateExempt(!0), this.playOptions = {
|
|
12104
12105
|
duration: 3e3,
|
|
12105
12106
|
loop: !1,
|
|
12106
12107
|
...i
|
|
@@ -12110,13 +12111,13 @@ class ul {
|
|
|
12110
12111
|
* 停止播放
|
|
12111
12112
|
*/
|
|
12112
12113
|
stop() {
|
|
12113
|
-
this.isPlaying = !1, this.animationFrameId !== null && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.stayTimerId !== null && (clearTimeout(this.stayTimerId), this.stayTimerId = null), this.engine.controlModule.active();
|
|
12114
|
+
this.isPlaying = !1, this.setFrameRateExempt(!1), this.animationFrameId !== null && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.stayTimerId !== null && (clearTimeout(this.stayTimerId), this.stayTimerId = null), this.engine.controlModule.active();
|
|
12114
12115
|
}
|
|
12115
12116
|
/**
|
|
12116
12117
|
* 暂停播放(保留当前位置)
|
|
12117
12118
|
*/
|
|
12118
12119
|
pause() {
|
|
12119
|
-
this.isPlaying && (this.isPlaying = !1, this.animationFrameId !== null && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.stayTimerId !== null && (clearTimeout(this.stayTimerId), this.stayTimerId = null));
|
|
12120
|
+
this.isPlaying && (this.isPlaying = !1, this.setFrameRateExempt(!1), this.animationFrameId !== null && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.stayTimerId !== null && (clearTimeout(this.stayTimerId), this.stayTimerId = null));
|
|
12120
12121
|
}
|
|
12121
12122
|
/**
|
|
12122
12123
|
* 获取是否正在播放
|
|
@@ -12201,6 +12202,10 @@ class ul {
|
|
|
12201
12202
|
easeInOutCubic(e) {
|
|
12202
12203
|
return e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2;
|
|
12203
12204
|
}
|
|
12205
|
+
/** 播放期间解除引擎空闲限帧,结束后仅释放本模块自己的豁免原因。 */
|
|
12206
|
+
setFrameRateExempt(e) {
|
|
12207
|
+
this.engine.setIdleFrameRateExempt?.(ul, e);
|
|
12208
|
+
}
|
|
12204
12209
|
/**
|
|
12205
12210
|
* 销毁管理器
|
|
12206
12211
|
*/
|
|
@@ -12208,7 +12213,7 @@ class ul {
|
|
|
12208
12213
|
this.stop(), this.points = [], this.playOptions = {};
|
|
12209
12214
|
}
|
|
12210
12215
|
}
|
|
12211
|
-
class
|
|
12216
|
+
class ml {
|
|
12212
12217
|
engine;
|
|
12213
12218
|
miniMapCamera = null;
|
|
12214
12219
|
miniMapRenderer = null;
|
|
@@ -12669,7 +12674,7 @@ class pl {
|
|
|
12669
12674
|
this.miniMapContainer && (this.miniMapContainer.removeEventListener("wheel", this.onWheel), this.miniMapContainer.removeEventListener("mousedown", this.onMouseDown), this.miniMapContainer.removeEventListener("mousemove", this.onMouseMove), this.miniMapContainer.removeEventListener("mouseup", this.onMouseUp), this.miniMapContainer.removeEventListener("pointerdown", this.onMouseDown), this.miniMapContainer.removeEventListener("pointermove", this.onMouseMove), this.miniMapContainer.removeEventListener("pointerup", this.onMouseUp), this.miniMapContainer.removeEventListener("pointercancel", this.onMouseUp), this.miniMapContainer.removeEventListener("mouseenter", this.onMouseEnter), this.miniMapContainer.removeEventListener("mouseleave", this.onMouseLeave)), window.removeEventListener("mousemove", this.onMouseMove), window.removeEventListener("mouseup", this.onMouseUp), window.removeEventListener("pointermove", this.onMouseMove), window.removeEventListener("pointerup", this.onMouseUp), window.removeEventListener("pointercancel", this.onMouseUp), window.removeEventListener("resize", this.onWindowResize), this.sizeToggleButton?.removeEventListener("click", this.onSizeToggleClick), this.resizeHandle?.removeEventListener("mousedown", this.onResizeHandleMouseDown), this.resizeHandle?.removeEventListener("pointerdown", this.onResizeHandleMouseDown), this.modelSelect?.removeEventListener("change", this.onModelChange), this.levelSelect?.removeEventListener("change", this.onLevelChange), this.engine.events?.off?.(this.loadingCompletedEventName, this.onLoadingCompleted), this.miniMapRenderer && (this.miniMapRenderer.dispose(), this.miniMapRenderer = null), this.miniMapContainer && (this.miniMapContainer.remove(), this.miniMapContainer = null), this.miniMapCamera = null, this.overlayCtx = null, this.overlayCanvas = null, this.levelToolbar = null, this.sizeToggleButton = null, this.resizeHandle = null, this.modelSelect = null, this.levelSelect = null, this.levelModels = [], this.levelDataSignature = "", this.selectedModelUrl = null;
|
|
12670
12675
|
}
|
|
12671
12676
|
}
|
|
12672
|
-
class
|
|
12677
|
+
class gl {
|
|
12673
12678
|
engine;
|
|
12674
12679
|
constructor(e) {
|
|
12675
12680
|
this.engine = e;
|
|
@@ -12966,7 +12971,7 @@ class ml {
|
|
|
12966
12971
|
return Math.abs(s.dot(e)) < 0.999 ? s : new d(1, 0, 0);
|
|
12967
12972
|
}
|
|
12968
12973
|
}
|
|
12969
|
-
class
|
|
12974
|
+
class fl {
|
|
12970
12975
|
engine;
|
|
12971
12976
|
constructor(e) {
|
|
12972
12977
|
}
|
|
@@ -12974,7 +12979,7 @@ class gl {
|
|
|
12974
12979
|
}
|
|
12975
12980
|
}
|
|
12976
12981
|
const An = "bim-engine:link-element-2d3d-state", En = "link-element-2d3d";
|
|
12977
|
-
class
|
|
12982
|
+
class yl {
|
|
12978
12983
|
engine;
|
|
12979
12984
|
constructor(e) {
|
|
12980
12985
|
this.engine = e, this.active();
|
|
@@ -13008,7 +13013,7 @@ class fl {
|
|
|
13008
13013
|
this.engine?.setIdleFrameRateExempt?.(En, t);
|
|
13009
13014
|
};
|
|
13010
13015
|
}
|
|
13011
|
-
class
|
|
13016
|
+
class Ml {
|
|
13012
13017
|
engine;
|
|
13013
13018
|
constructor(e) {
|
|
13014
13019
|
this.engine = e, this.active();
|
|
@@ -13062,7 +13067,7 @@ const st = {
|
|
|
13062
13067
|
EncodingComplete: "encoding-complete",
|
|
13063
13068
|
EncodingError: "encoding-error"
|
|
13064
13069
|
};
|
|
13065
|
-
class
|
|
13070
|
+
class vl {
|
|
13066
13071
|
engine;
|
|
13067
13072
|
apiKey;
|
|
13068
13073
|
baseURL = "https://api.deepseek.com";
|
|
@@ -13250,12 +13255,12 @@ class Ml {
|
|
|
13250
13255
|
}
|
|
13251
13256
|
}
|
|
13252
13257
|
}
|
|
13253
|
-
const di = 1 / 0.3048,
|
|
13258
|
+
const di = 1 / 0.3048, wl = 1, xl = 1.8, Sn = /* @__PURE__ */ new Set([
|
|
13254
13259
|
"dynamic-elevation-bar-area",
|
|
13255
13260
|
"dynamic-elevation-guest-area",
|
|
13256
13261
|
"dynamic-elevation-door-head-area"
|
|
13257
|
-
]),
|
|
13258
|
-
class
|
|
13262
|
+
]), bl = ["台面"], Cl = ["咖啡机"], Al = ["门店编号"], El = ["发光logo", "发光Logo"];
|
|
13263
|
+
class Sl {
|
|
13259
13264
|
engine;
|
|
13260
13265
|
constructor(e) {
|
|
13261
13266
|
this.engine = e;
|
|
@@ -13289,7 +13294,7 @@ class El {
|
|
|
13289
13294
|
generate(e) {
|
|
13290
13295
|
if (!(e?.nodesMap instanceof Map) || e.nodesMap.size === 0)
|
|
13291
13296
|
return [];
|
|
13292
|
-
const t = this.collectMergedWorldBoxByKeywords(e,
|
|
13297
|
+
const t = this.collectMergedWorldBoxByKeywords(e, bl), i = this.collectMergedWorldBoxByKeywords(e, Cl), n = this.collectMergedWorldBoxByKeywords(e, Al), s = this.collectWorldBoxesByKeywords(e, El), o = [];
|
|
13293
13298
|
if (t && i && n) {
|
|
13294
13299
|
const r = this.createBarAreaView(t, i, n), a = this.createGuestAreaView(t, i, n);
|
|
13295
13300
|
r && o.push(r), a && o.push(a);
|
|
@@ -13380,8 +13385,8 @@ class El {
|
|
|
13380
13385
|
* 相机始终在观察面外侧偏移固定距离,且高度统一锁定为 1.8 米。
|
|
13381
13386
|
*/
|
|
13382
13387
|
createCameraPosition(e, t) {
|
|
13383
|
-
const i = e.clone().add(t.clone().multiplyScalar(
|
|
13384
|
-
return i.y =
|
|
13388
|
+
const i = e.clone().add(t.clone().multiplyScalar(wl));
|
|
13389
|
+
return i.y = xl, i;
|
|
13385
13390
|
}
|
|
13386
13391
|
/**
|
|
13387
13392
|
* 将 three.js 空间中的观察参数转换成运行时立面视图结构。
|
|
@@ -13561,7 +13566,7 @@ const zt = {
|
|
|
13561
13566
|
floorPlan: "楼层平面",
|
|
13562
13567
|
elevation: "立面视图",
|
|
13563
13568
|
section: "剖面视图"
|
|
13564
|
-
},
|
|
13569
|
+
}, Pl = {
|
|
13565
13570
|
ceilingPlan: [zt.ceilingPlan, "天花"],
|
|
13566
13571
|
floorPlan: [zt.floorPlan, "楼层"],
|
|
13567
13572
|
elevation: [zt.elevation, "立面"],
|
|
@@ -13573,7 +13578,7 @@ class Hi {
|
|
|
13573
13578
|
dynamicElevationViewGenerator;
|
|
13574
13579
|
/** 管理模型原生视图与运行时动态视图的统一入口。 */
|
|
13575
13580
|
constructor(e) {
|
|
13576
|
-
this.engine = e, this.dynamicElevationViewGenerator = new
|
|
13581
|
+
this.engine = e, this.dynamicElevationViewGenerator = new Sl(e);
|
|
13577
13582
|
}
|
|
13578
13583
|
/** 汇总所有已加载模型的视图树数据。 */
|
|
13579
13584
|
getAllViewTreeData() {
|
|
@@ -13725,7 +13730,7 @@ class Hi {
|
|
|
13725
13730
|
const t = String(e ?? "").replace(/\s+/g, "");
|
|
13726
13731
|
if (!t)
|
|
13727
13732
|
return "unknown";
|
|
13728
|
-
const i = Object.entries(
|
|
13733
|
+
const i = Object.entries(Pl);
|
|
13729
13734
|
for (const [n, s] of i)
|
|
13730
13735
|
if (s.some((o) => t.includes(o)))
|
|
13731
13736
|
return n;
|
|
@@ -13762,7 +13767,7 @@ class Hi {
|
|
|
13762
13767
|
!t || t.isEmpty?.() || this.engine.viewCube?.zoomToModel?.(t, e);
|
|
13763
13768
|
}
|
|
13764
13769
|
}
|
|
13765
|
-
class
|
|
13770
|
+
class Tl {
|
|
13766
13771
|
constructor(e) {
|
|
13767
13772
|
}
|
|
13768
13773
|
/** 3D 独立包不支持加载 2D 视图。 */
|
|
@@ -13773,16 +13778,16 @@ class Pl {
|
|
|
13773
13778
|
removeSectionPlane() {
|
|
13774
13779
|
}
|
|
13775
13780
|
}
|
|
13776
|
-
function
|
|
13781
|
+
function Il(l, e, t = "bim-snapshot.png") {
|
|
13777
13782
|
const i = l?.renderer, n = i?.domElement;
|
|
13778
13783
|
if (!i || !n || !e)
|
|
13779
13784
|
return null;
|
|
13780
13785
|
const s = n.width || n.clientWidth, o = n.height || n.clientHeight;
|
|
13781
13786
|
if (s <= 0 || o <= 0)
|
|
13782
13787
|
return null;
|
|
13783
|
-
let r =
|
|
13784
|
-
if (!
|
|
13785
|
-
const p =
|
|
13788
|
+
let r = _l(n, s, o);
|
|
13789
|
+
if (!Dl(r)) {
|
|
13790
|
+
const p = Ll(l, s, o);
|
|
13786
13791
|
p && (r = p);
|
|
13787
13792
|
}
|
|
13788
13793
|
const a = document.createElement("canvas");
|
|
@@ -13794,13 +13799,13 @@ function Tl(l, e, t = "bim-snapshot.png") {
|
|
|
13794
13799
|
const h = a.toDataURL("image/png"), u = document.createElement("a");
|
|
13795
13800
|
return u.href = h, u.download = t.toLowerCase().endsWith(".png") ? t : `${t}.png`, u.click(), h;
|
|
13796
13801
|
}
|
|
13797
|
-
function
|
|
13802
|
+
function _l(l, e, t) {
|
|
13798
13803
|
const i = document.createElement("canvas");
|
|
13799
13804
|
i.width = e, i.height = t;
|
|
13800
13805
|
const n = i.getContext("2d");
|
|
13801
13806
|
return n && n.drawImage(l, 0, 0, e, t), i;
|
|
13802
13807
|
}
|
|
13803
|
-
function
|
|
13808
|
+
function Dl(l) {
|
|
13804
13809
|
const e = l.getContext("2d");
|
|
13805
13810
|
if (!e || l.width <= 0 || l.height <= 0)
|
|
13806
13811
|
return !1;
|
|
@@ -13813,7 +13818,7 @@ function _l(l) {
|
|
|
13813
13818
|
}
|
|
13814
13819
|
return !1;
|
|
13815
13820
|
}
|
|
13816
|
-
function
|
|
13821
|
+
function Ll(l, e, t) {
|
|
13817
13822
|
const i = l?.renderer, n = l?.scene, s = l?.camera;
|
|
13818
13823
|
if (!i || !n || !s)
|
|
13819
13824
|
return null;
|
|
@@ -13827,14 +13832,14 @@ function Dl(l, e, t) {
|
|
|
13827
13832
|
try {
|
|
13828
13833
|
i.xr && (i.xr.enabled = !1), i.autoClear = !0, i.setRenderTarget(o), i.clear(!0, !0, !0), i.render(n, s);
|
|
13829
13834
|
const h = new Uint8Array(e * t * 4);
|
|
13830
|
-
return i.readRenderTargetPixels(o, 0, 0, e, t, h),
|
|
13835
|
+
return i.readRenderTargetPixels(o, 0, 0, e, t, h), kl(h, e, t);
|
|
13831
13836
|
} catch {
|
|
13832
13837
|
return null;
|
|
13833
13838
|
} finally {
|
|
13834
13839
|
i.setRenderTarget(r), i.autoClear = a, i.xr && (i.xr.enabled = c), o.dispose();
|
|
13835
13840
|
}
|
|
13836
13841
|
}
|
|
13837
|
-
function
|
|
13842
|
+
function kl(l, e, t) {
|
|
13838
13843
|
const i = document.createElement("canvas");
|
|
13839
13844
|
i.width = e, i.height = t;
|
|
13840
13845
|
const n = i.getContext("2d");
|
|
@@ -13848,7 +13853,7 @@ function Ll(l, e, t) {
|
|
|
13848
13853
|
}
|
|
13849
13854
|
return n.putImageData(s, 0, 0), i;
|
|
13850
13855
|
}
|
|
13851
|
-
const
|
|
13856
|
+
const Bl = [
|
|
13852
13857
|
"#ffffff",
|
|
13853
13858
|
"#000000",
|
|
13854
13859
|
"#ff4d4f",
|
|
@@ -13859,7 +13864,7 @@ const kl = [
|
|
|
13859
13864
|
"#1677ff",
|
|
13860
13865
|
"#722ed1",
|
|
13861
13866
|
"#eb2f96"
|
|
13862
|
-
],
|
|
13867
|
+
], zl = {
|
|
13863
13868
|
none: ee("/assets/icon/选择.svg", import.meta.url),
|
|
13864
13869
|
line: ee("/assets/icon/线.svg", import.meta.url),
|
|
13865
13870
|
arrow: ee("/assets/icon/箭头.svg", import.meta.url),
|
|
@@ -13867,7 +13872,7 @@ const kl = [
|
|
|
13867
13872
|
circle: ee("/assets/icon/圆形.svg", import.meta.url),
|
|
13868
13873
|
text: ee("/assets/icon/文字.svg", import.meta.url),
|
|
13869
13874
|
cloudline: ee("/assets/icon/云线.svg", import.meta.url)
|
|
13870
|
-
},
|
|
13875
|
+
}, Rl = ee("/assets/icon/测距.svg", import.meta.url), Ol = ee("/assets/icon/截图.svg", import.meta.url), Fl = ee("/assets/icon/线宽.svg", import.meta.url), Nl = ee("/assets/icon/字号.svg", import.meta.url), Hl = `data:image/svg+xml;utf8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2l4 8-4 12-4-12 4-8z" fill="#1677ff"/><circle cx="12" cy="10" r="2.5" fill="#fff"/></svg>')}`, Vl = [
|
|
13871
13876
|
{ type: "distance", label: "距离" },
|
|
13872
13877
|
{ type: "clearDistance", label: "净距" },
|
|
13873
13878
|
{ type: "clearHeight", label: "净高" },
|
|
@@ -13876,7 +13881,7 @@ const kl = [
|
|
|
13876
13881
|
{ type: "angle", label: "角度" },
|
|
13877
13882
|
{ type: "area", label: "面积" },
|
|
13878
13883
|
{ type: "slope", label: "坡度" }
|
|
13879
|
-
],
|
|
13884
|
+
], Ul = {
|
|
13880
13885
|
distance: ee("/assets/icon/距离.svg", import.meta.url),
|
|
13881
13886
|
clearDistance: ee("/assets/icon/净距.svg", import.meta.url),
|
|
13882
13887
|
clearHeight: ee("/assets/icon/净高.svg", import.meta.url),
|
|
@@ -13886,7 +13891,7 @@ const kl = [
|
|
|
13886
13891
|
area: ee("/assets/icon/面积.svg", import.meta.url),
|
|
13887
13892
|
slope: ee("/assets/icon/坡度.svg", import.meta.url)
|
|
13888
13893
|
};
|
|
13889
|
-
class
|
|
13894
|
+
class Gl {
|
|
13890
13895
|
constructor(e, t) {
|
|
13891
13896
|
this.handlers = e, this.root = document.createElement("div"), this.root.style.position = "absolute", this.root.style.top = "8px", this.root.style.left = "50%", this.root.style.transform = "translateX(-50%)", this.root.style.display = "none", this.root.style.padding = "6px", this.root.style.background = "#ffffff", this.root.style.border = "1px solid #d9d9d9", this.root.style.borderRadius = "8px", this.root.style.pointerEvents = "auto", this.root.style.userSelect = "none", this.root.style.boxShadow = "0 4px 14px rgba(0, 0, 0, 0.12)", this.root.style.zIndex = "1300", this.root.style.overflow = "visible", this.editPanel = document.createElement("div"), this.editPanel.style.display = "flex", this.editPanel.style.flexDirection = "column", this.editPanel.style.gap = "6px", this.viewPanel = document.createElement("div"), this.viewPanel.style.display = "none", this.viewPanel.style.alignItems = "center", this.viewPanel.style.gap = "6px";
|
|
13892
13897
|
const i = document.createElement("div");
|
|
@@ -13899,7 +13904,7 @@ class Ul {
|
|
|
13899
13904
|
{ type: "text", label: "文字" },
|
|
13900
13905
|
{ type: "cloudline", label: "云线" }
|
|
13901
13906
|
].forEach((f) => {
|
|
13902
|
-
const w = this.createIconButton(f.label,
|
|
13907
|
+
const w = this.createIconButton(f.label, zl[f.type]);
|
|
13903
13908
|
w.onclick = () => this.handlers.onDrawTypeChange(f.type), this.drawButtons[f.type] = w, i.appendChild(w);
|
|
13904
13909
|
});
|
|
13905
13910
|
const s = document.createElement("div");
|
|
@@ -13909,23 +13914,23 @@ class Ul {
|
|
|
13909
13914
|
this.updateColorControl(this.colorInput.value), this.handlers.onColorChange(this.colorInput.value), this.setColorPresetVisible(!1);
|
|
13910
13915
|
}, s.appendChild(this.colorInput), this.colorPresetPanel = document.createElement("div"), this.colorPresetPanel.style.position = "absolute", this.colorPresetPanel.style.top = "30px", this.colorPresetPanel.style.left = "0", this.colorPresetPanel.style.display = "none", this.colorPresetPanel.style.padding = "8px", this.colorPresetPanel.style.background = "#ffffff", this.colorPresetPanel.style.border = "1px solid #d9d9d9", this.colorPresetPanel.style.borderRadius = "6px", this.colorPresetPanel.style.boxShadow = "0 6px 18px rgba(0, 0, 0, 0.14)", this.colorPresetPanel.style.zIndex = "20", this.colorPresetPanel.style.width = "152px";
|
|
13911
13916
|
const r = document.createElement("div");
|
|
13912
|
-
r.style.display = "grid", r.style.gridTemplateColumns = "repeat(5, 1fr)", r.style.gap = "6px",
|
|
13917
|
+
r.style.display = "grid", r.style.gridTemplateColumns = "repeat(5, 1fr)", r.style.gap = "6px", Bl.forEach((f) => {
|
|
13913
13918
|
const w = document.createElement("button");
|
|
13914
13919
|
w.type = "button", w.title = f, w.style.width = "22px", w.style.height = "22px", w.style.padding = "0", w.style.border = "1px solid #d9d9d9", w.style.borderRadius = "4px", w.style.background = f, w.style.cursor = "pointer", w.onclick = () => {
|
|
13915
13920
|
this.updateColorControl(f), this.handlers.onColorChange(f), this.setColorPresetVisible(!1);
|
|
13916
13921
|
}, r.appendChild(w);
|
|
13917
13922
|
}), this.colorPresetPanel.appendChild(r);
|
|
13918
13923
|
const a = document.createElement("button");
|
|
13919
|
-
a.type = "button", a.textContent = "自定义", a.style.marginTop = "8px", a.style.width = "100%", a.style.height = "26px", a.style.border = "1px solid #d9d9d9", a.style.borderRadius = "4px", a.style.background = "#ffffff", a.style.color = "#333333", a.style.cursor = "pointer", a.onclick = () => this.openNativeColorPicker(), this.colorPresetPanel.appendChild(a), s.appendChild(this.colorPresetPanel), this.updateColorControl(t.stroke), i.appendChild(this.createField("", s)), this.strokeWidthInput = document.createElement("input"), this.strokeWidthInput.type = "number", this.strokeWidthInput.min = "1", this.strokeWidthInput.max = "20", this.strokeWidthInput.step = "1", this.strokeWidthInput.value = String(t.strokeWidth), this.strokeWidthInput.style.width = "46px", this.strokeWidthInput.oninput = () => this.handlers.onStrokeWidthChange(this.strokeWidthInput.value), i.appendChild(this.createField("", this.strokeWidthInput,
|
|
13920
|
-
const c = this.createIconButton("截图",
|
|
13924
|
+
a.type = "button", a.textContent = "自定义", a.style.marginTop = "8px", a.style.width = "100%", a.style.height = "26px", a.style.border = "1px solid #d9d9d9", a.style.borderRadius = "4px", a.style.background = "#ffffff", a.style.color = "#333333", a.style.cursor = "pointer", a.onclick = () => this.openNativeColorPicker(), this.colorPresetPanel.appendChild(a), s.appendChild(this.colorPresetPanel), this.updateColorControl(t.stroke), i.appendChild(this.createField("", s)), this.strokeWidthInput = document.createElement("input"), this.strokeWidthInput.type = "number", this.strokeWidthInput.min = "1", this.strokeWidthInput.max = "20", this.strokeWidthInput.step = "1", this.strokeWidthInput.value = String(t.strokeWidth), this.strokeWidthInput.style.width = "46px", this.strokeWidthInput.oninput = () => this.handlers.onStrokeWidthChange(this.strokeWidthInput.value), i.appendChild(this.createField("", this.strokeWidthInput, Fl, "线宽")), this.fontSizeInput = document.createElement("input"), this.fontSizeInput.type = "number", this.fontSizeInput.min = "10", this.fontSizeInput.max = "96", this.fontSizeInput.step = "1", this.fontSizeInput.value = String(t.fontSize), this.fontSizeInput.style.width = "46px", this.fontSizeInput.oninput = () => this.handlers.onFontSizeChange(this.fontSizeInput.value), i.appendChild(this.createField("", this.fontSizeInput, Nl, "字号")), this.distanceButton = this.createIconButton("测量", Rl), this.distanceButton.onclick = () => this.handlers.onMeasureToggle(), i.appendChild(this.distanceButton);
|
|
13925
|
+
const c = this.createIconButton("截图", Ol);
|
|
13921
13926
|
c.onclick = () => this.handlers.onScreenshot(), i.appendChild(c);
|
|
13922
|
-
const h = this.createIconButton("捕捉点",
|
|
13927
|
+
const h = this.createIconButton("捕捉点", Hl);
|
|
13923
13928
|
h.onclick = () => this.handlers.onPickPoint(), i.appendChild(h);
|
|
13924
13929
|
const u = this.createTextButton("×", "取消");
|
|
13925
13930
|
u.onclick = () => this.handlers.onCancel(), u.style.background = "#ff4d4f", u.style.borderColor = "#ff4d4f", u.style.color = "#ffffff", i.appendChild(u);
|
|
13926
13931
|
const p = this.createTextButton("✔", "确定");
|
|
13927
|
-
p.onclick = () => this.handlers.onConfirm(), p.style.background = "#52c41a", p.style.borderColor = "#52c41a", p.style.color = "#ffffff", i.appendChild(p), this.measureSubPanel = document.createElement("div"), this.measureSubPanel.style.display = "none", this.measureSubPanel.style.alignItems = "center", this.measureSubPanel.style.gap = "6px", this.measureSubPanel.style.flexWrap = "wrap", this.measureSubPanel.style.paddingTop = "2px",
|
|
13928
|
-
const w = this.createSmallIconButton(f.label,
|
|
13932
|
+
p.onclick = () => this.handlers.onConfirm(), p.style.background = "#52c41a", p.style.borderColor = "#52c41a", p.style.color = "#ffffff", i.appendChild(p), this.measureSubPanel = document.createElement("div"), this.measureSubPanel.style.display = "none", this.measureSubPanel.style.alignItems = "center", this.measureSubPanel.style.gap = "6px", this.measureSubPanel.style.flexWrap = "wrap", this.measureSubPanel.style.paddingTop = "2px", Vl.forEach((f) => {
|
|
13933
|
+
const w = this.createSmallIconButton(f.label, Ul[f.type]);
|
|
13929
13934
|
w.onclick = () => this.handlers.onMeasureTypeChange(f.type), this.measureTypeButtons[f.type] = w, this.measureSubPanel.appendChild(w);
|
|
13930
13935
|
}), this.editPanel.appendChild(i), this.editPanel.appendChild(this.measureSubPanel);
|
|
13931
13936
|
const g = this.createTextButton("关闭", "关闭");
|
|
@@ -14050,7 +14055,7 @@ class Ul {
|
|
|
14050
14055
|
return i.type = "button", i.title = t, i.textContent = e, i.style.width = "28px", i.style.height = "28px", i.style.padding = "0 10px", i.style.border = "1px solid #d9d9d9", i.style.borderRadius = "4px", i.style.background = "#ffffff", i.style.color = "#333333", i.style.fontSize = "13px", i.style.lineHeight = "1", i.style.cursor = "pointer", i;
|
|
14051
14056
|
}
|
|
14052
14057
|
}
|
|
14053
|
-
class
|
|
14058
|
+
class Wl {
|
|
14054
14059
|
engine;
|
|
14055
14060
|
wrapper;
|
|
14056
14061
|
canvasEl;
|
|
@@ -14089,7 +14094,7 @@ class Gl {
|
|
|
14089
14094
|
const t = this.engine.container;
|
|
14090
14095
|
if (!t)
|
|
14091
14096
|
throw new Error("FabricDraw: engine container not found.");
|
|
14092
|
-
this.wrapper = document.createElement("div"), this.wrapper.className = "fabric-draw-layer", this.wrapper.style.position = "absolute", this.wrapper.style.left = "0", this.wrapper.style.top = "0", this.wrapper.style.right = "0", this.wrapper.style.bottom = "0", this.wrapper.style.pointerEvents = "none", this.canvasEl = document.createElement("canvas"), this.canvasEl.style.width = "100%", this.canvasEl.style.height = "100%", this.wrapper.appendChild(this.canvasEl), this.toolbar = new
|
|
14097
|
+
this.wrapper = document.createElement("div"), this.wrapper.className = "fabric-draw-layer", this.wrapper.style.position = "absolute", this.wrapper.style.left = "0", this.wrapper.style.top = "0", this.wrapper.style.right = "0", this.wrapper.style.bottom = "0", this.wrapper.style.pointerEvents = "none", this.canvasEl = document.createElement("canvas"), this.canvasEl.style.width = "100%", this.canvasEl.style.height = "100%", this.wrapper.appendChild(this.canvasEl), this.toolbar = new Gl({
|
|
14093
14098
|
onDrawTypeChange: (n) => this.setDrawType(n),
|
|
14094
14099
|
onMeasureToggle: () => this.toggleMeasurePanel(),
|
|
14095
14100
|
onMeasureTypeChange: (n) => this.activateDistanceMeasure(n),
|
|
@@ -14238,7 +14243,7 @@ class Gl {
|
|
|
14238
14243
|
* 鎴浘淇濆瓨锛堟ā鍨?Fabric鎵规敞鍚堟垚锛夈€? */
|
|
14239
14244
|
saveScreenshot(e = "bim-snapshot.png") {
|
|
14240
14245
|
const t = this.canvas.lowerCanvasEl;
|
|
14241
|
-
return t ?
|
|
14246
|
+
return t ? Il(this.engine, t, e) : null;
|
|
14242
14247
|
}
|
|
14243
14248
|
/**
|
|
14244
14249
|
* 鍚屾鐢诲竷灏哄銆? */
|
|
@@ -14722,7 +14727,7 @@ class Gl {
|
|
|
14722
14727
|
return JSON.parse(JSON.stringify(e));
|
|
14723
14728
|
}
|
|
14724
14729
|
}
|
|
14725
|
-
class
|
|
14730
|
+
class Kl {
|
|
14726
14731
|
engine;
|
|
14727
14732
|
capturePoint = null;
|
|
14728
14733
|
labelPrefix = "drawing-pin-label-";
|
|
@@ -15172,7 +15177,7 @@ class Wl {
|
|
|
15172
15177
|
return e;
|
|
15173
15178
|
}
|
|
15174
15179
|
}
|
|
15175
|
-
const ui = "bim-engine:model-link-3d",
|
|
15180
|
+
const ui = "bim-engine:model-link-3d", ql = "default-model-link-3d-group", Pn = "model-link-3d", Tn = {
|
|
15176
15181
|
enabled: !1,
|
|
15177
15182
|
highlight: !0,
|
|
15178
15183
|
visibility: !0,
|
|
@@ -15181,7 +15186,7 @@ const ui = "bim-engine:model-link-3d", Kl = "default-model-link-3d-group", Pn =
|
|
|
15181
15186
|
cameraMode: "onStop",
|
|
15182
15187
|
cameraThrottleMs: 50
|
|
15183
15188
|
};
|
|
15184
|
-
class
|
|
15189
|
+
class jl {
|
|
15185
15190
|
viewerGuid;
|
|
15186
15191
|
engine;
|
|
15187
15192
|
options;
|
|
@@ -15245,7 +15250,7 @@ class ql {
|
|
|
15245
15250
|
return {
|
|
15246
15251
|
...Tn,
|
|
15247
15252
|
...e,
|
|
15248
|
-
groupId: e.groupId ?? this.engine?.options?.linkGroupId ??
|
|
15253
|
+
groupId: e.groupId ?? this.engine?.options?.linkGroupId ?? ql,
|
|
15249
15254
|
modelId: e.modelId ?? this.engine?.options?.modelLinkId
|
|
15250
15255
|
};
|
|
15251
15256
|
}
|
|
@@ -15485,7 +15490,7 @@ class ql {
|
|
|
15485
15490
|
}).filter((n) => n.ids.length > 0);
|
|
15486
15491
|
}
|
|
15487
15492
|
}
|
|
15488
|
-
class
|
|
15493
|
+
class Yl {
|
|
15489
15494
|
engine;
|
|
15490
15495
|
manager;
|
|
15491
15496
|
worldToScreen;
|
|
@@ -15553,7 +15558,7 @@ class jl {
|
|
|
15553
15558
|
return e = this.engine.clipping?.filterIntersectionsByClipping?.(e) ?? e, e.filter((i) => i?.point instanceof d).sort((i, n) => i.distance - n.distance)[0] ?? null;
|
|
15554
15559
|
}
|
|
15555
15560
|
}
|
|
15556
|
-
class
|
|
15561
|
+
class Xl {
|
|
15557
15562
|
constructor(e) {
|
|
15558
15563
|
this.engine = e;
|
|
15559
15564
|
}
|
|
@@ -15597,7 +15602,7 @@ class Yl {
|
|
|
15597
15602
|
t.scale.set(a * c, a, 1);
|
|
15598
15603
|
}
|
|
15599
15604
|
}
|
|
15600
|
-
class
|
|
15605
|
+
class Ql {
|
|
15601
15606
|
engine;
|
|
15602
15607
|
rootGroup;
|
|
15603
15608
|
records;
|
|
@@ -15779,7 +15784,7 @@ const Xe = {
|
|
|
15779
15784
|
showBottom: !1,
|
|
15780
15785
|
edgeColor: "#d9ffff"
|
|
15781
15786
|
}
|
|
15782
|
-
},
|
|
15787
|
+
}, $l = {
|
|
15783
15788
|
background: "rgba(10, 18, 28, 0.92)",
|
|
15784
15789
|
color: "#ffffff",
|
|
15785
15790
|
border: "1px solid rgba(127, 252, 255, 0.72)",
|
|
@@ -15788,7 +15793,7 @@ const Xe = {
|
|
|
15788
15793
|
boxShadow: "0 10px 30px rgba(0, 0, 0, 0.32)",
|
|
15789
15794
|
minWidth: "120px",
|
|
15790
15795
|
pointerEvents: "auto"
|
|
15791
|
-
},
|
|
15796
|
+
}, Zl = "bim-engine-annotation3d-panels";
|
|
15792
15797
|
function Ut(l) {
|
|
15793
15798
|
return l.map((e) => ({ x: e.x, y: e.y, z: e.z }));
|
|
15794
15799
|
}
|
|
@@ -15799,7 +15804,7 @@ function Rt(l) {
|
|
|
15799
15804
|
const e = new d();
|
|
15800
15805
|
return l.length === 0 ? e : (l.forEach((t) => e.add(te(t))), e.multiplyScalar(1 / l.length));
|
|
15801
15806
|
}
|
|
15802
|
-
function
|
|
15807
|
+
function Jl(l) {
|
|
15803
15808
|
const e = new d();
|
|
15804
15809
|
for (let t = 0; t < l.length; t += 1) {
|
|
15805
15810
|
const i = l[t], n = l[(t + 1) % l.length];
|
|
@@ -15809,7 +15814,7 @@ function Zl(l) {
|
|
|
15809
15814
|
}
|
|
15810
15815
|
function Ms(l) {
|
|
15811
15816
|
const e = l.map((c) => te(c)), t = e[0].clone(), i = e.length > 1 ? e[1].clone().sub(t).normalize() : new d(1, 0, 0);
|
|
15812
|
-
let n =
|
|
15817
|
+
let n = Jl(e);
|
|
15813
15818
|
n.lengthSq() < 1e-8 && (n = new d(0, 1, 0));
|
|
15814
15819
|
const s = new d().crossVectors(n, i).normalize(), o = new d().crossVectors(s, n).normalize(), r = e.map((c) => {
|
|
15815
15820
|
const h = c.clone().sub(t);
|
|
@@ -15827,12 +15832,12 @@ function vs(l) {
|
|
|
15827
15832
|
e.lineTo(t.x, t.y);
|
|
15828
15833
|
}), e.closePath(), e;
|
|
15829
15834
|
}
|
|
15830
|
-
function
|
|
15835
|
+
function ec(l, e) {
|
|
15831
15836
|
l.traverse((t) => {
|
|
15832
15837
|
t.userData = t.userData ?? {}, t.userData.annotationId = e;
|
|
15833
15838
|
});
|
|
15834
15839
|
}
|
|
15835
|
-
function
|
|
15840
|
+
function tc(l) {
|
|
15836
15841
|
l.traverse((e) => {
|
|
15837
15842
|
const t = e;
|
|
15838
15843
|
t.geometry?.dispose?.();
|
|
@@ -15844,13 +15849,13 @@ function ec(l) {
|
|
|
15844
15849
|
i?.dispose?.();
|
|
15845
15850
|
});
|
|
15846
15851
|
}
|
|
15847
|
-
function
|
|
15852
|
+
function ic(l) {
|
|
15848
15853
|
return l.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`);
|
|
15849
15854
|
}
|
|
15850
|
-
function
|
|
15855
|
+
function nc(l) {
|
|
15851
15856
|
return l === "polyline" || l === "curve3d" ? "center" : l === "polygon" ? "centroid" : "top";
|
|
15852
15857
|
}
|
|
15853
|
-
class
|
|
15858
|
+
class sc {
|
|
15854
15859
|
render(e) {
|
|
15855
15860
|
const t = e.instance.style.leaderPoint ?? {}, i = e.instance.style.point ?? {}, n = t.strokeColor || e.instance.style.color || "#7ffcff", s = t.backgroundColor || e.instance.style.fillColor || n, o = t.borderColor || n, r = t.anchorColor || s, a = t.anchorRingColor || n, c = t.iconBackgroundColor || s, h = t.side ?? "right", u = i.icon ? this.escapeXmlAttribute(i.icon) : "", p = (t.text ?? "").trim(), g = Math.max(t.fontSize ?? 14, 10), f = t.textColor || e.instance.style.color || "#ffffff", w = t.fontWeight ?? 500, x = Math.max(Math.round((t.height ?? 8) * 12), 48), m = Math.max(Math.round(Math.abs(t.offsetX ?? t.armLength ?? 4) * 18), 56), b = this.getBoardWidth(e, p, g), C = Math.max(Math.round((t.boardHeight ?? 1.8) * 22), g + 18, 34), S = Math.max(Math.round((t.stemWidth ?? e.instance.style.lineWidth ?? 0.12) * 20), 2), P = t.borderWidth ?? 2.5, I = t.variant ?? "elbow", k = h === "right" ? 22 + m - 8 : 22 - m - b + 8, L = 8, F = Math.min(22, k) - 16, K = Math.max(22, k + b) + 16, J = Math.max(K - F, 140), Y = Math.max(x + C + 36, 120), ne = 22 - F, oe = k - F, ce = Y - 18, Ce = Math.max(ce - x, 14), Ae = h === "right" ? oe : oe + b, y = L + Math.round(C * 0.5), M = I === "vertical" ? [`${ne},${ce}`, `${ne},${Ce}`] : [`${ne},${ce}`, `${ne},${y}`, `${Ae},${y}`], E = e.instance.selectable !== !1, _ = E ? "visiblePainted" : "none", D = E ? "pointer" : "default", T = oe + (u || !p ? 38 : 12), N = t.showBoard === !1 ? "" : `
|
|
15856
15861
|
<rect x="${oe}" y="${L}" width="${b}" height="${C}" rx="10"
|
|
@@ -15904,9 +15909,9 @@ class nc {
|
|
|
15904
15909
|
return Math.max(Math.round((n.boardWidth ?? 4.6) * 22), Math.ceil(r), 78);
|
|
15905
15910
|
}
|
|
15906
15911
|
}
|
|
15907
|
-
class
|
|
15912
|
+
class oc {
|
|
15908
15913
|
constructor(e, t) {
|
|
15909
|
-
this.engine = e, this.isAnchorOccluded = t, this.container = document.createElement("div"), this.container.className =
|
|
15914
|
+
this.engine = e, this.isAnchorOccluded = t, this.container = document.createElement("div"), this.container.className = Zl, this.container.style.cssText = [
|
|
15910
15915
|
"position:absolute",
|
|
15911
15916
|
"left:0",
|
|
15912
15917
|
"top:0",
|
|
@@ -15919,7 +15924,7 @@ class sc {
|
|
|
15919
15924
|
}
|
|
15920
15925
|
container;
|
|
15921
15926
|
worldToScreen;
|
|
15922
|
-
leaderMarker = new
|
|
15927
|
+
leaderMarker = new sc();
|
|
15923
15928
|
updateProjectionState() {
|
|
15924
15929
|
this.worldToScreen.updateCamera(this.engine.camera), this.worldToScreen.updateRenderer(this.engine.renderer), this.worldToScreen.updateScene(this.engine.scene);
|
|
15925
15930
|
}
|
|
@@ -15932,7 +15937,7 @@ class sc {
|
|
|
15932
15937
|
"transform:translate(-50%, -100%)",
|
|
15933
15938
|
"display:none",
|
|
15934
15939
|
t.interactive === !1 ? "pointer-events:none" : "pointer-events:auto"
|
|
15935
|
-
].join(";"), t.mode === "html" ? i.innerHTML = t.html ?? "" : i.textContent = t.text ?? "", Object.entries(t.style ?? {}).forEach(([n, s]) => i.style.setProperty(
|
|
15940
|
+
].join(";"), t.mode === "html" ? i.innerHTML = t.html ?? "" : i.textContent = t.text ?? "", Object.entries(t.style ?? {}).forEach(([n, s]) => i.style.setProperty(ic(n), s)), i;
|
|
15936
15941
|
}
|
|
15937
15942
|
createLeaderMarkerElement(e) {
|
|
15938
15943
|
const t = document.createElement("div");
|
|
@@ -15965,7 +15970,7 @@ class sc {
|
|
|
15965
15970
|
return;
|
|
15966
15971
|
}
|
|
15967
15972
|
const i = te(e.instance.points[0]), n = this.worldToScreen.worldToScreenIfVisible(i);
|
|
15968
|
-
if (!n
|
|
15973
|
+
if (!n) {
|
|
15969
15974
|
t.style.display = "none";
|
|
15970
15975
|
return;
|
|
15971
15976
|
}
|
|
@@ -15980,7 +15985,7 @@ class sc {
|
|
|
15980
15985
|
const t = e.instance.panel?.offset ?? {};
|
|
15981
15986
|
if (e.panelAnchorPoint)
|
|
15982
15987
|
return e.panelAnchorPoint.clone().add(new d(t.x ?? 0, t.y ?? 0, t.z ?? 0));
|
|
15983
|
-
const i = e.instance.panel?.anchor ??
|
|
15988
|
+
const i = e.instance.panel?.anchor ?? nc(e.instance.type);
|
|
15984
15989
|
let n = new d();
|
|
15985
15990
|
if (e.instance.type === "point" || e.instance.type === "leaderPoint")
|
|
15986
15991
|
n.copy(te(e.instance.points[0])), i === "top" && (n.y += e.volumeHeight ?? e.instance.style.point?.anchorY ?? 0);
|
|
@@ -15997,14 +16002,14 @@ class sc {
|
|
|
15997
16002
|
return n.add(new d(t.x ?? 0, t.y ?? 0, t.z ?? 0)), n;
|
|
15998
16003
|
}
|
|
15999
16004
|
}
|
|
16000
|
-
class
|
|
16005
|
+
class rc {
|
|
16001
16006
|
apply(e, t) {
|
|
16002
16007
|
e.instance.root.visible = e.instance.visible, e.instance.style.alwaysOnTop && e.instance.root.traverse((i) => {
|
|
16003
16008
|
i.renderOrder = Math.max(i.renderOrder, 1200);
|
|
16004
16009
|
}), t(e);
|
|
16005
16010
|
}
|
|
16006
16011
|
}
|
|
16007
|
-
class
|
|
16012
|
+
class ac {
|
|
16008
16013
|
constructor(e) {
|
|
16009
16014
|
this.engine = e;
|
|
16010
16015
|
}
|
|
@@ -16213,7 +16218,7 @@ class Je {
|
|
|
16213
16218
|
return o.renderOrder = 998, o;
|
|
16214
16219
|
}
|
|
16215
16220
|
}
|
|
16216
|
-
class
|
|
16221
|
+
class lc extends Je {
|
|
16217
16222
|
type = "box";
|
|
16218
16223
|
build(e) {
|
|
16219
16224
|
if (e.instance.points.length < 2)
|
|
@@ -16244,7 +16249,7 @@ class ac extends Je {
|
|
|
16244
16249
|
g.position.copy(r), e.instance.root.add(g), e.volumeHeight = o.y, e.animatedMaterials.push(h);
|
|
16245
16250
|
}
|
|
16246
16251
|
}
|
|
16247
|
-
class
|
|
16252
|
+
class cc extends Je {
|
|
16248
16253
|
type = "curve3d";
|
|
16249
16254
|
build(e) {
|
|
16250
16255
|
const t = e.instance.points.map((r) => te(r)), i = e.instance.style.curve ?? {}, n = i.interpolation ?? "catmullRom", s = new Js(
|
|
@@ -16265,7 +16270,7 @@ class lc extends Je {
|
|
|
16265
16270
|
e.instance.root.add(o), e.anchorCurve = s, e.panelAnchorPoint = s.getPoint(0.5);
|
|
16266
16271
|
}
|
|
16267
16272
|
}
|
|
16268
|
-
class
|
|
16273
|
+
class hc extends Je {
|
|
16269
16274
|
type = "extrudePolygon";
|
|
16270
16275
|
build(e) {
|
|
16271
16276
|
const t = Ms(e.instance.points), i = vs(t.localPoints), n = e.instance.style.volume?.height ?? 10, s = new Fn(i, {
|
|
@@ -16307,7 +16312,7 @@ class cc extends Je {
|
|
|
16307
16312
|
}
|
|
16308
16313
|
}
|
|
16309
16314
|
}
|
|
16310
|
-
class
|
|
16315
|
+
class dc extends Je {
|
|
16311
16316
|
type = "leaderPoint";
|
|
16312
16317
|
build(e) {
|
|
16313
16318
|
const t = te(e.instance.points[0]), i = e.instance.style.leaderPoint ?? {}, n = Math.max(i.height ?? 8, 0.5), s = i.offsetX ?? i.armLength ?? 4, o = i.offsetZ ?? 0, r = this.createLeaderPathPoints(i.variant ?? "elbow", n, s, o), a = r[r.length - 1].clone();
|
|
@@ -16327,7 +16332,7 @@ class hc extends Je {
|
|
|
16327
16332
|
];
|
|
16328
16333
|
}
|
|
16329
16334
|
}
|
|
16330
|
-
class
|
|
16335
|
+
class uc extends Je {
|
|
16331
16336
|
type = "point";
|
|
16332
16337
|
build(e) {
|
|
16333
16338
|
const t = te(e.instance.points[0]), i = e.instance.style, n = e.instance.effect, s = i.point ?? {};
|
|
@@ -16381,7 +16386,7 @@ class dc extends Je {
|
|
|
16381
16386
|
}
|
|
16382
16387
|
}
|
|
16383
16388
|
}
|
|
16384
|
-
class
|
|
16389
|
+
class pc extends Je {
|
|
16385
16390
|
type = "polygon";
|
|
16386
16391
|
build(e) {
|
|
16387
16392
|
const t = Ms(e.instance.points), i = vs(t.localPoints), n = new to(i);
|
|
@@ -16404,7 +16409,7 @@ class uc extends Je {
|
|
|
16404
16409
|
), e.animatedMaterials.push(o);
|
|
16405
16410
|
}
|
|
16406
16411
|
}
|
|
16407
|
-
class
|
|
16412
|
+
class mc extends Je {
|
|
16408
16413
|
type = "polyline";
|
|
16409
16414
|
build(e) {
|
|
16410
16415
|
const t = e.instance.points.map((s) => te(s)), i = this.createSegmentCurve(t), n = this.createTubeMesh(
|
|
@@ -16418,18 +16423,18 @@ class pc extends Je {
|
|
|
16418
16423
|
e.instance.root.add(n), e.anchorCurve = i, e.panelAnchorPoint = i.getPoint(0.5);
|
|
16419
16424
|
}
|
|
16420
16425
|
}
|
|
16421
|
-
function
|
|
16426
|
+
function gc(l, e, t) {
|
|
16422
16427
|
return [
|
|
16423
|
-
new dc(l, e, t),
|
|
16424
|
-
new hc(l, e, t),
|
|
16425
|
-
new pc(l, e, t),
|
|
16426
|
-
new lc(l, e, t),
|
|
16427
16428
|
new uc(l, e, t),
|
|
16429
|
+
new dc(l, e, t),
|
|
16430
|
+
new mc(l, e, t),
|
|
16428
16431
|
new cc(l, e, t),
|
|
16429
|
-
new
|
|
16432
|
+
new pc(l, e, t),
|
|
16433
|
+
new hc(l, e, t),
|
|
16434
|
+
new lc(l, e, t)
|
|
16430
16435
|
];
|
|
16431
16436
|
}
|
|
16432
|
-
function
|
|
16437
|
+
function fc(l, e, t) {
|
|
16433
16438
|
const i = l.camera;
|
|
16434
16439
|
if (!i)
|
|
16435
16440
|
return !1;
|
|
@@ -16442,7 +16447,7 @@ function gc(l, e, t) {
|
|
|
16442
16447
|
const r = o.sort((a, c) => a.distance - c.distance)[0];
|
|
16443
16448
|
return !!(r && r.distance < s - 0.05);
|
|
16444
16449
|
}
|
|
16445
|
-
class
|
|
16450
|
+
class yc {
|
|
16446
16451
|
normalizeData(e) {
|
|
16447
16452
|
return {
|
|
16448
16453
|
...e,
|
|
@@ -16558,18 +16563,18 @@ class fc {
|
|
|
16558
16563
|
offset: { ...e.offset ?? {} },
|
|
16559
16564
|
screenOffset: { ...e.screenOffset ?? {} },
|
|
16560
16565
|
className: e.className,
|
|
16561
|
-
style: {
|
|
16566
|
+
style: { ...$l, ...e.style ?? {} },
|
|
16562
16567
|
interactive: e.interactive ?? !0,
|
|
16563
16568
|
occlusion: e.occlusion ?? "show",
|
|
16564
16569
|
actions: e.actions
|
|
16565
16570
|
};
|
|
16566
16571
|
}
|
|
16567
16572
|
}
|
|
16568
|
-
function
|
|
16573
|
+
function Mc(l) {
|
|
16569
16574
|
const { actions: e, ...t } = l;
|
|
16570
16575
|
return t;
|
|
16571
16576
|
}
|
|
16572
|
-
function
|
|
16577
|
+
function vc(l) {
|
|
16573
16578
|
return {
|
|
16574
16579
|
id: l.instance.id,
|
|
16575
16580
|
type: l.instance.type,
|
|
@@ -16585,7 +16590,7 @@ function Mc(l) {
|
|
|
16585
16590
|
function Ot(l) {
|
|
16586
16591
|
return l === void 0 ? l : JSON.parse(JSON.stringify(l));
|
|
16587
16592
|
}
|
|
16588
|
-
class
|
|
16593
|
+
class wc {
|
|
16589
16594
|
builders = /* @__PURE__ */ new Map();
|
|
16590
16595
|
constructor(e) {
|
|
16591
16596
|
e.forEach((t) => this.builders.set(t.type, t));
|
|
@@ -16597,7 +16602,7 @@ class vc {
|
|
|
16597
16602
|
t.build(e);
|
|
16598
16603
|
}
|
|
16599
16604
|
}
|
|
16600
|
-
class
|
|
16605
|
+
class xc {
|
|
16601
16606
|
constructor(e, t) {
|
|
16602
16607
|
this.markerRegistry = e, this.overlayController = t;
|
|
16603
16608
|
}
|
|
@@ -16612,7 +16617,7 @@ class wc {
|
|
|
16612
16617
|
selectable: e.selectable ?? !0,
|
|
16613
16618
|
style: e.style,
|
|
16614
16619
|
effect: e.effect ?? {},
|
|
16615
|
-
panel: e.panel ?
|
|
16620
|
+
panel: e.panel ? Mc(e.panel) : void 0,
|
|
16616
16621
|
data: e.data,
|
|
16617
16622
|
panelVisible: e.panel?.trigger === "always",
|
|
16618
16623
|
hovered: !1,
|
|
@@ -16628,31 +16633,31 @@ class wc {
|
|
|
16628
16633
|
baseRingMeshes: [],
|
|
16629
16634
|
animatedMaterials: []
|
|
16630
16635
|
};
|
|
16631
|
-
return this.markerRegistry.build(n),
|
|
16636
|
+
return this.markerRegistry.build(n), ec(t, i.id), n;
|
|
16632
16637
|
}
|
|
16633
16638
|
}
|
|
16634
|
-
class
|
|
16639
|
+
class bc {
|
|
16635
16640
|
engine;
|
|
16636
16641
|
rootGroup;
|
|
16637
16642
|
records = /* @__PURE__ */ new Map();
|
|
16638
16643
|
textureLoader = new Ke();
|
|
16639
16644
|
occlusionRaycaster = new fe();
|
|
16640
|
-
normalizer = new
|
|
16645
|
+
normalizer = new yc();
|
|
16641
16646
|
materialFactory;
|
|
16642
16647
|
overlayController;
|
|
16643
16648
|
interactionController;
|
|
16644
16649
|
effectsController;
|
|
16645
|
-
visibilityController = new
|
|
16650
|
+
visibilityController = new rc();
|
|
16646
16651
|
markerRegistry;
|
|
16647
16652
|
recordFactory;
|
|
16648
16653
|
currentTime = 0;
|
|
16649
16654
|
constructor(e) {
|
|
16650
|
-
this.engine = e, this.rootGroup = new de(), this.rootGroup.name = "Annotation3dRoot", this.engine.scene.add(this.rootGroup), this.materialFactory = new
|
|
16655
|
+
this.engine = e, this.rootGroup = new de(), this.rootGroup.name = "Annotation3dRoot", this.engine.scene.add(this.rootGroup), this.materialFactory = new ac(this.engine), this.overlayController = new oc(
|
|
16651
16656
|
this.engine,
|
|
16652
|
-
(t) =>
|
|
16653
|
-
), this.markerRegistry = new
|
|
16654
|
-
|
|
16655
|
-
), this.recordFactory = new
|
|
16657
|
+
(t) => fc(this.engine, this.occlusionRaycaster, t)
|
|
16658
|
+
), this.markerRegistry = new wc(
|
|
16659
|
+
gc(this.engine, this.textureLoader, this.materialFactory)
|
|
16660
|
+
), this.recordFactory = new xc(this.markerRegistry, this.overlayController), this.effectsController = new Xl(this.engine), this.interactionController = new Ql({
|
|
16656
16661
|
engine: this.engine,
|
|
16657
16662
|
rootGroup: this.rootGroup,
|
|
16658
16663
|
records: this.records,
|
|
@@ -16753,7 +16758,7 @@ class xc {
|
|
|
16753
16758
|
return this.update(e, { panel: n });
|
|
16754
16759
|
}
|
|
16755
16760
|
getData() {
|
|
16756
|
-
return Array.from(this.records.values()).map((e) =>
|
|
16761
|
+
return Array.from(this.records.values()).map((e) => vc(e));
|
|
16757
16762
|
}
|
|
16758
16763
|
restoreData(e) {
|
|
16759
16764
|
this.clear(), e.forEach((t) => this.add(t));
|
|
@@ -16771,7 +16776,7 @@ class xc {
|
|
|
16771
16776
|
}
|
|
16772
16777
|
removeInternal(e, t) {
|
|
16773
16778
|
const i = this.records.get(e);
|
|
16774
|
-
return i ? (this.interactionController.handleRecordRemoved(e),
|
|
16779
|
+
return i ? (this.interactionController.handleRecordRemoved(e), tc(i.instance.root), i.instance.root.removeFromParent(), i.panelElement?.remove(), i.markerElement?.remove(), this.records.delete(e), t && this.emit("annotation3d-removed", { id: e }), !0) : !1;
|
|
16775
16780
|
}
|
|
16776
16781
|
toEventPayload(e, t) {
|
|
16777
16782
|
return { id: e.instance.id, annotation: e.instance, originalEvent: t };
|
|
@@ -17106,8 +17111,8 @@ class ot {
|
|
|
17106
17111
|
return "x" in e ? new d(e.x, e.y, e.z) : new d(e.X, e.Y, e.Z);
|
|
17107
17112
|
}
|
|
17108
17113
|
}
|
|
17109
|
-
const
|
|
17110
|
-
class
|
|
17114
|
+
const Cc = 1e-3, Ac = 0.65, Ec = 1;
|
|
17115
|
+
class Sc {
|
|
17111
17116
|
engine;
|
|
17112
17117
|
loader = new Ii();
|
|
17113
17118
|
modelList = /* @__PURE__ */ new Map();
|
|
@@ -17316,7 +17321,7 @@ class Ec {
|
|
|
17316
17321
|
}
|
|
17317
17322
|
/** 透视相机使用更小的屏幕尺寸系数,正交相机维持原有尺寸。 */
|
|
17318
17323
|
syncTransformControlCamera() {
|
|
17319
|
-
!this.transformControl || !this.engine.camera || (this.transformControl.camera = this.engine.camera, this.transformControl.size = this.engine.camera.isPerspectiveCamera ?
|
|
17324
|
+
!this.transformControl || !this.engine.camera || (this.transformControl.camera = this.engine.camera, this.transformControl.size = this.engine.camera.isPerspectiveCamera ? Ac : Ec);
|
|
17320
17325
|
}
|
|
17321
17326
|
/** 使用引擎统一的捕捉器等待用户单击,并在取消或完成后恢复常规交互。 */
|
|
17322
17327
|
pickPlacementPoint(e, t) {
|
|
@@ -17355,7 +17360,7 @@ class Ec {
|
|
|
17355
17360
|
const i = t.clone(), n = e?.normal ?? e?.face?.normal;
|
|
17356
17361
|
if (n == null) return { position: i, normal: null };
|
|
17357
17362
|
const s = n.clone(), o = e?.matrix ?? e?.object?.matrixWorld;
|
|
17358
|
-
return o && s.transformDirection(o), s.lengthSq() < 1e-10 ? { position: i, normal: null } : (s.normalize(), i.addScaledVector(s,
|
|
17363
|
+
return o && s.transformDirection(o), s.lengthSq() < 1e-10 ? { position: i, normal: null } : (s.normalize(), i.addScaledVector(s, Cc), { position: i, normal: s });
|
|
17359
17364
|
}
|
|
17360
17365
|
handlePointerDown(e) {
|
|
17361
17366
|
if (!(!this.editingEnabled || !this.engine.camera || !this.engine.renderer)) {
|
|
@@ -17508,7 +17513,7 @@ class pi extends Error {
|
|
|
17508
17513
|
super("模型对比已取消"), this.name = "ModelComparisonCancelledError";
|
|
17509
17514
|
}
|
|
17510
17515
|
}
|
|
17511
|
-
class
|
|
17516
|
+
class Pc {
|
|
17512
17517
|
constructor(e) {
|
|
17513
17518
|
this.engine = e;
|
|
17514
17519
|
}
|
|
@@ -17947,7 +17952,7 @@ class Sc {
|
|
|
17947
17952
|
}
|
|
17948
17953
|
}
|
|
17949
17954
|
const In = "__modelExplodeProxy", _n = new U().makeScale(0, 0, 0);
|
|
17950
|
-
class
|
|
17955
|
+
class Tc {
|
|
17951
17956
|
engine;
|
|
17952
17957
|
/** 当前是否处于炸开模式;供外部滑块、交互模块判断是否需要走代理逻辑。 */
|
|
17953
17958
|
active = !1;
|
|
@@ -18481,7 +18486,7 @@ const Dn = "bim-material-editor-style", Ze = [
|
|
|
18481
18486
|
bumpMap: "凹凸贴图",
|
|
18482
18487
|
emissiveMap: "自发光贴图"
|
|
18483
18488
|
};
|
|
18484
|
-
class
|
|
18489
|
+
class Ic {
|
|
18485
18490
|
constructor(e) {
|
|
18486
18491
|
this.engine = e;
|
|
18487
18492
|
}
|
|
@@ -18587,7 +18592,7 @@ function ws(l) {
|
|
|
18587
18592
|
function pt(l) {
|
|
18588
18593
|
return l instanceof qe ? Jt(l) || l.uuid : l;
|
|
18589
18594
|
}
|
|
18590
|
-
function
|
|
18595
|
+
function _c(l) {
|
|
18591
18596
|
const e = l, t = {
|
|
18592
18597
|
type: l.type,
|
|
18593
18598
|
name: l.name || l.type,
|
|
@@ -18603,7 +18608,7 @@ function Ic(l) {
|
|
|
18603
18608
|
i in e && (t[i] = pt(e[i]) ?? null);
|
|
18604
18609
|
}), JSON.stringify(t);
|
|
18605
18610
|
}
|
|
18606
|
-
function
|
|
18611
|
+
function Dc(l, e) {
|
|
18607
18612
|
const t = ws(l), i = {};
|
|
18608
18613
|
return Object.entries(e.values).forEach(([n, s]) => {
|
|
18609
18614
|
const o = t[n];
|
|
@@ -18648,7 +18653,7 @@ function Ft(l) {
|
|
|
18648
18653
|
}))
|
|
18649
18654
|
};
|
|
18650
18655
|
}
|
|
18651
|
-
class
|
|
18656
|
+
class Lc {
|
|
18652
18657
|
constructor(e, t) {
|
|
18653
18658
|
this.engine = e, this.host = t;
|
|
18654
18659
|
}
|
|
@@ -18855,7 +18860,7 @@ class Dc {
|
|
|
18855
18860
|
`, document.head.appendChild(e);
|
|
18856
18861
|
}
|
|
18857
18862
|
}
|
|
18858
|
-
class
|
|
18863
|
+
class kc {
|
|
18859
18864
|
constructor(e) {
|
|
18860
18865
|
this.collectSceneMaterials = e;
|
|
18861
18866
|
}
|
|
@@ -18886,7 +18891,7 @@ class Lc {
|
|
|
18886
18891
|
const i = this.baselineSnapshots.get(t.material.uuid);
|
|
18887
18892
|
if (i == null)
|
|
18888
18893
|
return;
|
|
18889
|
-
const n =
|
|
18894
|
+
const n = Dc(t.material, i);
|
|
18890
18895
|
Object.keys(n).length !== 0 && e.push({
|
|
18891
18896
|
id: t.material.uuid,
|
|
18892
18897
|
name: t.material.name || i.name,
|
|
@@ -18903,13 +18908,13 @@ class Lc {
|
|
|
18903
18908
|
}), e.needsUpdate = !0, !0);
|
|
18904
18909
|
}
|
|
18905
18910
|
}
|
|
18906
|
-
class
|
|
18911
|
+
class Bc {
|
|
18907
18912
|
constructor(e, t = {}) {
|
|
18908
18913
|
this.engine = e, this.options = {
|
|
18909
18914
|
visible: t.visible ?? !1,
|
|
18910
18915
|
title: t.title ?? "材质编辑器",
|
|
18911
18916
|
width: t.width ?? 340
|
|
18912
|
-
}, this.visible = this.options.visible, this.collector = new
|
|
18917
|
+
}, this.visible = this.options.visible, this.collector = new Ic(e), this.snapshots = new kc(() => this.collectSceneMaterials()), this.panel = new Lc(e, this);
|
|
18913
18918
|
}
|
|
18914
18919
|
options;
|
|
18915
18920
|
selectedMaterials = [];
|
|
@@ -19051,7 +19056,7 @@ class kc {
|
|
|
19051
19056
|
dedupeMaterials(e) {
|
|
19052
19057
|
const t = /* @__PURE__ */ new Map();
|
|
19053
19058
|
return e.forEach((i) => {
|
|
19054
|
-
const n =
|
|
19059
|
+
const n = _c(i.material), s = t.get(n);
|
|
19055
19060
|
if (s == null) {
|
|
19056
19061
|
t.set(n, { material: i.material, materials: [i.material], owners: [...i.owners] });
|
|
19057
19062
|
return;
|
|
@@ -19091,7 +19096,7 @@ class kc {
|
|
|
19091
19096
|
this.ownedTextures.forEach((e) => e.dispose()), this.ownedTextures.clear();
|
|
19092
19097
|
}
|
|
19093
19098
|
}
|
|
19094
|
-
class
|
|
19099
|
+
class zc {
|
|
19095
19100
|
engine;
|
|
19096
19101
|
codeMap = [];
|
|
19097
19102
|
continusIds = /* @__PURE__ */ new Map();
|
|
@@ -19192,16 +19197,16 @@ const Nt = {
|
|
|
19192
19197
|
sampleCount: 64,
|
|
19193
19198
|
roundedRadius: 1,
|
|
19194
19199
|
historyLimit: 100
|
|
19195
|
-
},
|
|
19200
|
+
}, Rc = {
|
|
19196
19201
|
bezier: "贝塞尔曲线",
|
|
19197
19202
|
straight: "直线",
|
|
19198
19203
|
rounded: "圆角直线"
|
|
19199
|
-
},
|
|
19204
|
+
}, Oc = {
|
|
19200
19205
|
bezier: "∿",
|
|
19201
19206
|
straight: "╱",
|
|
19202
19207
|
rounded: "⌁"
|
|
19203
19208
|
};
|
|
19204
|
-
class
|
|
19209
|
+
class Fc {
|
|
19205
19210
|
type = "path-draw";
|
|
19206
19211
|
engine;
|
|
19207
19212
|
root = new de();
|
|
@@ -19567,7 +19572,7 @@ class Oc {
|
|
|
19567
19572
|
t.append(i, n, s), e.appendChild(t), this.statusElement = n;
|
|
19568
19573
|
const o = document.createElement("div");
|
|
19569
19574
|
Object.assign(o.style, { display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "4px", padding: "8px" }), ["bezier", "straight", "rounded"].forEach((x) => {
|
|
19570
|
-
const m = this.createIconButton(
|
|
19575
|
+
const m = this.createIconButton(Oc[x], Rc[x], () => this.setLineType(x));
|
|
19571
19576
|
m.dataset.lineType = x, m.style.width = "100%", m.style.fontSize = "18px", o.appendChild(m);
|
|
19572
19577
|
}), e.appendChild(o);
|
|
19573
19578
|
const r = document.createElement("label");
|
|
@@ -19685,7 +19690,7 @@ class Oc {
|
|
|
19685
19690
|
return { x: e.x, y: e.y, z: e.z };
|
|
19686
19691
|
}
|
|
19687
19692
|
}
|
|
19688
|
-
class
|
|
19693
|
+
class Nc {
|
|
19689
19694
|
engine;
|
|
19690
19695
|
continusIds = /* @__PURE__ */ new Map();
|
|
19691
19696
|
constructor(e) {
|
|
@@ -19744,7 +19749,7 @@ class Fc {
|
|
|
19744
19749
|
});
|
|
19745
19750
|
}
|
|
19746
19751
|
}
|
|
19747
|
-
class
|
|
19752
|
+
class Wc {
|
|
19748
19753
|
// 引擎参数
|
|
19749
19754
|
options;
|
|
19750
19755
|
deviceType;
|
|
@@ -19866,7 +19871,7 @@ class Gc {
|
|
|
19866
19871
|
constructor(e) {
|
|
19867
19872
|
if (window.THREE = Ln, Wo(), this.options = e, this.container = document.getElementById(e.containerId), !this.container)
|
|
19868
19873
|
throw new Error(`Container ${e.containerId} not found`);
|
|
19869
|
-
if (this.rxQuotaListMapper = new
|
|
19874
|
+
if (this.rxQuotaListMapper = new zc(this), this.filterLoaderModel = new Nc(this), this.engineModelModule = new ma(this), this.engineModelModule.init(), this.deviceModule = new xo(this), this.deviceType = this.deviceModule.getDeviceType(), this.cameraModule = new re(this), this.sceneModule = new wo(this), this.scene = this.sceneModule.scene, this.renderModule = new bo(this), this.renderer = this.renderModule.createRenderer(), this.camera = this.cameraModule.orthographicCamera, this.scene.camera = this.camera, this.renderer) {
|
|
19870
19875
|
const o = this.renderer;
|
|
19871
19876
|
o.interactionCullingEnabled = !0, o.interactionActive = !1, o.interactionRenderScene = this.scene, o.interactionFrameBudgetMs = this.options.interactionFrameBudgetMs ?? 6, o.interactionSkipShadows = this.options.interactionSkipShadows ?? !0;
|
|
19872
19877
|
}
|
|
@@ -19874,7 +19879,7 @@ class Gc {
|
|
|
19874
19879
|
const t = this.events.trigger.bind(this.events);
|
|
19875
19880
|
this.events.trigger = ((o, r) => {
|
|
19876
19881
|
t(o, r), String(o) !== String(ie.EngineBusy) && this.requestComposerRender();
|
|
19877
|
-
}), this.engineStatus = new Vr(this), this.engineStatus.init(), this.loaderModule = new Te(this), this.lightModule = new la(this), this.lightModule.init(), this.viewCube = new Ma(this), this.viewCube.init(), this.options.showViewCube == !1 && this.viewCube.hide(), this.octreeBox = va(this), this.rangeScale = new wa(this), this.rangeScale.init(), this.setting = new Va(this), this.engineModelModule.init(), this.handelBehaved = Fi(this), this.modelMapperBatch = new ll(this), this.measure = new Qa(this), this.modelToolModule = new ha(this), this.modelLink3d = new
|
|
19882
|
+
}), this.engineStatus = new Vr(this), this.engineStatus.init(), this.loaderModule = new Te(this), this.lightModule = new la(this), this.lightModule.init(), this.viewCube = new Ma(this), this.viewCube.init(), this.options.showViewCube == !1 && this.viewCube.hide(), this.octreeBox = va(this), this.rangeScale = new wa(this), this.rangeScale.init(), this.setting = new Va(this), this.engineModelModule.init(), this.handelBehaved = Fi(this), this.modelMapperBatch = new ll(this), this.measure = new Qa(this), this.modelToolModule = new ha(this), this.modelLink3d = new jl(this, this.options.linkOptions ?? {}), this.modelLink3d.init(), this.modelProperties = new sl(this), this.search = new al(this), this.interactionModule = new ca(this), this.interactionModule.init(), this.interactionModule.active(), this.hoverHighLight = new Zt(this), this.modelEdge = new Na(this), this.nodeBox = new dl(this), this.modelTree = new il(this), this.viewTree = new Hi(this), this.merge2d = new Tl(this), this.engineInfo = new nl(this), this.pathRoaming = new pl(this), this.pathRoaming.init(), this.oneClickEncoding = new vl(this), this.minMap = new ml(this), this.linkElement2d3d = new yl(this), this.linkView2d3d = new Ml(this), this.grid = new Ca(this), this.level = new Ia(this), this.issueReport = new gl(this), this.fabricDraw = new Wl(this), this.drawingPin = new Kl(this), this.label = new Yl(this), this.annotation3d = new bc(this), this.calibration = new ot(this), this.modelPlace = new Sc(this), this.modelComparison = new Pc(this), this.modelExplode = new Tc(this), this.materialTool = new Bc(this, this.options.materialEditorOptions ?? {}), this.materialTool.init(), this.pathDraw = new Fc(this), this.text = new fl(this), this.hdr = new Sa(this), this.ground = new Ni(this), this.ground.init(), this.skyManager = new Ha(this), this.setting.init(), this.worldToScreen = new pe(this.camera, this.renderer, this.scene), this.options.showStats && (this.stats = new vo(), this.stats.showPanel(0), this.stats.dom.style.position = "absolute", this.stats.dom.style.top = "0px", this.stats.dom.style.left = "0px", this.stats.dom.style.zIndex = "1000", this.container.appendChild(this.stats.dom));
|
|
19878
19883
|
let i = document.createElement("div");
|
|
19879
19884
|
i.className = "versionText", this.versionEl = i, this.updateVersionDisplay(), this.container.appendChild(i);
|
|
19880
19885
|
let n = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
@@ -20209,6 +20214,6 @@ class Gc {
|
|
|
20209
20214
|
}
|
|
20210
20215
|
}
|
|
20211
20216
|
export {
|
|
20212
|
-
|
|
20213
|
-
|
|
20217
|
+
Wc as E,
|
|
20218
|
+
Bc as M
|
|
20214
20219
|
};
|