@realsee/dnalogel 3.48.1 → 3.48.3
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 +6 -0
- package/dist/Sculpt/Objects/Line/index.d.ts +1 -1
- package/dist/Sculpt/Objects/Polygon/index.d.ts +12 -1
- package/dist/Sculpt/Objects/Polyline/index.d.ts +12 -1
- package/dist/Sculpt/index.d.ts +5 -1
- package/dist/index.cjs.js +53 -53
- package/dist/index.js +4141 -4050
- package/dist/index.umd.js +46 -46
- package/libs/PanoTagPlugin/Components/Common/Media.js +299 -269
- package/libs/Sculpt/Meshes/Polygon.js +20 -20
- package/libs/Sculpt/Objects/Line/index.d.ts +1 -1
- package/libs/Sculpt/Objects/Line/index.js +41 -41
- package/libs/Sculpt/Objects/Polygon/index.d.ts +12 -1
- package/libs/Sculpt/Objects/Polygon/index.js +112 -81
- package/libs/Sculpt/Objects/Polyline/index.d.ts +12 -1
- package/libs/Sculpt/Objects/Polyline/index.js +97 -65
- package/libs/Sculpt/Objects/Prism/index.js +8 -8
- package/libs/Sculpt/index.d.ts +5 -1
- package/libs/Sculpt/index.js +2 -2
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.js +1 -1
- package/libs/shared-utils/logger.js +1 -1
- package/libs/vendor/svelte/transition/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f = Object.defineProperty, d = Object.defineProperties;
|
|
2
2
|
var y = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var m = Object.getOwnPropertySymbols;
|
|
4
4
|
var u = Object.prototype.hasOwnProperty, c = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var a = (i, t, e) => t in i ?
|
|
5
|
+
var a = (i, t, e) => t in i ? f(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e, h = (i, t) => {
|
|
6
6
|
for (var e in t || (t = {}))
|
|
7
7
|
u.call(t, e) && a(i, e, t[e]);
|
|
8
8
|
if (m)
|
|
9
9
|
for (var e of m(t))
|
|
10
10
|
c.call(t, e) && a(i, e, t[e]);
|
|
11
11
|
return i;
|
|
12
|
-
}, g = (i, t) =>
|
|
12
|
+
}, g = (i, t) => d(i, y(t));
|
|
13
13
|
var r = (i, t, e) => (a(i, typeof t != "symbol" ? t + "" : t, e), e);
|
|
14
14
|
import * as l from "three";
|
|
15
15
|
import { generatePolygonGeometry as I } from "../../shared-utils/three/generatePolygonGeometry.js";
|
|
16
16
|
import { DEFAULT_HIGHLIGHT_OPACITY as H } from "../typings/style.js";
|
|
17
17
|
import { anyPositionToVector3 as P } from "../../shared-utils/positionToVector3.js";
|
|
18
|
-
import { ColoredMesh as
|
|
19
|
-
import { getGeometryInfo as
|
|
18
|
+
import { ColoredMesh as _ } from "../utils/three/ColoredMesh.js";
|
|
19
|
+
import { getGeometryInfo as A } from "../../shared-utils/three/geometryUtil.js";
|
|
20
20
|
import { LightTag as S } from "../../shared-utils/tag.js";
|
|
21
21
|
import { getLengthHTML as M } from "../utils/Meshes/getLengthHTML.js";
|
|
22
|
-
import { applyObjectMatrixWorld as
|
|
22
|
+
import { applyObjectMatrixWorld as B } from "../../shared-utils/three/applyObjectMatrixWorld.js";
|
|
23
23
|
const p = new l.BufferGeometry();
|
|
24
24
|
p.name = "blankGeometry";
|
|
25
25
|
p.isBlank = !0;
|
|
26
|
-
class
|
|
26
|
+
class L extends _ {
|
|
27
27
|
constructor(e) {
|
|
28
28
|
super(e);
|
|
29
29
|
r(this, "name", "PolygonMesh");
|
|
@@ -50,25 +50,25 @@ class R extends A {
|
|
|
50
50
|
return (e = this.geometryInfo) == null ? void 0 : e.center;
|
|
51
51
|
}
|
|
52
52
|
get geometryInfo() {
|
|
53
|
-
return this.geometryInfoNeedUpdate && (this._geometryInfo =
|
|
53
|
+
return this.geometryInfoNeedUpdate && (this.isBlank ? this._geometryInfo = null : this._geometryInfo = A(this.geometry), this.geometryInfoNeedUpdate = !1), this._geometryInfo;
|
|
54
54
|
}
|
|
55
55
|
get five() {
|
|
56
|
-
var e,
|
|
57
|
-
return (
|
|
56
|
+
var e, s;
|
|
57
|
+
return (s = (e = window.globalModules) == null ? void 0 : e.five) != null ? s : window.$five;
|
|
58
58
|
}
|
|
59
59
|
updateMatrixWorld(e) {
|
|
60
60
|
if (super.updateMatrixWorld(e), this.center) {
|
|
61
|
-
const
|
|
62
|
-
|
|
61
|
+
const s = B(this, this.center).toArray().join(",");
|
|
62
|
+
s !== this.lastRenderAreaItem && (this.updateAreaItems(), this.lastRenderAreaItem = s);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
setStyle(e) {
|
|
66
66
|
this._paramsStyle = h(h({}, this._paramsStyle), e), super.setStyle(this._paramsStyle), this.updateAreaItems();
|
|
67
67
|
}
|
|
68
68
|
setPoints(e) {
|
|
69
|
-
var
|
|
70
|
-
const
|
|
71
|
-
this.points =
|
|
69
|
+
var o;
|
|
70
|
+
const s = e.map(P);
|
|
71
|
+
this.points = s, this.geometry = (o = I(this.points)) != null ? o : p, this.planeHelperNeedUpdate = !0, this.geometryInfoNeedUpdate = !0, this.updateAreaItems();
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* @description: 获取一个点投影在当前平面上的点
|
|
@@ -86,7 +86,7 @@ class R extends A {
|
|
|
86
86
|
this.points.length >= 3 ? this.planeHelper = new l.Plane().setFromCoplanarPoints(this.points[0], this.points[1], this.points[2]) : this.planeHelper = null, this.planeHelperNeedUpdate = !1;
|
|
87
87
|
}
|
|
88
88
|
updateAreaItems() {
|
|
89
|
-
var
|
|
89
|
+
var o;
|
|
90
90
|
const e = () => {
|
|
91
91
|
var n;
|
|
92
92
|
(n = this.areaDom) == null || n.destroy(), this.areaDom = void 0;
|
|
@@ -95,14 +95,14 @@ class R extends A {
|
|
|
95
95
|
return e();
|
|
96
96
|
if (!this.five)
|
|
97
97
|
return console.error("Five not found");
|
|
98
|
-
this.areaDom = (
|
|
98
|
+
this.areaDom = (o = this.areaDom) != null ? o : (() => {
|
|
99
99
|
const n = new S(this.five);
|
|
100
100
|
return n.intersectCheck = !1, n;
|
|
101
101
|
})(), this.areaDom.setPosition(this.center);
|
|
102
|
-
const
|
|
103
|
-
|
|
102
|
+
const s = this.geometryInfo.area.toFixed(2);
|
|
103
|
+
s === "0.00" ? this.areaDom.container.innerHTML = "" : this.areaDom.container.innerHTML = M(s + "m²");
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
export {
|
|
107
|
-
|
|
107
|
+
L as PolygonMesh
|
|
108
108
|
};
|
|
@@ -11,7 +11,7 @@ export interface LineImportData extends BaseImportData, LineData {
|
|
|
11
11
|
export declare class Line extends BaseObject<LineImportData> {
|
|
12
12
|
readonly type = "Line";
|
|
13
13
|
lineMesh: LineWithDotsMesh;
|
|
14
|
-
private
|
|
14
|
+
private creatingObject?;
|
|
15
15
|
get data(): {
|
|
16
16
|
points: [number, number, number][];
|
|
17
17
|
style: {
|
|
@@ -1,51 +1,51 @@
|
|
|
1
1
|
var k = Object.defineProperty, z = Object.defineProperties;
|
|
2
2
|
var B = Object.getOwnPropertyDescriptors;
|
|
3
|
-
var
|
|
3
|
+
var U = Object.getOwnPropertySymbols;
|
|
4
4
|
var F = Object.prototype.hasOwnProperty, I = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var
|
|
5
|
+
var L = (n, t, e) => t in n ? k(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, f = (n, t) => {
|
|
6
6
|
for (var e in t || (t = {}))
|
|
7
|
-
F.call(t, e) &&
|
|
8
|
-
if (
|
|
9
|
-
for (var e of
|
|
10
|
-
I.call(t, e) &&
|
|
7
|
+
F.call(t, e) && L(n, e, t[e]);
|
|
8
|
+
if (U)
|
|
9
|
+
for (var e of U(t))
|
|
10
|
+
I.call(t, e) && L(n, e, t[e]);
|
|
11
11
|
return n;
|
|
12
|
-
},
|
|
13
|
-
var w = (n, t, e) => (
|
|
14
|
-
var
|
|
12
|
+
}, j = (n, t) => z(n, B(t));
|
|
13
|
+
var w = (n, t, e) => (L(n, typeof t != "symbol" ? t + "" : t, e), e);
|
|
14
|
+
var V = (n, t, e) => new Promise((s, p) => {
|
|
15
15
|
var P = (o) => {
|
|
16
16
|
try {
|
|
17
17
|
c(e.next(o));
|
|
18
18
|
} catch (l) {
|
|
19
19
|
p(l);
|
|
20
20
|
}
|
|
21
|
-
},
|
|
21
|
+
}, b = (o) => {
|
|
22
22
|
try {
|
|
23
23
|
c(e.throw(o));
|
|
24
24
|
} catch (l) {
|
|
25
25
|
p(l);
|
|
26
26
|
}
|
|
27
|
-
}, c = (o) => o.done ? s(o.value) : Promise.resolve(o.value).then(P,
|
|
27
|
+
}, c = (o) => o.done ? s(o.value) : Promise.resolve(o.value).then(P, b);
|
|
28
28
|
c((e = e.apply(n, t)).next());
|
|
29
29
|
});
|
|
30
|
-
import { LineMesh as
|
|
30
|
+
import { LineMesh as H } from "../../Meshes/Line.js";
|
|
31
31
|
import { BaseObject as N } from "../Base/index.js";
|
|
32
32
|
import * as a from "three";
|
|
33
33
|
import { LineEditor as _ } from "./Editor.js";
|
|
34
34
|
import { vector3ToArray as q } from "../../../shared-utils/three/vector3ToArray.js";
|
|
35
|
-
import { LineWithDotsMesh as
|
|
35
|
+
import { LineWithDotsMesh as T } from "../../Meshes/LineWithDots.js";
|
|
36
36
|
import { rayOnLine as G } from "../../utils/three/rayOnLine.js";
|
|
37
37
|
import { withResolvers as J } from "../../../shared-utils/promise/withResolvers.js";
|
|
38
|
-
const
|
|
38
|
+
const W = new a.Vector3();
|
|
39
39
|
class ie extends N {
|
|
40
40
|
constructor(e, s) {
|
|
41
41
|
super(e, s);
|
|
42
42
|
w(this, "type", "Line");
|
|
43
43
|
w(this, "lineMesh");
|
|
44
|
-
w(this, "
|
|
45
|
-
e && (this.lineMesh = new
|
|
44
|
+
w(this, "creatingObject");
|
|
45
|
+
e && (this.lineMesh = new T(f(f({}, e.style), e)), this.add(this.lineMesh)), this.editor = new _(this);
|
|
46
46
|
}
|
|
47
47
|
get data() {
|
|
48
|
-
return
|
|
48
|
+
return j(f({}, this.baseData), {
|
|
49
49
|
points: q(this.applyObjectMatrixWorld(this.lineMesh.points)),
|
|
50
50
|
style: {
|
|
51
51
|
lineColor: new a.Color(this.lineMesh.color).getHex(),
|
|
@@ -64,47 +64,47 @@ class ie extends N {
|
|
|
64
64
|
}
|
|
65
65
|
canUndo() {
|
|
66
66
|
var e;
|
|
67
|
-
(e = this.
|
|
67
|
+
(e = this.creatingObject) == null || e.canUndo();
|
|
68
68
|
}
|
|
69
69
|
canRedo() {
|
|
70
70
|
var e;
|
|
71
|
-
(e = this.
|
|
71
|
+
(e = this.creatingObject) == null || e.canRedo();
|
|
72
72
|
}
|
|
73
73
|
undo() {
|
|
74
74
|
var e;
|
|
75
|
-
(e = this.
|
|
75
|
+
(e = this.creatingObject) == null || e.undo();
|
|
76
76
|
}
|
|
77
77
|
redo() {
|
|
78
78
|
var e;
|
|
79
|
-
(e = this.
|
|
79
|
+
(e = this.creatingObject) == null || e.redo();
|
|
80
80
|
}
|
|
81
81
|
create(e) {
|
|
82
|
-
return
|
|
82
|
+
return V(this, null, function* () {
|
|
83
83
|
this.removeChildren();
|
|
84
|
-
const s = new
|
|
85
|
-
this.lineMesh = s, this.add(this.lineMesh), this.
|
|
84
|
+
const s = new T(e);
|
|
85
|
+
this.lineMesh = s, this.add(this.lineMesh), this.creatingObject = K(s, this.pointSelector, e), yield this.creatingObject.finished, this.editor.enable();
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
function K(n, t, e) {
|
|
90
|
-
var
|
|
90
|
+
var R;
|
|
91
91
|
const s = n.parent;
|
|
92
92
|
if (!s)
|
|
93
93
|
return;
|
|
94
|
-
const { promise: p, resolve: P, reject:
|
|
94
|
+
const { promise: p, resolve: P, reject: b } = J(), c = (R = e == null ? void 0 : e.limit) != null ? R : "none", o = new H(n.style);
|
|
95
95
|
s.add(o);
|
|
96
|
-
const l = new
|
|
96
|
+
const l = new H(j(f({}, n.style), { dashed: !0, lengthEnable: !1 }));
|
|
97
97
|
s.add(l), t.enable();
|
|
98
98
|
const i = [];
|
|
99
99
|
let h, d, v;
|
|
100
|
-
const m = [],
|
|
101
|
-
|
|
100
|
+
const m = [], O = () => i.length > 0, M = () => m.length > 0, A = () => {
|
|
101
|
+
O() && (m.push(i.pop()), n.setPoints(i), g(v), t.pointSelectorHelper.magnifier.render());
|
|
102
102
|
}, D = () => {
|
|
103
|
-
|
|
104
|
-
},
|
|
103
|
+
M() && (i.push(m.pop()), n.setPoints(i), g(v), t.pointSelectorHelper.magnifier.render());
|
|
104
|
+
}, E = (r) => {
|
|
105
105
|
m.length = 0;
|
|
106
106
|
const u = i.length === 0 ? r.point : h.clone();
|
|
107
|
-
i.push(u), n.setPoints(i), i.length === 2 && (
|
|
107
|
+
i.push(u), n.setPoints(i), i.length === 2 && (x(), P());
|
|
108
108
|
}, g = (r) => {
|
|
109
109
|
const u = () => {
|
|
110
110
|
o.setPoints([]), l.setPoints([]), t.pointSelectorHelper.magnifier.render();
|
|
@@ -113,20 +113,20 @@ function K(n, t, e) {
|
|
|
113
113
|
return u();
|
|
114
114
|
v = r;
|
|
115
115
|
const y = i.at(-1).clone();
|
|
116
|
-
c === "none" ? (h = r.point, o.setPoints([y, h])) : c === "xoz" ? (t.plane = d, d = d != null ? d : new a.Plane().setFromNormalAndCoplanarPoint(new a.Vector3(0, 1, 0), i[0]), h = d.projectPoint(r.point,
|
|
116
|
+
c === "none" ? (h = r.point, o.setPoints([y, h])) : c === "xoz" ? (t.plane = d, d = d != null ? d : new a.Plane().setFromNormalAndCoplanarPoint(new a.Vector3(0, 1, 0), i[0]), h = d.projectPoint(r.point, W), o.setPoints([y, h]), l.setPoints([h, r.point])) : c === "y" && (r.isVirtual ? (h = G({
|
|
117
117
|
raycaster: r.raycaster,
|
|
118
118
|
line: new a.Line3(i[0].clone(), new a.Vector3(0, 1, 0).add(i[0])),
|
|
119
119
|
clampToLine: !1
|
|
120
|
-
}), l.setPoints([])) : (h = new a.Line3(i[0].clone(), new a.Vector3(0, 1, 0).add(i[0])).closestPointToPoint(r.point, !1,
|
|
121
|
-
},
|
|
122
|
-
t.off("select",
|
|
123
|
-
},
|
|
124
|
-
|
|
120
|
+
}), l.setPoints([])) : (h = new a.Line3(i[0].clone(), new a.Vector3(0, 1, 0).add(i[0])).closestPointToPoint(r.point, !1, W), l.setPoints([h, r.point])), o.setPoints([y, h]));
|
|
121
|
+
}, x = () => {
|
|
122
|
+
t.off("select", E), t.off("intersectionUpdate", g), t.off("disable", C), t.plane = null, t.disable(), s == null || s.remove(o, l);
|
|
123
|
+
}, C = () => {
|
|
124
|
+
x(), i.length !== 2 && (s == null || s.remove(n)), b(new Error("Cancelled"));
|
|
125
125
|
};
|
|
126
|
-
return t.on("select",
|
|
126
|
+
return t.on("select", E), t.on("intersectionUpdate", g), t.on("disable", C), {
|
|
127
127
|
finished: p,
|
|
128
|
-
canUndo:
|
|
129
|
-
canRedo:
|
|
128
|
+
canUndo: O,
|
|
129
|
+
canRedo: M,
|
|
130
130
|
undo: A,
|
|
131
131
|
redo: D
|
|
132
132
|
};
|
|
@@ -11,6 +11,7 @@ export interface PolygonImportData extends BaseImportData, PolygonData {
|
|
|
11
11
|
export declare class Polygon extends BaseObject<PolygonImportData> {
|
|
12
12
|
readonly type = "Polygon";
|
|
13
13
|
areaMesh: AreaMesh;
|
|
14
|
+
private creatingObject?;
|
|
14
15
|
get data(): {
|
|
15
16
|
points: [number, number, number][];
|
|
16
17
|
style: {
|
|
@@ -24,6 +25,16 @@ export declare class Polygon extends BaseObject<PolygonImportData> {
|
|
|
24
25
|
constructor(data?: PolygonImportData, config?: Partial<BaseObjectConfig>);
|
|
25
26
|
highlight(): void;
|
|
26
27
|
unhighlight(): void;
|
|
28
|
+
canUndo(): void;
|
|
29
|
+
canRedo(): void;
|
|
30
|
+
undo(): void;
|
|
31
|
+
redo(): void;
|
|
27
32
|
create(params?: Partial<PolygonStyle & CreateLimitConfig>): Promise<void>;
|
|
28
33
|
}
|
|
29
|
-
export declare function createPolygon(areaMesh: AreaMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig>):
|
|
34
|
+
export declare function createPolygon(areaMesh: AreaMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig>): {
|
|
35
|
+
finished: Promise<void>;
|
|
36
|
+
canUndo: () => boolean;
|
|
37
|
+
canRedo: () => boolean;
|
|
38
|
+
undo: () => void;
|
|
39
|
+
redo: () => void;
|
|
40
|
+
};
|
|
@@ -1,49 +1,51 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
for (var
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
for (var
|
|
10
|
-
|
|
1
|
+
var k = Object.defineProperty, z = Object.defineProperties;
|
|
2
|
+
var B = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var A = Object.getOwnPropertySymbols;
|
|
4
|
+
var _ = Object.prototype.hasOwnProperty, q = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var M = (s, t, e) => t in s ? k(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e, g = (s, t) => {
|
|
6
|
+
for (var e in t || (t = {}))
|
|
7
|
+
_.call(t, e) && M(s, e, t[e]);
|
|
8
|
+
if (A)
|
|
9
|
+
for (var e of A(t))
|
|
10
|
+
q.call(t, e) && M(s, e, t[e]);
|
|
11
11
|
return s;
|
|
12
|
-
},
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
12
|
+
}, O = (s, t) => z(s, B(t));
|
|
13
|
+
var j = (s, t, e) => (M(s, typeof t != "symbol" ? t + "" : t, e), e);
|
|
14
|
+
var V = (s, t, e) => new Promise((c, d) => {
|
|
15
|
+
var m = (o) => {
|
|
16
16
|
try {
|
|
17
|
-
|
|
18
|
-
} catch (
|
|
19
|
-
d(
|
|
17
|
+
f(e.next(o));
|
|
18
|
+
} catch (a) {
|
|
19
|
+
d(a);
|
|
20
20
|
}
|
|
21
|
-
},
|
|
21
|
+
}, r = (o) => {
|
|
22
22
|
try {
|
|
23
|
-
|
|
24
|
-
} catch (
|
|
25
|
-
d(
|
|
23
|
+
f(e.throw(o));
|
|
24
|
+
} catch (a) {
|
|
25
|
+
d(a);
|
|
26
26
|
}
|
|
27
|
-
},
|
|
28
|
-
|
|
27
|
+
}, f = (o) => o.done ? c(o.value) : Promise.resolve(o.value).then(m, r);
|
|
28
|
+
f((e = e.apply(s, t)).next());
|
|
29
29
|
});
|
|
30
|
-
import { BaseObject as
|
|
31
|
-
import * as
|
|
32
|
-
import { PolylineMesh as
|
|
33
|
-
import { AreaMesh as
|
|
34
|
-
import { PolygonEditor as
|
|
35
|
-
import { vector3ToArray as
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
import { BaseObject as G } from "../Base/index.js";
|
|
31
|
+
import * as P from "three";
|
|
32
|
+
import { PolylineMesh as D } from "../../Meshes/Polyline.js";
|
|
33
|
+
import { AreaMesh as F } from "../../Meshes/Area.js";
|
|
34
|
+
import { PolygonEditor as J } from "./Editor.js";
|
|
35
|
+
import { vector3ToArray as K } from "../../../shared-utils/three/vector3ToArray.js";
|
|
36
|
+
import { withResolvers as Q } from "../../../shared-utils/promise/withResolvers.js";
|
|
37
|
+
const I = new P.Vector3();
|
|
38
|
+
class ne extends G {
|
|
39
|
+
constructor(e, c) {
|
|
40
|
+
super(e, c);
|
|
41
|
+
j(this, "type", "Polygon");
|
|
42
|
+
j(this, "areaMesh");
|
|
43
|
+
j(this, "creatingObject");
|
|
44
|
+
this.editor = new J(this), e && (this.areaMesh = new F(g(g({}, e.style), e)), this.add(this.areaMesh));
|
|
43
45
|
}
|
|
44
46
|
get data() {
|
|
45
|
-
return this.updateMatrixWorld(),
|
|
46
|
-
points:
|
|
47
|
+
return this.updateMatrixWorld(), O(g({}, this.baseData), {
|
|
48
|
+
points: K(this.applyObjectMatrixWorld(this.areaMesh.points)),
|
|
47
49
|
style: {
|
|
48
50
|
color: this.areaMesh.color.getHex(),
|
|
49
51
|
lineColor: this.areaMesh.lineColor.getHex(),
|
|
@@ -52,59 +54,88 @@ class K extends z {
|
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
56
|
highlight() {
|
|
55
|
-
var
|
|
56
|
-
(
|
|
57
|
+
var e;
|
|
58
|
+
(e = this.areaMesh) == null || e.highlight();
|
|
57
59
|
}
|
|
58
60
|
unhighlight() {
|
|
59
|
-
var
|
|
60
|
-
(
|
|
61
|
+
var e;
|
|
62
|
+
(e = this.areaMesh) == null || e.unhighlight();
|
|
61
63
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
canUndo() {
|
|
65
|
+
var e;
|
|
66
|
+
(e = this.creatingObject) == null || e.canUndo();
|
|
67
|
+
}
|
|
68
|
+
canRedo() {
|
|
69
|
+
var e;
|
|
70
|
+
(e = this.creatingObject) == null || e.canRedo();
|
|
71
|
+
}
|
|
72
|
+
undo() {
|
|
73
|
+
var e;
|
|
74
|
+
(e = this.creatingObject) == null || e.undo();
|
|
75
|
+
}
|
|
76
|
+
redo() {
|
|
77
|
+
var e;
|
|
78
|
+
(e = this.creatingObject) == null || e.redo();
|
|
79
|
+
}
|
|
80
|
+
create(e) {
|
|
81
|
+
return V(this, null, function* () {
|
|
64
82
|
this.children.forEach((d) => {
|
|
65
83
|
d.parent === this && this.remove(d);
|
|
66
84
|
}), this.children.length = 0;
|
|
67
|
-
const
|
|
68
|
-
this.areaMesh =
|
|
85
|
+
const c = new F(e);
|
|
86
|
+
this.areaMesh = c, this.add(this.areaMesh), this.creatingObject = X(this.areaMesh, this.pointSelector, e), yield this.creatingObject.finished, this.editor.enable();
|
|
69
87
|
});
|
|
70
88
|
}
|
|
71
89
|
}
|
|
72
|
-
function
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
g.distanceTo(i) < W || g.distanceTo(a.point) < W ? (i = g, a.point.copy(g), e.pointSelectorHelper.updateWithIntersect(a, { emitEvent: !1 }), u = !0) : u = !1, h.setPoints([p, i]), l.setPoints([i, a.point]);
|
|
97
|
-
}
|
|
98
|
-
o.length >= 2 && s.setPoints([...o, i], { closed: !1 });
|
|
99
|
-
}, E = () => {
|
|
100
|
-
e.off("select", v), e.off("intersectionUpdate", b), e.off("disable", x), e.plane = null, e.disable(), n == null || n.remove(h, l);
|
|
101
|
-
}, x = () => {
|
|
102
|
-
E(), n == null || n.remove(s, l, h), d(new Error("Cancelled"));
|
|
90
|
+
function X(s, t, e) {
|
|
91
|
+
var H;
|
|
92
|
+
const { promise: c, resolve: d, reject: m } = Q(), r = s.parent;
|
|
93
|
+
if (!r) {
|
|
94
|
+
m(new Error("No container"));
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const f = (H = e == null ? void 0 : e.limit) != null ? H : "none", o = new D(s.style);
|
|
98
|
+
r == null || r.add(o);
|
|
99
|
+
const a = new D(O(g({}, s.style), { dashed: !0, lengthEnable: !1 }));
|
|
100
|
+
r == null || r.add(a), t.enable();
|
|
101
|
+
const n = [];
|
|
102
|
+
let i, h, v = !1, E;
|
|
103
|
+
const u = [], x = () => n.length > 0, C = () => u.length > 0, L = () => {
|
|
104
|
+
x() && (u.push(n.pop()), w(E), t.pointSelectorHelper.magnifier.render());
|
|
105
|
+
}, N = () => {
|
|
106
|
+
C() && (n.push(u.pop()), w(E), t.pointSelectorHelper.magnifier.render());
|
|
107
|
+
}, R = (l) => {
|
|
108
|
+
u.length = 0;
|
|
109
|
+
const b = n.length === 0 ? l.point : i.clone();
|
|
110
|
+
n.push(b), s.setPoints(n, { closed: !1 }), v && (U(), d());
|
|
111
|
+
}, w = (l) => {
|
|
112
|
+
const b = () => {
|
|
113
|
+
o.setPoints([]), a.setPoints([]), s.setPoints([]), t.pointSelectorHelper.magnifier.render();
|
|
103
114
|
};
|
|
104
|
-
|
|
105
|
-
|
|
115
|
+
if (!(n != null && n.length) || !l)
|
|
116
|
+
return b();
|
|
117
|
+
E = l;
|
|
118
|
+
const p = n.at(-1).clone();
|
|
119
|
+
if (n.length < 3 && (f === "none" ? (i = l.point, o.setPoints([p, i]), a.setPoints([])) : f === "xoz" ? (h = h != null ? h : new P.Plane().setFromNormalAndCoplanarPoint(new P.Vector3(0, 1, 0), n[0]), t.plane = h, i = h.projectPoint(l.point, I), o.setPoints([p, i]), a.setPoints([i, l.point])) : f === "y" && (n.length === 1 ? (i = l.point, o.setPoints([p, i]), a.setPoints([])) : (h = h != null ? h : new P.Plane().setFromCoplanarPoints(n[0], n[1], new P.Vector3(0, 1, 0).add(n[0])), t.plane = h, i = h.projectPoint(l.point, I), o.setPoints([p, i]), a.setPoints([i, l.point])))), n.length >= 3) {
|
|
120
|
+
i = s.projectPoint(l.point);
|
|
121
|
+
const y = n[0], T = 0.2;
|
|
122
|
+
y.distanceTo(i) < T || y.distanceTo(l.point) < T ? (i = y, l.point.copy(y), t.pointSelectorHelper.updateWithIntersect(l, { emitEvent: !1 }), v = !0) : v = !1, o.setPoints([p, i]), a.setPoints([i, l.point]);
|
|
123
|
+
}
|
|
124
|
+
n.length >= 2 ? s.setPoints([...n, i], { closed: !1 }) : s.setPoints([]);
|
|
125
|
+
}, U = () => {
|
|
126
|
+
t.off("select", R), t.off("intersectionUpdate", w), t.off("disable", W), t.plane = null, t.disable(), r == null || r.remove(o, a);
|
|
127
|
+
}, W = () => {
|
|
128
|
+
U(), r == null || r.remove(s, a, o), m(new Error("Cancelled"));
|
|
129
|
+
};
|
|
130
|
+
return t.on("select", R), t.on("intersectionUpdate", w), t.on("disable", W), {
|
|
131
|
+
finished: c,
|
|
132
|
+
canUndo: x,
|
|
133
|
+
canRedo: C,
|
|
134
|
+
undo: L,
|
|
135
|
+
redo: N
|
|
136
|
+
};
|
|
106
137
|
}
|
|
107
138
|
export {
|
|
108
|
-
|
|
109
|
-
|
|
139
|
+
ne as Polygon,
|
|
140
|
+
X as createPolygon
|
|
110
141
|
};
|
|
@@ -10,6 +10,7 @@ export interface PolylineImportData extends BaseImportData, PolylineData {
|
|
|
10
10
|
export declare class Polyline extends BaseObject<PolylineImportData> {
|
|
11
11
|
readonly type = "Polyline";
|
|
12
12
|
polyLineMesh: PolylineWithDotsMesh;
|
|
13
|
+
private creatingObject?;
|
|
13
14
|
get data(): {
|
|
14
15
|
points: [number, number, number][];
|
|
15
16
|
style: {
|
|
@@ -23,10 +24,20 @@ export declare class Polyline extends BaseObject<PolylineImportData> {
|
|
|
23
24
|
constructor(data?: PolylineImportData, config?: Partial<BaseObjectConfig>);
|
|
24
25
|
highlight(): void;
|
|
25
26
|
unhighlight(): void;
|
|
27
|
+
canUndo(): void;
|
|
28
|
+
canRedo(): void;
|
|
29
|
+
undo(): void;
|
|
30
|
+
redo(): void;
|
|
26
31
|
create(params?: Partial<PolylineStyle & CreateLimitConfig>): Promise<void>;
|
|
27
32
|
}
|
|
28
33
|
/**
|
|
29
34
|
* @description 绘制折线
|
|
30
35
|
* @param config.limit 限制折线绘制的平面; `xoz` 限制在水平面; `y` 限制垂直面; `none` 不限制;默认 `none`
|
|
31
36
|
*/
|
|
32
|
-
export declare function createPolyline(polyLineMesh: PolylineMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig>):
|
|
37
|
+
export declare function createPolyline(polyLineMesh: PolylineMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig>): {
|
|
38
|
+
finished: Promise<void>;
|
|
39
|
+
canUndo: () => boolean;
|
|
40
|
+
canRedo: () => boolean;
|
|
41
|
+
undo: () => void;
|
|
42
|
+
redo: () => void;
|
|
43
|
+
};
|