@realsee/dnalogel 3.48.1 → 3.48.2

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,29 +1,29 @@
1
- var d = Object.defineProperty, f = Object.defineProperties;
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 ? d(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e, h = (i, t) => {
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) => f(i, y(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 A } from "../utils/three/ColoredMesh.js";
19
- import { getGeometryInfo as _ } from "../../shared-utils/three/geometryUtil.js";
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 D } from "../../shared-utils/three/applyObjectMatrixWorld.js";
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 R extends A {
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 = _(this.geometry), this.geometryInfoNeedUpdate = !1), 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, o;
57
- return (o = (e = window.globalModules) == null ? void 0 : e.five) != null ? o : window.$five;
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 o = D(this, this.center).toArray().join(",");
62
- o !== this.lastRenderAreaItem && (this.updateAreaItems(), this.lastRenderAreaItem = o);
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 s;
70
- const o = e.map(P);
71
- this.points = o, this.geometry = (s = I(this.points)) != null ? s : p, this.planeHelperNeedUpdate = !0, this.geometryInfoNeedUpdate = !0, this.updateAreaItems();
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 s;
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 = (s = this.areaDom) != null ? s : (() => {
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 o = this.geometryInfo.area.toFixed(2);
103
- o === "0.00" ? this.areaDom.container.innerHTML = "" : this.areaDom.container.innerHTML = M(o + "m²");
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
- R as PolygonMesh
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 creatingLine?;
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 j = Object.getOwnPropertySymbols;
3
+ var U = Object.getOwnPropertySymbols;
4
4
  var F = Object.prototype.hasOwnProperty, I = Object.prototype.propertyIsEnumerable;
5
- var b = (n, t, e) => t in n ? k(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, f = (n, t) => {
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) && b(n, e, t[e]);
8
- if (j)
9
- for (var e of j(t))
10
- I.call(t, e) && b(n, e, 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
- }, M = (n, t) => z(n, B(t));
13
- var w = (n, t, e) => (b(n, typeof t != "symbol" ? t + "" : t, e), e);
14
- var H = (n, t, e) => new Promise((s, p) => {
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
- }, L = (o) => {
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, L);
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 T } from "../../Meshes/Line.js";
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 W } from "../../Meshes/LineWithDots.js";
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 O = new a.Vector3();
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, "creatingLine");
45
- e && (this.lineMesh = new W(f(f({}, e.style), e)), this.add(this.lineMesh)), this.editor = new _(this);
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 M(f({}, this.baseData), {
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.creatingLine) == null || e.canUndo();
67
+ (e = this.creatingObject) == null || e.canUndo();
68
68
  }
69
69
  canRedo() {
70
70
  var e;
71
- (e = this.creatingLine) == null || e.canRedo();
71
+ (e = this.creatingObject) == null || e.canRedo();
72
72
  }
73
73
  undo() {
74
74
  var e;
75
- (e = this.creatingLine) == null || e.undo();
75
+ (e = this.creatingObject) == null || e.undo();
76
76
  }
77
77
  redo() {
78
78
  var e;
79
- (e = this.creatingLine) == null || e.redo();
79
+ (e = this.creatingObject) == null || e.redo();
80
80
  }
81
81
  create(e) {
82
- return H(this, null, function* () {
82
+ return V(this, null, function* () {
83
83
  this.removeChildren();
84
- const s = new W(e);
85
- this.lineMesh = s, this.add(this.lineMesh), this.creatingLine = K(s, this.pointSelector, e), yield this.creatingLine.finished, this.editor.enable();
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 V;
90
+ var R;
91
91
  const s = n.parent;
92
92
  if (!s)
93
93
  return;
94
- const { promise: p, resolve: P, reject: L } = J(), c = (V = e == null ? void 0 : e.limit) != null ? V : "none", o = new T(n.style);
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 T(M(f({}, n.style), { dashed: !0, lengthEnable: !1 }));
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 = [], E = () => i.length > 0, x = () => m.length > 0, A = () => {
101
- E() && (m.push(i.pop()), n.setPoints(i), g(v), t.pointSelectorHelper.magnifier.render());
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
- x() && (i.push(m.pop()), n.setPoints(i), g(v), t.pointSelectorHelper.magnifier.render());
104
- }, C = (r) => {
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 && (R(), P());
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, O), o.setPoints([y, h]), l.setPoints([h, r.point])) : c === "y" && (r.isVirtual ? (h = G({
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, O), l.setPoints([h, r.point])), o.setPoints([y, h]));
121
- }, R = () => {
122
- t.off("select", C), t.off("intersectionUpdate", g), t.off("disable", U), t.plane = null, t.disable(), s == null || s.remove(o, l);
123
- }, U = () => {
124
- R(), i.length !== 2 && (s == null || s.remove(n)), L(new Error("Cancelled"));
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", C), t.on("intersectionUpdate", g), t.on("disable", U), {
126
+ return t.on("select", E), t.on("intersectionUpdate", g), t.on("disable", C), {
127
127
  finished: p,
128
- canUndo: E,
129
- canRedo: x,
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>): Promise<void>;
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 F = Object.defineProperty, L = Object.defineProperties;
2
- var N = Object.getOwnPropertyDescriptors;
3
- var j = Object.getOwnPropertySymbols;
4
- var O = Object.prototype.hasOwnProperty, U = Object.prototype.propertyIsEnumerable;
5
- var w = (s, e, t) => e in s ? F(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t, c = (s, e) => {
6
- for (var t in e || (e = {}))
7
- O.call(e, t) && w(s, t, e[t]);
8
- if (j)
9
- for (var t of j(e))
10
- U.call(e, t) && w(s, t, e[t]);
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
- }, y = (s, e) => L(s, N(e));
13
- var M = (s, e, t) => (w(s, typeof e != "symbol" ? e + "" : e, t), t);
14
- var T = (s, e, t) => new Promise((f, d) => {
15
- var n = (l) => {
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
- h(t.next(l));
18
- } catch (o) {
19
- d(o);
17
+ f(e.next(o));
18
+ } catch (a) {
19
+ d(a);
20
20
  }
21
- }, P = (l) => {
21
+ }, r = (o) => {
22
22
  try {
23
- h(t.throw(l));
24
- } catch (o) {
25
- d(o);
23
+ f(e.throw(o));
24
+ } catch (a) {
25
+ d(a);
26
26
  }
27
- }, h = (l) => l.done ? f(l.value) : Promise.resolve(l.value).then(n, P);
28
- h((t = t.apply(s, e)).next());
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 z } from "../Base/index.js";
31
- import * as m from "three";
32
- import { PolylineMesh as A } from "../../Meshes/Polyline.js";
33
- import { AreaMesh as V } from "../../Meshes/Area.js";
34
- import { PolygonEditor as B } from "./Editor.js";
35
- import { vector3ToArray as H } from "../../../shared-utils/three/vector3ToArray.js";
36
- const D = new m.Vector3();
37
- class K extends z {
38
- constructor(t, f) {
39
- super(t, f);
40
- M(this, "type", "Polygon");
41
- M(this, "areaMesh");
42
- this.editor = new B(this), t && (this.areaMesh = new V(c(c({}, t.style), t)), this.add(this.areaMesh));
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(), y(c({}, this.baseData), {
46
- points: H(this.applyObjectMatrixWorld(this.areaMesh.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 t;
56
- (t = this.areaMesh) == null || t.highlight();
57
+ var e;
58
+ (e = this.areaMesh) == null || e.highlight();
57
59
  }
58
60
  unhighlight() {
59
- var t;
60
- (t = this.areaMesh) == null || t.unhighlight();
61
+ var e;
62
+ (e = this.areaMesh) == null || e.unhighlight();
61
63
  }
62
- create(t) {
63
- return T(this, null, function* () {
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 f = new V(t);
68
- this.areaMesh = f, this.add(this.areaMesh), yield I(this.areaMesh, this.pointSelector, t), this.editor.enable();
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 I(s, e, t) {
73
- return new Promise((f, d) => {
74
- var C;
75
- const n = s.parent;
76
- if (!n) {
77
- d(new Error("No container"));
78
- return;
79
- }
80
- const P = (C = t == null ? void 0 : t.limit) != null ? C : "none", h = new A(s.style);
81
- n == null || n.add(h);
82
- const l = new A(y(c({}, s.style), { dashed: !0, lengthEnable: !1 }));
83
- n == null || n.add(l), e.enable();
84
- const o = [];
85
- let i, r, u = !1;
86
- const v = (a) => {
87
- const p = o.length === 0 ? a.point : i.clone();
88
- o.push(p), s.setPoints(o, { closed: !1 }), u && (E(), f());
89
- }, b = (a) => {
90
- if (!(o != null && o.length) || !a)
91
- return;
92
- const p = o.at(-1).clone();
93
- if (o.length < 3 && (P === "none" ? (i = a.point, h.setPoints([p, i])) : P === "xoz" ? (r = r != null ? r : new m.Plane().setFromNormalAndCoplanarPoint(new m.Vector3(0, 1, 0), o[0]), e.plane = r, i = r.projectPoint(a.point, D), h.setPoints([p, i]), l.setPoints([i, a.point])) : P === "y" && (o.length === 1 ? (i = a.point, h.setPoints([p, i])) : (r = r != null ? r : new m.Plane().setFromCoplanarPoints(o[0], o[1], new m.Vector3(0, 1, 0).add(o[0])), e.plane = r, i = r.projectPoint(a.point, D), h.setPoints([p, i]), l.setPoints([i, a.point])))), o.length >= 3) {
94
- i = s.projectPoint(a.point);
95
- const g = o[0], W = 0.2;
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
- e.on("select", v), e.on("intersectionUpdate", b), e.on("disable", x);
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
- K as Polygon,
109
- I as createPolygon
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>): Promise<void>;
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
+ };