@realsee/dnalogel 3.47.10 → 3.47.12

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.
Files changed (108) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/Sculpt/Meshes/Line.d.ts +3 -1
  3. package/dist/Sculpt/Meshes/Polygon.d.ts +16 -7
  4. package/dist/Sculpt/Meshes/PolygonWithEdge.d.ts +1 -0
  5. package/dist/Sculpt/Meshes/Polyline.d.ts +1 -0
  6. package/dist/Sculpt/Meshes/RectangleWithEdge.d.ts +1 -0
  7. package/dist/index.cjs.js +57 -57
  8. package/dist/index.js +3263 -3227
  9. package/dist/index.umd.js +50 -50
  10. package/libs/AreaMakerPlugin/Controller.js +14 -13
  11. package/libs/AreaMakerPlugin/index.js +15 -14
  12. package/libs/AreaMakerPlugin/utils/Item.js +15 -14
  13. package/libs/CSS3DRenderPlugin/Controller.js +12 -11
  14. package/libs/CSS3DRenderPlugin/index.js +18 -17
  15. package/libs/CSS3DRenderPlugin/utils/three/CSS3DObject.js +12 -11
  16. package/libs/CSS3DRenderPlugin/utils/three/CSS3DRender.js +26 -25
  17. package/libs/CruisePlugin/BaseController.js +17 -16
  18. package/libs/CruisePlugin/Move.js +20 -19
  19. package/libs/CruisePlugin/Work.js +15 -14
  20. package/libs/CruisePlugin/index.js +19 -18
  21. package/libs/CurrentPanoImagePlugin/Controller.js +14 -13
  22. package/libs/CurrentPanoImagePlugin/index.js +16 -15
  23. package/libs/GuideLinePlugin/Controller.js +17 -16
  24. package/libs/GuideLinePlugin/GuideLineItem.js +15 -14
  25. package/libs/GuideLinePlugin/GuideLineModeItem/index.js +5 -3
  26. package/libs/GuideLinePlugin/GuideLineModeItem.js +15 -14
  27. package/libs/GuideLinePlugin/index.js +19 -18
  28. package/libs/ModelMakerPlugin/Controller.js +13 -12
  29. package/libs/ModelMakerPlugin/index.js +15 -14
  30. package/libs/ModelTVVideoPlugin/Plugin.js +37 -36
  31. package/libs/ModelTVVideoPlugin/index.js +13 -12
  32. package/libs/Object3DHelperPlugin/Controller.js +14 -13
  33. package/libs/Object3DHelperPlugin/index.js +18 -17
  34. package/libs/PanoCompassPlugin/Controller.js +15 -14
  35. package/libs/PanoCompassPlugin/index.js +16 -15
  36. package/libs/PanoDoorLabelPlugin/BaseController.js +15 -14
  37. package/libs/PanoDoorLabelPlugin/Controller.js +15 -14
  38. package/libs/PanoDoorLabelPlugin/index.js +16 -15
  39. package/libs/PanoMeasurePlugin/Components/Controller0.js +12 -11
  40. package/libs/PanoMeasurePlugin/Components/Controller1.js +12 -11
  41. package/libs/PanoMeasurePlugin/Controller/EditController.js +12 -11
  42. package/libs/PanoMeasurePlugin/Controller/WatchController.js +13 -12
  43. package/libs/PanoMeasurePlugin/Controller/index.js +10 -9
  44. package/libs/PanoMeasurePlugin/Model/area.js +12 -11
  45. package/libs/PanoMeasurePlugin/Modules/Magnifier.js +12 -11
  46. package/libs/PanoMeasurePlugin/Modules/UIController/index.js +12 -11
  47. package/libs/PanoMeasurePlugin/index.js +21 -20
  48. package/libs/PanoMeasurePlugin/utils/dom/areaDom.js +12 -11
  49. package/libs/PanoSpatialTagPlugin/Plugin.js +14 -13
  50. package/libs/PanoSpatialTagPlugin/index.js +11 -10
  51. package/libs/PanoTagPlugin/Components/Common/TagPoint.js +14 -13
  52. package/libs/PanoTagPlugin/Components/Tag/MarketingTag.js +13 -12
  53. package/libs/PanoTagPlugin/Components/Tag/index.js +13 -12
  54. package/libs/PanoTagPlugin/Components/TagContainer.js +13 -12
  55. package/libs/PanoTagPlugin/Components/TagItem.js +13 -12
  56. package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +34 -33
  57. package/libs/PanoTagPlugin/controller/Tag/ModelTag.js +13 -12
  58. package/libs/PanoTagPlugin/controller/Tag/PlaneTag.js +13 -12
  59. package/libs/PanoTagPlugin/controller/Tag/PointTag.js +15 -14
  60. package/libs/PanoTagPlugin/controller/TagRender.js +12 -11
  61. package/libs/PanoTagPlugin/controller/TagUtil.js +13 -12
  62. package/libs/PanoTagPlugin/controller/index.js +16 -15
  63. package/libs/PanoTagPlugin/index.js +21 -20
  64. package/libs/PanoTagPlugin/utils/tag/calculateTagConfig.js +14 -13
  65. package/libs/PanoVideoPlugin/Controller.js +15 -14
  66. package/libs/PanoVideoPlugin/VideoMeshController.js +30 -29
  67. package/libs/PanoVideoPlugin/index.js +18 -17
  68. package/libs/PipelinePlugin/Controller.js +14 -13
  69. package/libs/PipelinePlugin/index.js +16 -15
  70. package/libs/PipelinePlugin/utils/Objects/FlowPipe.js +21 -20
  71. package/libs/PipelinePlugin/utils/Objects/HighlightPipe.js +15 -14
  72. package/libs/PipelinePlugin/utils/Objects/Pipe.js +13 -12
  73. package/libs/Sculpt/Meshes/Box.js +10 -8
  74. package/libs/Sculpt/Meshes/Cylinder.js +17 -15
  75. package/libs/Sculpt/Meshes/Line.d.ts +3 -1
  76. package/libs/Sculpt/Meshes/Line.js +89 -78
  77. package/libs/Sculpt/Meshes/Point.js +14 -12
  78. package/libs/Sculpt/Meshes/Polygon.d.ts +16 -7
  79. package/libs/Sculpt/Meshes/Polygon.js +71 -33
  80. package/libs/Sculpt/Meshes/PolygonWithEdge.d.ts +1 -0
  81. package/libs/Sculpt/Meshes/Polyline.d.ts +1 -0
  82. package/libs/Sculpt/Meshes/Polyline.js +69 -74
  83. package/libs/Sculpt/Meshes/Rectangle.js +7 -5
  84. package/libs/Sculpt/Meshes/RectangleWithEdge.d.ts +1 -0
  85. package/libs/Sculpt/Objects/Base/index.js +5 -5
  86. package/libs/Sculpt/Objects/Line/Editor.js +17 -15
  87. package/libs/Sculpt/Objects/Polygon/index.js +22 -22
  88. package/libs/Sculpt/Objects/Rectangle/Editor.js +2 -2
  89. package/libs/Sculpt/Objects/Rectangle/index.js +79 -69
  90. package/libs/Sculpt/index.js +15 -14
  91. package/libs/Sculpt/utils/three/ColoredMesh.js +6 -4
  92. package/libs/base/BasePlugin.js +16 -14
  93. package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +13 -12
  94. package/libs/floorplan/MapviewFloorplanPlugin/index.js +16 -15
  95. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +13 -12
  96. package/libs/floorplan/ModelFloorplanPlugin/index.js +16 -15
  97. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +15 -14
  98. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +16 -15
  99. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +13 -12
  100. package/libs/floorplan/TopviewFloorplanPlugin/index.js +16 -15
  101. package/libs/floorplan/index.js +3 -1
  102. package/libs/index.js +12 -12
  103. package/libs/shared-utils/five/index.js +5 -3
  104. package/libs/shared-utils/five/lookObject.js +20 -18
  105. package/libs/shared-utils/logger.js +1 -1
  106. package/libs/shared-utils/three/applyObjectMatrixWorld.js +4 -6
  107. package/libs/shared-utils/three/index.js +3 -1
  108. package/package.json +1 -1
