build-dxf 0.0.20 → 0.0.21

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 (41) hide show
  1. package/README.md +3 -0
  2. package/package.json +6 -4
  3. package/src/build.d.ts +6 -0
  4. package/src/build.js +1404 -1915
  5. package/src/index.css +1 -641
  6. package/src/index.js +7 -7
  7. package/src/index2.js +327 -528
  8. package/src/index3.js +1951 -1714
  9. package/src/selectLocalFile.js +1960 -3145
  10. package/src/utils/CommandManager/CommandFlow.d.ts +17 -0
  11. package/src/utils/CommandManager/CommandManager.d.ts +23 -0
  12. package/src/utils/DxfSystem/components/AngleCorrectionDxf.d.ts +10 -0
  13. package/src/utils/DxfSystem/components/Dxf.d.ts +36 -5
  14. package/src/utils/DxfSystem/components/LineAnalysis.d.ts +3 -1
  15. package/src/utils/DxfSystem/index.d.ts +2 -0
  16. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/ClippingLine.d.ts +45 -0
  17. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/CommandFlowComponent.d.ts +4 -1
  18. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/ConnectionLine.d.ts +33 -0
  19. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/Default.d.ts +0 -20
  20. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/DeleteSelectLine.d.ts +28 -0
  21. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/DeleteSelectWindow.d.ts +33 -0
  22. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/DrawDoorLine.d.ts +22 -4
  23. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/DrawLine.d.ts +20 -4
  24. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/DrawWindow.d.ts +25 -2
  25. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/IntersectionConnectionLine.d.ts +33 -0
  26. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/MergeLine.d.ts +33 -0
  27. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/PointDrag.d.ts +14 -1
  28. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/SelectAll.d.ts +30 -0
  29. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/VerticalCorrection copy.d.ts +82 -0
  30. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/VerticalCorrection.d.ts +75 -0
  31. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/VerticalReferenceLine.d.ts +21 -0
  32. package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/ViewAngle.d.ts +21 -0
  33. package/src/utils/DxfSystem/plugin/Editor/components/Editor.d.ts +4 -1
  34. package/src/utils/DxfSystem/plugin/Editor/components/RenderManager.d.ts +4 -1
  35. package/src/utils/DxfSystem/plugin/Editor/components/index.d.ts +1 -0
  36. package/src/utils/DxfSystem/plugin/RenderPlugin/components/Renderer.d.ts +3 -0
  37. package/src/utils/PointVirtualGrid/index.d.ts +8 -0
  38. package/src/utils/Quadtree/LineSegment.d.ts +34 -1
  39. package/src/utils/Quadtree/Point.d.ts +9 -2
  40. package/src/utils/Quadtree/Quadtree.d.ts +1 -1
  41. package/src/utils/deepClone.d.ts +6 -0
package/src/index2.js CHANGED
@@ -1,159 +1,113 @@
1
- import { C as Component, P as Point, V as Variable, D as DxfSystem, M as ModelDataPlugin, a as DetailsPoint, W as WhiteModel } from "./build.js";
2
- import * as THREE from "three";
3
- import { Group } from "three";
1
+ import { C as P, P as U, V as $, D as W, M as Z, a as J, W as H } from "./build.js";
2
+ import * as d from "three";
3
+ import { Group as q } from "three";
4
4
  import "clipper-lib";
5
5
  import "dxf-writer";
