@realsee/dnalogel 3.77.5 → 3.77.6
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/CHANGELOG.md +15 -11
- package/dist/PanoTagPlugin/controller/Tag/BaseTag.d.ts +5 -1
- package/dist/PanoTagPlugin/controller/Tag/BoxTag.d.ts +119 -0
- package/dist/PanoTagPlugin/controller/Tag/MaskTag.d.ts +257 -0
- package/dist/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +10 -0
- package/dist/PanoTagPlugin/controller/Tag/PolygonTag.d.ts +112 -0
- package/dist/PanoTagPlugin/controller/TagRender.d.ts +1 -1
- package/dist/PanoTagPlugin/controller/index.d.ts +55 -2
- package/dist/PanoTagPlugin/typings/controller.d.ts +10 -0
- package/dist/PanoTagPlugin/typings/tag/Tag.d.ts +8 -3
- package/dist/PanoTagPlugin/typings/tag/Utils.d.ts +50 -1
- package/dist/PanoTagPlugin/utils/sculptDataToBoxPosition.d.ts +6 -0
- package/dist/PanoTagPlugin/utils/tag/tagCheck.d.ts +6 -0
- package/dist/PanoTagPlugin/utils/tagPosition.d.ts +12 -3
- package/dist/index.cjs.js +178 -95
- package/dist/index.js +11346 -9788
- package/dist/index.umd.js +173 -90
- package/libs/CruisePlugin/Move.js +7 -2
- package/libs/CruisePlugin/Work.js +7 -2
- package/libs/CruisePlugin/index.js +11 -6
- package/libs/GuideLinePlugin/Controller.js +9 -4
- package/libs/GuideLinePlugin/GuideLineItem.js +7 -2
- package/libs/GuideLinePlugin/GuideLineModeItem.js +7 -2
- package/libs/GuideLinePlugin/index.js +11 -6
- package/libs/PanoTagPlugin/Components/TagItem.js +122 -122
- package/libs/PanoTagPlugin/controller/Tag/BaseTag.d.ts +5 -1
- package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +320 -289
- package/libs/PanoTagPlugin/controller/Tag/BoxTag.d.ts +119 -0
- package/libs/PanoTagPlugin/controller/Tag/BoxTag.js +515 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.d.ts +257 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.js +815 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +10 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.js +94 -0
- package/libs/PanoTagPlugin/controller/Tag/PolygonTag.d.ts +112 -0
- package/libs/PanoTagPlugin/controller/Tag/PolygonTag.js +478 -0
- package/libs/PanoTagPlugin/controller/TagRender.d.ts +1 -1
- package/libs/PanoTagPlugin/controller/TagUtil.js +19 -17
- package/libs/PanoTagPlugin/controller/index.d.ts +55 -2
- package/libs/PanoTagPlugin/controller/index.js +261 -148
- package/libs/PanoTagPlugin/index.js +16 -11
- package/libs/PanoTagPlugin/typings/controller.d.ts +10 -0
- package/libs/PanoTagPlugin/typings/tag/Tag.d.ts +8 -3
- package/libs/PanoTagPlugin/typings/tag/Utils.d.ts +50 -1
- package/libs/PanoTagPlugin/utils/addDebugPoints.js +27 -13
- package/libs/PanoTagPlugin/utils/index.js +29 -26
- package/libs/PanoTagPlugin/utils/sculptDataToBoxPosition.d.ts +6 -0
- package/libs/PanoTagPlugin/utils/sculptDataToBoxPosition.js +18 -0
- package/libs/PanoTagPlugin/utils/tag/tagCheck.d.ts +6 -0
- package/libs/PanoTagPlugin/utils/tag/tagCheck.js +26 -14
- package/libs/PanoTagPlugin/utils/tagPosition.d.ts +12 -3
- package/libs/PanoTagPlugin/utils/tagPosition.js +49 -16
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.js +163 -158
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +1 -1
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
var Q = Object.defineProperty, Y = Object.defineProperties;
|
|
2
2
|
var ee = Object.getOwnPropertyDescriptors;
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
for (var e in
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
for (var e of
|
|
10
|
-
|
|
11
|
-
return
|
|
12
|
-
},
|
|
13
|
-
var
|
|
3
|
+
var V = Object.getOwnPropertySymbols;
|
|
4
|
+
var $ = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var P = Math.pow, D = (g, t, e) => t in g ? Q(g, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : g[t] = e, y = (g, t) => {
|
|
6
|
+
for (var e in t || (t = {}))
|
|
7
|
+
$.call(t, e) && D(g, e, t[e]);
|
|
8
|
+
if (V)
|
|
9
|
+
for (var e of V(t))
|
|
10
|
+
z.call(t, e) && D(g, e, t[e]);
|
|
11
|
+
return g;
|
|
12
|
+
}, j = (g, t) => Y(g, ee(t));
|
|
13
|
+
var W = (g, t) => {
|
|
14
14
|
var e = {};
|
|
15
|
-
for (var
|
|
16
|
-
|
|
17
|
-
if (
|
|
18
|
-
for (var
|
|
19
|
-
|
|
15
|
+
for (var i in g)
|
|
16
|
+
$.call(g, i) && t.indexOf(i) < 0 && (e[i] = g[i]);
|
|
17
|
+
if (g != null && V)
|
|
18
|
+
for (var i of V(g))
|
|
19
|
+
t.indexOf(i) < 0 && z.call(g, i) && (e[i] = g[i]);
|
|
20
20
|
return e;
|
|
21
21
|
};
|
|
22
|
-
var a = (
|
|
23
|
-
var
|
|
24
|
-
var
|
|
22
|
+
var a = (g, t, e) => (D(g, typeof t != "symbol" ? t + "" : t, e), e);
|
|
23
|
+
var L = (g, t, e) => new Promise((i, s) => {
|
|
24
|
+
var o = (n) => {
|
|
25
25
|
try {
|
|
26
26
|
r(e.next(n));
|
|
27
27
|
} catch (f) {
|
|
28
|
-
|
|
28
|
+
s(f);
|
|
29
29
|
}
|
|
30
30
|
}, l = (n) => {
|
|
31
31
|
try {
|
|
32
32
|
r(e.throw(n));
|
|
33
33
|
} catch (f) {
|
|
34
|
-
|
|
34
|
+
s(f);
|
|
35
35
|
}
|
|
36
|
-
}, r = (n) => n.done ?
|
|
37
|
-
r((e = e.apply(
|
|
36
|
+
}, r = (n) => n.done ? i(n.value) : Promise.resolve(n.value).then(o, l);
|
|
37
|
+
r((e = e.apply(g, t)).next());
|
|
38
38
|
});
|
|
39
|
-
import { Subscribe as
|
|
40
|
-
import { calculateTagConfig as
|
|
41
|
-
import { getTagStickType as
|
|
39
|
+
import { Subscribe as te } from "../../../shared-utils/Subscribe.js";
|
|
40
|
+
import { calculateTagConfig as R } from "../../utils/tag/calculateTagConfig.js";
|
|
41
|
+
import { getTagStickType as ie } from "../../utils/tag/format.js";
|
|
42
42
|
import "../../../shared-utils/tag.js";
|
|
43
|
-
import { isPanoramaLike as
|
|
44
|
-
import * as
|
|
43
|
+
import { isPanoramaLike as E, isModelLike as B } from "../../../shared-utils/five/mode.js";
|
|
44
|
+
import * as k from "three";
|
|
45
45
|
import "../../../vendor/hammerjs/hammer.js";
|
|
46
46
|
import "../../../shared-utils/three/PointSelector/index.js";
|
|
47
47
|
import { centerPoint as ne } from "../../../shared-utils/three/centerPoint.js";
|
|
48
48
|
import "../../../shared-utils/three/CSS3DRenderer/index.js";
|
|
49
49
|
import "../../../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
|
|
50
|
-
import { anyPositionToVector3 as
|
|
50
|
+
import { anyPositionToVector3 as w } from "../../../shared-utils/positionToVector3.js";
|
|
51
51
|
import { toArray as se } from "../../../shared-utils/util.js";
|
|
52
52
|
import "@realsee/five/line";
|
|
53
|
-
import { isNil as
|
|
53
|
+
import { isNil as J, notNil as H } from "../../../shared-utils/isNil.js";
|
|
54
54
|
import "../../../shared-utils/three/core/Five_LineMaterial2.js";
|
|
55
55
|
import "../../../shared-utils/three/core/Sphere.js";
|
|
56
56
|
import { blink as oe, reblink as re } from "../../../shared-utils/three/blink.js";
|
|
@@ -58,19 +58,19 @@ import "../../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
|
|
|
58
58
|
import "../../../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
|
|
59
59
|
import "../../../vendor/earcut/src/earcut.js";
|
|
60
60
|
import { vectorToCoordinates as le } from "../../../shared-utils/vectorToCoordinate.js";
|
|
61
|
-
import { transformPosition as
|
|
61
|
+
import { transformPosition as O } from "../../../shared-utils/five/transformPosition.js";
|
|
62
62
|
import { lookPoint as ae } from "../../../shared-utils/five/lookPoint.js";
|
|
63
63
|
import { uuid as fe } from "../../../shared-utils/uuid.js";
|
|
64
64
|
import "../../../shared-utils/five/FivePuppet.js";
|
|
65
|
-
import { objectAssignDeepExports as
|
|
66
|
-
import { getTagPosition as
|
|
67
|
-
import { checkRange as
|
|
68
|
-
import { isMediaPlaneTag as
|
|
69
|
-
import { getUrlExt as
|
|
65
|
+
import { objectAssignDeepExports as T } from "../../../vendor/object-assign-deep/objectAssignDeep.js";
|
|
66
|
+
import { getTagPosition as q, getTagCenterPosition as X } from "../../utils/tagPosition.js";
|
|
67
|
+
import { checkRange as S } from "../../utils/checkRange.js";
|
|
68
|
+
import { isMediaPlaneTag as Z, isMediaModelTag as _ } from "../../utils/tag/tagCheck.js";
|
|
69
|
+
import { getUrlExt as G } from "../../../shared-utils/url/getUrl.js";
|
|
70
70
|
import { getFloorIndex as de } from "../../../shared-utils/five/getFloorIndex.js";
|
|
71
|
-
import { safeObj as
|
|
71
|
+
import { safeObj as K } from "../../../shared-utils/safeObj.js";
|
|
72
72
|
import { Cache as ce } from "../../utils/Cache.js";
|
|
73
|
-
import { _raycaster as
|
|
73
|
+
import { _raycaster as N } from "../../../shared-utils/three/temp.js";
|
|
74
74
|
import { withResolvers as ue } from "../../../shared-utils/promise/withResolvers.js";
|
|
75
75
|
import "../../../shared-utils/typescript/entries.js";
|
|
76
76
|
import "../../utils/tag/adaptConfig.js";
|
|
@@ -122,8 +122,8 @@ import "../../../CSS3DRenderPlugin/utils/three/CSS3DScene.js";
|
|
|
122
122
|
import "../../../CSS3DRenderPlugin/utils/getAllCSS3DObject.js";
|
|
123
123
|
import "../../../CSS3DRenderPlugin/utils/three/CSS3DGroup.js";
|
|
124
124
|
import "../../../shared-utils/formatRad.js";
|
|
125
|
-
class
|
|
126
|
-
constructor(
|
|
125
|
+
class Jt {
|
|
126
|
+
constructor(t, e) {
|
|
127
127
|
a(this, "plugin");
|
|
128
128
|
a(this, "id");
|
|
129
129
|
a(this, "contentType");
|
|
@@ -150,6 +150,8 @@ class Ji {
|
|
|
150
150
|
a(this, "pause");
|
|
151
151
|
a(this, "tag3DContentSvelte");
|
|
152
152
|
a(this, "rectanglePlane");
|
|
153
|
+
a(this, "boxShape");
|
|
154
|
+
a(this, "polygonShape");
|
|
153
155
|
a(this, "dom");
|
|
154
156
|
a(this, "contentDom");
|
|
155
157
|
a(this, "initialConfig");
|
|
@@ -167,53 +169,68 @@ class Ji {
|
|
|
167
169
|
*/
|
|
168
170
|
a(this, "hoverEnabled");
|
|
169
171
|
a(this, "ready", () => {
|
|
170
|
-
const { promise:
|
|
172
|
+
const { promise: t, resolve: e } = ue();
|
|
171
173
|
if (!this._updating)
|
|
172
174
|
e();
|
|
173
175
|
else {
|
|
174
|
-
const
|
|
175
|
-
this._updating || (clearInterval(
|
|
176
|
+
const i = setInterval(() => {
|
|
177
|
+
this._updating || (clearInterval(i), e());
|
|
176
178
|
}, 17);
|
|
177
179
|
setTimeout(() => {
|
|
178
|
-
clearInterval(
|
|
180
|
+
clearInterval(i), e();
|
|
179
181
|
}, 300);
|
|
180
182
|
}
|
|
181
|
-
return
|
|
183
|
+
return t;
|
|
182
184
|
});
|
|
183
|
-
var f,
|
|
184
|
-
this.plugin =
|
|
185
|
-
const
|
|
186
|
-
e.stickType =
|
|
187
|
-
const
|
|
188
|
-
e.initialConfig =
|
|
189
|
-
const l =
|
|
190
|
-
e.config = r, this.id = (
|
|
185
|
+
var f, m, p, d, c, u, v, b;
|
|
186
|
+
this.plugin = t;
|
|
187
|
+
const i = ie(e);
|
|
188
|
+
e.stickType = i;
|
|
189
|
+
const s = JSON.parse(JSON.stringify(e.data)), o = (f = e.initialConfig) != null ? f : e.config ? JSON.parse(JSON.stringify(e.config)) : {};
|
|
190
|
+
e.initialConfig = o;
|
|
191
|
+
const l = R(e, t.config), r = this.getConfig(e);
|
|
192
|
+
e.config = r, this.id = (m = e.id) != null ? m : fe(), this.enabled = (p = e.enabled) != null ? p : !0, this.contentType = e.contentType, this.hoverEnabled = (c = (d = r.popoverConfig) == null ? void 0 : d.enabled) != null ? c : !0, this.data = (u = r.initialData) != null && u.important ? T(e.data, s, r.initialData) : T(e.data, r.initialData, s);
|
|
191
193
|
let n;
|
|
192
194
|
typeof r.unfoldedConfig == "object" ? r.unfoldedConfig.keep === "unfolded" ? n = !0 : r.unfoldedConfig.keep === "folded" ? n = !1 : n = !this.can("fold") : n = !this.can("fold"), this.state = y({
|
|
193
195
|
visible: void 0,
|
|
194
196
|
unfolded: n
|
|
195
197
|
}, r.initialState), this.isPopoverConfigEnabled() && (this.state.unfolded = !1), this.normalLineLength = (b = (v = e.style) == null ? void 0 : v.point) == null ? void 0 : b.normalLen, this.originPosition = e.position, e.originPosition = this.originPosition, this.position = (() => {
|
|
196
|
-
var
|
|
197
|
-
const
|
|
198
|
-
if (
|
|
198
|
+
var U;
|
|
199
|
+
const h = e.originPosition, x = t.workUtil.transform;
|
|
200
|
+
if (e.stickType === "3DBox") {
|
|
201
|
+
if (!h)
|
|
202
|
+
return {
|
|
203
|
+
start: [0, 0, 0],
|
|
204
|
+
end: [0, 0, 0],
|
|
205
|
+
rotation: [0, 0, 0]
|
|
206
|
+
};
|
|
207
|
+
const { start: C, end: A, rotation: F } = h;
|
|
208
|
+
return {
|
|
209
|
+
start: w(C.map((I) => Number(I))).toArray(),
|
|
210
|
+
end: w(A.map((I) => Number(I))).toArray(),
|
|
211
|
+
rotation: w(F.map((I) => Number(I))).toArray()
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
if (e.stickType === "Polygon")
|
|
215
|
+
return h ? h.map(w).map((C) => O(C, x).toArray()) : [];
|
|
216
|
+
if (!h)
|
|
199
217
|
return;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
C = new P.Vector3().fromArray(C).clone().add(I.clone().setLength(this.normalLineLength)).toArray();
|
|
218
|
+
let M = h;
|
|
219
|
+
if (Array.isArray(h) && h.length === 4 ? M = h.map(w).map((C) => O(C, x).toArray()) : M = O(w(h), x).toArray(), (e.stickType === "2DPoint" || e.stickType === "3DPoint") && ((U = r == null ? void 0 : r.tagNormalLineConfig) != null && U.enabled) && e.normal && this.normalLineLength) {
|
|
220
|
+
const C = new k.Vector3().fromArray(e.normal);
|
|
221
|
+
M = new k.Vector3().fromArray(M).clone().add(C.clone().setLength(this.normalLineLength)).toArray();
|
|
205
222
|
}
|
|
206
|
-
return
|
|
223
|
+
return M;
|
|
207
224
|
})(), this.matrix = e.matrix ? (() => {
|
|
208
|
-
const
|
|
209
|
-
return
|
|
210
|
-
})() : e.matrix, this.initialConfig =
|
|
211
|
-
this[
|
|
225
|
+
const h = new k.Matrix4().fromArray(e.matrix);
|
|
226
|
+
return h.premultiply(t.workUtil.transform), h.elements;
|
|
227
|
+
})() : e.matrix, this.initialConfig = o, this.computedConfig = l, this.stickType = i, this.config = e.config, this.fiveState = e.fiveState, this.normal = e.normal, this.cache = new ce(), this.hooks = new te(), Object.keys(e).forEach((h) => {
|
|
228
|
+
this[h] === void 0 && e[h] !== void 0 && (this[h] = e[h]);
|
|
212
229
|
});
|
|
213
230
|
}
|
|
214
231
|
get visible() {
|
|
215
|
-
var
|
|
216
|
-
return ((
|
|
232
|
+
var t;
|
|
233
|
+
return ((t = this.temporaryState) == null ? void 0 : t.visible) !== !1 && this.state.visible !== !1 && this.enabled !== !1;
|
|
217
234
|
}
|
|
218
235
|
get five() {
|
|
219
236
|
return this.plugin.five;
|
|
@@ -225,13 +242,13 @@ class Ji {
|
|
|
225
242
|
return this.plugin.workUtil;
|
|
226
243
|
}
|
|
227
244
|
get centerPosition() {
|
|
228
|
-
const
|
|
229
|
-
return ne(...Array.isArray(
|
|
245
|
+
const t = q(this);
|
|
246
|
+
return ne(...Array.isArray(t) ? t : [t]);
|
|
230
247
|
}
|
|
231
248
|
get currentConfig() {
|
|
232
|
-
var
|
|
233
|
-
const
|
|
234
|
-
return (
|
|
249
|
+
var s, o;
|
|
250
|
+
const t = R(this, this.plugin.config, { useCache: !0 }), e = this.five.getCurrentState().mode, i = (s = t.configWithFiveMode) == null ? void 0 : s[e];
|
|
251
|
+
return (o = i != null ? i : t) != null ? o : {};
|
|
235
252
|
}
|
|
236
253
|
get currentVisible() {
|
|
237
254
|
return !(!this.plugin.state.enabled || !this.plugin.state.visible || !this.enabled || !this.state.visible);
|
|
@@ -248,25 +265,25 @@ class Ji {
|
|
|
248
265
|
/**
|
|
249
266
|
* @description 找到标签
|
|
250
267
|
*/
|
|
251
|
-
find(
|
|
252
|
-
return
|
|
253
|
-
var
|
|
268
|
+
find(t) {
|
|
269
|
+
return L(this, null, function* () {
|
|
270
|
+
var s;
|
|
254
271
|
const e = this.fiveState;
|
|
255
272
|
if (!this.fiveState)
|
|
256
273
|
return this;
|
|
257
|
-
const
|
|
258
|
-
if (
|
|
259
|
-
const
|
|
260
|
-
if (
|
|
274
|
+
const i = (s = t == null ? void 0 : t.targetMode) != null ? s : this.five.state.mode;
|
|
275
|
+
if (i === "Panorama") {
|
|
276
|
+
const o = e == null ? void 0 : e.panoIndex;
|
|
277
|
+
if (J(o))
|
|
261
278
|
return this;
|
|
262
|
-
const l = this.workUtil.getObserverPosition(
|
|
279
|
+
const l = this.workUtil.getObserverPosition(o), r = this.centerPosition.clone().sub(l).normalize();
|
|
263
280
|
this.five.setState(y({
|
|
264
281
|
mode: "Panorama",
|
|
265
282
|
workCode: this.workUtil.workCode,
|
|
266
|
-
panoIndex:
|
|
283
|
+
panoIndex: o
|
|
267
284
|
}, le(r))), yield this.five.ready();
|
|
268
285
|
} else
|
|
269
|
-
|
|
286
|
+
i === "Mapview" && (yield ae(this.five, this.centerPosition, t == null ? void 0 : t.pointConfig));
|
|
270
287
|
return this;
|
|
271
288
|
});
|
|
272
289
|
}
|
|
@@ -280,12 +297,12 @@ class Ji {
|
|
|
280
297
|
/**
|
|
281
298
|
* @description 闪烁
|
|
282
299
|
*/
|
|
283
|
-
blink(
|
|
284
|
-
return
|
|
285
|
-
var r, n, f,
|
|
300
|
+
blink(t) {
|
|
301
|
+
return L(this, null, function* () {
|
|
302
|
+
var r, n, f, m, p, d;
|
|
286
303
|
yield this.ready(), this._currentBlinkInstance && !this._currentBlinkInstance.completed && ((n = (r = this._currentBlinkInstance).preComplete) == null || n.call(r), this._currentBlinkInstance = void 0);
|
|
287
|
-
const e = (f = this.enabled) != null ? f : !0,
|
|
288
|
-
|
|
304
|
+
const e = (f = this.enabled) != null ? f : !0, i = (m = this.state) == null ? void 0 : m.visible, s = e && i;
|
|
305
|
+
s === !1 && (this.state.visible = !0, this.enabled = !0, this.applyVisible(), this.plugin.render(), this.computeRenderType() !== "Mesh" ? yield new Promise((c) => {
|
|
289
306
|
if (this.dom || this.contentDom) {
|
|
290
307
|
c();
|
|
291
308
|
return;
|
|
@@ -293,7 +310,7 @@ class Ji {
|
|
|
293
310
|
const u = setInterval(() => {
|
|
294
311
|
(this.dom || this.contentDom) && (c(), clearInterval(u));
|
|
295
312
|
}, 16.7);
|
|
296
|
-
}) : this.stickType === "Model" && !((
|
|
313
|
+
}) : this.stickType === "Model" && !((p = this.model) != null && p.object) ? yield (d = this.model) == null ? void 0 : d.promise : this.stickType === "Plane" && (yield new Promise((c) => {
|
|
297
314
|
if (this.mediaPlane) {
|
|
298
315
|
c();
|
|
299
316
|
return;
|
|
@@ -302,30 +319,30 @@ class Ji {
|
|
|
302
319
|
this.mediaPlane && (c(), clearInterval(u));
|
|
303
320
|
}, 16.7);
|
|
304
321
|
})), this.dom && (this.dom.style.visibility = "hidden"), this.contentDom && (this.contentDom.style.visibility = "hidden"));
|
|
305
|
-
const
|
|
306
|
-
var v, b,
|
|
322
|
+
const o = (() => {
|
|
323
|
+
var v, b, h;
|
|
307
324
|
const c = [];
|
|
308
|
-
c.push(this.dom), c.push((b = (v = this.tag3DContentSvelte) == null ? void 0 : v.css3DInstance) == null ? void 0 : b.container), c.push((
|
|
325
|
+
c.push(this.dom), c.push((b = (v = this.tag3DContentSvelte) == null ? void 0 : v.css3DInstance) == null ? void 0 : b.container), c.push((h = this.model) == null ? void 0 : h.object), c.push(this.mediaPlane), c.push(this.boxShape), c.push(this.polygonShape);
|
|
309
326
|
const u = this.getAdditionalBlinkTargets();
|
|
310
327
|
if (u) {
|
|
311
|
-
const
|
|
312
|
-
c.push(...
|
|
328
|
+
const x = Array.isArray(u) ? u : [u];
|
|
329
|
+
c.push(...x);
|
|
313
330
|
}
|
|
314
331
|
return c.filter(Boolean);
|
|
315
332
|
})();
|
|
316
|
-
if (!
|
|
333
|
+
if (!o.length) {
|
|
317
334
|
console.warn("tagDom is empty");
|
|
318
335
|
return;
|
|
319
336
|
}
|
|
320
|
-
const l =
|
|
321
|
-
this._currentBlinkInstance = l(
|
|
337
|
+
const l = s ? oe : re;
|
|
338
|
+
this._currentBlinkInstance = l(o, y({
|
|
322
339
|
begin: () => {
|
|
323
|
-
|
|
340
|
+
s === !1 && (this.dom && (this.dom.style.visibility = ""), this.contentDom && (this.contentDom.style.visibility = ""));
|
|
324
341
|
},
|
|
325
342
|
updateRender: () => {
|
|
326
343
|
this.five.needsRender = !0;
|
|
327
344
|
}
|
|
328
|
-
},
|
|
345
|
+
}, t));
|
|
329
346
|
try {
|
|
330
347
|
yield this._currentBlinkInstance.finished;
|
|
331
348
|
} catch (c) {
|
|
@@ -333,7 +350,7 @@ class Ji {
|
|
|
333
350
|
} finally {
|
|
334
351
|
this._currentBlinkInstance = void 0;
|
|
335
352
|
}
|
|
336
|
-
e === !1 && (this.enabled = !1, this.updateVisible()),
|
|
353
|
+
e === !1 && (this.enabled = !1, this.updateVisible()), i === !1 && this.updateVisible(), s === !1 && (this.dom && (this.dom.style.visibility = ""), this.contentDom && (this.contentDom.style.visibility = ""));
|
|
337
354
|
});
|
|
338
355
|
}
|
|
339
356
|
/**
|
|
@@ -361,49 +378,49 @@ class Ji {
|
|
|
361
378
|
* @description 禁用
|
|
362
379
|
*/
|
|
363
380
|
disable() {
|
|
364
|
-
var i;
|
|
365
|
-
this.enabled = !1, this.hooks.emit("disable"), (
|
|
381
|
+
var t, e, i;
|
|
382
|
+
this.enabled = !1, this.hooks.emit("disable"), (t = this.rectanglePlane) == null || t.delete(), (e = this.boxShape) == null || e.delete(), (i = this.polygonShape) == null || i.delete(), this.five.needsRender = !0, this.applyVisible();
|
|
366
383
|
}
|
|
367
384
|
/**
|
|
368
385
|
* @deprecated use `setData` instead
|
|
369
386
|
*/
|
|
370
|
-
changeData(
|
|
371
|
-
return this.setData(
|
|
387
|
+
changeData(t, e = !0) {
|
|
388
|
+
return this.setData(t, e);
|
|
372
389
|
}
|
|
373
390
|
/**
|
|
374
391
|
* @deprecated use `setPosition` instead
|
|
375
392
|
*/
|
|
376
|
-
changePosition(
|
|
377
|
-
return this.setPosition(
|
|
393
|
+
changePosition(t) {
|
|
394
|
+
return this.setPosition(t);
|
|
378
395
|
}
|
|
379
396
|
/**
|
|
380
397
|
* @description 修改标签数据
|
|
381
398
|
* @param deepMerge 是否深度合并 data,默认为 true
|
|
382
399
|
*/
|
|
383
|
-
setData(
|
|
384
|
-
e ? this.data =
|
|
400
|
+
setData(t, e = !0) {
|
|
401
|
+
e ? this.data = T(this.data, t) : this.data = y(y({}, this.data), t), this.hooks.emit("dataChanged", this.data);
|
|
385
402
|
}
|
|
386
403
|
/**
|
|
387
404
|
* @description 修改标签位置
|
|
388
405
|
*/
|
|
389
|
-
setPosition(
|
|
406
|
+
setPosition(t) {
|
|
390
407
|
throw new Error("Method not implemented.");
|
|
391
408
|
}
|
|
392
409
|
/**
|
|
393
410
|
* @description 设置标签实例的属性
|
|
394
411
|
* @param deepMerge 是否深度合并 data,默认为 true
|
|
395
412
|
*/
|
|
396
|
-
set(
|
|
397
|
-
this.plugin.tagsLengthWillUpdate = !0, e ?
|
|
413
|
+
set(t, e = !0) {
|
|
414
|
+
this.plugin.tagsLengthWillUpdate = !0, e ? T(this, t) : Object.assign(this, t), this.cache.clear();
|
|
398
415
|
}
|
|
399
416
|
updateConfig() {
|
|
400
|
-
var
|
|
401
|
-
const
|
|
402
|
-
this.computedConfig =
|
|
417
|
+
var i;
|
|
418
|
+
const t = this.getConfig(void 0, { useCache: !1 });
|
|
419
|
+
this.computedConfig = t;
|
|
403
420
|
const e = this.getConfig();
|
|
404
421
|
if (this.config = e, this.config.initialData) {
|
|
405
|
-
const
|
|
406
|
-
this.data = (
|
|
422
|
+
const s = JSON.parse(JSON.stringify(this.data));
|
|
423
|
+
this.data = (i = e.initialData) != null && i.important ? T(this.data, s, e.initialData) : T(this.data, e.initialData, s);
|
|
407
424
|
}
|
|
408
425
|
this.cache.clear();
|
|
409
426
|
}
|
|
@@ -411,156 +428,170 @@ class Ji {
|
|
|
411
428
|
this.enabled ? (this.state.visible = this.getVisible(), this.applyVisible()) : this.applyVisible(), this.five.needsRender = !0, this._updating = !1;
|
|
412
429
|
}
|
|
413
430
|
updateZIndex() {
|
|
414
|
-
const
|
|
415
|
-
this.zIndex = Math.round((1e4 - (
|
|
431
|
+
const t = this.getSquaredDistance();
|
|
432
|
+
this.zIndex = Math.round((1e4 - (t != null ? t : 0)) * 100);
|
|
416
433
|
}
|
|
417
|
-
getConfig(
|
|
434
|
+
getConfig(t, e) {
|
|
418
435
|
var l, r, n;
|
|
419
|
-
const
|
|
420
|
-
return (n =
|
|
436
|
+
const i = R(t != null ? t : this, this.plugin.config, { useCache: e == null ? void 0 : e.useCache }), s = (l = e == null ? void 0 : e.fiveMode) != null ? l : this.five.getCurrentState().mode, o = (r = i.configWithFiveMode) == null ? void 0 : r[s];
|
|
437
|
+
return (n = o != null ? o : i) != null ? n : {};
|
|
421
438
|
}
|
|
422
|
-
getDistance(
|
|
423
|
-
const
|
|
439
|
+
getDistance(t, e = 3) {
|
|
440
|
+
const i = y(y({}, this.five.getCurrentState()), t), { panoIndex: s, mode: o } = i, l = o === "Panorama" ? this.workUtil.getObserverPosition(s) : this.five.camera.position, r = this.centerPosition;
|
|
424
441
|
return !l || !r ? -1 : l.distanceTo(r);
|
|
425
442
|
}
|
|
426
443
|
/**
|
|
427
444
|
* @description 用于排序的距离,性能更好
|
|
428
445
|
*/
|
|
429
446
|
getSquaredDistance() {
|
|
430
|
-
const
|
|
447
|
+
const t = this.five.camera.position;
|
|
448
|
+
if (this.stickType === "3DBox") {
|
|
449
|
+
const i = this.position;
|
|
450
|
+
if (!i || !i.start)
|
|
451
|
+
return 1 / 0;
|
|
452
|
+
const s = i.start;
|
|
453
|
+
return P(s[0] - t.x, 2) + P(s[1] - t.y, 2) + P(s[2] - t.z, 2);
|
|
454
|
+
}
|
|
455
|
+
if (this.stickType === "Polygon") {
|
|
456
|
+
const i = this.position;
|
|
457
|
+
if (!i || i.length === 0)
|
|
458
|
+
return 1 / 0;
|
|
459
|
+
const s = i[0];
|
|
460
|
+
return P(s[0] - t.x, 2) + P(s[1] - t.y, 2) + P(s[2] - t.z, 2);
|
|
461
|
+
}
|
|
431
462
|
let e;
|
|
432
|
-
return Array.isArray(this.position[0]) ? e = this.position[0] : e = this.position,
|
|
463
|
+
return this.position || console.log(this, "no position"), Array.isArray(this.position[0]) ? e = this.position[0] : e = this.position, P(e[0] - t.x, 2) + P(e[1] - t.y, 2) + P(e[2] - t.z, 2);
|
|
433
464
|
}
|
|
434
|
-
getVisible(
|
|
465
|
+
getVisible(t) {
|
|
435
466
|
if (!this.enabled || !this.plugin.state.enabled || !this.fiveUtil.model)
|
|
436
467
|
return !1;
|
|
437
|
-
const e = y(y({}, this.five.getCurrentState()),
|
|
438
|
-
let
|
|
439
|
-
return
|
|
468
|
+
const e = y(y({}, this.five.getCurrentState()), t);
|
|
469
|
+
let i = this.cache.getVisible(this, e);
|
|
470
|
+
return J(i) && (i = this.computeVisible(e).value, this.cache.setVisible(this, e, i)), i;
|
|
440
471
|
}
|
|
441
|
-
getUnfoldedByPanoIndex(
|
|
472
|
+
getUnfoldedByPanoIndex(t) {
|
|
442
473
|
if (!this.currentVisible)
|
|
443
474
|
return;
|
|
444
|
-
const
|
|
445
|
-
return
|
|
475
|
+
const i = this.computeUnfoldedByPanoIndex(t);
|
|
476
|
+
return i && this.getUnfoldedByCamera();
|
|
446
477
|
}
|
|
447
478
|
getUnfoldedByCamera() {
|
|
448
479
|
return this.currentVisible ? this.computeUnfoldedByCamera() : void 0;
|
|
449
480
|
}
|
|
450
|
-
can(
|
|
451
|
-
var
|
|
452
|
-
if ((
|
|
481
|
+
can(t) {
|
|
482
|
+
var i, s;
|
|
483
|
+
if ((t === "fold" || t === "unfold") && ((s = (i = this.currentConfig) == null ? void 0 : i.popoverConfig) == null ? void 0 : s.enabled) === !0)
|
|
453
484
|
return !1;
|
|
454
485
|
const e = this.currentConfig;
|
|
455
486
|
if (!e || typeof e != "object")
|
|
456
487
|
return !0;
|
|
457
|
-
if (
|
|
488
|
+
if (t === "show" || t === "hide") {
|
|
458
489
|
if (!e.visibleConfig || typeof e.visibleConfig != "object")
|
|
459
490
|
return !0;
|
|
460
|
-
if (
|
|
491
|
+
if (t === "show" && e.visibleConfig.keep === "hidden" || t === "hide" && e.visibleConfig.keep === "visible")
|
|
461
492
|
return !1;
|
|
462
493
|
}
|
|
463
|
-
if (
|
|
494
|
+
if (t === "fold" || t === "unfold") {
|
|
464
495
|
if (!e.unfoldedConfig || typeof e.unfoldedConfig != "object")
|
|
465
496
|
return !0;
|
|
466
|
-
if (
|
|
497
|
+
if (t === "fold" && e.unfoldedConfig.keep === "unfolded" || t === "unfold" && e.unfoldedConfig.keep === "folded")
|
|
467
498
|
return !1;
|
|
468
499
|
}
|
|
469
500
|
return !0;
|
|
470
501
|
}
|
|
471
|
-
onClick(
|
|
502
|
+
onClick(t) {
|
|
472
503
|
}
|
|
473
504
|
computeRenderType() {
|
|
474
|
-
const
|
|
505
|
+
const t = (() => {
|
|
475
506
|
if (this.stickType === "3DPoint")
|
|
476
507
|
return "Dom";
|
|
477
508
|
const e = this.getConfig();
|
|
478
509
|
if (!e || typeof e != "object" || !e.renderType)
|
|
479
510
|
return;
|
|
480
|
-
const
|
|
481
|
-
if ((!
|
|
511
|
+
const i = this.data.mediaData;
|
|
512
|
+
if ((!i || i.length === 0) && Z(this))
|
|
482
513
|
return e.renderType;
|
|
483
514
|
if (e.renderType === "Mesh") {
|
|
484
|
-
if (
|
|
485
|
-
if (
|
|
486
|
-
if (
|
|
515
|
+
if (Z(this)) {
|
|
516
|
+
if (i.length === 1) {
|
|
517
|
+
if (i[0].type === "Video")
|
|
487
518
|
return navigator.userAgent.toLowerCase().indexOf("firefox") > -1 && navigator.userAgent.toLowerCase().indexOf("mobile") > -1 ? "Dom" : "Mesh";
|
|
488
|
-
if (
|
|
489
|
-
return
|
|
519
|
+
if (i[0].type === "Image")
|
|
520
|
+
return G(i[0].url) === "gif" ? "Dom" : "Mesh";
|
|
490
521
|
}
|
|
491
|
-
} else if (
|
|
492
|
-
return
|
|
522
|
+
} else if (_(this))
|
|
523
|
+
return i.length === 1 && i[0].type === "Image" ? G(i[0].url) === "gif" ? "Dom" : "Mesh" : "BehindDom";
|
|
493
524
|
}
|
|
494
525
|
})();
|
|
495
|
-
return
|
|
526
|
+
return t != null ? t : "Dom";
|
|
496
527
|
}
|
|
497
|
-
computeVisible(
|
|
498
|
-
const e = y(y({}, this.five.getCurrentState()),
|
|
528
|
+
computeVisible(t) {
|
|
529
|
+
const e = y(y({}, this.five.getCurrentState()), t), { panoIndex: i, mode: s } = e, o = [];
|
|
499
530
|
return (() => {
|
|
500
|
-
var f,
|
|
531
|
+
var f, p, d, c;
|
|
501
532
|
const n = (f = this.getConfig().visibleConfig) != null ? f : {};
|
|
502
533
|
if (typeof n == "function")
|
|
503
534
|
return {
|
|
504
535
|
value: n(this.five, { tag: this, distance: this.getDistance(e, void 0) }),
|
|
505
|
-
checkedList:
|
|
536
|
+
checkedList: o,
|
|
506
537
|
reason: "config function result"
|
|
507
538
|
};
|
|
508
539
|
{
|
|
509
540
|
if (n.keep === "hidden")
|
|
510
|
-
return { value: !1, checkedList:
|
|
541
|
+
return { value: !1, checkedList: o, reason: "config.keep is hidden" };
|
|
511
542
|
if (n.keep === "visible")
|
|
512
|
-
return { value: !0, checkedList:
|
|
513
|
-
const u = this.computeVisibleByFiveMode(n,
|
|
543
|
+
return { value: !0, checkedList: o, reason: "config.keep is visible" };
|
|
544
|
+
const u = this.computeVisibleByFiveMode(n, s);
|
|
514
545
|
if ((u == null ? void 0 : u.value) === !1)
|
|
515
546
|
return u;
|
|
516
|
-
if (n.followModelVisibility === !0 && ["poincare", "aerophoto", "sand"].includes(this.workUtil.fromType) && (
|
|
517
|
-
const
|
|
547
|
+
if (n.followModelVisibility === !0 && ["poincare", "aerophoto", "sand"].includes(this.workUtil.fromType) && (s === "Floorplan" || s === "Mapview")) {
|
|
548
|
+
const m = this.computeVisibleByFloorIndex(), { value: v } = m, b = W(m, ["value"]);
|
|
518
549
|
if (v === !1)
|
|
519
|
-
return y({ value: !1, checkedList:
|
|
550
|
+
return y({ value: !1, checkedList: o, reason: "followModelVisibility check failed" }, b);
|
|
520
551
|
}
|
|
521
|
-
if (
|
|
522
|
-
if (
|
|
552
|
+
if (E(s) && n.visiblePanoIndex !== void 0 && n.visiblePanoIndex !== "all" && i !== void 0) {
|
|
553
|
+
if (o.push("visiblePanoIndex"), Array.isArray(n.visiblePanoIndex) && !n.visiblePanoIndex.includes(i))
|
|
523
554
|
return {
|
|
524
555
|
value: !1,
|
|
525
|
-
checkedList:
|
|
526
|
-
reason: `current panoIndex is not included in visiblePano. currentPanoIndex: ${
|
|
556
|
+
checkedList: o,
|
|
557
|
+
reason: `current panoIndex is not included in visiblePano. currentPanoIndex: ${i}, visiblePanoIndex: ${n.visiblePanoIndex}`
|
|
527
558
|
};
|
|
528
|
-
if (n.visiblePanoIndex === "current" &&
|
|
559
|
+
if (n.visiblePanoIndex === "current" && i !== ((p = this.fiveState) == null ? void 0 : p.panoIndex))
|
|
529
560
|
return {
|
|
530
561
|
value: !1,
|
|
531
|
-
checkedList:
|
|
532
|
-
reason: `current panoIndex is not equal to tag.panoIndex. currentPanoIndex: ${
|
|
562
|
+
checkedList: o,
|
|
563
|
+
reason: `current panoIndex is not equal to tag.panoIndex. currentPanoIndex: ${i}, tag.panoIndex: ${(d = this.fiveState) == null ? void 0 : d.panoIndex}`
|
|
533
564
|
};
|
|
534
565
|
}
|
|
535
|
-
if (n.visibleDistance !== void 0 && (
|
|
566
|
+
if (n.visibleDistance !== void 0 && (o.push("visibleDistance"), n.visibleDistance !== "unLimited")) {
|
|
536
567
|
const v = this.getDistance(e, 1);
|
|
537
|
-
if (
|
|
568
|
+
if (S(v, n.visibleDistance) === !1)
|
|
538
569
|
return {
|
|
539
570
|
value: !1,
|
|
540
|
-
checkedList:
|
|
541
|
-
panoIndex:
|
|
571
|
+
checkedList: o,
|
|
572
|
+
panoIndex: i,
|
|
542
573
|
visibleDistance: n.visibleDistance,
|
|
543
574
|
reason: `distance is not in visibleDistance. distance: ${v}, visibleDistance: ${n.visibleDistance.min} - ${n.visibleDistance.max}`
|
|
544
575
|
};
|
|
545
576
|
}
|
|
546
577
|
if (n.intersectRaycaster !== !1 && (typeof n.intersectRaycaster != "object" || n.intersectRaycaster.enabled !== !1)) {
|
|
547
|
-
if (
|
|
578
|
+
if (o.push("intersectRaycaster"), i === void 0)
|
|
548
579
|
return {
|
|
549
580
|
value: !1,
|
|
550
|
-
checkedList:
|
|
551
|
-
reason: `intersectRaycaster check failed: panoIndex is ${
|
|
581
|
+
checkedList: o,
|
|
582
|
+
reason: `intersectRaycaster check failed: panoIndex is ${i}`
|
|
552
583
|
};
|
|
553
|
-
if (
|
|
554
|
-
|
|
584
|
+
if (i === ((c = this.fiveState) == null ? void 0 : c.panoIndex))
|
|
585
|
+
o.push("intersectCheckSkiped");
|
|
555
586
|
else {
|
|
556
|
-
const v = this.computeVisibleByIntersect(
|
|
587
|
+
const v = this.computeVisibleByIntersect(i);
|
|
557
588
|
if (v.value === !1)
|
|
558
|
-
return Object.assign(v, { checkedList:
|
|
589
|
+
return Object.assign(v, { checkedList: o });
|
|
559
590
|
}
|
|
560
591
|
}
|
|
561
592
|
return {
|
|
562
593
|
value: !0,
|
|
563
|
-
checkedList:
|
|
594
|
+
checkedList: o,
|
|
564
595
|
reason: "all check passed"
|
|
565
596
|
};
|
|
566
597
|
}
|
|
@@ -569,70 +600,70 @@ class Ji {
|
|
|
569
600
|
/**
|
|
570
601
|
* @description 计算标签可见性
|
|
571
602
|
*/
|
|
572
|
-
computeVisibleByFiveMode(
|
|
573
|
-
const
|
|
603
|
+
computeVisibleByFiveMode(t, e) {
|
|
604
|
+
const i = () => {
|
|
574
605
|
var l, r;
|
|
575
|
-
let
|
|
576
|
-
if (
|
|
577
|
-
return
|
|
578
|
-
if (
|
|
579
|
-
return
|
|
580
|
-
if (
|
|
581
|
-
return !
|
|
582
|
-
if (
|
|
606
|
+
let o = typeof t.visibleFiveMode == "function" ? t.visibleFiveMode(this) : t.visibleFiveMode;
|
|
607
|
+
if (o || (o = (r = (l = this.fiveState) == null ? void 0 : l.mode) != null ? r : this.workUtil.observers.length ? "Panorama" : "ModelLike"), Array.isArray(o))
|
|
608
|
+
return o.includes(e);
|
|
609
|
+
if (o === "ModelLike")
|
|
610
|
+
return B(e);
|
|
611
|
+
if (o === "PanoramaLike")
|
|
612
|
+
return !E(e);
|
|
613
|
+
if (o === "all")
|
|
583
614
|
return !0;
|
|
584
|
-
if (typeof
|
|
585
|
-
return
|
|
615
|
+
if (typeof o == "string")
|
|
616
|
+
return o === e;
|
|
586
617
|
};
|
|
587
618
|
if ((() => {
|
|
588
619
|
var l;
|
|
589
|
-
const
|
|
590
|
-
if (
|
|
591
|
-
if (
|
|
620
|
+
const o = i();
|
|
621
|
+
if (H((l = this.fiveState) == null ? void 0 : l.panoIndex) && t.entryFromModel) {
|
|
622
|
+
if (B(e) && o ? this.entryFromModel = !1 : this.entryFromModel = !0, B(e))
|
|
592
623
|
return !0;
|
|
593
624
|
} else
|
|
594
625
|
this.entryFromModel = !1;
|
|
595
|
-
return
|
|
626
|
+
return o;
|
|
596
627
|
})() === !1)
|
|
597
628
|
return {
|
|
598
629
|
value: !1,
|
|
599
630
|
reason: "current mode is not included in visibleFiveMode",
|
|
600
|
-
visibleFiveMode:
|
|
631
|
+
visibleFiveMode: t.visibleFiveMode,
|
|
601
632
|
mode: e
|
|
602
633
|
};
|
|
603
634
|
}
|
|
604
635
|
/** 通过射线检测标签可用性 */
|
|
605
|
-
computeVisibleByIntersect(
|
|
606
|
-
var n, f,
|
|
607
|
-
const e =
|
|
608
|
-
if (
|
|
609
|
-
return { value: !1, reason: { type: "startPosition is undefined", fivePanoIndex:
|
|
610
|
-
const
|
|
636
|
+
computeVisibleByIntersect(t) {
|
|
637
|
+
var n, f, m, p;
|
|
638
|
+
const e = K(K((n = this.getConfig().visibleConfig) != null ? n : {}).intersectRaycaster), i = t != null ? t : this.five.getCurrentState().panoIndex, s = E(this.five.getCurrentState().mode) ? this.workUtil.getObserverPosition(i) : this.five.camera.position;
|
|
639
|
+
if (s === void 0)
|
|
640
|
+
return { value: !1, reason: { type: "startPosition is undefined", fivePanoIndex: i } };
|
|
641
|
+
const o = se(
|
|
611
642
|
(() => {
|
|
612
643
|
var c;
|
|
613
644
|
const d = (c = e.checkPoints) != null ? c : "center";
|
|
614
|
-
return d === "center" ?
|
|
645
|
+
return d === "center" ? X(this) : d === "corner" ? q(this) : Array.isArray(d) ? d : [];
|
|
615
646
|
})()
|
|
616
647
|
);
|
|
617
648
|
let l = 0, r = 0;
|
|
618
|
-
for (const d of
|
|
619
|
-
const c = new
|
|
649
|
+
for (const d of o) {
|
|
650
|
+
const c = new k.Vector3().subVectors(d, s).normalize();
|
|
620
651
|
let u;
|
|
621
|
-
|
|
622
|
-
const [v] = this.fiveUtil.model.intersectRaycaster(
|
|
652
|
+
N.set(s, c);
|
|
653
|
+
const [v] = this.fiveUtil.model.intersectRaycaster(N);
|
|
623
654
|
u = v == null ? void 0 : v.distance;
|
|
624
655
|
const b = (() => {
|
|
625
|
-
if (!
|
|
656
|
+
if (!_(this))
|
|
626
657
|
return;
|
|
627
|
-
const
|
|
628
|
-
var
|
|
629
|
-
return (
|
|
630
|
-
}).filter(
|
|
631
|
-
return
|
|
632
|
-
})(),
|
|
633
|
-
u = Math.min(u != null ? u : 1 / 0, (
|
|
634
|
-
const
|
|
635
|
-
if (l >=
|
|
658
|
+
const C = this.plugin.tags.filter(_).map((F) => {
|
|
659
|
+
var I;
|
|
660
|
+
return (I = F.model) == null ? void 0 : I.object;
|
|
661
|
+
}).filter(H), [A] = N.intersectObjects(C, !0);
|
|
662
|
+
return A;
|
|
663
|
+
})(), h = s.distanceTo(d), x = (f = e.distanceAccuracy) != null ? f : 0.01;
|
|
664
|
+
u = Math.min(u != null ? u : 1 / 0, (m = b == null ? void 0 : b.distance) != null ? m : 1 / 0), u + x >= h ? l++ : r++;
|
|
665
|
+
const U = (p = e.needPassed) != null ? p : 1;
|
|
666
|
+
if (l >= U)
|
|
636
667
|
return { value: !0 };
|
|
637
668
|
}
|
|
638
669
|
return r === 0 ? { value: !0 } : {
|
|
@@ -646,124 +677,124 @@ class Ji {
|
|
|
646
677
|
};
|
|
647
678
|
}
|
|
648
679
|
computeVisibleByFloorIndex() {
|
|
649
|
-
var
|
|
650
|
-
let
|
|
651
|
-
const e = (
|
|
652
|
-
e !== void 0 ?
|
|
680
|
+
var s, o, l, r, n, f, m;
|
|
681
|
+
let t = 0;
|
|
682
|
+
const e = (s = this.fiveState) == null ? void 0 : s.panoIndex;
|
|
683
|
+
e !== void 0 ? t = (o = this.workUtil.getObserver(e)) == null ? void 0 : o.floorIndex : t = de(
|
|
653
684
|
this.workUtil.work,
|
|
654
|
-
(
|
|
685
|
+
(m = (f = (r = (l = this.model) == null ? void 0 : l.object) == null ? void 0 : r.position) != null ? f : (n = this.mediaPlane) == null ? void 0 : n.position) != null ? m : X(this)
|
|
655
686
|
);
|
|
656
|
-
const
|
|
687
|
+
const i = this.fiveUtil.model.shownFloor;
|
|
657
688
|
return {
|
|
658
|
-
value:
|
|
659
|
-
currentFiveFloorIndex:
|
|
660
|
-
tagFloorIndex:
|
|
689
|
+
value: i === null || i === t,
|
|
690
|
+
currentFiveFloorIndex: i,
|
|
691
|
+
tagFloorIndex: t
|
|
661
692
|
};
|
|
662
693
|
}
|
|
663
694
|
/**
|
|
664
695
|
* @description 获取是否展开
|
|
665
696
|
*/
|
|
666
|
-
computeUnfoldedByPanoIndex(
|
|
697
|
+
computeUnfoldedByPanoIndex(t) {
|
|
667
698
|
const e = this.getConfig().unfoldedConfig;
|
|
668
699
|
if (e) {
|
|
669
700
|
if (typeof e == "function")
|
|
670
|
-
return e(this.five, { tag: this, distance: this.getDistance({ panoIndex:
|
|
701
|
+
return e(this.five, { tag: this, distance: this.getDistance({ panoIndex: t }) });
|
|
671
702
|
if (e.keep === "folded")
|
|
672
703
|
return !1;
|
|
673
704
|
if (e.keep === "unfolded")
|
|
674
705
|
return !0;
|
|
675
|
-
if (e.unfoldDistance &&
|
|
706
|
+
if (e.unfoldDistance && S(this.getDistance({ panoIndex: t }), e.unfoldDistance) === !1)
|
|
676
707
|
return !1;
|
|
677
708
|
}
|
|
678
709
|
}
|
|
679
710
|
// 该方法有很大优化空间,这个检测显示方法不应该挂在tagBase下,做了多次不必要计算(MinimumDistance,ScreenCenter)。
|
|
680
711
|
computeUnfoldedByCamera() {
|
|
681
|
-
var e,
|
|
682
|
-
if (this.entryFromModel &&
|
|
712
|
+
var e, i;
|
|
713
|
+
if (this.entryFromModel && B(this.five.state.mode))
|
|
683
714
|
return !1;
|
|
684
|
-
const
|
|
685
|
-
if (
|
|
686
|
-
if (typeof
|
|
687
|
-
return
|
|
688
|
-
if (
|
|
715
|
+
const t = this.getConfig().unfoldedConfig;
|
|
716
|
+
if (t) {
|
|
717
|
+
if (typeof t == "function")
|
|
718
|
+
return t(this.five, { tag: this, distance: this.getDistance() });
|
|
719
|
+
if (t.keep === "folded")
|
|
689
720
|
return !1;
|
|
690
|
-
if (
|
|
721
|
+
if (t.keep === "unfolded")
|
|
691
722
|
return !0;
|
|
692
|
-
if (typeof
|
|
723
|
+
if (typeof t != "object" || t.autoUnfold === void 0 || t.autoUnfold === !1 || t.autoUnfold.enable === !1 || !t.autoUnfold.strategy)
|
|
693
724
|
return;
|
|
694
|
-
if (
|
|
695
|
-
const
|
|
696
|
-
if (
|
|
725
|
+
if (t.autoUnfold.strategy === "ScreenPostion") {
|
|
726
|
+
const s = this.computeTagProject();
|
|
727
|
+
if (s && S(s.x, t.autoUnfold.autoUnfoldProjectX) === !1)
|
|
697
728
|
return !1;
|
|
698
729
|
}
|
|
699
|
-
if (
|
|
730
|
+
if (t.autoUnfold.strategy === "MinimumDistance") {
|
|
700
731
|
const l = this.plugin.filterPointTag.filter((n) => n.currentVisible).filter((n) => {
|
|
701
732
|
const f = this.computeTagProject();
|
|
702
733
|
if (!f)
|
|
703
734
|
return !1;
|
|
704
|
-
const { x:
|
|
705
|
-
return !(Math.abs(d) > 1 || Math.abs(
|
|
735
|
+
const { x: m, y: p, z: d } = f;
|
|
736
|
+
return !(Math.abs(d) > 1 || Math.abs(m) > 1 || Math.abs(p) > 1);
|
|
706
737
|
}).map((n) => ({ tag: n, id: n.id, tagConfig: n.getConfig().unfoldedConfig })).filter(({ tagConfig: n }) => {
|
|
707
|
-
var f,
|
|
708
|
-
return !(typeof n == "function" || n.keep || n.autoUnfold === !1 || ((f = n.autoUnfold) == null ? void 0 : f.enable) === !1 || ((
|
|
709
|
-
}).map((n) =>
|
|
710
|
-
const
|
|
711
|
-
return !(
|
|
738
|
+
var f, m;
|
|
739
|
+
return !(typeof n == "function" || n.keep || n.autoUnfold === !1 || ((f = n.autoUnfold) == null ? void 0 : f.enable) === !1 || ((m = n.autoUnfold) == null ? void 0 : m.strategy) !== "MinimumDistance");
|
|
740
|
+
}).map((n) => j(y({}, n), { distance: n.tag.getDistance() })).filter(({ distance: n, tagConfig: f }) => {
|
|
741
|
+
const m = f.autoUnfold.distance;
|
|
742
|
+
return !(m && S(n, m) === !1);
|
|
712
743
|
}).sort((n, f) => n.distance - f.distance).findIndex((n) => n.id === this.id);
|
|
713
|
-
if (l === -1 || l <= ((e =
|
|
744
|
+
if (l === -1 || l <= ((e = t.autoUnfold.maxNumber) != null ? e : 1) - 1 === !1)
|
|
714
745
|
return !1;
|
|
715
746
|
}
|
|
716
|
-
if (
|
|
747
|
+
if (t.autoUnfold.strategy === "FoldWhenMove")
|
|
717
748
|
return !1;
|
|
718
|
-
if (
|
|
719
|
-
const
|
|
720
|
-
|
|
721
|
-
const l = new
|
|
722
|
-
l.setFromProjectionMatrix(
|
|
723
|
-
const r = this.five.camera.getWorldDirection(new
|
|
749
|
+
if (t.autoUnfold.strategy === "ScreenCenter") {
|
|
750
|
+
const s = this.plugin.filterPointTag, o = new k.Matrix4();
|
|
751
|
+
o.multiplyMatrices(this.five.camera.projectionMatrix, this.five.camera.matrixWorldInverse);
|
|
752
|
+
const l = new k.Frustum();
|
|
753
|
+
l.setFromProjectionMatrix(o);
|
|
754
|
+
const r = this.five.camera.getWorldDirection(new k.Vector3()), f = s.filter((p) => {
|
|
724
755
|
var v, b;
|
|
725
|
-
if (!
|
|
756
|
+
if (!p.currentVisible)
|
|
726
757
|
return !1;
|
|
727
|
-
const d =
|
|
728
|
-
if (
|
|
758
|
+
const d = p.getConfig().unfoldedConfig;
|
|
759
|
+
if (p.manuallyOperated || typeof d != "object" || (d == null ? void 0 : d.autoUnfold) === !1 || ((v = d == null ? void 0 : d.autoUnfold) == null ? void 0 : v.strategy) !== "ScreenCenter" || d.keep || ((b = d.autoUnfold) == null ? void 0 : b.enable) === !1 || !l.containsPoint(new k.Vector3().fromArray(p.position)))
|
|
729
760
|
return !1;
|
|
730
761
|
const u = d.autoUnfold.distance;
|
|
731
762
|
if (u) {
|
|
732
|
-
const
|
|
733
|
-
if (
|
|
763
|
+
const h = p.getDistance();
|
|
764
|
+
if (S(h, u) === !1)
|
|
734
765
|
return !1;
|
|
735
766
|
}
|
|
736
767
|
return !0;
|
|
737
|
-
}).sort((
|
|
738
|
-
const c = new
|
|
768
|
+
}).sort((p, d) => {
|
|
769
|
+
const c = new k.Vector3().fromArray(p.position), u = new k.Vector3().fromArray(d.position);
|
|
739
770
|
return r.angleTo(c.sub(this.five.camera.position)) - r.angleTo(u.sub(this.five.camera.position));
|
|
740
|
-
}).findIndex((
|
|
741
|
-
if (f === -1 || f <= ((
|
|
771
|
+
}).findIndex((p) => p.id === this.id);
|
|
772
|
+
if (f === -1 || f <= ((i = t.autoUnfold.maxNumber) != null ? i : 1) - 1 === !1)
|
|
742
773
|
return !1;
|
|
743
774
|
}
|
|
744
775
|
return !0;
|
|
745
776
|
}
|
|
746
777
|
}
|
|
747
778
|
computeTagProject() {
|
|
748
|
-
const
|
|
749
|
-
if (!
|
|
779
|
+
const t = this.centerPosition;
|
|
780
|
+
if (!t)
|
|
750
781
|
return;
|
|
751
|
-
const { x: e, y:
|
|
752
|
-
if (!(
|
|
753
|
-
return { x: e, y:
|
|
782
|
+
const { x: e, y: i, z: s } = t.project(this.five.camera);
|
|
783
|
+
if (!(s > 1))
|
|
784
|
+
return { x: e, y: i, z: s };
|
|
754
785
|
}
|
|
755
|
-
addObjectClickHandler(
|
|
786
|
+
addObjectClickHandler(t, e, i) {
|
|
756
787
|
if (!e || !this.plugin.domEvents)
|
|
757
788
|
return () => {
|
|
758
789
|
};
|
|
759
|
-
const
|
|
760
|
-
if (!
|
|
790
|
+
const s = () => !(!t.currentVisible || t.loading), o = (l) => {
|
|
791
|
+
if (!s())
|
|
761
792
|
return !1;
|
|
762
|
-
|
|
793
|
+
i(l.origDomEvent);
|
|
763
794
|
};
|
|
764
|
-
return this.plugin.domEvents.addEventListener(e, "click",
|
|
795
|
+
return this.plugin.domEvents.addEventListener(e, "click", o), () => {
|
|
765
796
|
var l;
|
|
766
|
-
(l = this.plugin.domEvents) == null || l.removeEventListener(e, "click",
|
|
797
|
+
(l = this.plugin.domEvents) == null || l.removeEventListener(e, "click", o);
|
|
767
798
|
};
|
|
768
799
|
}
|
|
769
800
|
whyHide() {
|
|
@@ -774,38 +805,38 @@ class Ji {
|
|
|
774
805
|
return { reason: `plugin.state.visible is ${this.plugin.state.visible}` };
|
|
775
806
|
if (!this.enabled)
|
|
776
807
|
return { reason: `tag ${this.id} enabled is: ${this.enabled}` };
|
|
777
|
-
const
|
|
808
|
+
const t = j(y({}, this.computeVisible()), {
|
|
778
809
|
tagInstance: this
|
|
779
810
|
});
|
|
780
|
-
return
|
|
811
|
+
return t.value !== this.state.visible ? { reason: "插件故障,请联系维护人员, err: 0", info: t } : this.state.visible ? { reason: "应该是能看见才对", info: t } : t.value === !0 ? { reason: "插件故障,请联系维护人员, err: 1", info: t } : { reason: (e = t.reason.type) != null ? e : t.reason, info: t };
|
|
781
812
|
}
|
|
782
813
|
/**
|
|
783
814
|
* @description 销毁并移除
|
|
784
815
|
*/
|
|
785
816
|
destroy() {
|
|
786
|
-
var e,
|
|
787
|
-
const
|
|
788
|
-
if (
|
|
817
|
+
var e, i, s, o;
|
|
818
|
+
const t = this.plugin.tags.findIndex((l) => l.id === this.id);
|
|
819
|
+
if (t === -1) {
|
|
789
820
|
console.warn(`Destroy failed: tag ${this.id} not found`);
|
|
790
821
|
return;
|
|
791
822
|
}
|
|
792
|
-
this._currentBlinkInstance && !this._currentBlinkInstance.completed && ((
|
|
823
|
+
this._currentBlinkInstance && !this._currentBlinkInstance.completed && ((i = (e = this._currentBlinkInstance).preComplete) == null || i.call(e), this._currentBlinkInstance = void 0), this.disable(), (o = (s = this.tag3DContentSvelte) == null ? void 0 : s.dispose) == null || o.call(s), this.hooks.off(), this.cache.clear(), this.plugin.tags.splice(t, 1), this.plugin.tagsLengthWillUpdate = !0, this.plugin.hooks.emit("tagsLengthChange");
|
|
793
824
|
}
|
|
794
825
|
/**
|
|
795
826
|
* @description 判断 popover 是否在配置上启用(永久配置)
|
|
796
827
|
*/
|
|
797
828
|
isPopoverConfigEnabled() {
|
|
798
|
-
var
|
|
799
|
-
return ((e = (
|
|
829
|
+
var t, e;
|
|
830
|
+
return ((e = (t = this.currentConfig) == null ? void 0 : t.popoverConfig) == null ? void 0 : e.enabled) === !0;
|
|
800
831
|
}
|
|
801
832
|
/**
|
|
802
833
|
* @description 判断当前标签是否允许临时 hover 弹出 popover(临时控制)
|
|
803
834
|
*/
|
|
804
835
|
isHoverEnabled() {
|
|
805
|
-
var
|
|
806
|
-
return !(((
|
|
836
|
+
var t;
|
|
837
|
+
return !(((t = this.plugin) == null ? void 0 : t.globalHoverEnabled) === !1 || this.hoverEnabled === !1);
|
|
807
838
|
}
|
|
808
839
|
}
|
|
809
840
|
export {
|
|
810
|
-
|
|
841
|
+
Jt as BaseTag
|
|
811
842
|
};
|