@@ -1,39 +1,39 @@
1
- var _ = Object.defineProperty;
2
- var b = Object.getOwnPropertySymbols;
1
+ var M = Object.defineProperty;
2
+ var m = Object.getOwnPropertySymbols;
3
3
  var k = Object.prototype.hasOwnProperty, S = Object.prototype.propertyIsEnumerable;
4
- var f = (s, o, e) => o in s ? _(s, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[o] = e, y = (s, o) => {
5
- for (var e in o || (o = {}))
6
- k.call(o, e) && f(s, e, o[e]);
7
- if (b)
8
- for (var e of b(o))
9
- S.call(o, e) && f(s, e, o[e]);
10
- return s;
4
+ var u = (o, s, e) => s in o ? M(o, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[s] = e, f = (o, s) => {
5
+ for (var e in s || (s = {}))
6
+ k.call(s, e) && u(o, e, s[e]);
7
+ if (m)
8
+ for (var e of m(s))
9
+ S.call(s, e) && u(o, e, s[e]);
10
+ return o;
11
11
  };
12
- var h = (s, o, e) => (f(s, typeof o != "symbol" ? o + "" : o, e), e);
13
- import * as d from "three";
14
- import { DEFAULT_LINE_COLOR as m, DEFAULT_LINE_WIDTH as M, DEFAULT_HIGHLIGHT_OPACITY as D } from "../typings/style.js";
15
- import { LineGeometry as L, LineMaterial as w, THREE_Line2 as H } from "../../shared-utils/five/FiveLine.js";
16
- import { anyPositionToVector3 as C } from "../../shared-utils/positionToVector3.js";
17
- import { IObject3D as I } from "../../shared-utils/three/IObject3D.js";
12
+ var l = (o, s, e) => (u(o, typeof s != "symbol" ? s + "" : s, e), e);
13
+ import * as g from "three";
14
+ import { DEFAULT_LINE_COLOR as b, DEFAULT_LINE_WIDTH as p, DEFAULT_HIGHLIGHT_OPACITY as D } from "../typings/style.js";
15
+ import { LineGeometry as y, LineMaterial as I, THREE_Line2 as w } from "../../shared-utils/five/FiveLine.js";
16
+ import { anyPositionToVector3 as H } from "../../shared-utils/positionToVector3.js";
17
+ import { IObject3D as R } from "../../shared-utils/three/IObject3D.js";
18
18
  import "hammerjs";
19
19
  import "three/examples/jsm/renderers/CSS3DRenderer";
20
- import { centerPoint as R } from "../../shared-utils/three/centerPoint.js";
20
+ import { centerPoint as C } from "../../shared-utils/three/centerPoint.js";
21
+ import { LightTag as x } from "../../shared-utils/tag.js";
22
+ import { globalModules as W } from "../utils/Modules/Global.js";
23
+ import { removeAllTag as A } from "../utils/removeAllTag.js";
24
+ import { getLengthHTML as O } from "../utils/Meshes/getLengthHTML.js";
25
+ import { applyObjectMatrixWorld as T } from "../../shared-utils/three/applyObjectMatrixWorld.js";
21
26
  import "../../shared-utils/three/THREESphere.js";
22
27
  import "animejs";
23
28
  import { notNil as c } from "../../shared-utils/isNil.js";
24
29
  import "../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
25
- import { LightTag as p } from "../../shared-utils/tag.js";
26
- import { globalModules as x } from "../utils/Modules/Global.js";
27
- import { removeAllTag as P } from "../utils/removeAllTag.js";
28
- import { getLengthHTML as V } from "../utils/Meshes/getLengthHTML.js";
29
- new d.Vector2();
30
- class E extends w {
30
+ class E extends I {
31
31
  constructor(e) {
32
- var n, t;
32
+ var i, t;
33
33
  super(e);
34
- h(this, "_three_color");
35
- c(e == null ? void 0 : e.color) && (this.three_color = (n = e == null ? void 0 : e.color) != null ? n : 16777215), Object.keys(e).forEach((i) => {
36
- ["color", "dashed", "dashScale", "dashSize", "gapSize", "resolution"].includes(i) || i in this && (this[i] = e[i]);
34
+ l(this, "_three_color");
35
+ c(e == null ? void 0 : e.color) && (this.three_color = (i = e == null ? void 0 : e.color) != null ? i : 16777215), Object.keys(e).forEach((n) => {
36
+ ["color", "dashed", "dashScale", "dashSize", "gapSize", "resolution"].includes(n) || n in this && (this[n] = e[n]);
37
37
  }), this.setDashed((t = e == null ? void 0 : e.dashed) != null ? t : !1);
38
38
  }
39
39
  get three_color() {
@@ -46,34 +46,35 @@ class E extends w {
46
46
  this.dashed = e, e ? this.defines.USE_DASH = "" : delete this.defines.USE_DASH, this.needsUpdate = !0;
47
47
  }
48
48
  }
49
- class T extends H {
50
- constructor(e, n) {
51
- super(e, n);
52
- h(this, "name", "Line3");
49
+ class _ extends w {
50
+ constructor(e, i) {
51
+ super(e, i);
52
+ l(this, "name", "Line3");
53
53
  }
54
54
  }
55
- class X extends I {
55
+ class $ extends R {
56
56
  constructor(e) {
57
- var l, r, u, a, g;
57
+ var h, r, d, a, L;
58
58
  super();
59
- h(this, "name", "LineMesh");
60
- h(this, "points");
61
- h(this, "lengthDoms", []);
62
- h(this, "highlighted", !1);
63
- h(this, "line");
64
- h(this, "backLine");
65
- h(this, "opacityBeforeHighlight");
66
- h(this, "paramsStyle", {});
59
+ l(this, "name", "LineMesh");
60
+ l(this, "points");
61
+ l(this, "lengthDoms", []);
62
+ l(this, "highlighted", !1);
63
+ l(this, "line");
64
+ l(this, "backLine");
65
+ l(this, "opacityBeforeHighlight");
66
+ l(this, "paramsStyle", {});
67
+ l(this, "lastRenderLengthItem");
67
68
  this.paramsStyle = e != null ? e : {};
68
- const n = new L(), t = new E({
69
- color: new d.Color((l = e == null ? void 0 : e.lineColor) != null ? l : m),
70
- linewidth: (r = e == null ? void 0 : e.lineWidth) != null ? r : M,
69
+ const i = new y(), t = new E({
70
+ color: new g.Color((h = e == null ? void 0 : e.lineColor) != null ? h : b),
71
+ linewidth: (r = e == null ? void 0 : e.lineWidth) != null ? r : p,
71
72
  dashScale: 40,
72
- opacity: (u = e == null ? void 0 : e.opacity) != null ? u : 1,
73
+ opacity: (d = e == null ? void 0 : e.opacity) != null ? d : 1,
73
74
  transparent: !0,
74
75
  dashed: (a = e == null ? void 0 : e.dashed) != null ? a : !1
75
- }), i = new E({
76
- color: new d.Color((g = e == null ? void 0 : e.lineColor) != null ? g : m),
76
+ }), n = new E({
77
+ color: new g.Color((L = e == null ? void 0 : e.lineColor) != null ? L : b),
77
78
  linewidth: t.linewidth * 0.9,
78
79
  dashScale: t.dashScale,
79
80
  opacity: t.opacity * 0.8,
@@ -82,8 +83,8 @@ class X extends I {
82
83
  transparent: !0,
83
84
  resolution: t.resolution
84
85
  });
85
- this.line = new T(n, t), this.backLine = new T(n, i), this.line.renderOrder = 1, this.backLine.renderOrder = 0, this.line.name = "lineFrontMaterial", this.backLine.name = "lineBackMaterial", e && this.setStyle(e), e != null && e.points && this.setPoints(e.points), this.addEventListener("removed", () => {
86
- P(this);
86
+ this.line = new _(i, t), this.backLine = new _(i, n), this.line.renderOrder = 1, this.backLine.renderOrder = 0, this.line.name = "lineFrontMaterial", this.backLine.name = "lineBackMaterial", e && this.setStyle(e), e != null && e.points && this.setPoints(e.points), this.addEventListener("removed", () => {
87
+ A(this);
87
88
  });
88
89
  }
89
90
  get style() {
@@ -100,7 +101,7 @@ class X extends I {
100
101
  return this.line.material.linewidth;
101
102
  }
102
103
  get color() {
103
- return new d.Color(this.line.material.three_color);
104
+ return new g.Color(this.line.material.three_color);
104
105
  }
105
106
  get dashed() {
106
107
  return this.line.material.dashed;
@@ -111,27 +112,33 @@ class X extends I {
111
112
  get occlusionMode() {
112
113
  return this.line.material.depthTest === !1 ? "depthTest" : "translucence";
113
114
  }
115
+ updateMatrixWorld(e) {
116
+ var t;
117
+ super.updateMatrixWorld(e);
118
+ const i = (t = this.points) == null ? void 0 : t.map((n) => n.toArray().join(",")).join(",");
119
+ i !== this.lastRenderLengthItem && (this.updateLengthItems(), this.lastRenderLengthItem = i);
120
+ }
114
121
  setPoints(e) {
115
- const n = e.map(C).filter(c);
116
- if (this.points = n, n.length < 2) {
117
- this.line.geometry = new L(), this.backLine.geometry = this.line.geometry, this.updateLengthItems();
122
+ const i = e.map(H).filter(c);
123
+ if (this.points = i, i.length < 2) {
124
+ this.line.geometry = new y(), this.backLine.geometry = this.line.geometry, this.updateLengthItems();
118
125
  return;
119
126
  }
120
127
  this.addIfNotExists(this.line, this.backLine);
121
- const t = n.flatMap((i) => [i.x, i.y, i.z]);
122
- t.length > 2 && (this.line.geometry.dispose(), this.line.geometry = new L(), this.backLine.geometry = this.line.geometry), this.line.geometry.setPositions(t), this.line.computeLineDistances(), this.updateLengthItems(), this.needsRender = !0;
128
+ const t = i.flatMap((n) => [n.x, n.y, n.z]);
129
+ t.length > 2 && (this.line.geometry.dispose(), this.line.geometry = new y(), this.backLine.geometry = this.line.geometry), this.line.geometry.setPositions(t), this.line.computeLineDistances(), this.updateLengthItems(), this.needsRender = !0;
123
130
  }
124
- setResolution(e, n) {
131
+ setResolution(e, i) {
125
132
  const t = this.line.material.resolution;
126
- (t.x !== e || t.y !== n) && (t.set(e, n), this.needsRender = !0);
127
- const i = this.backLine.material.resolution;
128
- (i.x !== e || i.y !== n) && (i.set(e, n), this.needsRender = !0);
133
+ (t.x !== e || t.y !== i) && (t.set(e, i), this.needsRender = !0);
134
+ const n = this.backLine.material.resolution;
135
+ (n.x !== e || n.y !== i) && (n.set(e, i), this.needsRender = !0);
129
136
  }
130
137
  setStyle(e) {
131
- var i, l, r;
132
- this.paramsStyle = y(y({}, this.paramsStyle), e), c(e.lineColor) && (this.line.material.three_color = new d.Color(e.lineColor), this.backLine.material.three_color = new d.Color(e.lineColor)), c(e.lineWidth) && (this.line.material.linewidth = e.lineWidth), c(e.dashed) && this.line.material.setDashed(e.dashed), c(e.opacity) && (this.line.material.opacity = e.opacity, this.backLine.material.opacity = this.line.material.opacity * 0.2), this.updateLengthItems();
133
- const n = (i = e.occlusionVisibility) != null ? i : this.paramsStyle.occlusionVisibility, t = (r = (l = e.occlusionMode) != null ? l : this.paramsStyle.occlusionMode) != null ? r : "translucence";
134
- n ? t === "depthTest" ? (this.line.material.depthTest = !1, this.backLine.visible = !1) : t === "translucence" && (this.line.material.depthTest = !0, this.backLine.visible = !0, this.line.material.opacity === 1 ? this.backLine.material.setDashed(!0) : this.backLine.material.setDashed(this.line.material.dashed)) : (this.line.material.depthTest = !0, this.backLine.visible = !1), this.needsRender = !0;
138
+ var n, h, r;
139
+ this.paramsStyle = f(f({}, this.paramsStyle), e), c(e.lineColor) && (this.line.material.three_color = new g.Color(e.lineColor), this.backLine.material.three_color = new g.Color(e.lineColor)), c(e.lineWidth) && (this.line.material.linewidth = e.lineWidth), c(e.dashed) && this.line.material.setDashed(e.dashed), c(e.opacity) && (this.line.material.opacity = e.opacity, this.backLine.material.opacity = this.line.material.opacity * 0.2), this.updateLengthItems();
140
+ const i = (n = e.occlusionVisibility) != null ? n : this.paramsStyle.occlusionVisibility, t = (r = (h = e.occlusionMode) != null ? h : this.paramsStyle.occlusionMode) != null ? r : "translucence";
141
+ i ? t === "depthTest" ? (this.line.material.depthTest = !1, this.backLine.visible = !1) : t === "translucence" && (this.line.material.depthTest = !0, this.backLine.visible = !0, this.line.material.opacity === 1 ? this.backLine.material.setDashed(!0) : this.backLine.material.setDashed(this.line.material.dashed)) : (this.line.material.depthTest = !0, this.backLine.visible = !1), this.needsRender = !0;
135
142
  }
136
143
  highlight() {
137
144
  this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.line.material.opacity, this.line.material.opacity = this.opacityBeforeHighlight * D, this.backLine.material.opacity = this.backLine.material.opacity * D, this.needsRender = !0);
@@ -140,24 +147,28 @@ class X extends I {
140
147
  this.highlighted && (this.highlighted = !1, this.line.material.opacity = this.opacityBeforeHighlight, this.backLine.material.opacity = 0.2, this.needsRender = !0);
141
148
  }
142
149
  updateLengthItems() {
143
- var e, n;
144
- if ((!this.points || this.points.length < 2) && (this.lengthDoms.forEach((t) => t.destroy()), this.lengthDoms = []), this.paramsStyle.lengthEnable) {
145
- const t = (n = (e = this.points) == null ? void 0 : e.map((i, l) => {
146
- if (l !== 0)
147
- return [this.points[l - 1], i];
148
- }).filter(c)) != null ? n : [];
149
- t.forEach(([i, l], r) => {
150
- var a;
151
- const u = R(i, l);
152
- this.lengthDoms[r] = (a = this.lengthDoms[r]) != null ? a : (() => {
153
- const g = new p(x.five);
154
- return g.intersectCheck = !1, g;
155
- })(), this.lengthDoms[r].setPosition(u, [i, l]), this.lengthDoms[r].container.innerHTML = V(i.distanceTo(l).toFixed(2) + "m");
156
- }), this.lengthDoms.length > t.length && (this.lengthDoms.slice(t.length).forEach((i) => i.destroy()), this.lengthDoms.length = t.length);
150
+ const e = () => {
151
+ this.lengthDoms.forEach((i) => i.destroy()), this.lengthDoms = [];
152
+ };
153
+ if (!this.points || this.points.length < 2)
154
+ return e();
155
+ if (this.paramsStyle.lengthEnable) {
156
+ const i = T(this, this.points).map((t, n) => {
157
+ if (n !== 0)
158
+ return [T(this, this.points[n - 1]), t];
159
+ }).filter(c);
160
+ i.forEach(([t, n], h) => {
161
+ var d;
162
+ const r = C(t, n);
163
+ this.lengthDoms[h] = (d = this.lengthDoms[h]) != null ? d : (() => {
164
+ const a = new x(W.five);
165
+ return a.intersectCheck = !1, a;
166
+ })(), this.lengthDoms[h].setPosition(r, [t, n]), this.lengthDoms[h].container.innerHTML = O(t.distanceTo(n).toFixed(2) + "m");
167
+ }), this.lengthDoms.length > i.length && (this.lengthDoms.slice(i.length).forEach((t) => t.destroy()), this.lengthDoms.length = i.length);
157
168
  } else
158
- this.lengthDoms.forEach((t) => t.destroy()), this.lengthDoms = [];
169
+ e();
159
170
  }
160
171
  }
161
172
  export {
162
- X as LineMesh
173
+ $ as LineMesh
163
174
  };
@@ -1,30 +1,32 @@
1
1
  var C = Object.defineProperty, N = Object.defineProperties;
2
2
  var P = Object.getOwnPropertyDescriptors;
3
3
  var M = Object.getOwnPropertySymbols;
4
- var k = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;
4
+ var k = Object.prototype.hasOwnProperty, m = Object.prototype.propertyIsEnumerable;
5
5
  var n = (i, e, t) => e in i ? C(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, c = (i, e) => {
6
6
  for (var t in e || (e = {}))
7
7
  k.call(e, t) && n(i, t, e[t]);
8
8
  if (M)
9
9
  for (var t of M(e))
10
- B.call(e, t) && n(i, t, e[t]);
10
+ m.call(e, t) && n(i, t, e[t]);
11
11
  return i;
12
12
  }, g = (i, e) => N(i, P(e));
13
13
  var A = (i, e, t) => (n(i, typeof e != "symbol" ? e + "" : e, t), t);
14
14
  import * as o from "three";
15
- import { DEFAULT_HIGHLIGHT_OPACITY as b } from "../typings/style.js";
16
- import { IObject3D as E } from "../../shared-utils/three/IObject3D.js";
17
- import { anyPositionToVector3 as m } from "../../shared-utils/positionToVector3.js";
15
+ import { DEFAULT_HIGHLIGHT_OPACITY as B } from "../typings/style.js";
16
+ import { IObject3D as b } from "../../shared-utils/three/IObject3D.js";
17
+ import { anyPositionToVector3 as E } from "../../shared-utils/positionToVector3.js";
18
18
  import "hammerjs";
19
19
  import "three/examples/jsm/renderers/CSS3DRenderer";
20
- import "./Line.js";
20
+ import "@realsee/five/line";
21
+ import "../../shared-utils/tag.js";
22
+ import "../utils/Modules/Global.js";
21
23
  import "../../shared-utils/three/THREESphere.js";
22
24
  import "animejs";
23
25
  import { notNil as u } from "../../shared-utils/isNil.js";
24
26
  import "../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
25
- const F = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==";
27
+ const p = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==";
26
28
  let w = null;
27
- class O extends E {
29
+ class Q extends b {
28
30
  constructor(t) {
29
31
  var f, a;
30
32
  super();
@@ -39,7 +41,7 @@ class O extends E {
39
41
  transparent: !0,
40
42
  side: o.DoubleSide,
41
43
  size: (f = t == null ? void 0 : t.size) != null ? f : 8,
42
- map: w || (w = new o.TextureLoader().load(F)),
44
+ map: w || (w = new o.TextureLoader().load(p)),
43
45
  sizeAttenuation: !1
44
46
  }, r = new o.PointsMaterial(g(c({}, d), {
45
47
  color: (a = t == null ? void 0 : t.color) != null ? a : 16777215,
@@ -52,7 +54,7 @@ class O extends E {
52
54
  depthTest: !1,
53
55
  opacity: 0.5
54
56
  })), s = new o.Points(l, r), h = new o.Points(l, V);
55
- this.fontMesh = s, this.backgroundMesh = h, s.name = "FontMesh", h.name = "BackgroundMesh", s.renderOrder = 10, h.renderOrder = 0, this.add(s, h), t != null && t.point && this.position.copy(m(t.point)), t && this.setStyle(t);
57
+ this.fontMesh = s, this.backgroundMesh = h, s.name = "FontMesh", h.name = "BackgroundMesh", s.renderOrder = 10, h.renderOrder = 0, this.add(s, h), t != null && t.point && this.position.copy(E(t.point)), t && this.setStyle(t);
56
58
  }
57
59
  get color() {
58
60
  return this.fontMesh.material.color;
@@ -64,12 +66,12 @@ class O extends E {
64
66
  u(t.color) && (this.fontMesh.material.setValues({ color: t.color }), this.backgroundMesh.material.setValues({ color: t.color })), u(t.size) && (this.fontMesh.material.setValues({ side: t.size }), this.backgroundMesh.material.setValues({ side: t.size })), u(t.occlusionVisibility) && (t.occlusionVisibility ? t.occlusionMode === "depthTest" ? (this.fontMesh.material.depthTest = !1, this.backgroundMesh.visible = !1) : (this.fontMesh.material.depthTest = !0, this.backgroundMesh.visible = !0) : (this.fontMesh.material.depthTest = !0, this.backgroundMesh.visible = !1));
65
67
  }
66
68
  highlight() {
67
- this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.fontMesh.material.opacity, this.fontMesh.material.setValues({ opacity: this.opacityBeforeHighlight * b }));
69
+ this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.fontMesh.material.opacity, this.fontMesh.material.setValues({ opacity: this.opacityBeforeHighlight * B }));
68
70
  }
69
71
  unhighlight() {
70
72
  this.highlighted && (this.highlighted = !1, this.fontMesh.material.setValues({ opacity: this.opacityBeforeHighlight }));
71
73
  }
72
74
  }
73
75
  export {
74
- O as PointMesh
76
+ Q as PointMesh
75
77
  };
@@ -5,11 +5,14 @@ import type { PointsData } from '../utils/data';
5
5
  export declare const blankGeometry: THREE.BufferGeometry & {
6
6
  isBlank: true;
7
7
  };
8
- export type PolygonStyle = ColoredMeshStyle;
8
+ export type PolygonStyle = ColoredMeshStyle & {
9
+ lengthEnable: boolean;
10
+ };
9
11
  export type PolygonData = PointsData;
10
12
  export default class PolygonMesh extends ColoredMesh<THREE.BufferGeometry> {
11
13
  name: string;
12
14
  get style(): {
15
+ lengthEnable: boolean;
13
16
  color: THREE.Color;
14
17
  opacity: number;
15
18
  occlusionVisibility: boolean;
@@ -17,19 +20,24 @@ export default class PolygonMesh extends ColoredMesh<THREE.BufferGeometry> {
17
20
  };
18
21
  get isBlank(): boolean;
19
22
  get center(): THREE.Vector3;
23
+ get geometryInfo(): {
24
+ area: number;
25
+ center: THREE.Vector3;
26
+ };
20
27
  points: THREE.Vector3[];
21
28
  planeHelperNeedUpdate: boolean;
22
- private geometryInfoNeedUpdate;
29
+ geometryInfoNeedUpdate: boolean;
30
+ _paramsStyle: Partial<PolygonStyle>;
23
31
  private planeHelper;
24
- private geometryInfo;
32
+ private _geometryInfo;
25
33
  private opacityBeforeHighlight;
26
34
  private highlighted;
35
+ private lastRenderLengthItem;
36
+ private areaDom?;
27
37
  constructor(params?: Partial<PolygonStyle & PolygonData>);
38
+ updateMatrixWorld(force?: boolean): void;
39
+ setStyle(params: Partial<ColoredMeshStyle>): void;
28
40
  setPoints(points: AnyPositions): void;
29
- getGeometryInfo(): {
30
- center: THREE.Vector3;
31
- area: number;
32
- };
33
41
  /**
34
42
  * @description: 获取一个点投影在当前平面上的点
35
43
  */
@@ -37,4 +45,5 @@ export default class PolygonMesh extends ColoredMesh<THREE.BufferGeometry> {
37
45
  highlight(): void;
38
46
  unhighlight(): void;
39
47
  private updatePlaneHelper;
48
+ private updateAreaItems;
40
49
  }
@@ -1,61 +1,99 @@
1
- var l = Object.defineProperty;
2
- var p = (o, i, e) => i in o ? l(o, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[i] = e;
3
- var t = (o, i, e) => (p(o, typeof i != "symbol" ? i + "" : i, e), e);
4
- import * as r from "three";
5
- import { generatePolygonGeometry as g } from "../../shared-utils/three/generatePolygonGeometry.js";
6
- import { DEFAULT_HIGHLIGHT_OPACITY as a } from "../typings/style.js";
7
- import { anyPositionToVector3 as y } from "../../shared-utils/positionToVector3.js";
8
- import { ColoredMesh as f } from "../utils/three/ColoredMesh.js";
9
- import { getGeometryInfo as d } from "../../shared-utils/three/geometryUtil.js";
10
- const n = new r.BufferGeometry();
11
- n.name = "blankGeometry";
12
- n.isBlank = !0;
13
- class G extends f {
1
+ var d = Object.defineProperty, y = Object.defineProperties;
2
+ var f = Object.getOwnPropertyDescriptors;
3
+ var p = Object.getOwnPropertySymbols;
4
+ var u = Object.prototype.hasOwnProperty, c = Object.prototype.propertyIsEnumerable;
5
+ var h = (i, t, e) => t in i ? d(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e, n = (i, t) => {
6
+ for (var e in t || (t = {}))
7
+ u.call(t, e) && h(i, e, t[e]);
8
+ if (p)
9
+ for (var e of p(t))
10
+ c.call(t, e) && h(i, e, t[e]);
11
+ return i;
12
+ }, g = (i, t) => y(i, f(t));
13
+ var r = (i, t, e) => (h(i, typeof t != "symbol" ? t + "" : t, e), e);
14
+ import * as l from "three";
15
+ import { generatePolygonGeometry as I } from "../../shared-utils/three/generatePolygonGeometry.js";
16
+ import { DEFAULT_HIGHLIGHT_OPACITY as H } from "../typings/style.js";
17
+ import { anyPositionToVector3 as P } from "../../shared-utils/positionToVector3.js";
18
+ import { ColoredMesh as _ } from "../utils/three/ColoredMesh.js";
19
+ import { getGeometryInfo as S } from "../../shared-utils/three/geometryUtil.js";
20
+ import { LightTag as L } from "../../shared-utils/tag.js";
21
+ import { globalModules as U } from "../utils/Modules/Global.js";
22
+ import { getLengthHTML as A } from "../utils/Meshes/getLengthHTML.js";
23
+ const a = new l.BufferGeometry();
24
+ a.name = "blankGeometry";
25
+ a.isBlank = !0;
26
+ class E extends _ {
14
27
  constructor(e) {
15
28
  super(e);
16
- t(this, "name", "PolygonMesh");
17
- t(this, "points", []);
18
- t(this, "planeHelperNeedUpdate", !0);
19
- t(this, "geometryInfoNeedUpdate", !0);
20
- t(this, "planeHelper", null);
21
- t(this, "geometryInfo", null);
22
- t(this, "opacityBeforeHighlight");
23
- t(this, "highlighted", !1);
24
- e != null && e.points && this.setPoints(e.points);
29
+ r(this, "name", "PolygonMesh");
30
+ r(this, "points", []);
31
+ r(this, "planeHelperNeedUpdate", !0);
32
+ r(this, "geometryInfoNeedUpdate", !0);
33
+ r(this, "_paramsStyle");
34
+ r(this, "planeHelper", null);
35
+ r(this, "_geometryInfo", null);
36
+ r(this, "opacityBeforeHighlight");
37
+ r(this, "highlighted", !1);
38
+ r(this, "lastRenderLengthItem");
39
+ r(this, "areaDom");
40
+ e != null && e.points && this.setPoints(e.points), this._paramsStyle = e != null ? e : {}, this.updateAreaItems();
25
41
  }
26
42
  get style() {
27
- return super.style;
43
+ return g(n({}, super.style), { lengthEnable: this._paramsStyle.lengthEnable });
28
44
  }
29
45
  get isBlank() {
30
46
  return !!this.geometry.isBlank;
31
47
  }
32
48
  get center() {
33
- return this.getGeometryInfo().center;
49
+ return this.geometryInfo.center;
34
50
  }
35
- setPoints(e) {
51
+ get geometryInfo() {
52
+ return this.geometryInfoNeedUpdate && (this._geometryInfo = S(this.geometry), this.geometryInfoNeedUpdate = !1), this._geometryInfo;
53
+ }
54
+ updateMatrixWorld(e) {
36
55
  var s;
37
- const h = e.map(y);
38
- this.points = h, this.geometry = (s = g(this.points)) != null ? s : n, this.planeHelperNeedUpdate = !0, this.geometryInfoNeedUpdate = !0;
56
+ super.updateMatrixWorld(e);
57
+ const o = (s = this.points) == null ? void 0 : s.map((m) => m.toArray().join(",")).join(",");
58
+ o !== this.lastRenderLengthItem && (this.updateAreaItems(), this.lastRenderLengthItem = o);
59
+ }
60
+ setStyle(e) {
61
+ this._paramsStyle = n(n({}, this._paramsStyle), e), super.setStyle(this._paramsStyle), this.updateAreaItems();
39
62
  }
40
- getGeometryInfo() {
41
- return this.geometryInfoNeedUpdate ? d(this.geometry) : this.geometryInfo;
63
+ setPoints(e) {
64
+ var s;
65
+ const o = e.map(P);
66
+ this.points = o, this.geometry = (s = I(this.points)) != null ? s : a, this.planeHelperNeedUpdate = !0, this.geometryInfoNeedUpdate = !0, this.updateAreaItems();
42
67
  }
43
68
  /**
44
69
  * @description: 获取一个点投影在当前平面上的点
45
70
  */
46
71
  projectPoint(e) {
47
- return e && (this.planeHelperNeedUpdate && this.updatePlaneHelper(), this.planeHelper ? this.planeHelper.projectPoint(e, new r.Vector3()) : e);
72
+ return e && (this.planeHelperNeedUpdate && this.updatePlaneHelper(), this.planeHelper ? this.planeHelper.projectPoint(e, new l.Vector3()) : e);
48
73
  }
49
74
  highlight() {
50
- this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.opacity, this.setStyle({ opacity: this.opacity * a }), this.needsRender = !0);
75
+ this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.opacity, this.setStyle({ opacity: this.opacity * H }), this.needsRender = !0);
51
76
  }
52
77
  unhighlight() {
53
78
  this.highlighted && (this.highlighted = !1, this.setStyle({ opacity: this.opacityBeforeHighlight }), this.needsRender = !0);
54
79
  }
55
80
  updatePlaneHelper() {
56
- this.points.length >= 3 ? this.planeHelper = new r.Plane().setFromCoplanarPoints(this.points[0], this.points[1], this.points[2]) : this.planeHelper = null, this.planeHelperNeedUpdate = !1;
81
+ 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;
82
+ }
83
+ updateAreaItems() {
84
+ var o;
85
+ const e = () => {
86
+ var s;
87
+ (s = this.areaDom) == null || s.destroy(), this.areaDom = void 0;
88
+ };
89
+ if (!this._paramsStyle.lengthEnable || !this.geometryInfo)
90
+ return e();
91
+ this.areaDom = (o = this.areaDom) != null ? o : (() => {
92
+ const s = new L(U.five);
93
+ return s.intersectCheck = !1, s;
94
+ })(), this.areaDom.setPosition(this.center), this.areaDom.container.innerHTML = A(this.geometryInfo.area.toFixed(2) + "m²");
57
95
  }
58
96
  }
59
97
  export {
60
- G as PolygonMesh
98
+ E as PolygonMesh
61
99
  };
@@ -12,6 +12,7 @@ export declare class PolygonWithEdgeMesh extends PolygonMesh {
12
12
  get style(): {
13
13
  lineWidth: number;
14
14
  lineColor: THREE.Color;
15
+ lengthEnable: boolean;
15
16
  color: THREE.Color;
16
17
  opacity: number;
17
18
  occlusionVisibility: boolean;
@@ -14,6 +14,7 @@ export declare abstract class PolylineBaseMesh extends IObject3D {
14
14
  dashed: boolean;
15
15
  occlusionVisibility: boolean;
16
16
  occlusionMode: "translucence" | "depthTest";
17
+ lengthEnable: boolean;
17
18
  };
18
19
  get lineColor(): THREE.Color;
19
20
  get lineWidth(): number;