6
- import { E as ElButton, R as Renderer, L as Lines, D as DomEventRegister, a as DomContainer, b as ElCheckbox, S as SelectLocalFile } from "./selectLocalFile.js";
7
- import { defineComponent, createElementBlock, openBlock, createElementVNode, toDisplayString, createVNode, unref, withCtx, createTextVNode, createApp, ref, watch, onMounted, onUnmounted, createCommentVNode, createStaticVNode } from "vue";
8
- function drawLinePathToPng(points, width, height, color = "#fff", lineWidth = 2) {
9
- const can = document.createElement("canvas"), ctx = can.getContext("2d");
10
- can.width = width;
11
- can.height = height;
12
- ctx?.clearRect(0, 0, width, height);
13
- ctx?.save();
14
- ctx.strokeStyle = color;
15
- ctx.lineWidth = lineWidth;
16
- ctx?.beginPath();
17
- points.forEach((p, i) => {
18
- if (i === 0) ctx?.moveTo(p[0], p[1]);
19
- else ctx?.lineTo(p[0], p[1]);
20
- });
21
- ctx?.stroke();
22
- ctx?.restore();
23
- return can.toDataURL("image/png", 1);
6
+ import { E as w, R as E, L as Q, D as S, a as A, b as G, S as O } from "./selectLocalFile.js";
7
+ import { defineComponent as K, createElementBlock as R, openBlock as k, createElementVNode as y, toDisplayString as X, createVNode as x, unref as m, withCtx as D, createTextVNode as M, createApp as Y, ref as L, watch as C, onMounted as ee, onUnmounted as te, createCommentVNode as ie, createStaticVNode as ne } from "vue";
8
+ function oe(p, e, i, t = "#fff", n = 2) {
9
+ const o = document.createElement("canvas"), a = o.getContext("2d");
10
+ return o.width = e, o.height = i, a?.clearRect(0, 0, e, i), a?.save(), a.strokeStyle = t, a.lineWidth = n, a?.beginPath(), p.forEach((s, c) => {
11
+ c === 0 ? a?.moveTo(s[0], s[1]) : a?.lineTo(s[0], s[1]);
12
+ }), a?.stroke(), a?.restore(), o.toDataURL("image/png", 1);
24
13
  }
25
- const _hoisted_1$1 = { class: "bg-white rounded-lg p-[10px] w-[200px] text-[14px]" };
26
- const _hoisted_2$1 = { class: "flex" };
27
- const _hoisted_3$1 = { class: "flee-1 text-[14px] leading-[1.4em]" };
28
- const _hoisted_4$1 = { class: "mt-[10px] ml-[1.4em]" };
29
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
14
+ const se = { class: "bg-white rounded-lg p-[10px] w-[200px] text-[14px]" }, ae = { class: "flex" }, re = { class: "flee-1 text-[14px] leading-[1.4em]" }, le = { class: "mt-[10px] ml-[1.4em]" }, de = /* @__PURE__ */ K({
30
15
  __name: "Card",
31
16
  props: {
32
17
  message: {}
33
18
  },
34
19
  emits: ["look"],
35
- setup(__props, { emit: __emit }) {
36
- const emits = __emit;
37
- return (_ctx, _cache) => {
38
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
39
- createElementVNode("div", _hoisted_2$1, [
40
- _cache[1] || (_cache[1] = createElementVNode("div", { class: "size-[1.4em] flex justify-center items-center" }, [
41
- createElementVNode("div", { class: "size-[6px] bg-[var(--el-color-primary)] rounded-[50px]" })
42
- ], -1)),
43
- createElementVNode("p", _hoisted_3$1, toDisplayString(_ctx.message), 1)
44
- ]),
45
- createElementVNode("div", _hoisted_4$1, [
46
- createVNode(unref(ElButton), {
47
- onClick: _cache[0] || (_cache[0] = () => emits("look")),
48
- type: "primary",
49
- size: "small"
50
- }, {
51
- default: withCtx(() => _cache[2] || (_cache[2] = [
52
- createTextVNode(" 查看 ", -1)
53
- ])),
54
- _: 1,
55
- __: [2]
56
- })
57
- ])
58
- ]);
59
- };
20
+ setup(p, { emit: e }) {
21
+ const i = e;
22
+ return (t, n) => (k(), R("div", se, [
23
+ y("div", ae, [
24
+ n[1] || (n[1] = y("div", { class: "size-[1.4em] flex justify-center items-center" }, [
25
+ y("div", { class: "size-[6px] bg-[var(--el-color-primary)] rounded-[50px]" })
26
+ ], -1)),
27
+ y("p", re, X(t.message), 1)
28
+ ]),
29
+ y("div", le, [
30
+ x(m(w), {
31
+ onClick: n[0] || (n[0] = () => i("look")),
32
+ type: "primary",
33
+ size: "small"
34
+ }, {
35
+ default: D(() => n[2] || (n[2] = [
36
+ M(" 查看 ", -1)
37
+ ])),
38
+ _: 1,
39
+ __: [2]
40
+ })
41
+ ])
42
+ ]));
60
43
  }
61
- });
62
- const DES_POINT_DEFAULT_COLOR = "radial-gradient(circle at center, rgba(0,0,0, 1), transparent, rgba(0,0,0, 1))", DES_POINT_LINE_COLOR = "#409eff", DES_POINT_ACTIVE_COLOR = `radial-gradient(circle at center, ${DES_POINT_LINE_COLOR}, transparent, ${DES_POINT_LINE_COLOR})`;
63
- class DetailsPointRender extends Component {
44
+ }), N = "radial-gradient(circle at center, rgba(0,0,0, 1), transparent, rgba(0,0,0, 1))", _ = "#409eff", pe = `radial-gradient(circle at center, ${_}, transparent, ${_})`;
45
+ class I extends P {
64
46
  static name = "DetailsPointRender";
65
47
  Dxf = null;
66
48
  Renderer = null;
67
49
  WhiteModel = null;
68
50
  Variable = null;
69
- desPointGroup = new THREE.Group();
70
- rayLineGroup = new THREE.Group();
51
+ desPointGroup = new d.Group();
52
+ rayLineGroup = new d.Group();
71
53
  data = [];
72
- onAddFromParent(parent) {
73
- this.Dxf = parent.findComponentByName("Dxf");
74
- this.WhiteModel = parent.findComponentByName("WhiteModel");
75
- this.Renderer = parent.findComponentByName("Renderer");
76
- this.Variable = parent.findComponentByName("Variable");
77
- const desPoint = parent.findComponentByName("DetailsPoint");
78
- this.Renderer?.container.add(this.desPointGroup);
79
- this.rayLineGroup.visible = false;
80
- this.Variable?.addEventListener("whiteModelVisible", (e) => {
81
- this.desPointGroup.visible = e.value;
82
- });
83
- this.Dxf?.addEventListener("setDta", () => this.updateModel());
84
- desPoint?.addEventListener("handleSuccess", () => this.updateModel());
85
- this.Variable?.addEventListener("isLook", (e) => {
86
- if (!e.value) this.cancelLook();
87
- });
88
- this.Variable?.addEventListener("currentWheel", (e) => {
54
+ onAddFromParent(e) {
55
+ this.Dxf = e.findComponentByName("Dxf"), this.WhiteModel = e.findComponentByName("WhiteModel"), this.Renderer = e.findComponentByName("Renderer"), this.Variable = e.findComponentByName("Variable");
56
+ const i = e.findComponentByName("DetailsPoint");
57
+ this.Renderer?.container.add(this.desPointGroup), this.rayLineGroup.visible = !1, this.Variable?.addEventListener("whiteModelVisible", (n) => {
58
+ this.desPointGroup.visible = n.value;
59
+ }), this.Dxf?.addEventListener("setDta", () => this.updateModel()), i?.addEventListener("handleSuccess", () => this.updateModel()), this.Variable?.addEventListener("isLook", (n) => {
60
+ n.value || this.cancelLook();
61
+ }), this.Variable?.addEventListener("currentWheel", (n) => {
89
62
  if (this.Variable?.isLook) {
90
- const v = e.value > 0 ? -0.5 : 0.5;
91
- const camera = this.Renderer?.camera;
92
- camera.fov += v;
93
- camera.updateProjectionMatrix();
94
- }
95
- });
96
- let rotationYSpeed = 0;
97
- this.Variable?.addEventListener("pointerMove", (e) => {
98
- rotationYSpeed = e.value.x * 2e-3;
99
- });
100
- this.addEventListener("update", () => {
101
- const variable = this.Variable;
102
- const renderer = this.Renderer;
103
- if (variable.isLook) {
104
- renderer.camera.rotation.y += rotationYSpeed;
105
- rotationYSpeed *= 0.8;
106
- if (Math.abs(rotationYSpeed) < 1e-5) rotationYSpeed = 0;
63
+ const o = n.value > 0 ? -0.5 : 0.5, a = this.Renderer?.camera;
64
+ a.fov += o, a.updateProjectionMatrix();
107
65
  }
108
66
  });
109
- this.Variable?.addEventListener("currentKeyUp", (e) => {
110
- const variable = this.Variable;
111
- if (variable.isLook) {
112
- if (e.value === "escape") variable.set("isLook", false);
113
- }
114
- if (e.value === "r") this.rayLineGroup.visible = !this.rayLineGroup.visible;
67
+ let t = 0;
68
+ this.Variable?.addEventListener("pointerMove", (n) => {
69
+ t = n.value.x * 2e-3;
70
+ }), this.addEventListener("update", () => {
71
+ const n = this.Variable, o = this.Renderer;
72
+ n.isLook && (o.camera.rotation.y += t, t *= 0.8, Math.abs(t) < 1e-5 && (t = 0));
73
+ }), this.Variable?.addEventListener("currentKeyUp", (n) => {
74
+ const o = this.Variable;
75
+ o.isLook && n.value === "escape" && o.set("isLook", !1), n.value === "r" && (this.rayLineGroup.visible = !this.rayLineGroup.visible);
115
76
  });
116
77
  }
117
78
  /**
118
79
  * 更新模型
119
80
  */
120
81
  updateModel() {
121
- this.createDesPoint();
122
- this.createRayline();
82
+ this.createDesPoint(), this.createRayline();
123
83
  }
124
84
  createDesPoint() {
125
- const desPointHandle = this.parent?.findComponentByName("DetailsPoint");
126
- this.desPointGroup.clear();
127
- desPointHandle.desPoints.forEach(({ message, position, intersection }) => {
128
- const div = document.createElement("div");
129
- Object.assign(div.style, {
85
+ const e = this.parent?.findComponentByName("DetailsPoint");
86
+ this.desPointGroup.clear(), e.desPoints.forEach(({ message: i, position: t, intersection: n }) => {
87
+ const o = document.createElement("div");
88
+ Object.assign(o.style, {
130
89
  width: "15px",
131
90
  height: "15px",
132
- background: DES_POINT_DEFAULT_COLOR,
91
+ background: N,
133
92
  borderRadius: "40px",
134
93
  cursor: "pointer"
135
94
  });
136
- const css2DObject = new Renderer.CSS2DObject(div);
137
- css2DObject.position.copy(intersection);
138
- this.desPointGroup.add(css2DObject);
139
- div.addEventListener("mousedown", (e) => {
140
- e.stopPropagation();
141
- this.showDesBox(intersection, div, { message, position });
95
+ const a = new E.CSS2DObject(o);
96
+ a.position.copy(n), this.desPointGroup.add(a), o.addEventListener("mousedown", (s) => {
97
+ s.stopPropagation(), this.showDesBox(n, o, { message: i, position: t });
142
98
  });
143
99
  });
144
100
  }
145
101
  createRayline() {
146
102
  this.desPointGroup.add(this.rayLineGroup);
147
- const desPointHandle = this.parent?.findComponentByName("DetailsPoint");
148
- this.rayLineGroup.clear();
149
- desPointHandle.raylines.forEach(([p1, p2], index2) => {
150
- if (index2 % 2 === 0) {
151
- const box = new THREE.Mesh(new THREE.SphereGeometry(0.05), new THREE.MeshBasicMaterial({ color: 65280 }));
152
- box.position.copy(p1);
153
- this.rayLineGroup.add(box);
103
+ const e = this.parent?.findComponentByName("DetailsPoint");
104
+ this.rayLineGroup.clear(), e.raylines.forEach(([i, t], n) => {
105
+ if (n % 2 === 0) {
106
+ const a = new d.Mesh(new d.SphereGeometry(0.05), new d.MeshBasicMaterial({ color: 65280 }));
107
+ a.position.copy(i), this.rayLineGroup.add(a);
154
108
  }
155
- const lines = new Lines([p1, p2], index2 % 2 === 0 ? 16711680 : 65280);
156
- this.rayLineGroup.add(lines);
109
+ const o = new Q([i, t], n % 2 === 0 ? 16711680 : 65280);
110
+ this.rayLineGroup.add(o);
157
111
  });
158
112
  }
159
113
  _desBoxInfo;
@@ -164,227 +118,140 @@ class DetailsPointRender extends Component {
164
118
  * @param param2
165
119
  * @returns
166
120
  */
167
- showDesBox(point, div, { message, position }) {
168
- const variable = this.Variable, renderer = this.Renderer;
169
- if (variable.isLook) return;
121
+ showDesBox(e, i, { message: t, position: n }) {
122
+ const o = this.Variable, a = this.Renderer;
123
+ if (o.isLook) return;
170
124
  this.hideDesBox();
171
- const content = document.createElement("div");
172
- Object.assign(content.style, {
125
+ const s = document.createElement("div");
126
+ Object.assign(s.style, {
173
127
  padding: "0px",
174
128
  fontSize: "14px",
175
129
  pointerEvents: "none"
176
130
  });
177
- const contentCss2DObject = new Renderer.CSS2DObject(content);
178
- const width = 80, height = 40;
179
- const img = document.createElement("img");
180
- img.style.pointerEvents = "none";
181
- img.style.width = width + "px";
182
- img.style.height = height + "px";
183
- img.style.marginTop = "1px";
184
- img.src = drawLinePathToPng([[0, height - 1], [width * 0.2, height - 1], [width * 0.6, 2], [width, 2]], width, height, DES_POINT_LINE_COLOR, 2);
185
- content.appendChild(img);
186
- div.style.background = DES_POINT_ACTIVE_COLOR;
187
- contentCss2DObject.position.copy(point);
188
- this.desPointGroup.add(contentCss2DObject);
189
- content.style.opacity = "0";
190
- setTimeout(() => {
191
- const { width: width2, height: height2 } = content.getBoundingClientRect();
192
- content.style.marginLeft = width2 * 0.5 + "px";
193
- content.style.marginTop = -height2 * 0.5 + "px";
194
- content.style.opacity = "1";
195
- }, 20);
196
- this._desBoxInfo = {
197
- targetEl: div,
198
- css2DObject: contentCss2DObject
131
+ const c = new E.CSS2DObject(s), u = 80, b = 40, h = document.createElement("img");
132
+ h.style.pointerEvents = "none", h.style.width = u + "px", h.style.height = b + "px", h.style.marginTop = "1px", h.src = oe([[0, b - 1], [u * 0.2, b - 1], [u * 0.6, 2], [u, 2]], u, b, _, 2), s.appendChild(h), i.style.background = pe, c.position.copy(e), this.desPointGroup.add(c), s.style.opacity = "0", setTimeout(() => {
133
+ const { width: v, height: V } = s.getBoundingClientRect();
134
+ s.style.marginLeft = v * 0.5 + "px", s.style.marginTop = -V * 0.5 + "px", s.style.opacity = "1";
135
+ }, 20), this._desBoxInfo = {
136
+ targetEl: i,
137
+ css2DObject: c
199
138
  };
200
- const main = document.createElement("div");
201
- main.style.pointerEvents = "all";
202
- main.style.position = "absolute";
203
- main.style.left = "100%";
204
- main.style.top = "0px";
205
- main.style.margin = "-15px -20px";
206
- content.appendChild(main);
207
- createApp(_sfc_main$1, {
208
- message,
139
+ const f = document.createElement("div");
140
+ f.style.pointerEvents = "all", f.style.position = "absolute", f.style.left = "100%", f.style.top = "0px", f.style.margin = "-15px -20px", s.appendChild(f), Y(de, {
141
+ message: t,
209
142
  onLook: () => {
210
- this.onLook(point, position);
143
+ this.onLook(e, n);
211
144
  }
212
- }).mount(main);
213
- renderer.orbitControls.enabled = false;
214
- const cancelDesBox = () => {
215
- if (variable.isLook) return;
216
- renderer.orbitControls.enabled = true;
217
- this.hideDesBox();
145
+ }).mount(f), a.orbitControls.enabled = !1;
146
+ const B = () => {
147
+ o.isLook || (a.orbitControls.enabled = !0, this.hideDesBox());
218
148
  };
219
- main.addEventListener("mousedown", (e) => e.stopPropagation());
220
- document.addEventListener("mousedown", cancelDesBox);
149
+ f.addEventListener("mousedown", (v) => v.stopPropagation()), document.addEventListener("mousedown", B);
221
150
  }
222
151
  /**
223
152
  * 隐藏详情盒子
224
153
  */
225
154
  hideDesBox() {
226
- if (this._desBoxInfo) {
227
- this._desBoxInfo.targetEl.style.background = DES_POINT_DEFAULT_COLOR;
228
- this._desBoxInfo.css2DObject.removeFromParent();
229
- this._desBoxInfo = null;
230
- }
155
+ this._desBoxInfo && (this._desBoxInfo.targetEl.style.background = N, this._desBoxInfo.css2DObject.removeFromParent(), this._desBoxInfo = null);
231
156
  }
232
- orbitControlsTarget = new THREE.Vector3();
157
+ orbitControlsTarget = new d.Vector3();
233
158
  fov = 0;
234
159
  /**
235
160
  * 查看详情点
236
161
  * @param point
237
162
  * @param position
238
163
  */
239
- onLook(point, position) {
240
- const variable = this.Variable, renderer = this.Renderer;
241
- variable.set("isLook", true);
242
- this.orbitControlsTarget.copy(renderer.orbitControls.target);
243
- renderer.orbitControls?.target.copy(point);
244
- this.fov = renderer.camera.fov;
245
- this.hideDesBox();
246
- renderer.cameraTo(position, point);
247
- renderer.html2DRenderer?.domElement.focus();
164
+ onLook(e, i) {
165
+ const t = this.Variable, n = this.Renderer;
166
+ t.set("isLook", !0), this.orbitControlsTarget.copy(n.orbitControls.target), n.orbitControls?.target.copy(e), this.fov = n.camera.fov, this.hideDesBox(), n.cameraTo(i, e), n.html2DRenderer?.domElement.focus();
248
167
  }
249
168
  /**
250
169
  * 取消查看详情点
251
170
  */
252
171
  cancelLook() {
253
- const renderer = this.Renderer;
254
- renderer.cameraBack();
255
- renderer.orbitControls.enabled = true;
256
- renderer.orbitControls?.target.copy(this.orbitControlsTarget);
257
- renderer.camera.fov = this.fov;
258
- renderer.camera.updateProjectionMatrix();
172
+ const e = this.Renderer;
173
+ e.cameraBack(), e.orbitControls.enabled = !0, e.orbitControls?.target.copy(this.orbitControlsTarget), e.camera.fov = this.fov, e.camera.updateProjectionMatrix();
259
174
  }
260
175
  }
261
- class OriginalLineRender extends Component {
176
+ class j extends P {
262
177
  static name = "OriginalLineRender";
263
178
  Dxf = null;
264
179
  Renderer = null;
265
- originalLineMode = new THREE.LineSegments();
266
- appendLineMode = new THREE.LineSegments();
267
- textGroup = new THREE.Group();
268
- pointGroup = new THREE.Group();
269
- distanceGroup = new THREE.Group();
270
- onAddFromParent(parent) {
271
- this.Dxf = parent.findComponentByName("Dxf");
272
- this.Renderer = parent.findComponentByName("Renderer");
273
- const variable = parent.findComponentByName("Variable");
274
- this.Renderer?.container.add(this.originalLineMode);
275
- this.Renderer?.container.add(this.appendLineMode);
276
- this.Renderer?.container.add(this.textGroup);
277
- this.Renderer?.container.add(this.pointGroup);
278
- this.Renderer?.container.add(this.distanceGroup);
279
- this.appendLineMode.visible = false;
280
- this.textGroup.visible = false;
281
- this.pointGroup.visible = false;
282
- this.distanceGroup.visible = false;
283
- this.originalLineMode.material = new THREE.LineBasicMaterial({
180
+ originalLineMode = new d.LineSegments();
181
+ appendLineMode = new d.LineSegments();
182
+ textGroup = new d.Group();
183
+ pointGroup = new d.Group();
184
+ distanceGroup = new d.Group();
185
+ onAddFromParent(e) {
186
+ this.Dxf = e.findComponentByName("Dxf"), this.Renderer = e.findComponentByName("Renderer");
187
+ const i = e.findComponentByName("Variable");
188
+ this.Renderer?.container.add(this.originalLineMode), this.Renderer?.container.add(this.appendLineMode), this.Renderer?.container.add(this.textGroup), this.Renderer?.container.add(this.pointGroup), this.Renderer?.container.add(this.distanceGroup), this.appendLineMode.visible = !1, this.textGroup.visible = !1, this.pointGroup.visible = !1, this.distanceGroup.visible = !1, this.originalLineMode.material = new d.LineBasicMaterial({
284
189
  color: 5745151
285
- });
286
- this.Dxf?.addEventListener("setDta", (e) => {
287
- this.pointGroup.clear();
288
- this.updateMode(e.originalData);
289
- const dxf = this.Dxf;
290
- const center = dxf.originalBox.center;
291
- this.Renderer?.orbitControls?.target.set(center.x, center.y, 0);
292
- this.Renderer?.camera?.position.set(center.x, center.y, 0).add(new THREE.Vector3(1, 1, 1).multiplyScalar(10));
293
- const lineAnalysis = parent.findComponentByName("LineAnalysis");
294
- const array = lineAnalysis.appendLineSegmentList.flatMap((line) => line.points.flatMap((p) => [p.x, p.y, dxf.originalZAverage]));
295
- this.appendLineMode.geometry = new THREE.BufferGeometry().setAttribute("position", new THREE.BufferAttribute(new Float32Array(array), 3, true));
296
- this.appendLineMode.material = new THREE.LineBasicMaterial({ color: 16711935 });
297
- });
298
- variable?.addEventListener("originalLineVisible", (e) => {
299
- this.originalLineMode.visible = e.value;
300
- });
301
- variable?.addEventListener("currentKeyUp", (e) => {
302
- if (e.value === "q") variable.set("originalLineVisible", !variable.originalLineVisible);
303
- else if (e.value === "a") this.appendLineMode.visible = !this.appendLineMode.visible;
304
- else if (e.value === "t") this.textGroup.visible = !this.textGroup.visible;
305
- else if (e.value === "p") this.pointGroup.visible = !this.pointGroup.visible;
306
- else if (e.value === "l") this.distanceGroup.visible = !this.distanceGroup.visible;
190
+ }), this.Dxf?.addEventListener("setDta", (t) => {
191
+ this.pointGroup.clear(), this.updateMode(t.originalData);
192
+ const n = this.Dxf, o = n.originalBox.center;
193
+ this.Renderer?.orbitControls?.target.set(o.x, o.y, 0);
194
+ const s = e.findComponentByName("LineAnalysis").appendLineSegmentList.flatMap((c) => c.points.flatMap((u) => [u.x, u.y, n.originalZAverage]));
195
+ this.appendLineMode.geometry = new d.BufferGeometry().setAttribute("position", new d.BufferAttribute(new Float32Array(s), 3, !0)), this.appendLineMode.material = new d.LineBasicMaterial({ color: 16711935 });
196
+ }), i?.addEventListener("originalLineVisible", (t) => {
197
+ this.originalLineMode.visible = t.value;
198
+ }), i?.addEventListener("currentKeyUp", (t) => {
199
+ t.value === "q" ? i.set("originalLineVisible", !i.originalLineVisible) : t.value === "a" ? this.appendLineMode.visible = !this.appendLineMode.visible : t.value === "t" ? this.textGroup.visible = !this.textGroup.visible : t.value === "p" ? this.pointGroup.visible = !this.pointGroup.visible : t.value === "l" && (this.distanceGroup.visible = !this.distanceGroup.visible);
307
200
  });
308
201
  }
309
- updateMode(data) {
310
- const dxf = this.Dxf, renderer = this.Renderer;
311
- this.textGroup.clear();
312
- this.distanceGroup.clear();
313
- const originalArray = new Float32Array(data.flatMap(({ start, end }, i) => {
314
- const x = start.x + (end.x - start.x) * 0.5;
315
- const y = start.y + (end.y - start.y) * 0.5;
316
- renderer.createText(i, new THREE.Vector3(x, y, dxf.originalZAverage), { fontSize: "10px", color: "#ffff00" }, this.textGroup);
317
- renderer.createText(
318
- Number(Point.prototype.distance.call(start, end).toFixed(2)),
319
- new THREE.Vector3(x, y, dxf.originalZAverage),
202
+ updateMode(e) {
203
+ const i = this.Dxf, t = this.Renderer;
204
+ this.textGroup.clear(), this.distanceGroup.clear();
205
+ const n = new Float32Array(e.flatMap(({ start: o, end: a }, s) => {
206
+ const c = o.x + (a.x - o.x) * 0.5, u = o.y + (a.y - o.y) * 0.5;
207
+ return t.createText(s, new d.Vector3(c, u, i.originalZAverage), { fontSize: "10px", color: "#ffff00" }, this.textGroup), t.createText(
208
+ Number(U.prototype.distance.call(o, a).toFixed(2)),
209
+ new d.Vector3(c, u, i.originalZAverage),
320
210
  { fontSize: "10px", color: "#00ff00" },
321
211
  this.distanceGroup
322
- );
323
- renderer.createPointMesh(new THREE.Vector3(start.x, start.y, dxf.originalZAverage), 0.04, {
212
+ ), t.createPointMesh(new d.Vector3(o.x, o.y, i.originalZAverage), 0.04, {
324
213
  color: 16777215,
325
- transparent: true,
214
+ transparent: !0,
326
215
  opacity: 0.5
327
- }, this.pointGroup);
328
- renderer.createPointMesh(new THREE.Vector3(end.x, end.y, dxf.originalZAverage), 0.02, {
216
+ }, this.pointGroup), t.createPointMesh(new d.Vector3(a.x, a.y, i.originalZAverage), 0.02, {
329
217
  color: 16711680
330
- }, this.pointGroup);
331
- return [
332
- start.x,
333
- start.y,
334
- dxf.originalZAverage,
335
- end.x,
336
- end.y,
337
- dxf.originalZAverage
218
+ }, this.pointGroup), [
219
+ o.x,
220
+ o.y,
221
+ i.originalZAverage,
222
+ a.x,
223
+ a.y,
224
+ i.originalZAverage
338
225
  ];
339
226
  }));
340
- this.originalLineMode.geometry = new THREE.BufferGeometry().setAttribute("position", new THREE.BufferAttribute(originalArray, 3, true));
227
+ this.originalLineMode.geometry = new d.BufferGeometry().setAttribute("position", new d.BufferAttribute(n, 3, !0));
341
228
  }
342
229
  }
343
- class ModelDataRender extends Component {
230
+ class z extends P {
344
231
  static name = "ModelDataRender";
345
- onAddFromParent(parent) {
346
- this.dxf(parent);
347
- this.whiteModel(parent);
232
+ onAddFromParent(e) {
233
+ this.dxf(e), this.whiteModel(e);
348
234
  }
349
- dxf(parent) {
350
- const renderer = parent.findComponentByName("Renderer");
351
- const variable = parent.findComponentByName("Variable");
352
- const dxfLineModel = parent.findComponentByName("DxfLineModel");
353
- const dxf = parent.findComponentByName("Dxf");
354
- renderer.container.add(dxfLineModel.dxfModelGroup);
355
- variable.addEventListener("dxfVisible", (e) => {
356
- dxfLineModel.dxfModelGroup.visible = e.value;
235
+ dxf(e) {
236
+ const i = e.findComponentByName("Renderer"), t = e.findComponentByName("Variable"), n = e.findComponentByName("DxfLineModel"), o = e.findComponentByName("Dxf");
237
+ i.container.add(n.dxfModelGroup), t.addEventListener("dxfVisible", (s) => {
238
+ n.dxfModelGroup.visible = s.value;
357
239
  });
358
- let group = new Group();
359
- dxfLineModel.dxfModelGroup.add(group);
360
- variable?.addEventListener("currentKeyUp", (e) => {
361
- if (e.value === "w") variable.set("dxfVisible", !variable.dxfVisible);
362
- if (e.value === "b") {
363
- if (group.visible) group.visible = false;
364
- else {
365
- group.visible = true;
366
- group.clear();
367
- dxf.wallsGroup.forEach((path, j) => {
368
- path.forEach((p, i) => {
369
- renderer.createText(`${j}-${i}`, p, { color: "#ff00ff", fontSize: "10px" }, group).position.z = dxf.originalZAverage * 0.99;
370
- });
371
- });
372
- }
373
- }
240
+ let a = new q();
241
+ n.dxfModelGroup.add(a), t?.addEventListener("currentKeyUp", (s) => {
242
+ s.value === "w" && t.set("dxfVisible", !t.dxfVisible), s.value === "b" && (a.visible ? a.visible = !1 : (a.visible = !0, a.clear(), o.wallsGroup.forEach((c, u) => {
243
+ c.forEach((b, h) => {
244
+ i.createText(`${u}-${h}`, b, { color: "#ff00ff", fontSize: "10px" }, a).position.z = o.originalZAverage * 0.99;
245
+ });
246
+ })));
374
247
  });
375
248
  }
376
- whiteModel(parent) {
377
- const renderer = parent.findComponentByName("Renderer");
378
- const variable = parent.findComponentByName("Variable");
379
- const whiteModel = parent.findComponentByName("WhiteModel");
380
- renderer.container.add(whiteModel.whiteModelGroup);
381
- renderer.container.add(whiteModel.originalWhiteMode);
382
- whiteModel.originalWhiteMode.visible = false;
383
- variable?.addEventListener("whiteModelVisible", (e) => whiteModel.whiteModelGroup.visible = e.value);
384
- variable?.addEventListener("currentKeyUp", (e) => e.value === "e" && variable.set("whiteModelVisible", !variable.whiteModelVisible));
249
+ whiteModel(e) {
250
+ const i = e.findComponentByName("Renderer"), t = e.findComponentByName("Variable"), n = e.findComponentByName("WhiteModel");
251
+ i.container.add(n.whiteModelGroup), i.container.add(n.originalWhiteMode), n.originalWhiteMode.visible = !1, t?.addEventListener("whiteModelVisible", (o) => n.whiteModelGroup.visible = o.value), t?.addEventListener("currentKeyUp", (o) => o.value === "e" && t.set("whiteModelVisible", !t.whiteModelVisible));
385
252
  }
386
253
  }
387
- class EventInput extends Component {
254
+ class F extends P {
388
255
  static name = "EventInput";
389
256
  keyList = /* @__PURE__ */ new Set();
390
257
  mouseList = /* @__PURE__ */ new Set();
@@ -397,50 +264,32 @@ class EventInput extends Component {
397
264
  *
398
265
  * @param parent
399
266
  */
400
- onAddFromParent(parent) {
401
- const variable = parent.findComponentByType(Variable);
402
- variable.addEventListener("currentMouseDown", (e) => {
403
- if (this.mouseList.has(e.value)) return;
404
- this.mouseList.add(e.value);
405
- this.dispatchEvent({ type: "codeChange", code: e.value, mode: "down" });
406
- });
407
- variable.addEventListener("currentMouseUp", (e) => {
408
- this.mouseList.delete(e.value);
409
- this.dispatchEvent({ type: "codeChange", code: e.value, mode: "up" });
410
- });
411
- variable.addEventListener("currentKeyDown", (e) => {
412
- if (this.keyList.has(e.value)) return;
413
- this.keyList.add(e.value);
414
- this.dispatchEvent({ type: "codeChange", code: e.value, mode: "down" });
415
- });
416
- variable.addEventListener("currentKeyUp", (e) => {
417
- this.keyList.delete(e.value);
418
- this.dispatchEvent({ type: "codeChange", code: e.value, mode: "up" });
419
- });
420
- variable.addEventListener("focus", () => {
421
- this.keyList.clear();
422
- this.mouseList.clear();
423
- });
424
- this.addEventListener("codeChange", this._computedkeyCombination.bind(this));
425
- this.addKeyCombination("save", ["control", "s"]);
426
- this.addCancelDefaultBehavior((input) => input.isOnlyKeyDowns(["control", "s"]));
267
+ onAddFromParent(e) {
268
+ const i = e.findComponentByType($);
269
+ i.addEventListener("currentMouseDown", (t) => {
270
+ this.mouseList.has(t.value) || (this.mouseList.add(t.value), this.dispatchEvent({ type: "codeChange", code: t.value, mode: "down" }));
271
+ }), i.addEventListener("currentMouseUp", (t) => {
272
+ this.mouseList.delete(t.value), this.dispatchEvent({ type: "codeChange", code: t.value, mode: "up" });
273
+ }), i.addEventListener("currentKeyDown", (t) => {
274
+ this.keyList.has(t.value) || (this.keyList.add(t.value), this.dispatchEvent({ type: "codeChange", code: t.value, mode: "down" }));
275
+ }), i.addEventListener("currentKeyUp", (t) => {
276
+ this.keyList.delete(t.value), this.dispatchEvent({ type: "codeChange", code: t.value, mode: "up" });
277
+ }), i.addEventListener("focus", () => {
278
+ this.keyList.clear(), this.mouseList.clear();
279
+ }), this.addEventListener("codeChange", this._computedkeyCombination.bind(this)), this.addKeyCombination("save", ["control", "s"]), this.addCancelDefaultBehavior((t) => t.isOnlyKeyDowns(["control", "s"]));
427
280
  }
428
281
  /** 添加取消浏览器默认行为规则
429
282
  * @param callBack
430
283
  */
431
- addCancelDefaultBehavior(callBack) {
432
- const domEventRegister = this.parent?.findComponentByType(DomEventRegister);
433
- domEventRegister.addCancelDefaultBehavior(() => {
434
- return callBack(this);
435
- });
284
+ addCancelDefaultBehavior(e) {
285
+ (this.parent?.findComponentByType(S)).addCancelDefaultBehavior(() => e(this));
436
286
  }
437
287
  /**
438
288
  * 计算组合按键
439
289
  */
440
290
  _computedkeyCombination() {
441
- this.currentKeyCombinationMap.clear();
442
- this.keyCombinationMap.forEach(
443
- ({ keys, count }, name) => this.isOnlyKeyDowns(keys) && this.currentKeyCombinationMap.set(name, count)
291
+ this.currentKeyCombinationMap.clear(), this.keyCombinationMap.forEach(
292
+ ({ keys: e, count: i }, t) => this.isOnlyKeyDowns(e) && this.currentKeyCombinationMap.set(t, i)
444
293
  );
445
294
  }
446
295
  /**
@@ -449,281 +298,231 @@ class EventInput extends Component {
449
298
  * @param keys
450
299
  * @param count
451
300
  */
452
- addKeyCombination(name, keys, count = 1) {
453
- this.keyCombinationMap.set(name, { keys, count });
301
+ addKeyCombination(e, i, t = 1) {
302
+ this.keyCombinationMap.set(e, { keys: i, count: t });
454
303
  }
455
304
  /**
456
305
  * 移除组合按键
457
306
  * @param name
458
307
  */
459
- removeKeyCombination(name) {
460
- this.keyCombinationMap.delete(name);
308
+ removeKeyCombination(e) {
309
+ this.keyCombinationMap.delete(e);
461
310
  }
462
311
  /**
463
312
  * 是否按下按键
464
313
  * @param key
465
314
  * @returns
466
315
  */
467
- isKeyDown(key) {
468
- return this.keyList.has(key) || this.mouseList.has(key);
316
+ isKeyDown(e) {
317
+ return this.keyList.has(e.toLocaleLowerCase()) || this.mouseList.has(e.toLocaleLowerCase());
469
318
  }
470
319
  /**
471
320
  * 是否按下按键组
472
321
  * @param keys
473
322
  * @returns
474
323
  */
475
- isKeyDowns(keys) {
476
- return keys.every((v) => this.isKeyDown(v));
324
+ isKeyDowns(e) {
325
+ return e.every((i) => this.isKeyDown(i));
477
326
  }
478
327
  /**
479
328
  * 是否按下按键组中部分
480
329
  * @param keys
481
330
  * @returns
482
331
  */
483
- isSomeKeyDowns(keys) {
484
- return keys.some((v) => this.isKeyDown(v));
332
+ isSomeKeyDowns(e) {
333
+ return e.some((i) => this.isKeyDown(i));
485
334
  }
486
335
  /**
487
336
  * 是否按下按键组中所有,并且只按下按键组中的按键
488
337
  * @param keys
489
338
  * @returns
490
339
  */
491
- isOnlyKeyDowns(keys) {
492
- if (keys.length !== this.codeCount) return false;
493
- const keyList = keys.filter((v) => this.isKeyDown(v));
494
- return keyList.length === keys.length;
340
+ isOnlyKeyDowns(e) {
341
+ return e.length !== this.codeCount ? !1 : e.filter((t) => this.isKeyDown(t)).length === e.length;
495
342
  }
496
343
  /**
497
344
  *
498
345
  * @param keys
499
346
  * @returns
500
347
  */
501
- isOnlyKeyDown(key) {
502
- return this.codeCount === 1 && this.isKeyDown(key);
348
+ isOnlyKeyDown(e) {
349
+ return this.codeCount === 1 && this.isKeyDown(e);
503
350
  }
504
351
  /**
505
352
  *
506
353
  * @param name
507
354
  */
508
- isKeyCombination(name) {
509
- if (this.currentKeyCombinationMap.has(name)) {
510
- const count = this.currentKeyCombinationMap.get(name);
511
- if (count === 0) this.currentKeyCombinationMap.delete(name);
512
- else this.currentKeyCombinationMap.set(name, count - 1);
513
- return true;
355
+ isKeyCombination(e) {
356
+ if (this.currentKeyCombinationMap.has(e)) {
357
+ const i = this.currentKeyCombinationMap.get(e);
358
+ return i === 0 ? this.currentKeyCombinationMap.delete(e) : this.currentKeyCombinationMap.set(e, i - 1), !0;
514
359
  }
515
- return false;
360
+ return !1;
516
361
  }
517
362
  }
518
- const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
363
+ const Ce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
519
364
  __proto__: null,
520
- DetailsPointRender,
521
- DomContainer,
522
- DomEventRegister,
523
- EventInput,
524
- ModelDataRender,
525
- OriginalLineRender,
526
- Renderer
527
- }, Symbol.toStringTag, { value: "Module" }));
528
- const _hoisted_1 = { class: "pointer-events-none w-full flex justify-between absolute left-0 top-0 p-[10px] z-[1000] gap-[5px] select-none" };
529
- const _hoisted_2 = { class: "pointer-events-auto" };
530
- const _hoisted_3 = { class: "pointer-events-auto" };
531
- const _hoisted_4 = { class: "text-[14px] bg-[rgba(255,255,255,1)] rounded-[6px] p-[0px_10px]" };
532
- const _sfc_main = /* @__PURE__ */ defineComponent({
365
+ DetailsPointRender: I,
366
+ DomContainer: A,
367
+ DomEventRegister: S,
368
+ EventInput: F,
369
+ ModelDataRender: z,
370
+ OriginalLineRender: j,
371
+ Renderer: E
372
+ }, Symbol.toStringTag, { value: "Module" })), ce = { class: "pointer-events-none w-full flex justify-between absolute left-0 top-0 p-[10px] z-[1000] gap-[5px] select-none" }, ue = { class: "pointer-events-auto" }, he = { class: "pointer-events-auto" }, me = { class: "text-[14px] bg-[rgba(255,255,255,1)] rounded-[6px] p-[0px_10px]" }, we = /* @__PURE__ */ K({
533
373
  __name: "Dxf",
534
374
  props: {
535
375
  lines: {},
536
376
  detailsPoint: {}
537
377
  },
538
- setup(__props) {
539
- THREE.Object3D.DEFAULT_UP = new THREE.Vector3(0, 0, 1);
540
- const props = __props;
541
- const elRef = ref(), originalLineVisible = ref(true), dxfVisible = ref(true), whiteModelVisible = ref(true), isLook = ref(false), dxfSystem = new DxfSystem().usePlugin(ModelDataPlugin).usePlugin(RenderPlugin), desPoint = dxfSystem.findComponentByType(DetailsPoint), domContainer = dxfSystem.findComponentByType(DomContainer), whiteModel = dxfSystem.findComponentByType(WhiteModel);
542
- watch(() => props.lines, () => props.lines && setLines(props.lines));
543
- watch(() => props.detailsPoint, () => props.detailsPoint && desPoint?.set(props.detailsPoint));
544
- function setLines(lines) {
545
- if (lines) {
546
- localStorage.setItem("lines", JSON.stringify(lines));
378
+ setup(p) {
379
+ d.Object3D.DEFAULT_UP = new d.Vector3(0, 0, 1);
380
+ const e = p, i = L(), t = L(!0), n = L(!0), o = L(!0), a = L(!1), s = new W().usePlugin(Z).usePlugin(fe), c = s.findComponentByType(J), u = s.findComponentByType(A), b = s.findComponentByType(H);
381
+ C(() => e.lines, () => e.lines && h(e.lines)), C(() => e.detailsPoint, () => e.detailsPoint && c?.set(e.detailsPoint));
382
+ function h(r) {
383
+ if (r) {
384
+ localStorage.setItem("lines", JSON.stringify(r));
547
385
  try {
548
- dxfSystem.Dxf.set(lines);
549
- dxfSystem.Dxf.lineOffset();
550
- } catch (error) {
551
- console.log(error);
386
+ s.Dxf.set(r), s.Dxf.lineOffset();
387
+ } catch (l) {
388
+ console.log(l);
552
389
  }
553
390
  }
554
391
  }
555
- async function selectLocalFile() {
556
- const data = await SelectLocalFile.json();
557
- if (Array.isArray(data)) {
558
- localStorage.removeItem("orbitControls");
559
- setLines(data);
560
- }
561
- }
562
- async function selectDetailsPointFile() {
563
- const data = await SelectLocalFile.json();
564
- if (Array.isArray(data)) desPoint?.set(data);
392
+ async function f() {
393
+ const r = await O.json();
394
+ Array.isArray(r) && (localStorage.removeItem("orbitControls"), h(r));
565
395
  }
566
- watch(originalLineVisible, () => dxfSystem.Variable.set("originalLineVisible", originalLineVisible.value));
567
- watch(dxfVisible, () => dxfSystem.Variable.set("dxfVisible", dxfVisible.value));
568
- watch(whiteModelVisible, () => dxfSystem.Variable.set("whiteModelVisible", whiteModelVisible.value));
569
- dxfSystem.Variable.addEventListener("isLook", (e) => isLook.value = e.value);
570
- dxfSystem.Variable.addEventListener("originalLineVisible", (e) => originalLineVisible.value = e.value);
571
- dxfSystem.Variable.addEventListener("dxfVisible", (e) => dxfVisible.value = e.value);
572
- dxfSystem.Variable.addEventListener("whiteModelVisible", (e) => whiteModelVisible.value = e.value);
573
- if (localStorage.getItem("lines")) {
574
- setLines(JSON.parse(localStorage.getItem("lines") ?? "{}"));
575
- } else {
576
- setLines(props.lines);
396
+ async function B() {
397
+ const r = await O.json();
398
+ Array.isArray(r) && c?.set(r);
577
399
  }
578
- props.detailsPoint && desPoint?.set(props.detailsPoint);
579
- onMounted(() => domContainer && elRef.value?.appendChild(domContainer.domElement));
580
- onUnmounted(() => dxfSystem.destroy());
581
- const renderer = dxfSystem.findComponentByType(Renderer);
582
- renderer.orbitControls?.addEventListener("change", () => {
400
+ C(t, () => s.Variable.set("originalLineVisible", t.value)), C(n, () => s.Variable.set("dxfVisible", n.value)), C(o, () => s.Variable.set("whiteModelVisible", o.value)), s.Variable.addEventListener("isLook", (r) => a.value = r.value), s.Variable.addEventListener("originalLineVisible", (r) => t.value = r.value), s.Variable.addEventListener("dxfVisible", (r) => n.value = r.value), s.Variable.addEventListener("whiteModelVisible", (r) => o.value = r.value), localStorage.getItem("lines") ? h(JSON.parse(localStorage.getItem("lines") ?? "{}")) : h(e.lines), e.detailsPoint && c?.set(e.detailsPoint), ee(() => u && i.value?.appendChild(u.domElement)), te(() => s.destroy());
401
+ const v = s.findComponentByType(E);
402
+ v.orbitControls?.addEventListener("change", () => {
583
403
  localStorage.setItem("orbitControls", JSON.stringify({
584
- position: renderer.camera.position.toArray(),
585
- target: renderer.orbitControls?.target.toArray()
404
+ position: v.camera.position.toArray(),
405
+ target: v.orbitControls?.target.toArray()
586
406
  }));
587
407
  });
588
- const d = localStorage.getItem("orbitControls");
589
- if (d) {
590
- const data = JSON.parse(d);
408
+ const V = localStorage.getItem("orbitControls");
409
+ if (V) {
410
+ const r = JSON.parse(V);
591
411
  setTimeout(() => {
592
- renderer.camera.position.set(data.position[0], data.position[1], data.position[2]);
593
- renderer.orbitControls?.target.set(data.target[0], data.target[1], data.target[2]);
412
+ v.camera.position.set(r.position[0], r.position[1], r.position[2]), v.orbitControls?.target.set(r.target[0], r.target[1], r.target[2]);
594
413
  });
595
414
  }
596
- return (_ctx, _cache) => {
597
- return openBlock(), createElementBlock("div", {
598
- ref_key: "elRef",
599
- ref: elRef,
600
- style: { "height": "100%", "width": "100%", "overflow": "hidden", "position": "relative" }
601
- }, [
602
- createElementVNode("div", _hoisted_1, [
603
- createElementVNode("div", _hoisted_2, [
604
- createVNode(unref(ElButton), {
605
- size: "small",
606
- type: "primary",
607
- onClick: _cache[0] || (_cache[0] = ($event) => unref(dxfSystem).Dxf.download("test.dxf"))
608
- }, {
609
- default: withCtx(() => _cache[6] || (_cache[6] = [
610
- createTextVNode(" 下载 DXF ", -1)
611
- ])),
612
- _: 1,
613
- __: [6]
614
- }),
615
- createVNode(unref(ElButton), {
616
- size: "small",
617
- type: "primary",
618
- onClick: _cache[1] || (_cache[1] = ($event) => unref(whiteModel).downloadGltf("test.glb"))
619
- }, {
620
- default: withCtx(() => _cache[7] || (_cache[7] = [
621
- createTextVNode(" 下载 白模 ", -1)
622
- ])),
623
- _: 1,
624
- __: [7]
625
- }),
626
- createVNode(unref(ElButton), {
627
- size: "small",
628
- type: "success",
629
- onClick: selectLocalFile
630
- }, {
631
- default: withCtx(() => _cache[8] || (_cache[8] = [
632
- createTextVNode(" 选择线路文件 ", -1)
633
- ])),
634
- _: 1,
635
- __: [8]
636
- }),
637
- createVNode(unref(ElButton), {
638
- size: "small",
639
- type: "success",
640
- onClick: selectDetailsPointFile
641
- }, {
642
- default: withCtx(() => _cache[9] || (_cache[9] = [
643
- createTextVNode(" 选择详情点文件 ", -1)
644
- ])),
645
- _: 1,
646
- __: [9]
647
- }),
648
- createVNode(unref(ElButton), {
649
- size: "small",
650
- type: "success",
651
- onClick: selectDetailsPointFile
652
- }, {
653
- default: withCtx(() => _cache[10] || (_cache[10] = [
654
- createTextVNode(" 编辑模式 ", -1)
655
- ])),
656
- _: 1,
657
- __: [10]
658
- })
415
+ return (r, l) => (k(), R("div", {
416
+ ref_key: "elRef",
417
+ ref: i,
418
+ style: { height: "100%", width: "100%", overflow: "hidden", position: "relative" }
419
+ }, [
420
+ y("div", ce, [
421
+ y("div", ue, [
422
+ x(m(w), {
423
+ size: "small",
424
+ type: "primary",
425
+ onClick: l[0] || (l[0] = (g) => m(s).Dxf.download("test.dxf"))
426
+ }, {
427
+ default: D(() => l[6] || (l[6] = [
428
+ M(" 下载 DXF ", -1)
429
+ ])),
430
+ _: 1,
431
+ __: [6]
432
+ }),
433
+ x(m(w), {
434
+ size: "small",
435
+ type: "primary",
436
+ onClick: l[1] || (l[1] = (g) => m(b).downloadGltf("test.glb"))
437
+ }, {
438
+ default: D(() => l[7] || (l[7] = [
439
+ M(" 下载 白模 ", -1)
440
+ ])),
441
+ _: 1,
442
+ __: [7]
443
+ }),
444
+ x(m(w), {
445
+ size: "small",
446
+ type: "success",
447
+ onClick: f
448
+ }, {
449
+ default: D(() => l[8] || (l[8] = [
450
+ M(" 选择线路文件 ", -1)
451
+ ])),
452
+ _: 1,
453
+ __: [8]
454
+ }),
455
+ x(m(w), {
456
+ size: "small",
457
+ type: "success",
458
+ onClick: B
459
+ }, {
460
+ default: D(() => l[9] || (l[9] = [
461
+ M(" 选择详情点文件 ", -1)
462
+ ])),
463
+ _: 1,
464
+ __: [9]
465
+ })
466
+ ]),
467
+ a.value ? (k(), R("div", {
468
+ key: 0,
469
+ onClick: l[2] || (l[2] = (g) => m(s).Variable.set("isLook", !1)),
470
+ class: "pointer-events-auto text-[#fff] h-fit text-[14px] rounded-[10px] bg-black p-[5px_20px] select-none cursor-pointer"
471
+ }, " 点击这或按 ESC 取消 ")) : ie("", !0),
472
+ y("div", he, [
473
+ y("div", me, [
474
+ x(m(G), {
475
+ modelValue: t.value,
476
+ "onUpdate:modelValue": l[3] || (l[3] = (g) => t.value = g),
477
+ label: "线(Q)"
478
+ }, null, 8, ["modelValue"]),
479
+ x(m(G), {
480
+ modelValue: n.value,
481
+ "onUpdate:modelValue": l[4] || (l[4] = (g) => n.value = g),
482
+ label: "dxf(W)"
483
+ }, null, 8, ["modelValue"]),
484
+ x(m(G), {
485
+ modelValue: o.value,
486
+ "onUpdate:modelValue": l[5] || (l[5] = (g) => o.value = g),
487
+ label: "墙体(E)"
488
+ }, null, 8, ["modelValue"])
659
489
  ]),
660
- isLook.value ? (openBlock(), createElementBlock("div", {
661
- key: 0,
662
- onClick: _cache[2] || (_cache[2] = ($event) => unref(dxfSystem).Variable.set("isLook", false)),
663
- class: "pointer-events-auto text-[#fff] h-fit text-[14px] rounded-[10px] bg-black p-[5px_20px] select-none cursor-pointer"
664
- }, " 点击这或按 ESC 取消 ")) : createCommentVNode("", true),
665
- createElementVNode("div", _hoisted_3, [
666
- createElementVNode("div", _hoisted_4, [
667
- createVNode(unref(ElCheckbox), {
668
- modelValue: originalLineVisible.value,
669
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => originalLineVisible.value = $event),
670
- label: "线(Q)"
671
- }, null, 8, ["modelValue"]),
672
- createVNode(unref(ElCheckbox), {
673
- modelValue: dxfVisible.value,
674
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => dxfVisible.value = $event),
675
- label: "dxf(W)"
676
- }, null, 8, ["modelValue"]),
677
- createVNode(unref(ElCheckbox), {
678
- modelValue: whiteModelVisible.value,
679
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => whiteModelVisible.value = $event),
680
- label: "墙体(E)"
681
- }, null, 8, ["modelValue"])
682
- ]),
683
- _cache[11] || (_cache[11] = createStaticVNode('<div class="mt-[5px] text-[#c9c9c9] text-[10px]"><p class="text-right">详情点射线辅助线快捷键:R</p><p class="text-right">墙壁合并追加线快捷键:A</p><p class="text-right">线段序号快捷键:T</p><p class="text-right">线段端点标示快捷键:P</p><p class="text-right">线段长度(单位米)快捷键:L</p></div>', 1))
684
- ])
490
+ l[10] || (l[10] = ne('<div class="mt-[5px] text-[#c9c9c9] text-[10px]"><p class="text-right">详情点射线辅助线快捷键:R</p><p class="text-right">墙壁合并追加线快捷键:A</p><p class="text-right">线段序号快捷键:T</p><p class="text-right">线段端点标示快捷键:P</p><p class="text-right">线段长度(单位米)快捷键:L</p></div>', 1))
685
491
  ])
686
- ], 512);
687
- };
492
+ ])
493
+ ], 512));
688
494
  }
689
495
  });
690
- function RenderPlugin_(dxfSystem, option = {}) {
496
+ function T(p, e = {}) {
691
497
  const {
692
- originalLine = true,
693
- modelData = true,
694
- detailsPoint = true,
695
- orbitControls = true,
696
- camera = new THREE.PerspectiveCamera(45, 1, 0.01, 1e3)
697
- } = option;
698
- const domContainer = new DomContainer();
699
- dxfSystem.addComponent(domContainer);
700
- dxfSystem.addComponent(new Renderer({
701
- canvas: domContainer.canvas,
702
- camera,
498
+ originalLine: i = !0,
499
+ modelData: t = !0,
500
+ detailsPoint: n = !0,
501
+ orbitControls: o = !0,
502
+ camera: a = new d.PerspectiveCamera(45, 1, 0.01, 1e3)
503
+ } = e, s = new A();
504
+ p.addComponent(s), p.addComponent(new E({
505
+ canvas: s.canvas,
506
+ camera: a,
703
507
  htmlRenderer: {
704
- "2d": domContainer.html2DRenderer,
705
- "3d": domContainer.html3DRenderer
508
+ "2d": s.html2DRenderer,
509
+ "3d": s.html3DRenderer
706
510
  },
707
- resizeObserver: domContainer.domElement,
708
- orbitControls: orbitControls ? {
709
- domElement: domContainer.domElement,
710
- enableDamping: true,
511
+ resizeObserver: s.domElement,
512
+ orbitControls: o ? {
513
+ domElement: s.domElement,
514
+ enableDamping: !0,
711
515
  dampingFactor: 0.15
712
516
  } : void 0
713
- }));
714
- originalLine && dxfSystem.addComponent(new OriginalLineRender());
715
- modelData && dxfSystem.addComponent(new ModelDataRender());
716
- detailsPoint && dxfSystem.addComponent(new DetailsPointRender());
717
- dxfSystem.addComponent(new DomEventRegister());
718
- dxfSystem.addComponent(new EventInput());
517
+ })), i && p.addComponent(new j()), t && p.addComponent(new z()), n && p.addComponent(new I()), p.addComponent(new S()), p.addComponent(new F());
719
518
  }
720
- const RenderPlugin = Object.assign(RenderPlugin_, {
721
- create(option = {}) {
722
- return (dxfSystem) => RenderPlugin_(dxfSystem, option);
519
+ const fe = Object.assign(T, {
520
+ create(p = {}) {
521
+ return (e) => T(e, p);
723
522
  }
724
523
  });
725
524
  export {
726
- _sfc_main as Dxf3DView,
727
- RenderPlugin,
728
- index as components
525
+ we as Dxf3DView,
526
+ fe as RenderPlugin,
527
+ Ce as components
729
528
  };