build-dxf 0.0.23 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/build.js +1313 -1055
- package/src/index.css +1 -1
- package/src/index3.js +687 -828
- package/src/utils/DxfSystem/components/Dxf.d.ts +39 -13
- package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/VerticalCorrection.d.ts +1 -1
- package/src/utils/DxfSystem/plugin/Editor/components/RenderManager.d.ts +2 -16
- package/src/utils/Quadtree/LineSegment.d.ts +12 -0
package/src/index3.js
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { i as ht, n as ut, r as
|
|
3
|
-
import { C as
|
|
1
|
+
import * as m from "three";
|
|
2
|
+
import { i as ht, n as ut, r as Ue, t as qe, c as Pe, d as pt, e as gt, f as De, g as Q, _ as Ze, u as vt, h as fe, j as Be, w as ft, k as yt, l as wt, p as bt, m as xt, o as Ct, T as Ne, q as Oe, s as Et, v as Mt, x as Re, y as Ie, z as Le, A as Lt, B as kt, L as ye, D as It, b as Ke, E as re, S as Pt } from "./selectLocalFile.js";
|
|
3
|
+
import { C as Ae, P as _, L as B, B as Ye, E as Xe, b as Fe, Q as ze, u as Dt, W as At, T as St } from "./build.js";
|
|
4
4
|
import "clipper-lib";
|
|
5
5
|
import "dxf-writer";
|
|
6
6
|
import "three/addons/controls/OrbitControls.js";
|
|
7
|
-
import { watch as
|
|
8
|
-
function
|
|
7
|
+
import { watch as J, ref as S, defineComponent as ce, computed as P, createElementBlock as O, openBlock as I, normalizeClass as V, unref as f, renderSlot as be, createVNode as F, Transition as xe, withCtx as j, withDirectives as $e, createElementVNode as k, normalizeStyle as Se, createTextVNode as Y, toDisplayString as de, vShow as et, shallowReactive as _t, onMounted as tt, createBlock as ge, createCommentVNode as q, resolveDynamicComponent as Bt, Fragment as ve, withModifiers as Nt, nextTick as we, isVNode as nt, render as Te, toRaw as Ot, onUnmounted as Rt, renderList as ke, createStaticVNode as Kt, TransitionGroup as Ft, createApp as zt } from "vue";
|
|
8
|
+
function st(d) {
|
|
9
9
|
var e;
|
|
10
|
-
const t =
|
|
10
|
+
const t = Ue(d);
|
|
11
11
|
return (e = t?.$el) != null ? e : t;
|
|
12
12
|
}
|
|
13
|
-
const
|
|
14
|
-
function Tt(...
|
|
13
|
+
const ot = Pe ? window : void 0;
|
|
14
|
+
function Tt(...d) {
|
|
15
15
|
let e, t, n, s;
|
|
16
|
-
if (ht(
|
|
16
|
+
if (ht(d[0]) || Array.isArray(d[0]) ? ([t, n, s] = d, e = ot) : [e, t, n, s] = d, !e)
|
|
17
17
|
return ut;
|
|
18
18
|
Array.isArray(t) || (t = [t]), Array.isArray(n) || (n = [n]);
|
|
19
19
|
const o = [], a = () => {
|
|
20
|
-
o.forEach((
|
|
21
|
-
}, r = (
|
|
22
|
-
a(),
|
|
20
|
+
o.forEach((c) => c()), o.length = 0;
|
|
21
|
+
}, r = (c, h, y, u) => (c.addEventListener(h, y, u), () => c.removeEventListener(h, y, u)), l = J(() => [st(e), Ue(s)], ([c, h]) => {
|
|
22
|
+
a(), c && o.push(...t.flatMap((y) => n.map((u) => r(c, y, u, h))));
|
|
23
23
|
}, { immediate: !0, flush: "post" }), i = () => {
|
|
24
24
|
l(), a();
|
|
25
25
|
};
|
|
26
|
-
return
|
|
26
|
+
return qe(i), i;
|
|
27
27
|
}
|
|
28
|
-
function jt(
|
|
29
|
-
const t =
|
|
28
|
+
function jt(d, e = !1) {
|
|
29
|
+
const t = S(), n = () => t.value = !!d();
|
|
30
30
|
return n(), pt(n, e), t;
|
|
31
31
|
}
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
var
|
|
32
|
+
const je = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Ve = "__vueuse_ssr_handlers__";
|
|
33
|
+
je[Ve] = je[Ve] || {};
|
|
34
|
+
var Ge = Object.getOwnPropertySymbols, Vt = Object.prototype.hasOwnProperty, Gt = Object.prototype.propertyIsEnumerable, Qt = (d, e) => {
|
|
35
35
|
var t = {};
|
|
36
|
-
for (var n in
|
|
37
|
-
Vt.call(
|
|
38
|
-
if (
|
|
39
|
-
for (var n of
|
|
40
|
-
e.indexOf(n) < 0 && Gt.call(
|
|
36
|
+
for (var n in d)
|
|
37
|
+
Vt.call(d, n) && e.indexOf(n) < 0 && (t[n] = d[n]);
|
|
38
|
+
if (d != null && Ge)
|
|
39
|
+
for (var n of Ge(d))
|
|
40
|
+
e.indexOf(n) < 0 && Gt.call(d, n) && (t[n] = d[n]);
|
|
41
41
|
return t;
|
|
42
42
|
};
|
|
43
|
-
function Ht(
|
|
44
|
-
const n = t, { window: s =
|
|
43
|
+
function Ht(d, e, t = {}) {
|
|
44
|
+
const n = t, { window: s = ot } = n, o = Qt(n, ["window"]);
|
|
45
45
|
let a;
|
|
46
46
|
const r = jt(() => s && "ResizeObserver" in s), l = () => {
|
|
47
47
|
a && (a.disconnect(), a = void 0);
|
|
48
|
-
}, i =
|
|
49
|
-
l(), r.value && s &&
|
|
50
|
-
}, { immediate: !0, flush: "post" }),
|
|
48
|
+
}, i = J(() => st(d), (h) => {
|
|
49
|
+
l(), r.value && s && h && (a = new ResizeObserver(e), a.observe(h, o));
|
|
50
|
+
}, { immediate: !0, flush: "post" }), c = () => {
|
|
51
51
|
l(), i();
|
|
52
52
|
};
|
|
53
|
-
return
|
|
53
|
+
return qe(c), {
|
|
54
54
|
isSupported: r,
|
|
55
|
-
stop:
|
|
55
|
+
stop: c
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
var
|
|
59
|
-
(function(
|
|
60
|
-
|
|
61
|
-
})(
|
|
62
|
-
var Wt = Object.defineProperty,
|
|
58
|
+
var Qe;
|
|
59
|
+
(function(d) {
|
|
60
|
+
d.UP = "UP", d.RIGHT = "RIGHT", d.DOWN = "DOWN", d.LEFT = "LEFT", d.NONE = "NONE";
|
|
61
|
+
})(Qe || (Qe = {}));
|
|
62
|
+
var Wt = Object.defineProperty, He = Object.getOwnPropertySymbols, Jt = Object.prototype.hasOwnProperty, Ut = Object.prototype.propertyIsEnumerable, We = (d, e, t) => e in d ? Wt(d, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[e] = t, qt = (d, e) => {
|
|
63
63
|
for (var t in e || (e = {}))
|
|
64
|
-
Jt.call(e, t) &&
|
|
65
|
-
if (
|
|
66
|
-
for (var t of
|
|
67
|
-
Ut.call(e, t) &&
|
|
68
|
-
return
|
|
64
|
+
Jt.call(e, t) && We(d, t, e[t]);
|
|
65
|
+
if (He)
|
|
66
|
+
for (var t of He(e))
|
|
67
|
+
Ut.call(e, t) && We(d, t, e[t]);
|
|
68
|
+
return d;
|
|
69
69
|
};
|
|
70
70
|
const Zt = {
|
|
71
71
|
easeInSine: [0.12, 0, 0.39, 0],
|
|
@@ -96,9 +96,9 @@ const Zt = {
|
|
|
96
96
|
qt({
|
|
97
97
|
linear: gt
|
|
98
98
|
}, Zt);
|
|
99
|
-
const Yt = (
|
|
99
|
+
const Yt = (d) => d, Xt = {
|
|
100
100
|
esc: "Escape"
|
|
101
|
-
}, $t =
|
|
101
|
+
}, $t = De({
|
|
102
102
|
value: {
|
|
103
103
|
type: [String, Number],
|
|
104
104
|
default: ""
|
|
@@ -120,59 +120,59 @@ const Yt = (c) => c, Xt = {
|
|
|
120
120
|
},
|
|
121
121
|
color: String,
|
|
122
122
|
badgeStyle: {
|
|
123
|
-
type:
|
|
123
|
+
type: Q([String, Object, Array])
|
|
124
124
|
},
|
|
125
125
|
offset: {
|
|
126
|
-
type:
|
|
126
|
+
type: Q(Array),
|
|
127
127
|
default: [0, 0]
|
|
128
128
|
},
|
|
129
129
|
badgeClass: {
|
|
130
130
|
type: String
|
|
131
131
|
}
|
|
132
|
-
}), en =
|
|
132
|
+
}), en = ce({
|
|
133
133
|
name: "ElBadge"
|
|
134
|
-
}), tn = /* @__PURE__ */
|
|
134
|
+
}), tn = /* @__PURE__ */ ce({
|
|
135
135
|
...en,
|
|
136
136
|
props: $t,
|
|
137
|
-
setup(
|
|
138
|
-
const t =
|
|
139
|
-
var a, r, l, i,
|
|
137
|
+
setup(d, { expose: e }) {
|
|
138
|
+
const t = d, n = vt("badge"), s = P(() => t.isDot ? "" : fe(t.value) && fe(t.max) ? t.max < t.value ? `${t.max}+` : `${t.value}` : `${t.value}`), o = P(() => {
|
|
139
|
+
var a, r, l, i, c;
|
|
140
140
|
return [
|
|
141
141
|
{
|
|
142
142
|
backgroundColor: t.color,
|
|
143
|
-
marginRight:
|
|
144
|
-
marginTop:
|
|
143
|
+
marginRight: Be(-((r = (a = t.offset) == null ? void 0 : a[0]) != null ? r : 0)),
|
|
144
|
+
marginTop: Be((i = (l = t.offset) == null ? void 0 : l[1]) != null ? i : 0)
|
|
145
145
|
},
|
|
146
|
-
(
|
|
146
|
+
(c = t.badgeStyle) != null ? c : {}
|
|
147
147
|
];
|
|
148
148
|
});
|
|
149
149
|
return e({
|
|
150
150
|
content: s
|
|
151
|
-
}), (a, r) => (
|
|
152
|
-
class:
|
|
151
|
+
}), (a, r) => (I(), O("div", {
|
|
152
|
+
class: V(f(n).b())
|
|
153
153
|
}, [
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
name: `${
|
|
154
|
+
be(a.$slots, "default"),
|
|
155
|
+
F(xe, {
|
|
156
|
+
name: `${f(n).namespace.value}-zoom-in-center`,
|
|
157
157
|
persisted: ""
|
|
158
158
|
}, {
|
|
159
|
-
default:
|
|
160
|
-
|
|
161
|
-
class:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
159
|
+
default: j(() => [
|
|
160
|
+
$e(k("sup", {
|
|
161
|
+
class: V([
|
|
162
|
+
f(n).e("content"),
|
|
163
|
+
f(n).em("content", a.type),
|
|
164
|
+
f(n).is("fixed", !!a.$slots.default),
|
|
165
|
+
f(n).is("dot", a.isDot),
|
|
166
|
+
f(n).is("hide-zero", !a.showZero && t.value === 0),
|
|
167
167
|
a.badgeClass
|
|
168
168
|
]),
|
|
169
|
-
style:
|
|
169
|
+
style: Se(f(o))
|
|
170
170
|
}, [
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
be(a.$slots, "content", { value: f(s) }, () => [
|
|
172
|
+
Y(de(f(s)), 1)
|
|
173
173
|
])
|
|
174
174
|
], 6), [
|
|
175
|
-
[
|
|
175
|
+
[et, !a.hidden && (f(s) || a.isDot || a.$slots.content)]
|
|
176
176
|
])
|
|
177
177
|
]),
|
|
178
178
|
_: 3
|
|
@@ -180,37 +180,37 @@ const Yt = (c) => c, Xt = {
|
|
|
180
180
|
], 2));
|
|
181
181
|
}
|
|
182
182
|
});
|
|
183
|
-
var nn = /* @__PURE__ */
|
|
184
|
-
const sn = ft(nn), on =
|
|
183
|
+
var nn = /* @__PURE__ */ Ze(tn, [["__file", "badge.vue"]]);
|
|
184
|
+
const sn = ft(nn), on = De({
|
|
185
185
|
a11y: {
|
|
186
186
|
type: Boolean,
|
|
187
187
|
default: !0
|
|
188
188
|
},
|
|
189
189
|
locale: {
|
|
190
|
-
type:
|
|
190
|
+
type: Q(Object)
|
|
191
191
|
},
|
|
192
192
|
size: wt,
|
|
193
193
|
button: {
|
|
194
|
-
type:
|
|
194
|
+
type: Q(Object)
|
|
195
195
|
},
|
|
196
196
|
card: {
|
|
197
|
-
type:
|
|
197
|
+
type: Q(Object)
|
|
198
198
|
},
|
|
199
199
|
dialog: {
|
|
200
|
-
type:
|
|
200
|
+
type: Q(Object)
|
|
201
201
|
},
|
|
202
202
|
link: {
|
|
203
|
-
type:
|
|
203
|
+
type: Q(Object)
|
|
204
204
|
},
|
|
205
205
|
experimentalFeatures: {
|
|
206
|
-
type:
|
|
206
|
+
type: Q(Object)
|
|
207
207
|
},
|
|
208
208
|
keyboardNavigation: {
|
|
209
209
|
type: Boolean,
|
|
210
210
|
default: !0
|
|
211
211
|
},
|
|
212
212
|
message: {
|
|
213
|
-
type:
|
|
213
|
+
type: Q(Object)
|
|
214
214
|
},
|
|
215
215
|
zIndex: Number,
|
|
216
216
|
namespace: {
|
|
@@ -218,25 +218,25 @@ const sn = ft(nn), on = Ne({
|
|
|
218
218
|
default: "el"
|
|
219
219
|
},
|
|
220
220
|
...yt
|
|
221
|
-
}),
|
|
222
|
-
|
|
221
|
+
}), T = {};
|
|
222
|
+
ce({
|
|
223
223
|
name: "ElConfigProvider",
|
|
224
224
|
props: on,
|
|
225
|
-
setup(
|
|
226
|
-
const t = bt(
|
|
227
|
-
return
|
|
225
|
+
setup(d, { slots: e }) {
|
|
226
|
+
const t = bt(d);
|
|
227
|
+
return J(() => d.message, (n) => {
|
|
228
228
|
var s, o;
|
|
229
|
-
Object.assign(
|
|
230
|
-
}, { immediate: !0, deep: !0 }), () =>
|
|
229
|
+
Object.assign(T, (o = (s = t?.value) == null ? void 0 : s.message) != null ? o : {}, n ?? {});
|
|
230
|
+
}, { immediate: !0, deep: !0 }), () => be(e, "default", { config: t?.value });
|
|
231
231
|
}
|
|
232
232
|
});
|
|
233
|
-
const
|
|
233
|
+
const at = [
|
|
234
234
|
"primary",
|
|
235
235
|
"success",
|
|
236
236
|
"info",
|
|
237
237
|
"warning",
|
|
238
238
|
"error"
|
|
239
|
-
],
|
|
239
|
+
], N = Yt({
|
|
240
240
|
customClass: "",
|
|
241
241
|
dangerouslyUseHTMLString: !1,
|
|
242
242
|
duration: 3e3,
|
|
@@ -251,226 +251,226 @@ const dt = [
|
|
|
251
251
|
zIndex: 0,
|
|
252
252
|
grouping: !1,
|
|
253
253
|
repeatNum: 1,
|
|
254
|
-
appendTo:
|
|
255
|
-
}), an =
|
|
254
|
+
appendTo: Pe ? document.body : void 0
|
|
255
|
+
}), an = De({
|
|
256
256
|
customClass: {
|
|
257
257
|
type: String,
|
|
258
|
-
default:
|
|
258
|
+
default: N.customClass
|
|
259
259
|
},
|
|
260
260
|
dangerouslyUseHTMLString: {
|
|
261
261
|
type: Boolean,
|
|
262
|
-
default:
|
|
262
|
+
default: N.dangerouslyUseHTMLString
|
|
263
263
|
},
|
|
264
264
|
duration: {
|
|
265
265
|
type: Number,
|
|
266
|
-
default:
|
|
266
|
+
default: N.duration
|
|
267
267
|
},
|
|
268
268
|
icon: {
|
|
269
269
|
type: xt,
|
|
270
|
-
default:
|
|
270
|
+
default: N.icon
|
|
271
271
|
},
|
|
272
272
|
id: {
|
|
273
273
|
type: String,
|
|
274
|
-
default:
|
|
274
|
+
default: N.id
|
|
275
275
|
},
|
|
276
276
|
message: {
|
|
277
|
-
type:
|
|
277
|
+
type: Q([
|
|
278
278
|
String,
|
|
279
279
|
Object,
|
|
280
280
|
Function
|
|
281
281
|
]),
|
|
282
|
-
default:
|
|
282
|
+
default: N.message
|
|
283
283
|
},
|
|
284
284
|
onClose: {
|
|
285
|
-
type:
|
|
286
|
-
default:
|
|
285
|
+
type: Q(Function),
|
|
286
|
+
default: N.onClose
|
|
287
287
|
},
|
|
288
288
|
showClose: {
|
|
289
289
|
type: Boolean,
|
|
290
|
-
default:
|
|
290
|
+
default: N.showClose
|
|
291
291
|
},
|
|
292
292
|
type: {
|
|
293
293
|
type: String,
|
|
294
|
-
values:
|
|
295
|
-
default:
|
|
294
|
+
values: at,
|
|
295
|
+
default: N.type
|
|
296
296
|
},
|
|
297
297
|
plain: {
|
|
298
298
|
type: Boolean,
|
|
299
|
-
default:
|
|
299
|
+
default: N.plain
|
|
300
300
|
},
|
|
301
301
|
offset: {
|
|
302
302
|
type: Number,
|
|
303
|
-
default:
|
|
303
|
+
default: N.offset
|
|
304
304
|
},
|
|
305
305
|
zIndex: {
|
|
306
306
|
type: Number,
|
|
307
|
-
default:
|
|
307
|
+
default: N.zIndex
|
|
308
308
|
},
|
|
309
309
|
grouping: {
|
|
310
310
|
type: Boolean,
|
|
311
|
-
default:
|
|
311
|
+
default: N.grouping
|
|
312
312
|
},
|
|
313
313
|
repeatNum: {
|
|
314
314
|
type: Number,
|
|
315
|
-
default:
|
|
315
|
+
default: N.repeatNum
|
|
316
316
|
}
|
|
317
317
|
}), rn = {
|
|
318
318
|
destroy: () => !0
|
|
319
|
-
},
|
|
320
|
-
const e =
|
|
319
|
+
}, H = _t([]), dn = (d) => {
|
|
320
|
+
const e = H.findIndex((s) => s.id === d), t = H[e];
|
|
321
321
|
let n;
|
|
322
|
-
return e > 0 && (n =
|
|
323
|
-
}, ln = (
|
|
324
|
-
const { prev: e } = dn(
|
|
322
|
+
return e > 0 && (n = H[e - 1]), { current: t, prev: n };
|
|
323
|
+
}, ln = (d) => {
|
|
324
|
+
const { prev: e } = dn(d);
|
|
325
325
|
return e ? e.vm.exposed.bottom.value : 0;
|
|
326
|
-
}, cn = (
|
|
326
|
+
}, cn = (d, e) => H.findIndex((n) => n.id === d) > 0 ? 16 : e, mn = ce({
|
|
327
327
|
name: "ElMessage"
|
|
328
|
-
}), hn = /* @__PURE__ */
|
|
328
|
+
}), hn = /* @__PURE__ */ ce({
|
|
329
329
|
...mn,
|
|
330
330
|
props: an,
|
|
331
331
|
emits: rn,
|
|
332
|
-
setup(
|
|
333
|
-
const n =
|
|
334
|
-
let
|
|
335
|
-
const
|
|
336
|
-
const
|
|
337
|
-
return { [a.bm("icon",
|
|
338
|
-
}),
|
|
339
|
-
top: `${
|
|
332
|
+
setup(d, { expose: e, emit: t }) {
|
|
333
|
+
const n = d, { Close: s } = Et, o = S(!1), { ns: a, zIndex: r } = Ct("message"), { currentZIndex: l, nextZIndex: i } = r, c = S(), h = S(!1), y = S(0);
|
|
334
|
+
let u;
|
|
335
|
+
const v = P(() => n.type ? n.type === "error" ? "danger" : n.type : "info"), g = P(() => {
|
|
336
|
+
const b = n.type;
|
|
337
|
+
return { [a.bm("icon", b)]: b && Ne[b] };
|
|
338
|
+
}), E = P(() => n.icon || Ne[n.type] || ""), x = P(() => ln(n.id)), D = P(() => cn(n.id, n.offset) + x.value), z = P(() => y.value + D.value), me = P(() => ({
|
|
339
|
+
top: `${D.value}px`,
|
|
340
340
|
zIndex: l.value
|
|
341
341
|
}));
|
|
342
|
-
function
|
|
343
|
-
n.duration !== 0 && ({ stop:
|
|
344
|
-
|
|
342
|
+
function Z() {
|
|
343
|
+
n.duration !== 0 && ({ stop: u } = Mt(() => {
|
|
344
|
+
A();
|
|
345
345
|
}, n.duration));
|
|
346
346
|
}
|
|
347
|
-
function
|
|
348
|
-
|
|
347
|
+
function G() {
|
|
348
|
+
u?.();
|
|
349
349
|
}
|
|
350
|
-
function
|
|
351
|
-
|
|
352
|
-
var
|
|
353
|
-
o.value || ((
|
|
350
|
+
function A() {
|
|
351
|
+
h.value = !1, we(() => {
|
|
352
|
+
var b;
|
|
353
|
+
o.value || ((b = n.onClose) == null || b.call(n), t("destroy"));
|
|
354
354
|
});
|
|
355
355
|
}
|
|
356
|
-
function
|
|
357
|
-
|
|
356
|
+
function M({ code: b }) {
|
|
357
|
+
b === Xt.esc && A();
|
|
358
358
|
}
|
|
359
|
-
return
|
|
360
|
-
|
|
361
|
-
}),
|
|
362
|
-
|
|
363
|
-
}), Tt(document, "keydown",
|
|
364
|
-
|
|
359
|
+
return tt(() => {
|
|
360
|
+
Z(), i(), h.value = !0;
|
|
361
|
+
}), J(() => n.repeatNum, () => {
|
|
362
|
+
G(), Z();
|
|
363
|
+
}), Tt(document, "keydown", M), Ht(c, () => {
|
|
364
|
+
y.value = c.value.getBoundingClientRect().height;
|
|
365
365
|
}), e({
|
|
366
|
-
visible:
|
|
367
|
-
bottom:
|
|
368
|
-
close:
|
|
369
|
-
}), (
|
|
370
|
-
name:
|
|
371
|
-
onBeforeEnter: (
|
|
372
|
-
onBeforeLeave:
|
|
373
|
-
onAfterLeave: (
|
|
366
|
+
visible: h,
|
|
367
|
+
bottom: z,
|
|
368
|
+
close: A
|
|
369
|
+
}), (b, K) => (I(), ge(xe, {
|
|
370
|
+
name: f(a).b("fade"),
|
|
371
|
+
onBeforeEnter: (W) => o.value = !0,
|
|
372
|
+
onBeforeLeave: b.onClose,
|
|
373
|
+
onAfterLeave: (W) => b.$emit("destroy"),
|
|
374
374
|
persisted: ""
|
|
375
375
|
}, {
|
|
376
|
-
default:
|
|
377
|
-
|
|
378
|
-
id:
|
|
376
|
+
default: j(() => [
|
|
377
|
+
$e(k("div", {
|
|
378
|
+
id: b.id,
|
|
379
379
|
ref_key: "messageRef",
|
|
380
|
-
ref:
|
|
381
|
-
class:
|
|
382
|
-
|
|
383
|
-
{ [
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
380
|
+
ref: c,
|
|
381
|
+
class: V([
|
|
382
|
+
f(a).b(),
|
|
383
|
+
{ [f(a).m(b.type)]: b.type },
|
|
384
|
+
f(a).is("closable", b.showClose),
|
|
385
|
+
f(a).is("plain", b.plain),
|
|
386
|
+
b.customClass
|
|
387
387
|
]),
|
|
388
|
-
style:
|
|
388
|
+
style: Se(f(me)),
|
|
389
389
|
role: "alert",
|
|
390
|
-
onMouseenter:
|
|
391
|
-
onMouseleave:
|
|
390
|
+
onMouseenter: G,
|
|
391
|
+
onMouseleave: Z
|
|
392
392
|
}, [
|
|
393
|
-
|
|
393
|
+
b.repeatNum > 1 ? (I(), ge(f(sn), {
|
|
394
394
|
key: 0,
|
|
395
|
-
value:
|
|
396
|
-
type:
|
|
397
|
-
class:
|
|
398
|
-
}, null, 8, ["value", "type", "class"])) :
|
|
399
|
-
|
|
395
|
+
value: b.repeatNum,
|
|
396
|
+
type: f(v),
|
|
397
|
+
class: V(f(a).e("badge"))
|
|
398
|
+
}, null, 8, ["value", "type", "class"])) : q("v-if", !0),
|
|
399
|
+
f(E) ? (I(), ge(f(Oe), {
|
|
400
400
|
key: 1,
|
|
401
|
-
class:
|
|
401
|
+
class: V([f(a).e("icon"), f(g)])
|
|
402
402
|
}, {
|
|
403
|
-
default:
|
|
404
|
-
(
|
|
403
|
+
default: j(() => [
|
|
404
|
+
(I(), ge(Bt(f(E))))
|
|
405
405
|
]),
|
|
406
406
|
_: 1
|
|
407
|
-
}, 8, ["class"])) :
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
class:
|
|
413
|
-
innerHTML:
|
|
407
|
+
}, 8, ["class"])) : q("v-if", !0),
|
|
408
|
+
be(b.$slots, "default", {}, () => [
|
|
409
|
+
b.dangerouslyUseHTMLString ? (I(), O(ve, { key: 1 }, [
|
|
410
|
+
q(" Caution here, message could've been compromised, never use user's input as message "),
|
|
411
|
+
k("p", {
|
|
412
|
+
class: V(f(a).e("content")),
|
|
413
|
+
innerHTML: b.message
|
|
414
414
|
}, null, 10, ["innerHTML"])
|
|
415
|
-
], 2112)) : (
|
|
415
|
+
], 2112)) : (I(), O("p", {
|
|
416
416
|
key: 0,
|
|
417
|
-
class:
|
|
418
|
-
},
|
|
417
|
+
class: V(f(a).e("content"))
|
|
418
|
+
}, de(b.message), 3))
|
|
419
419
|
]),
|
|
420
|
-
|
|
420
|
+
b.showClose ? (I(), ge(f(Oe), {
|
|
421
421
|
key: 2,
|
|
422
|
-
class:
|
|
423
|
-
onClick: Nt(
|
|
422
|
+
class: V(f(a).e("closeBtn")),
|
|
423
|
+
onClick: Nt(A, ["stop"])
|
|
424
424
|
}, {
|
|
425
|
-
default:
|
|
426
|
-
|
|
425
|
+
default: j(() => [
|
|
426
|
+
F(f(s))
|
|
427
427
|
]),
|
|
428
428
|
_: 1
|
|
429
|
-
}, 8, ["class", "onClick"])) :
|
|
429
|
+
}, 8, ["class", "onClick"])) : q("v-if", !0)
|
|
430
430
|
], 46, ["id"]), [
|
|
431
|
-
[
|
|
431
|
+
[et, h.value]
|
|
432
432
|
])
|
|
433
433
|
]),
|
|
434
434
|
_: 3
|
|
435
435
|
}, 8, ["name", "onBeforeEnter", "onBeforeLeave", "onAfterLeave"]));
|
|
436
436
|
}
|
|
437
437
|
});
|
|
438
|
-
var un = /* @__PURE__ */
|
|
438
|
+
var un = /* @__PURE__ */ Ze(hn, [["__file", "message.vue"]]);
|
|
439
439
|
let pn = 1;
|
|
440
|
-
const
|
|
441
|
-
const e = !
|
|
442
|
-
...
|
|
440
|
+
const it = (d) => {
|
|
441
|
+
const e = !d || Re(d) || nt(d) || Ie(d) ? { message: d } : d, t = {
|
|
442
|
+
...N,
|
|
443
443
|
...e
|
|
444
444
|
};
|
|
445
445
|
if (!t.appendTo)
|
|
446
446
|
t.appendTo = document.body;
|
|
447
|
-
else if (
|
|
447
|
+
else if (Re(t.appendTo)) {
|
|
448
448
|
let n = document.querySelector(t.appendTo);
|
|
449
449
|
Lt(n) || (n = document.body), t.appendTo = n;
|
|
450
450
|
}
|
|
451
|
-
return
|
|
452
|
-
}, gn = (
|
|
453
|
-
const e =
|
|
451
|
+
return Le(T.grouping) && !t.grouping && (t.grouping = T.grouping), fe(T.duration) && t.duration === 3e3 && (t.duration = T.duration), fe(T.offset) && t.offset === 16 && (t.offset = T.offset), Le(T.showClose) && !t.showClose && (t.showClose = T.showClose), Le(T.plain) && !t.plain && (t.plain = T.plain), t;
|
|
452
|
+
}, gn = (d) => {
|
|
453
|
+
const e = H.indexOf(d);
|
|
454
454
|
if (e === -1)
|
|
455
455
|
return;
|
|
456
|
-
|
|
457
|
-
const { handler: t } =
|
|
456
|
+
H.splice(e, 1);
|
|
457
|
+
const { handler: t } = d;
|
|
458
458
|
t.close();
|
|
459
|
-
}, vn = ({ appendTo:
|
|
459
|
+
}, vn = ({ appendTo: d, ...e }, t) => {
|
|
460
460
|
const n = `message_${pn++}`, s = e.onClose, o = document.createElement("div"), a = {
|
|
461
461
|
...e,
|
|
462
462
|
id: n,
|
|
463
463
|
onClose: () => {
|
|
464
|
-
s?.(), gn(
|
|
464
|
+
s?.(), gn(c);
|
|
465
465
|
},
|
|
466
466
|
onDestroy: () => {
|
|
467
|
-
|
|
467
|
+
Te(null, o);
|
|
468
468
|
}
|
|
469
|
-
}, r =
|
|
470
|
-
default:
|
|
469
|
+
}, r = F(un, a, Ie(a.message) || nt(a.message) ? {
|
|
470
|
+
default: Ie(a.message) ? a.message : () => a.message
|
|
471
471
|
} : null);
|
|
472
|
-
r.appContext = t ||
|
|
473
|
-
const l = r.component,
|
|
472
|
+
r.appContext = t || le._context, Te(r, o), d.appendChild(o.firstElementChild);
|
|
473
|
+
const l = r.component, c = {
|
|
474
474
|
id: n,
|
|
475
475
|
vnode: r,
|
|
476
476
|
vm: l,
|
|
@@ -481,41 +481,41 @@ const lt = (c) => {
|
|
|
481
481
|
},
|
|
482
482
|
props: r.component.props
|
|
483
483
|
};
|
|
484
|
-
return
|
|
485
|
-
},
|
|
486
|
-
if (!
|
|
484
|
+
return c;
|
|
485
|
+
}, le = (d = {}, e) => {
|
|
486
|
+
if (!Pe)
|
|
487
487
|
return { close: () => {
|
|
488
488
|
} };
|
|
489
|
-
const t =
|
|
490
|
-
if (t.grouping &&
|
|
491
|
-
const s =
|
|
489
|
+
const t = it(d);
|
|
490
|
+
if (t.grouping && H.length) {
|
|
491
|
+
const s = H.find(({ vnode: o }) => {
|
|
492
492
|
var a;
|
|
493
493
|
return ((a = o.props) == null ? void 0 : a.message) === t.message;
|
|
494
494
|
});
|
|
495
495
|
if (s)
|
|
496
496
|
return s.props.repeatNum += 1, s.props.type = t.type, s.handler;
|
|
497
497
|
}
|
|
498
|
-
if (
|
|
498
|
+
if (fe(T.max) && H.length >= T.max)
|
|
499
499
|
return { close: () => {
|
|
500
500
|
} };
|
|
501
501
|
const n = vn(t, e);
|
|
502
|
-
return
|
|
502
|
+
return H.push(n), n.handler;
|
|
503
503
|
};
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
const n =
|
|
507
|
-
return
|
|
504
|
+
at.forEach((d) => {
|
|
505
|
+
le[d] = (e = {}, t) => {
|
|
506
|
+
const n = it(e);
|
|
507
|
+
return le({ ...n, type: d }, t);
|
|
508
508
|
};
|
|
509
509
|
});
|
|
510
|
-
function fn(
|
|
511
|
-
const e = [
|
|
510
|
+
function fn(d) {
|
|
511
|
+
const e = [...H];
|
|
512
512
|
for (const t of e)
|
|
513
|
-
(!
|
|
513
|
+
(!d || d === t.props.type) && t.handler.close();
|
|
514
514
|
}
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
const
|
|
518
|
-
class
|
|
515
|
+
le.closeAll = fn;
|
|
516
|
+
le._context = null;
|
|
517
|
+
const L = kt(le, "$message");
|
|
518
|
+
class R extends Ae {
|
|
519
519
|
_renderer;
|
|
520
520
|
get renderer() {
|
|
521
521
|
return this._renderer || (this._renderer = this.parent?.findComponentByName("Renderer")), this._renderer;
|
|
@@ -603,19 +603,19 @@ class W extends Oe {
|
|
|
603
603
|
* @returns
|
|
604
604
|
*/
|
|
605
605
|
createPointerMove(e) {
|
|
606
|
-
const t = this.editor, n = new
|
|
606
|
+
const t = this.editor, n = new _();
|
|
607
607
|
let s = null, o = null, a = null;
|
|
608
608
|
const r = t.addEventListener("pointerPositionChange", () => {
|
|
609
|
-
const l =
|
|
609
|
+
const l = _.from(t.pointerPosition);
|
|
610
610
|
if (s && t.eventInput.isKeyDown("shift")) {
|
|
611
|
-
const i = Math.abs(l.x - s.x),
|
|
612
|
-
i >
|
|
611
|
+
const i = Math.abs(l.x - s.x), c = Math.abs(l.y - s.y);
|
|
612
|
+
i > c ? n.set(l.x, s.y) : n.set(s.x, l.y), e(n, !1);
|
|
613
613
|
} else if (o && a && t.eventInput.isKeyDown("alt")) {
|
|
614
|
-
const i = o.projectPoint(l, !1),
|
|
615
|
-
i &&
|
|
614
|
+
const i = o.projectPoint(l, !1), c = a.projectPoint(l, !1);
|
|
615
|
+
i && c ? l.distance(i) < l.distance(c) ? n.copy(i) : n.copy(c) : i ? n.copy(i) : c && n.copy(c), e(n, !1);
|
|
616
616
|
} else {
|
|
617
|
-
const { point: i, find:
|
|
618
|
-
n.copy(i), e(n,
|
|
617
|
+
const { point: i, find: c } = t.renderManager.adsorption();
|
|
618
|
+
n.copy(i), e(n, c);
|
|
619
619
|
}
|
|
620
620
|
});
|
|
621
621
|
return {
|
|
@@ -624,19 +624,19 @@ class W extends Oe {
|
|
|
624
624
|
},
|
|
625
625
|
setBaseLine(l, i) {
|
|
626
626
|
if (o = l, s = i, l && i) {
|
|
627
|
-
const
|
|
628
|
-
a = new
|
|
629
|
-
i.clone().add(
|
|
630
|
-
i.clone().add(
|
|
627
|
+
const c = l.normal();
|
|
628
|
+
a = new B(
|
|
629
|
+
i.clone().add(c.clone().multiplyScalar(10)),
|
|
630
|
+
i.clone().add(c.multiplyScalar(-10))
|
|
631
631
|
);
|
|
632
632
|
} else a = null;
|
|
633
633
|
}
|
|
634
634
|
};
|
|
635
635
|
}
|
|
636
636
|
}
|
|
637
|
-
class yn extends
|
|
637
|
+
class yn extends R {
|
|
638
638
|
static name = "DrawLine";
|
|
639
|
-
container = new
|
|
639
|
+
container = new m.Group();
|
|
640
640
|
interruptKeys = ["escape"];
|
|
641
641
|
withdrawalKeys = ["control", "z"];
|
|
642
642
|
shortcutKeys = ["control", "l"];
|
|
@@ -651,41 +651,41 @@ class yn extends W {
|
|
|
651
651
|
* @param next
|
|
652
652
|
*/
|
|
653
653
|
selectPoint(e) {
|
|
654
|
-
let t = this.parent?.findComponentByName("Editor"), n = null, s = null, o = [], a = new
|
|
655
|
-
new
|
|
656
|
-
new
|
|
657
|
-
new
|
|
658
|
-
new
|
|
654
|
+
let t = this.parent?.findComponentByName("Editor"), n = null, s = null, o = [], a = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 65280 })), r = t.domContainer.domElement, l = new ye([], 16711935), i = new ye([
|
|
655
|
+
new m.Vector3(-1e4, 0, 0),
|
|
656
|
+
new m.Vector3(1e4, 0, 0),
|
|
657
|
+
new m.Vector3(0, -1e4, 0),
|
|
658
|
+
new m.Vector3(0, 1e4, 0)
|
|
659
659
|
], 16711935);
|
|
660
|
-
i.material = new
|
|
660
|
+
i.material = new m.LineDashedMaterial({
|
|
661
661
|
color: 4235007,
|
|
662
662
|
dashSize: 0.1,
|
|
663
663
|
gapSize: 0.1,
|
|
664
664
|
linewidth: 0.1
|
|
665
665
|
}), this.container.add(l);
|
|
666
|
-
const
|
|
666
|
+
const c = () => {
|
|
667
667
|
l.setPoint(...o, n, s), i.position.copy(s), this.container.add(i), i.computeLineDistances();
|
|
668
|
-
},
|
|
669
|
-
|
|
668
|
+
}, h = new m.Vector3(), y = this.createPointerMove((u, v) => {
|
|
669
|
+
h.set(u.x, u.y, 0), this.dispatchEvent({ type: "pointerMove", point: h }), v ? (a.position.set(u.x, u.y, 0), this.container.add(a), r.style.cursor = "none") : (a.removeFromParent(), r.style.cursor = "crosshair"), n && s && (c(), s.copy(h));
|
|
670
670
|
});
|
|
671
671
|
this.addEventRecord(
|
|
672
672
|
"clear",
|
|
673
|
-
() =>
|
|
673
|
+
() => y.destroy(),
|
|
674
674
|
t.eventInput.addEventListener("codeChange", async () => {
|
|
675
675
|
if (t.eventInput.isKeyDown("mouse_0")) {
|
|
676
676
|
if (!n) {
|
|
677
|
-
n =
|
|
677
|
+
n = h.clone(), s = h.clone(), c(), y.setBaseLine(null, _.from(n));
|
|
678
678
|
return;
|
|
679
679
|
}
|
|
680
|
-
s =
|
|
681
|
-
const
|
|
682
|
-
|
|
680
|
+
s = h.clone(), o.push(n.clone(), s.clone());
|
|
681
|
+
const u = new B(_.from(n), _.from(s));
|
|
682
|
+
y.setBaseLine(u, u.end), n.copy(s), c();
|
|
683
683
|
} else if (t.eventInput.isOnlyKeyDowns(this.withdrawalKeys)) {
|
|
684
684
|
if (o.length) {
|
|
685
|
-
const { point:
|
|
686
|
-
if (o.pop(), s?.copy(
|
|
687
|
-
const
|
|
688
|
-
|
|
685
|
+
const { point: u } = t.renderManager.adsorption();
|
|
686
|
+
if (o.pop(), s?.copy(u), n?.copy(o.pop()), c(), o.length >= 2) {
|
|
687
|
+
const v = new B(_.from(o[o.length - 2]), _.from(o[o.length - 1]));
|
|
688
|
+
y.setBaseLine(v, v.end);
|
|
689
689
|
}
|
|
690
690
|
}
|
|
691
691
|
} else t.eventInput.isKeyDowns(this.confirmKeys) && e(o);
|
|
@@ -701,7 +701,7 @@ class yn extends W {
|
|
|
701
701
|
end(e, t) {
|
|
702
702
|
const n = [];
|
|
703
703
|
for (let s = 0; s < t.length; s += 2)
|
|
704
|
-
n.push(new
|
|
704
|
+
n.push(new B(_.from(t[s]), _.from(t[s + 1])));
|
|
705
705
|
e(n);
|
|
706
706
|
}
|
|
707
707
|
/** 执行完成
|
|
@@ -723,9 +723,9 @@ class yn extends W {
|
|
|
723
723
|
return this.completed(e), e;
|
|
724
724
|
}
|
|
725
725
|
}
|
|
726
|
-
class
|
|
726
|
+
class _e extends R {
|
|
727
727
|
static name = "Default";
|
|
728
|
-
container = new
|
|
728
|
+
container = new m.Group();
|
|
729
729
|
onAddFromParent() {
|
|
730
730
|
const e = this.editor, t = e.commandManager;
|
|
731
731
|
e.container.add(this.container), t.addCommandFlow("default").add(this.start.bind(this)).addEventListener("finally", this.finally.bind(this)), t.addEventListener("startedBefore", (n) => {
|
|
@@ -733,7 +733,7 @@ class Ke extends W {
|
|
|
733
733
|
}), t.addEventListener("finally", (n) => n.name !== "default" && t.start("default")), e.eventInput.addCancelDefaultBehavior(() => e.eventInput.isOnlyKeyDowns(["control", "g"]));
|
|
734
734
|
}
|
|
735
735
|
selectLines = [];
|
|
736
|
-
selectLineObject3D = new
|
|
736
|
+
selectLineObject3D = new m.Mesh();
|
|
737
737
|
/** 添加选择的线段
|
|
738
738
|
* @param lineSegment
|
|
739
739
|
*/
|
|
@@ -776,46 +776,46 @@ class Ke extends W {
|
|
|
776
776
|
* @param next
|
|
777
777
|
*/
|
|
778
778
|
start() {
|
|
779
|
-
const e = this.editor, t = e.eventInput, n = new
|
|
779
|
+
const e = this.editor, t = e.eventInput, n = new m.Mesh(), s = e.domContainer.domElement;
|
|
780
780
|
let o = null;
|
|
781
|
-
n.position.z = 1e-3, this.selectLineObject3D.position.z = n.position.z + 1e-3, n.material = new
|
|
781
|
+
n.position.z = 1e-3, this.selectLineObject3D.position.z = n.position.z + 1e-3, n.material = new m.MeshBasicMaterial({ color: 55561 });
|
|
782
782
|
const a = () => {
|
|
783
|
-
const r = e.pointerPosition.clone(), l = e.pointerPosition.clone(), i = new
|
|
784
|
-
this.container.add(i), i.position.z = 0.05, i.material = new
|
|
783
|
+
const r = e.pointerPosition.clone(), l = e.pointerPosition.clone(), i = new m.Mesh();
|
|
784
|
+
this.container.add(i), i.position.z = 0.05, i.material = new m.MeshBasicMaterial({
|
|
785
785
|
color: 16777215,
|
|
786
786
|
transparent: !0,
|
|
787
787
|
opacity: 0.5
|
|
788
788
|
});
|
|
789
|
-
const
|
|
790
|
-
const
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
0,
|
|
794
|
-
y,
|
|
795
|
-
C,
|
|
789
|
+
const c = () => {
|
|
790
|
+
const u = Math.min(r.x, l.x), v = Math.max(r.x, l.x), g = Math.min(r.y, l.y), E = Math.max(r.y, l.y), x = [
|
|
791
|
+
u,
|
|
792
|
+
E,
|
|
796
793
|
0,
|
|
797
|
-
y,
|
|
798
794
|
v,
|
|
795
|
+
g,
|
|
799
796
|
0,
|
|
800
|
-
f,
|
|
801
797
|
v,
|
|
798
|
+
E,
|
|
802
799
|
0,
|
|
803
|
-
|
|
804
|
-
|
|
800
|
+
u,
|
|
801
|
+
E,
|
|
805
802
|
0,
|
|
806
|
-
|
|
807
|
-
|
|
803
|
+
u,
|
|
804
|
+
g,
|
|
805
|
+
0,
|
|
806
|
+
v,
|
|
807
|
+
g,
|
|
808
808
|
0
|
|
809
809
|
];
|
|
810
|
-
i.geometry = e.renderManager.createGeometry({ position:
|
|
811
|
-
},
|
|
812
|
-
l.copy(e.pointerPosition),
|
|
813
|
-
},
|
|
814
|
-
document.removeEventListener("mousemove",
|
|
815
|
-
const
|
|
816
|
-
this.removeSelectLineAll(),
|
|
810
|
+
i.geometry = e.renderManager.createGeometry({ position: x }, x.length / 3);
|
|
811
|
+
}, h = () => {
|
|
812
|
+
l.copy(e.pointerPosition), c();
|
|
813
|
+
}, y = () => {
|
|
814
|
+
document.removeEventListener("mousemove", h), document.removeEventListener("mouseup", y), i.removeFromParent();
|
|
815
|
+
const u = Math.min(r.x, l.x), v = Math.max(r.x, l.x), g = Math.min(r.y, l.y), E = Math.max(r.y, l.y), x = new Ye(u, v, g, E), D = e.renderManager.quadtree.queryBox(x);
|
|
816
|
+
this.removeSelectLineAll(), D.forEach((z) => this.addSelectLine(z.line)), this.updateSelectLinesGeometry();
|
|
817
817
|
};
|
|
818
|
-
document.addEventListener("mousemove",
|
|
818
|
+
document.addEventListener("mousemove", h), document.addEventListener("mouseup", y);
|
|
819
819
|
};
|
|
820
820
|
this.addEventRecord(
|
|
821
821
|
"clear",
|
|
@@ -854,7 +854,7 @@ class Ke extends W {
|
|
|
854
854
|
this.canceEventRecord("clear"), this.removeSelectLineAll(), this.updateSelectLinesGeometry();
|
|
855
855
|
}
|
|
856
856
|
}
|
|
857
|
-
class wn extends
|
|
857
|
+
class wn extends Xe {
|
|
858
858
|
list = [];
|
|
859
859
|
rollbacklist = [];
|
|
860
860
|
revokeRollbacklist = [];
|
|
@@ -882,7 +882,7 @@ class wn extends tt {
|
|
|
882
882
|
return this.revokeRollbacklist.push(e), this;
|
|
883
883
|
}
|
|
884
884
|
}
|
|
885
|
-
class bn extends
|
|
885
|
+
class bn extends Xe {
|
|
886
886
|
commandFlowMap = /* @__PURE__ */ new Map();
|
|
887
887
|
lock = !1;
|
|
888
888
|
abortController = null;
|
|
@@ -993,18 +993,18 @@ const xn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!
|
|
|
993
993
|
}, Symbol.toStringTag, { value: "Module" })), En = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M639.999191%20893.597594c-0.999994-54.699654-36.39977-101.099361-85.39946-118.399252-6.39996-2.199986-10.599933-8.299948-10.599933-14.999905V263.801573c0-6.699958%204.199973-12.799919%2010.599933-14.999905%2049.09969-17.299891%2084.399467-63.599598%2085.39946-118.399252C641.299183%2059.902862%20583.399549%200.503237%20512.899994%200.00324%20441.800444-0.496757%20384.000809%2057.00288%20384.000809%20128.002431c0%2055.699648%2035.599775%20103.099349%2085.299461%20120.699238%206.39996%202.299985%2010.699932%208.299948%2010.699932%2015.099904v496.396864c0%206.799957-4.299973%2012.799919-10.699932%2015.099904-49.699686%2017.599889-85.299461%2064.999589-85.299461%20120.699238%200%2070.999551%2057.799635%20128.499188%20128.899185%20127.999191%2070.499555-0.499997%20128.399189-59.899622%20127.099197-130.399176zM448.000404%20128.002431c0-35.299777%2028.699819-63.999596%2063.999596-63.999595s63.999596%2028.699819%2063.999596%2063.999595-28.699819%2063.999596-63.999596%2063.999596-63.999596-28.699819-63.999596-63.999596z%20m0%20767.995148c0-35.299777%2028.699819-63.999596%2063.999596-63.999596s63.999596%2028.699819%2063.999596%2063.999596-28.699819%2063.999596-63.999596%2063.999595-63.999596-28.699819-63.999596-63.999595z'%3e%3c/path%3e%3c/svg%3e", Mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
994
994
|
__proto__: null,
|
|
995
995
|
default: En
|
|
996
|
-
}, Symbol.toStringTag, { value: "Module" })), Ln = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8193'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M426.666667%20255.872c0%2031.232-8.405333%2060.544-23.04%2085.76L512%20451.498667l287.061333-287.061334a85.333333%2085.333333%200%200%201%20120.661334%200l-516.693334%20516.693334a170.666667%20170.666667%200%201%201-60.330666-60.330667l108.970666-108.970667-108.970666-108.970666A170.666667%20170.666667%200%201%201%20426.666667%20255.872z%20m-85.333334%200a85.333333%2085.333333%200%201%200-170.666666%200%2085.333333%2085.333333%200%200%200%20170.666666%200z%20m578.389334%20603.392a85.333333%2085.333333%200%200%201-120.661334%200l-226.858666-226.858667%2060.373333-60.330666%20287.146667%20287.146666zM682.666667%20469.205333h85.333333v85.333334h-85.333333v-85.333334z%20m170.666666%200h85.333334v85.333334h-85.333334v-85.333334z%20m-597.333333%200h85.333333v85.333334H256v-85.333334z%20m-170.666667%200h85.333334v85.333334H85.333333v-85.333334z%20m170.666667%20384a85.333333%2085.333333%200%201%200%200-170.666666%2085.333333%2085.333333%200%200%200%200%20170.666666z'%3e%3c/path%3e%3c/svg%3e",
|
|
996
|
+
}, Symbol.toStringTag, { value: "Module" })), Ln = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8193'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M426.666667%20255.872c0%2031.232-8.405333%2060.544-23.04%2085.76L512%20451.498667l287.061333-287.061334a85.333333%2085.333333%200%200%201%20120.661334%200l-516.693334%20516.693334a170.666667%20170.666667%200%201%201-60.330666-60.330667l108.970666-108.970667-108.970666-108.970666A170.666667%20170.666667%200%201%201%20426.666667%20255.872z%20m-85.333334%200a85.333333%2085.333333%200%201%200-170.666666%200%2085.333333%2085.333333%200%200%200%20170.666666%200z%20m578.389334%20603.392a85.333333%2085.333333%200%200%201-120.661334%200l-226.858666-226.858667%2060.373333-60.330666%20287.146667%20287.146666zM682.666667%20469.205333h85.333333v85.333334h-85.333333v-85.333334z%20m170.666666%200h85.333334v85.333334h-85.333334v-85.333334z%20m-597.333333%200h85.333333v85.333334H256v-85.333334z%20m-170.666667%200h85.333334v85.333334H85.333333v-85.333334z%20m170.666667%20384a85.333333%2085.333333%200%201%200%200-170.666666%2085.333333%2085.333333%200%200%200%200%20170.666666z'%3e%3c/path%3e%3c/svg%3e", kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
997
997
|
__proto__: null,
|
|
998
998
|
default: Ln
|
|
999
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
999
|
+
}, Symbol.toStringTag, { value: "Module" })), In = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M909.050991%20169.476903l-217.554898%200%200-31.346939c0-39.5866-32.205493-71.792093-71.793116-71.792093L408.15591%2066.337871c-39.5866%200-71.792093%2032.205493-71.792093%2071.792093l0%2031.346939L113.349581%20169.476903c-11.013845%200-19.942191%208.940626-19.942191%2019.954471s8.928347%2019.954471%2019.942191%2019.954471l84.264149%200%200%20640.687918c0%2060.479443%2049.203632%20109.683075%20109.683075%20109.683075l416.474366%200c60.479443%200%20109.683075-49.203632%20109.683075-109.683075L833.454246%20209.385844l75.595722%200c11.012821%200%2019.942191-8.940626%2019.942191-19.954471S920.063813%20169.476903%20909.050991%20169.476903zM376.2482%20138.130987c0-17.593703%2014.314007-31.907711%2031.907711-31.907711l211.547067%200c17.593703%200%2031.907711%2014.314007%2031.907711%2031.907711l0%2031.346939L376.2482%20169.477926%20376.2482%20138.130987zM793.569864%20850.074785c0%2038.486546-31.312146%2069.798692-69.798692%2069.798692L307.297828%20919.873478c-38.486546%200-69.798692-31.312146-69.798692-69.798692L237.499136%20211.042577l556.070728%200L793.569864%20850.074785zM510.662539%20861.276918c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L530.61701%20294.912753c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191L490.708068%20841.334727C490.708068%20852.347548%20499.649717%20861.276918%20510.662539%20861.276918zM374.562814%20801.449321c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L394.517285%20354.74035c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191l0%20426.76678C354.608344%20792.519951%20363.549993%20801.449321%20374.562814%20801.449321zM649.832182%20801.449321c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L669.786653%20354.74035c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191l0%20426.76678C629.877711%20792.519951%20638.81936%20801.449321%20649.832182%20801.449321z'%20%3e%3c/path%3e%3c/svg%3e", Pn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1000
1000
|
__proto__: null,
|
|
1001
|
-
default:
|
|
1002
|
-
}, Symbol.toStringTag, { value: "Module" })), Dn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M220.451548%20913.518482V318.145854c0-27.62038%2022.505495-50.125874%2050.125875-50.125874H865.95005c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v218.917083h59.332667V318.145854c0-60.355644-49.102897-109.458541-109.458541-109.458541h-39.896104v-99.228772C826.053946%2049.102897%20776.951049%200%20716.595405%200H121.222777C60.867133%200%2011.764236%2049.102897%2011.764236%20109.458541V705.854146c0%2060.355644%2049.102897%20109.458541%20109.458541%20109.458541h39.896104v99.228772c0%2060.355644%2049.102897%20109.458541%20109.458542%20109.458541h257.790209v-59.332667H269.554446c-26.597403-1.022977-49.102897-23.528472-49.102898-51.148851z%20m-59.332667-595.372628v436.811189h-39.896104c-27.62038%200-50.125874-22.505495-50.125874-50.125874V109.458541c0-27.62038%2022.505495-50.125874%2050.125874-50.125874H716.595405c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v99.228772H269.554446c-59.332667%200-108.435564%2049.102897-108.435565%20109.458541z'%20%3e%3c/path%3e%3cpath%20d='M902.777223%20854.185814l98.205794-98.205794c15.344655-15.344655%2015.344655-40.919081%200-56.263736s-40.919081-15.344655-56.263736%200L846.513487%20797.922078%20747.284715%20699.716284c-15.344655-15.344655-40.919081-15.344655-56.263736%200s-15.344655%2040.919081%200%2056.263736l98.205794%2098.205794-98.205794%2098.205794c-15.344655%2015.344655-15.344655%2040.919081%200%2056.263737s40.919081%2015.344655%2056.263736%200l98.205794-98.205795%2098.205795%2098.205795c15.344655%2015.344655%2040.919081%2015.344655%2056.263736%200s15.344655-40.919081%200-56.263737l-97.182817-98.205794z'%20%3e%3c/path%3e%3c/svg%3e",
|
|
1001
|
+
default: In
|
|
1002
|
+
}, Symbol.toStringTag, { value: "Module" })), Dn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M220.451548%20913.518482V318.145854c0-27.62038%2022.505495-50.125874%2050.125875-50.125874H865.95005c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v218.917083h59.332667V318.145854c0-60.355644-49.102897-109.458541-109.458541-109.458541h-39.896104v-99.228772C826.053946%2049.102897%20776.951049%200%20716.595405%200H121.222777C60.867133%200%2011.764236%2049.102897%2011.764236%20109.458541V705.854146c0%2060.355644%2049.102897%20109.458541%20109.458541%20109.458541h39.896104v99.228772c0%2060.355644%2049.102897%20109.458541%20109.458542%20109.458541h257.790209v-59.332667H269.554446c-26.597403-1.022977-49.102897-23.528472-49.102898-51.148851z%20m-59.332667-595.372628v436.811189h-39.896104c-27.62038%200-50.125874-22.505495-50.125874-50.125874V109.458541c0-27.62038%2022.505495-50.125874%2050.125874-50.125874H716.595405c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v99.228772H269.554446c-59.332667%200-108.435564%2049.102897-108.435565%20109.458541z'%20%3e%3c/path%3e%3cpath%20d='M902.777223%20854.185814l98.205794-98.205794c15.344655-15.344655%2015.344655-40.919081%200-56.263736s-40.919081-15.344655-56.263736%200L846.513487%20797.922078%20747.284715%20699.716284c-15.344655-15.344655-40.919081-15.344655-56.263736%200s-15.344655%2040.919081%200%2056.263736l98.205794%2098.205794-98.205794%2098.205794c-15.344655%2015.344655-15.344655%2040.919081%200%2056.263737s40.919081%2015.344655%2056.263736%200l98.205794-98.205795%2098.205795%2098.205795c15.344655%2015.344655%2040.919081%2015.344655%2056.263736%200s15.344655-40.919081%200-56.263737l-97.182817-98.205794z'%20%3e%3c/path%3e%3c/svg%3e", An = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1003
1003
|
__proto__: null,
|
|
1004
1004
|
default: Dn
|
|
1005
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1005
|
+
}, Symbol.toStringTag, { value: "Module" })), Sn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902601497'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='9801'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M761.344%20119.296H226.816c-18.944%200-39.424%2011.776-39.424%2030.72V921.6h614.4V148.48c0.512-18.944-22.016-29.184-40.448-29.184z%20m-537.6%20768c-2.048%200-2.048%200%200%200L221.696%20163.84c0-5.12%205.12-10.24%2010.24-10.24h522.24c8.704%200%2013.824%205.12%2013.824%2013.824v720.384s0%201.536-1.536%201.536h-15.36V194.56c0-16.896-8.704-24.064-29.184-24.064H266.24c-18.944%200-27.136%208.704-27.136%2024.064v692.736h-15.36z%20m49.152%200V204.8H716.8v682.496H272.896z'%20p-id='9802'%3e%3c/path%3e%3cpath%20d='M648.704%20508.416c-16.896%200-32.256%2013.824-32.256%2032.256%200%2016.896%2013.824%2032.256%2032.256%2032.256s32.256-13.824%2032.256-32.256c0-16.896-13.824-32.256-32.256-32.256z'%20p-id='9803'%3e%3c/path%3e%3c/svg%3e", _n = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1006
1006
|
__proto__: null,
|
|
1007
|
-
default:
|
|
1007
|
+
default: Sn
|
|
1008
1008
|
}, Symbol.toStringTag, { value: "Module" })), Bn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M491.80027198%20557.44938977c-10.0998647-15.14979706-20.19972802-25.24966037-35.34952507-35.34952507-15.14979706-10.0998647-30.29959271-15.14979706-50.49932211-15.14979704-55.54925309%200-100.99864286%2045.44938977-100.99864287%20100.99864285%200%2015.14979706%205.04993234%2035.34952507%2015.14979568%2050.49932212%2010.0998647%2015.14979706%2020.19972802%2030.29959271%2035.34952506%2035.34952508%2015.14979706%2010.0998647%2035.34952507%2015.14979706%2050.49932213%2015.14979567%2055.54925309%200%20100.99864286-45.44938977%20100.99864286-100.99864287%200-15.14979706-5.04993234-35.34952507-15.14979568-50.49932074z%20m-85.84884718%20100.99864286h-15.14979706c-20.19972802-5.04993234-30.29959271-20.19972802-35.34952507-35.34952507V612.99864286c0-30.29959271%2025.24966037-50.49932212%2050.49932213-50.49932074h10.09986469c15.14979706%205.04993234%2030.29959271%2015.14979706%2035.34952507%2035.34952507v15.14979567c5.04993234%2025.24966037-20.19972802%2045.44938977-45.44938976%2045.44938977z'%3e%3c/path%3e%3cpath%20d='M390.80162774%20658.44803263l-40.39945604%2040.39945743-227.24694747%20222.19701373-35.34952506-35.34952508%20227.24694745-227.24694608%2040.39945605-40.39945743c5.04993234%2020.19972802%2020.19972802%2035.34952507%2035.34952507%2040.39945743zM648.34816793%20405.9514248l-40.39945742%2040.3994574-116.14843853%20116.14843992-40.39945742%2035.34952507c-5.04993234-20.19972802-20.19972802-30.29959271-35.34952507-35.34952507l40.39945742-40.39945742%20116.14843853-111.09850756%2035.34952507-35.34952507c10.0998647%2015.14979706%2020.19972802%2025.24966037%2040.39945742%2030.29959273zM926.09443614%20133.25508894L749.34681078%20310.00271428l-40.3994574%2040.39945742c-5.04993234-20.19972802-15.14979706-35.34952507-30.29959272-40.39945742l35.34952506-40.39945742%20176.74762534-176.74762535%2035.34952508%2040.39945743z'%20%3e%3c/path%3e%3cpath%20d='M749.34681078%20310.00271428c-10.0998647-15.14979706-20.19972802-30.29959271-35.34952506-35.34952506-15.14979706-10.0998647-35.34952507-15.14979706-55.54925309-15.14979706-55.54925309%200-100.99864286%2045.44938977-100.99864286%20100.99864286%200%2020.19972802%205.04993234%2040.39945743%2015.14979567%2055.54925447%2010.0998647%2015.14979706%2020.19972802%2025.24966037%2035.34952507%2035.34952507%2015.14979706%2010.0998647%2030.29959271%2015.14979706%2050.49932212%2015.14979567%2055.54925309%200%20100.99864286-45.44938977%20100.99864286-100.99864286%200-25.24966037-5.04993234-40.39945743-10.09986471-55.54925309z%20m-90.89877815%2095.94871052h-10.0998647c-20.19972802-5.04993234-35.34952507-15.14979706-40.39945742-35.34952509%200-5.04993234-5.04993234-10.0998647-5.04993234-15.14979704%200-30.29959271%2025.24966037-50.49932212%2050.49932212-50.49932074%205.04993234%200%2010.0998647%200%2015.14979704%205.04993235%2015.14979706%205.04993234%2030.29959271%2020.19972802%2030.29959273%2040.39945742v10.09986332c10.0998647%2025.24966037-15.14979706%2045.44938977-40.39945743%2045.44938978z'%20%3e%3c/path%3e%3c/svg%3e", Nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1009
1009
|
__proto__: null,
|
|
1010
1010
|
default: Bn
|
|
@@ -1035,17 +1035,17 @@ const xn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!
|
|
|
1035
1035
|
}, Symbol.toStringTag, { value: "Module" })), Yn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902547951'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='5129'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M59.355%2091.776v867.881h867.881V91.776H59.356zM897.31%20929.73H89.282V121.703h808.027V929.73z'%20fill=''%20p-id='5130'%3e%3c/path%3e%3cpath%20d='M833.964%20185.048H152.627v681.337h681.337V185.048z%20m-355.632%20651.41H182.554V532.2h295.778v304.257z%20m0-334.184H182.554V214.975h295.778v287.299z%20m325.705%20334.184H508.259V532.2h295.778v304.257z%20m0-334.184H508.259V214.975h295.778v287.299z'%20fill=''%20p-id='5131'%3e%3c/path%3e%3c/svg%3e", Xn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1036
1036
|
__proto__: null,
|
|
1037
1037
|
default: Yn
|
|
1038
|
-
}, Symbol.toStringTag, { value: "Module" })), $n = "data:image/png;base64,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", es = new
|
|
1039
|
-
class ns extends
|
|
1038
|
+
}, Symbol.toStringTag, { value: "Module" })), $n = "data:image/png;base64,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", es = new m.TextureLoader(), ts = es.load($n);
|
|
1039
|
+
class ns extends Ae {
|
|
1040
1040
|
static name = "RenderManager";
|
|
1041
|
-
container = new
|
|
1041
|
+
container = new m.Group();
|
|
1042
1042
|
lines = [];
|
|
1043
|
-
pointVirtualGrid = new
|
|
1044
|
-
quadtree = new
|
|
1045
|
-
verticalReferenceLineFlag = new
|
|
1043
|
+
pointVirtualGrid = new Fe();
|
|
1044
|
+
quadtree = new ze(new Ye());
|
|
1045
|
+
verticalReferenceLineFlag = new m.Mesh(new m.PlaneGeometry(0.3, 0.3), new m.MeshBasicMaterial({ map: ts, color: 58111, transparent: !0 }));
|
|
1046
1046
|
onAddFromParent() {
|
|
1047
1047
|
const e = this.dxfLineModel;
|
|
1048
|
-
this.editor.container.add(this.container), this.editor.container.add(e.dxfModelGroup), e.dxfLineModel.material = new
|
|
1048
|
+
this.editor.container.add(this.container), this.editor.container.add(e.dxfModelGroup), e.dxfLineModel.material = new m.LineBasicMaterial({
|
|
1049
1049
|
transparent: !0,
|
|
1050
1050
|
opacity: 0.5,
|
|
1051
1051
|
color: 16777215
|
|
@@ -1062,9 +1062,9 @@ class ns extends Oe {
|
|
|
1062
1062
|
return;
|
|
1063
1063
|
} else
|
|
1064
1064
|
this.updatedMode = "dxf";
|
|
1065
|
-
this.pointVirtualGrid = new
|
|
1065
|
+
this.pointVirtualGrid = new Fe();
|
|
1066
1066
|
const e = this.dxf.box.clone().expansion(Math.max(this.dxf.box.width, this.dxf.box.height) * 2);
|
|
1067
|
-
(e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new
|
|
1067
|
+
(e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new ze(e), this.lines.length = 0, this.dxf.lineSegments.forEach((t) => {
|
|
1068
1068
|
t.userData.isDoor || this.addLine(t.clone());
|
|
1069
1069
|
}), this.dxf.doorLineSegment.forEach((t) => {
|
|
1070
1070
|
const n = t.clone();
|
|
@@ -1131,8 +1131,8 @@ class ns extends Oe {
|
|
|
1131
1131
|
if (o.points.forEach((a) => {
|
|
1132
1132
|
o.userData.isDoor ? n.push(a.x, a.y, 0) : t.push(a.x, a.y, 0);
|
|
1133
1133
|
}), o.userData.isWindow && o.userData.drawWindow && o.userData.drawWindow.forEach(({ width: a, p: r }) => {
|
|
1134
|
-
const l =
|
|
1135
|
-
s.push(
|
|
1134
|
+
const l = _.from(r), i = o.direction(), c = l.clone().add(i.clone().multiplyScalar(a * 0.5)), h = l.clone().add(i.clone().multiplyScalar(-a * 0.5));
|
|
1135
|
+
s.push(c.x, c.y, 1e-3), s.push(h.x, h.y, 1e-3);
|
|
1136
1136
|
}), o.userData.isVerticalReferenceLine) {
|
|
1137
1137
|
const a = o.center;
|
|
1138
1138
|
this.verticalReferenceLineFlag.position.set(a.x, a.y, 0), this.container.add(this.verticalReferenceLineFlag);
|
|
@@ -1156,9 +1156,9 @@ class ns extends Oe {
|
|
|
1156
1156
|
* @returns
|
|
1157
1157
|
*/
|
|
1158
1158
|
adsorption(e = 0.04, t = this.pointVirtualGrid, n = this.quadtree) {
|
|
1159
|
-
const s = this.parent?.findComponentByName("Editor"), o =
|
|
1159
|
+
const s = this.parent?.findComponentByName("Editor"), o = _.from(s.pointerPosition), a = t.queryCircle(o, e).sort((l, i) => l.point.distance(o) - i.point.distance(o));
|
|
1160
1160
|
if (a.length) return {
|
|
1161
|
-
point: new
|
|
1161
|
+
point: new m.Vector3(a[0].point.x, a[0].point.y, 0),
|
|
1162
1162
|
find: !0,
|
|
1163
1163
|
mode: "point",
|
|
1164
1164
|
line: a[0].userData
|
|
@@ -1166,15 +1166,15 @@ class ns extends Oe {
|
|
|
1166
1166
|
let r = n.queryCircle(o, e);
|
|
1167
1167
|
if (r.length) {
|
|
1168
1168
|
let l = r.map((i) => i.line.projectPoint(o));
|
|
1169
|
-
return l.sort((i,
|
|
1170
|
-
point: new
|
|
1169
|
+
return l.sort((i, c) => i && c ? i.distance(o) - c.distance(o) : 0), r = r.filter((i, c) => !!l[c]), l = l.filter((i, c) => !!l[c]), {
|
|
1170
|
+
point: new m.Vector3(l[0].x, l[0].y, 0),
|
|
1171
1171
|
find: !0,
|
|
1172
1172
|
mode: "line",
|
|
1173
1173
|
line: r[0].line
|
|
1174
1174
|
};
|
|
1175
1175
|
}
|
|
1176
1176
|
return {
|
|
1177
|
-
point: new
|
|
1177
|
+
point: new m.Vector3(s.pointerPosition.x, s.pointerPosition.y, 0),
|
|
1178
1178
|
find: !1
|
|
1179
1179
|
};
|
|
1180
1180
|
}
|
|
@@ -1182,9 +1182,9 @@ class ns extends Oe {
|
|
|
1182
1182
|
* @param rectangle
|
|
1183
1183
|
*/
|
|
1184
1184
|
createGeometry(e, t) {
|
|
1185
|
-
const n = new
|
|
1185
|
+
const n = new m.BufferGeometry();
|
|
1186
1186
|
return Object.keys(e).forEach((s) => {
|
|
1187
|
-
n.setAttribute("position", new
|
|
1187
|
+
n.setAttribute("position", new m.BufferAttribute(new Float32Array(e[s]), e[s].length / t));
|
|
1188
1188
|
}), n;
|
|
1189
1189
|
}
|
|
1190
1190
|
/**
|
|
@@ -1247,9 +1247,9 @@ class ns extends Oe {
|
|
|
1247
1247
|
return this.parent?.findComponentByName("DxfLineModel");
|
|
1248
1248
|
}
|
|
1249
1249
|
}
|
|
1250
|
-
class ss extends
|
|
1250
|
+
class ss extends R {
|
|
1251
1251
|
static name = "DrawDoorLine";
|
|
1252
|
-
container = new
|
|
1252
|
+
container = new m.Group();
|
|
1253
1253
|
interruptKeys = ["escape"];
|
|
1254
1254
|
shortcutKeys = ["control", "m"];
|
|
1255
1255
|
commandName = "draw-door-line";
|
|
@@ -1266,13 +1266,13 @@ class ss extends W {
|
|
|
1266
1266
|
* @param next
|
|
1267
1267
|
*/
|
|
1268
1268
|
selectPoint(e) {
|
|
1269
|
-
let t = this.parent?.findComponentByName("Editor"), n = null, s = new
|
|
1270
|
-
new
|
|
1271
|
-
new
|
|
1272
|
-
new
|
|
1273
|
-
new
|
|
1269
|
+
let t = this.parent?.findComponentByName("Editor"), n = null, s = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 65280 })), o = new ye([], 16711935), a = new ye([
|
|
1270
|
+
new m.Vector3(-1e4, 0, 0),
|
|
1271
|
+
new m.Vector3(1e4, 0, 0),
|
|
1272
|
+
new m.Vector3(0, -1e4, 0),
|
|
1273
|
+
new m.Vector3(0, 1e4, 0)
|
|
1274
1274
|
], 16711935);
|
|
1275
|
-
a.material = new
|
|
1275
|
+
a.material = new m.LineDashedMaterial({
|
|
1276
1276
|
color: 4235007,
|
|
1277
1277
|
dashSize: 0.1,
|
|
1278
1278
|
gapSize: 0.1,
|
|
@@ -1307,22 +1307,22 @@ class ss extends W {
|
|
|
1307
1307
|
end(e, t) {
|
|
1308
1308
|
const n = [];
|
|
1309
1309
|
for (let s = 0; s < t.length; s += 2) {
|
|
1310
|
-
const o =
|
|
1310
|
+
const o = _.from(t[s]), a = _.from(t[s + 1]), r = this.renderManager.quadtree.queryCircle(o, 1e-3)[0].line, l = this.renderManager.quadtree.queryCircle(a, 1e-3)[0].line;
|
|
1311
1311
|
let i = null;
|
|
1312
1312
|
r === l && (i = {
|
|
1313
1313
|
oldLine: r,
|
|
1314
|
-
newLine1: new
|
|
1314
|
+
newLine1: new B(
|
|
1315
1315
|
r.start,
|
|
1316
1316
|
r.start.distance(o) < r.start.distance(a) ? o.clone() : a.clone()
|
|
1317
1317
|
),
|
|
1318
|
-
newLine2: new
|
|
1318
|
+
newLine2: new B(
|
|
1319
1319
|
r.end,
|
|
1320
1320
|
r.end.distance(o) < r.end.distance(a) ? o.clone() : a.clone()
|
|
1321
1321
|
)
|
|
1322
1322
|
});
|
|
1323
|
-
const
|
|
1324
|
-
|
|
1325
|
-
line:
|
|
1323
|
+
const c = new B(o, a);
|
|
1324
|
+
c.userData.isDoor = !0, c.userData.doorDirectConnection = !0, n.push({
|
|
1325
|
+
line: c,
|
|
1326
1326
|
option: i
|
|
1327
1327
|
});
|
|
1328
1328
|
}
|
|
@@ -1351,9 +1351,9 @@ class ss extends W {
|
|
|
1351
1351
|
return this.completed(e), e;
|
|
1352
1352
|
}
|
|
1353
1353
|
}
|
|
1354
|
-
class os extends
|
|
1354
|
+
class os extends R {
|
|
1355
1355
|
static name = "DrawWindow";
|
|
1356
|
-
container = new
|
|
1356
|
+
container = new m.Group();
|
|
1357
1357
|
interruptKeys = ["escape"];
|
|
1358
1358
|
shortcutKeys = ["control", "q"];
|
|
1359
1359
|
commandName = "draw-window-line";
|
|
@@ -1366,7 +1366,7 @@ class os extends W {
|
|
|
1366
1366
|
* @param next
|
|
1367
1367
|
*/
|
|
1368
1368
|
selectPointStart(e) {
|
|
1369
|
-
let t = null, n = new
|
|
1369
|
+
let t = null, n = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 16711935 })), s = null;
|
|
1370
1370
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
1371
1371
|
const { point: o, line: a, find: r } = this.editor.renderManager.adsorption();
|
|
1372
1372
|
this.dispatchEvent({ type: "pointerMove", point: o }), r ? (this.domElement.style.cursor = "none", n.position.copy(o), s = a, t = o.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
|
|
@@ -1378,7 +1378,7 @@ class os extends W {
|
|
|
1378
1378
|
* @param next
|
|
1379
1379
|
*/
|
|
1380
1380
|
selectPointEnd(e, { point: t, line: n }) {
|
|
1381
|
-
let s = null, o = new
|
|
1381
|
+
let s = null, o = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 16711935 }));
|
|
1382
1382
|
this.addEventRecord("clear").add(() => o.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
1383
1383
|
const { point: a, find: r, line: l } = this.editor.renderManager.adsorption();
|
|
1384
1384
|
this.dispatchEvent({ type: "pointerMove", point: a }), r && l === n ? (this.domElement.style.cursor = "none", o.position.copy(a), s = a.clone(), this.container.add(o)) : (this.domElement.style.cursor = "no-drop", s = null, o.removeFromParent());
|
|
@@ -1392,8 +1392,8 @@ class os extends W {
|
|
|
1392
1392
|
* @param points
|
|
1393
1393
|
*/
|
|
1394
1394
|
end(e, { start: t, end: n, line: s }) {
|
|
1395
|
-
const o = new
|
|
1396
|
-
p: new
|
|
1395
|
+
const o = new B(_.from(t), _.from(n)), a = o.center, r = o.length(), l = {
|
|
1396
|
+
p: new m.Vector3(a.x, a.y, 0),
|
|
1397
1397
|
width: r,
|
|
1398
1398
|
full: Math.abs(r - s.length()) < 0.01
|
|
1399
1399
|
};
|
|
@@ -1423,9 +1423,9 @@ class os extends W {
|
|
|
1423
1423
|
return this.completed(e), e;
|
|
1424
1424
|
}
|
|
1425
1425
|
}
|
|
1426
|
-
class
|
|
1426
|
+
class X extends R {
|
|
1427
1427
|
static name = "VerticalCorrection";
|
|
1428
|
-
container = new
|
|
1428
|
+
container = new m.Group();
|
|
1429
1429
|
shortcutKeys = ["control", "c"];
|
|
1430
1430
|
shortcutKeys2 = ["control", "shift", "c"];
|
|
1431
1431
|
shortcutKeys3 = ["shift", "c"];
|
|
@@ -1434,18 +1434,18 @@ class oe extends W {
|
|
|
1434
1434
|
axisAlignment = !1;
|
|
1435
1435
|
onAddFromParent(e) {
|
|
1436
1436
|
super.onAddFromParent(e), this.editor.container.add(this.container), this.container.position.z = 1e-3;
|
|
1437
|
-
const t = this.commandManager.addCommandFlow(
|
|
1437
|
+
const t = this.commandManager.addCommandFlow(X.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalCorrection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1438
1438
|
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), t.addEventListener("started", () => {
|
|
1439
1439
|
!this.eventInput.isOnlyKeyDowns(this.shortcutKeys) && !this.eventInput.isOnlyKeyDowns(this.shortcutKeys2) && (this.recursion = !1);
|
|
1440
1440
|
}), this.eventInput.addEventListener("codeChange", async () => {
|
|
1441
|
-
this.eventInput.isOnlyKeyDowns(this.shortcutKeys) ? (this.recursion = !1, this.axisAlignment = !1, this.commandManager.start(
|
|
1441
|
+
this.eventInput.isOnlyKeyDowns(this.shortcutKeys) ? (this.recursion = !1, this.axisAlignment = !1, this.commandManager.start(X.commandName, [...this.default.selectLines])) : this.eventInput.isOnlyKeyDowns(this.shortcutKeys2) ? (this.recursion = !0, this.axisAlignment = !1, this.commandManager.start(X.commandName, [...this.default.selectLines])) : this.eventInput.isOnlyKeyDowns(this.shortcutKeys3) && (this.axisAlignment = !0, this.commandManager.start(X.commandName, [...this.default.selectLines]));
|
|
1442
1442
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys) || this.eventInput.isOnlyKeyDowns(this.shortcutKeys2));
|
|
1443
1443
|
}
|
|
1444
1444
|
/**
|
|
1445
1445
|
* 进入命令约束
|
|
1446
1446
|
*/
|
|
1447
1447
|
constraint(e, t) {
|
|
1448
|
-
Array.isArray(t) ? t.length !== 1 ? (
|
|
1448
|
+
Array.isArray(t) ? t.length !== 1 ? (L({ message: "请选择一条线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1449
1449
|
}
|
|
1450
1450
|
/**
|
|
1451
1451
|
* @param line0
|
|
@@ -1467,42 +1467,42 @@ class oe extends W {
|
|
|
1467
1467
|
if (e.userData.setLinePointUUid === a) return [];
|
|
1468
1468
|
e.userData.setLinePointUUid = a;
|
|
1469
1469
|
let r = [], l = [];
|
|
1470
|
-
(s === "start" || s === "all") && (r = this.renderManager.pointVirtualGrid.queryPoint(e.start).filter((
|
|
1470
|
+
(s === "start" || s === "all") && (r = this.renderManager.pointVirtualGrid.queryPoint(e.start).filter((y) => y.userData !== e)), (s === "end" || s === "all") && (l = this.renderManager.pointVirtualGrid.queryPoint(e.end).filter((y) => y.userData !== e));
|
|
1471
1471
|
const i = e.clone();
|
|
1472
|
-
let
|
|
1473
|
-
t && (e.start.equal(t) || (
|
|
1472
|
+
let c = "";
|
|
1473
|
+
t && (e.start.equal(t) || (c = "start"), o.push({
|
|
1474
1474
|
point: e.start,
|
|
1475
1475
|
oldPoint: e.start.clone(),
|
|
1476
1476
|
newPoint: t,
|
|
1477
1477
|
line: e
|
|
1478
|
-
}), e.start.copy(t)), n && (e.end.equal(n) || (
|
|
1478
|
+
}), e.start.copy(t)), n && (e.end.equal(n) || (c = c === "start" ? "all" : "end"), o.push({
|
|
1479
1479
|
point: e.end,
|
|
1480
1480
|
oldPoint: e.end.clone(),
|
|
1481
1481
|
newPoint: n,
|
|
1482
1482
|
line: e
|
|
1483
1483
|
}), e.end.copy(n));
|
|
1484
|
-
const
|
|
1485
|
-
|
|
1486
|
-
const { point:
|
|
1487
|
-
if (
|
|
1488
|
-
if (
|
|
1489
|
-
const
|
|
1490
|
-
if (
|
|
1484
|
+
const h = (y, u, v) => {
|
|
1485
|
+
y.forEach((g) => {
|
|
1486
|
+
const { point: E, userData: x } = g, D = x.start === E ? "start" : "end";
|
|
1487
|
+
if (x.directionEqual(i))
|
|
1488
|
+
if (D === "start") {
|
|
1489
|
+
const z = e.projectPoint(x.end, !1);
|
|
1490
|
+
if (z) return this.setLinePoint(x, u, z, "end", o, a);
|
|
1491
1491
|
} else {
|
|
1492
|
-
const
|
|
1493
|
-
if (
|
|
1492
|
+
const z = e.projectPoint(x.start, !1);
|
|
1493
|
+
if (z) return this.setLinePoint(x, z, u, "start", o, a);
|
|
1494
1494
|
}
|
|
1495
|
-
(
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1495
|
+
(c === "all" || v === c) && this.setLinePoint(
|
|
1496
|
+
x,
|
|
1497
|
+
x.start === E ? u : x.start,
|
|
1498
|
+
x.end === E ? u : x.end,
|
|
1499
|
+
x.start === E ? "end" : "start",
|
|
1500
1500
|
o,
|
|
1501
1501
|
a
|
|
1502
1502
|
);
|
|
1503
1503
|
});
|
|
1504
1504
|
};
|
|
1505
|
-
return
|
|
1505
|
+
return h(r, e.start, "start"), h(l, e.end, "end"), [...r, ...l];
|
|
1506
1506
|
}
|
|
1507
1507
|
/** 修正2
|
|
1508
1508
|
* 第一步:确定需要修复的线段
|
|
@@ -1516,46 +1516,46 @@ class oe extends W {
|
|
|
1516
1516
|
*/
|
|
1517
1517
|
correction(e, t = [], n = /* @__PURE__ */ new Set()) {
|
|
1518
1518
|
n.add(e);
|
|
1519
|
-
const s = this.renderManager.quadtree.queryLineSegment(e).filter(({ line: i }) => !(i === e || i.userData.isDoor || n.has(i))).map((i) => i.line), o = e.direction(), [a, r] = s.reduce((i,
|
|
1520
|
-
const [
|
|
1521
|
-
return
|
|
1519
|
+
const s = this.renderManager.quadtree.queryLineSegment(e).filter(({ line: i }) => !(i === e || i.userData.isDoor || n.has(i))).map((i) => i.line), o = e.direction(), [a, r] = s.reduce((i, c) => {
|
|
1520
|
+
const [h, y] = i;
|
|
1521
|
+
return c.sameEndpoint(e) ? h.push(c) : y.push(c), i;
|
|
1522
1522
|
}, [[], []]);
|
|
1523
1523
|
a.forEach((i) => {
|
|
1524
|
-
const
|
|
1525
|
-
if (Math.abs(90 -
|
|
1526
|
-
const
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
),
|
|
1530
|
-
if (
|
|
1531
|
-
const
|
|
1524
|
+
const c = i.direction(), h = o.angleBetween(c, "angle");
|
|
1525
|
+
if (Math.abs(90 - h) > 45) return !1;
|
|
1526
|
+
const u = e.sameEndpointAsStart(i) ? e.start : e.end, v = i.sameEndpointAsStart(e) ? i.end : i.start, g = new B(
|
|
1527
|
+
v.clone().add(o.clone().multiplyScalar(1)),
|
|
1528
|
+
v.clone().add(o.clone().multiplyScalar(-1))
|
|
1529
|
+
), E = g.projectPoint(u, !1);
|
|
1530
|
+
if (E) {
|
|
1531
|
+
const x = [];
|
|
1532
1532
|
this.setLinePoint(
|
|
1533
1533
|
i,
|
|
1534
|
-
i.start ===
|
|
1535
|
-
i.end ===
|
|
1536
|
-
i.start ===
|
|
1537
|
-
|
|
1538
|
-
), t.push(
|
|
1534
|
+
i.start === v ? E : i.start,
|
|
1535
|
+
i.end === v ? E : i.end,
|
|
1536
|
+
i.start === v ? "start" : "end",
|
|
1537
|
+
x
|
|
1538
|
+
), t.push(x);
|
|
1539
1539
|
}
|
|
1540
1540
|
return n.add(i), !1;
|
|
1541
1541
|
}), o.copy(e.direction());
|
|
1542
|
-
const l = (i,
|
|
1543
|
-
const
|
|
1544
|
-
if (
|
|
1542
|
+
const l = (i, c, h) => {
|
|
1543
|
+
const y = e.projectPoint(c);
|
|
1544
|
+
if (y) i.copy(y);
|
|
1545
1545
|
else {
|
|
1546
|
-
const
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
),
|
|
1550
|
-
if (
|
|
1551
|
-
const
|
|
1546
|
+
const u = new B(
|
|
1547
|
+
c.clone().add(o.clone().multiplyScalar(1)),
|
|
1548
|
+
c.clone().add(o.clone().multiplyScalar(-1))
|
|
1549
|
+
), v = u.projectPoint(i, !1);
|
|
1550
|
+
if (v) {
|
|
1551
|
+
const g = [];
|
|
1552
1552
|
this.setLinePoint(
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
), t.push(
|
|
1553
|
+
h,
|
|
1554
|
+
h.start === c ? v : h.start,
|
|
1555
|
+
h.end === c ? v : h.end,
|
|
1556
|
+
h.start === c ? "start" : "end",
|
|
1557
|
+
g
|
|
1558
|
+
), t.push(g);
|
|
1559
1559
|
}
|
|
1560
1560
|
}
|
|
1561
1561
|
};
|
|
@@ -1565,23 +1565,23 @@ class oe extends W {
|
|
|
1565
1565
|
else if (e.containsPoint(i.end))
|
|
1566
1566
|
l(i.end, i.start, i);
|
|
1567
1567
|
else {
|
|
1568
|
-
const
|
|
1569
|
-
if (
|
|
1570
|
-
const
|
|
1568
|
+
const c = e.getIntersection(i);
|
|
1569
|
+
if (c) {
|
|
1570
|
+
const h = new B(
|
|
1571
1571
|
i.start.clone().add(o.clone().multiplyScalar(1)),
|
|
1572
1572
|
i.start.clone().add(o.clone().multiplyScalar(-1))
|
|
1573
|
-
),
|
|
1574
|
-
if (
|
|
1575
|
-
const
|
|
1576
|
-
this.setLinePoint(i,
|
|
1573
|
+
), y = h.projectPoint(c, !1);
|
|
1574
|
+
if (y) {
|
|
1575
|
+
const g = [];
|
|
1576
|
+
this.setLinePoint(i, y, i.end, "start", g), t.push(g);
|
|
1577
1577
|
}
|
|
1578
|
-
const
|
|
1578
|
+
const u = new B(
|
|
1579
1579
|
i.end.clone().add(o.clone().multiplyScalar(1)),
|
|
1580
1580
|
i.end.clone().add(o.clone().multiplyScalar(-1))
|
|
1581
|
-
),
|
|
1582
|
-
if (
|
|
1583
|
-
const
|
|
1584
|
-
this.setLinePoint(i, i.start,
|
|
1581
|
+
), v = u.projectPoint(c, !1);
|
|
1582
|
+
if (v) {
|
|
1583
|
+
const g = [];
|
|
1584
|
+
this.setLinePoint(i, i.start, v, "end", g), t.push(g);
|
|
1585
1585
|
}
|
|
1586
1586
|
}
|
|
1587
1587
|
}
|
|
@@ -1592,149 +1592,8 @@ class oe extends W {
|
|
|
1592
1592
|
* @returns
|
|
1593
1593
|
*/
|
|
1594
1594
|
axisAlignmentCorrection(e) {
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
for (let M = 0; M < w.length; M++) {
|
|
1598
|
-
const u = w[M];
|
|
1599
|
-
if (v !== u) {
|
|
1600
|
-
if (u.userData.isDoor) {
|
|
1601
|
-
A.push(u);
|
|
1602
|
-
continue;
|
|
1603
|
-
}
|
|
1604
|
-
if (u.parallel(v, 45)) {
|
|
1605
|
-
const D = Math.atan2(u.end.y - u.start.y, u.end.x - u.start.x);
|
|
1606
|
-
let m = Math.atan2(v.end.y - v.start.y, v.end.x - v.start.x) - D;
|
|
1607
|
-
for (; m > Math.PI; ) m -= 2 * Math.PI;
|
|
1608
|
-
for (; m < -Math.PI; ) m += 2 * Math.PI;
|
|
1609
|
-
const I = u.center;
|
|
1610
|
-
u.start.rotate(I, m), u.end.rotate(I, m), g.push(u);
|
|
1611
|
-
} else {
|
|
1612
|
-
const D = Math.atan2(u.end.y - u.start.y, u.end.x - u.start.x), b = Math.atan2(v.end.y - v.start.y, v.end.x - v.start.x);
|
|
1613
|
-
let m = b + Math.PI / 2 - D, I = b - Math.PI / 2 - D;
|
|
1614
|
-
for (; m > Math.PI; ) m -= 2 * Math.PI;
|
|
1615
|
-
for (; m < -Math.PI; ) m += 2 * Math.PI;
|
|
1616
|
-
for (; I > Math.PI; ) I -= 2 * Math.PI;
|
|
1617
|
-
for (; I < -Math.PI; ) I += 2 * Math.PI;
|
|
1618
|
-
const _ = Math.abs(m) < Math.abs(I) ? m : I, j = u.center;
|
|
1619
|
-
u.start.rotate(j, _), u.end.rotate(j, _), S.push(u);
|
|
1620
|
-
}
|
|
1621
|
-
}
|
|
1622
|
-
}
|
|
1623
|
-
return { parallelLines: g, verticalLines: S, doorLines: A };
|
|
1624
|
-
}
|
|
1625
|
-
function n(v, w, g, S = 0.3, A = 0.06) {
|
|
1626
|
-
const M = [];
|
|
1627
|
-
v.forEach((b) => {
|
|
1628
|
-
const m = g.projectPoint(b.start, !1);
|
|
1629
|
-
m && (m.userData = b, M.push(m));
|
|
1630
|
-
}), M.sort((b, m) => m.distance(g.start) - b.distance(g.start));
|
|
1631
|
-
const u = [], D = [];
|
|
1632
|
-
for (let b = 0; b < M.length; b++) {
|
|
1633
|
-
const m = M[b];
|
|
1634
|
-
if (b === 0) {
|
|
1635
|
-
D.push(m);
|
|
1636
|
-
continue;
|
|
1637
|
-
}
|
|
1638
|
-
M[b - 1].distance(m) < A || (u.push([...D]), D.length = 0), D.push(m), b === M.length - 1 && u.push(D);
|
|
1639
|
-
}
|
|
1640
|
-
return u.flatMap((b) => {
|
|
1641
|
-
const m = b.flatMap((N) => {
|
|
1642
|
-
const G = N.userData;
|
|
1643
|
-
return G.points.map((Y) => {
|
|
1644
|
-
const V = w.projectPoint(Y, !1);
|
|
1645
|
-
return V.userData = G, V;
|
|
1646
|
-
});
|
|
1647
|
-
});
|
|
1648
|
-
m.sort((N, G) => N.distance(w.start) - G.distance(w.start));
|
|
1649
|
-
const I = /* @__PURE__ */ new Map(), _ = [], j = [];
|
|
1650
|
-
return m.forEach((N, G) => {
|
|
1651
|
-
I.size === 0 && G > 0 && m[G - 1].distance(N) > S && (_.push([...j]), j.length = 0), I.set(N.userData, (I.get(N.userData) ?? 0) + 1);
|
|
1652
|
-
for (const Y of I.values()) if (Y !== 2) return;
|
|
1653
|
-
j.push(...I.keys()), I.clear();
|
|
1654
|
-
}), _.push([...j]), _;
|
|
1655
|
-
});
|
|
1656
|
-
}
|
|
1657
|
-
function s(v, w = 0.1) {
|
|
1658
|
-
return v.map((g) => {
|
|
1659
|
-
if (g.length === 0) return;
|
|
1660
|
-
if (g.length === 1) return g[0];
|
|
1661
|
-
const S = [];
|
|
1662
|
-
g.forEach((V) => {
|
|
1663
|
-
S.push(V.start.clone(), V.end.clone());
|
|
1664
|
-
});
|
|
1665
|
-
const A = g[0].direction().normalize();
|
|
1666
|
-
let M = 1 / 0, u = -1 / 0, D = 0, b = 0;
|
|
1667
|
-
S.forEach((V) => {
|
|
1668
|
-
const k = V.x * A.x + V.y * A.y;
|
|
1669
|
-
M = Math.min(M, k), u = Math.max(u, k), D += V.x, b += V.y;
|
|
1670
|
-
});
|
|
1671
|
-
const m = new R(D / S.length, b / S.length), I = m.x * A.x + m.y * A.y, _ = new R(m.x + (M - I) * A.x, m.y + (M - I) * A.y), j = new R(m.x + (u - I) * A.x, m.y + (u - I) * A.y), N = new z(_, j), G = g[0].normal().normalize();
|
|
1672
|
-
M = 1 / 0, u = -1 / 0, S.forEach((V) => {
|
|
1673
|
-
const k = V.x * G.x + V.y * G.y;
|
|
1674
|
-
M = Math.min(M, k), u = Math.max(u, k);
|
|
1675
|
-
});
|
|
1676
|
-
const Y = u - M;
|
|
1677
|
-
return Y >= w && (N.userData.wallWidth = Y), N;
|
|
1678
|
-
}).filter((g) => !!g);
|
|
1679
|
-
}
|
|
1680
|
-
function o(v, w = 0.2) {
|
|
1681
|
-
const g = new Le(Me.fromByLineSegment(...v)), S = /* @__PURE__ */ new Map();
|
|
1682
|
-
v.forEach((M) => {
|
|
1683
|
-
S.set(M, { line: M, userData: void 0 }), g.insert(S.get(M));
|
|
1684
|
-
});
|
|
1685
|
-
const A = new z();
|
|
1686
|
-
for (let M = 0; M < v.length; M++) {
|
|
1687
|
-
const u = v[M], D = u.direction().multiplyScalar(w), [b, m] = u.points.map((I) => {
|
|
1688
|
-
A.set(I, I), A.start.add(D), A.end.add(D.multiplyScalar(-1));
|
|
1689
|
-
const _ = /* @__PURE__ */ new Map(), j = g.queryRect(A.expandToRectangle(0.05, "bothSides")).filter((N) => N.line !== u).map((N) => {
|
|
1690
|
-
const G = N.line.getIntersection(A);
|
|
1691
|
-
return _.set(N.line, G), N.line;
|
|
1692
|
-
}).sort((N, G) => {
|
|
1693
|
-
const Y = _.get(N), V = _.get(G);
|
|
1694
|
-
return Y && V ? Y.distance(I) - V.distance(I) : 0;
|
|
1695
|
-
});
|
|
1696
|
-
return j.length ? _.get(j[0]) : void 0;
|
|
1697
|
-
});
|
|
1698
|
-
if (b && m)
|
|
1699
|
-
if (b.equal(m)) {
|
|
1700
|
-
const I = u.start.distance(b), _ = u.end.distance(m);
|
|
1701
|
-
I < _ ? u.directionMove(u.start.direction(u.end), I) : u.directionMove(u.end.direction(u.start), _);
|
|
1702
|
-
} else
|
|
1703
|
-
u.start.copy(b), u.end.copy(m);
|
|
1704
|
-
else b ? u.start.copy(b) : m && u.end.copy(m);
|
|
1705
|
-
g.remove(S.get(u)), g.insert(S.get(u));
|
|
1706
|
-
}
|
|
1707
|
-
return v.filter((M) => M.length() > 1e-3);
|
|
1708
|
-
}
|
|
1709
|
-
function a(v) {
|
|
1710
|
-
const w = new Le(Me.fromByLineSegment(...v));
|
|
1711
|
-
return v.forEach((g) => w.insert({ line: g, userData: void 0 })), v.flatMap((g) => {
|
|
1712
|
-
const S = w.queryLineSegment(g, !0).map((A) => {
|
|
1713
|
-
if (A.line === g) return;
|
|
1714
|
-
const M = A.line.getIntersection(g);
|
|
1715
|
-
if (!(!M || g.start.equal(M) || g.end.equal(M)))
|
|
1716
|
-
return M;
|
|
1717
|
-
}).filter((A) => !!A);
|
|
1718
|
-
return S.length ? (g = g.clone(), S.sort((M, u) => g.start.distance(M) - g.start.distance(u)), [...S.map((M) => {
|
|
1719
|
-
const u = g.clone();
|
|
1720
|
-
return u.set(g.start.clone(), M), g.start.copy(M), u;
|
|
1721
|
-
}), g]) : g;
|
|
1722
|
-
}).filter((g) => g.length() > 0.1);
|
|
1723
|
-
}
|
|
1724
|
-
const { parallelLines: r, verticalLines: l } = t(e, this.renderManager.lines.map((v) => v.clone())), i = e.normal(), d = e.center, p = e.direction(), E = new z(
|
|
1725
|
-
d.clone().add(i.clone().multiplyScalar(-1e3)),
|
|
1726
|
-
d.clone().add(i.clone().multiplyScalar(1e3))
|
|
1727
|
-
), f = new z(
|
|
1728
|
-
d.clone().add(p.clone().multiplyScalar(-1e3)),
|
|
1729
|
-
d.clone().add(p.clone().multiplyScalar(1e3))
|
|
1730
|
-
);
|
|
1731
|
-
let y = s([
|
|
1732
|
-
...n.call(this, r, f, E),
|
|
1733
|
-
...n.call(this, l, E, f)
|
|
1734
|
-
]);
|
|
1735
|
-
y = o.call(this, y), y = o.call(this, y), y = a.call(this, y);
|
|
1736
|
-
const C = [...this.renderManager.lines];
|
|
1737
|
-
return { newLines: y, oldLines: C };
|
|
1595
|
+
const t = [...this.renderManager.lines];
|
|
1596
|
+
return { newLines: B.axisAlignmentCorrection(t, e), oldLines: t };
|
|
1738
1597
|
}
|
|
1739
1598
|
/** 开始
|
|
1740
1599
|
* @param next
|
|
@@ -1778,22 +1637,22 @@ class oe extends W {
|
|
|
1778
1637
|
return this.completed(e), e;
|
|
1779
1638
|
}
|
|
1780
1639
|
}
|
|
1781
|
-
class
|
|
1640
|
+
class $ extends R {
|
|
1782
1641
|
static name = "MergeLine";
|
|
1783
1642
|
shortcutKeys = ["control", "g"];
|
|
1784
1643
|
static commandName = "merge-line";
|
|
1785
1644
|
onAddFromParent(e) {
|
|
1786
1645
|
super.onAddFromParent(e);
|
|
1787
|
-
const t = e.findComponentByType(
|
|
1788
|
-
n.addEventListener("finally", this.createFinally()), n.addEventListener("completed", (s) => this.completed(s.data)), this.eventInput.addKeyCombination(
|
|
1789
|
-
t?.selectLines.length === 2 && this.eventInput.isKeyCombination(
|
|
1646
|
+
const t = e.findComponentByType(_e), n = this.commandManager.addCommandFlow($.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.mergeLine.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1647
|
+
n.addEventListener("finally", this.createFinally()), n.addEventListener("completed", (s) => this.completed(s.data)), this.eventInput.addKeyCombination($.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1648
|
+
t?.selectLines.length === 2 && this.eventInput.isKeyCombination($.commandName) && await this.commandManager.start($.commandName, [...this.default.selectLines]);
|
|
1790
1649
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1791
1650
|
}
|
|
1792
1651
|
/**
|
|
1793
1652
|
* 进入命令约束
|
|
1794
1653
|
*/
|
|
1795
1654
|
constraint(e, t) {
|
|
1796
|
-
Array.isArray(t) ? t.length !== 2 ? (
|
|
1655
|
+
Array.isArray(t) ? t.length !== 2 ? (L({ message: "未执行线段合并,请选择两条线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1797
1656
|
}
|
|
1798
1657
|
/** 开始
|
|
1799
1658
|
* @param next
|
|
@@ -1806,12 +1665,12 @@ class ae extends W {
|
|
|
1806
1665
|
for (let r = 0; r < s.points.length; r++) {
|
|
1807
1666
|
const l = s.points[r];
|
|
1808
1667
|
if (a.equal(l)) {
|
|
1809
|
-
const i = n.points[(o + 1) % 2],
|
|
1810
|
-
return e({ line1: n, line2: s, newLine:
|
|
1668
|
+
const i = n.points[(o + 1) % 2], c = s.points[(r + 1) % 2], h = new B(i, c);
|
|
1669
|
+
return e({ line1: n, line2: s, newLine: h }), L({ message: "已合并", type: "success" });
|
|
1811
1670
|
}
|
|
1812
1671
|
}
|
|
1813
1672
|
}
|
|
1814
|
-
|
|
1673
|
+
L({ message: "合并失败,两条线未找到共用点", type: "warning" }), this.commandManager.cancel();
|
|
1815
1674
|
}
|
|
1816
1675
|
/** 执行完成
|
|
1817
1676
|
* @param data
|
|
@@ -1833,26 +1692,26 @@ class ae extends W {
|
|
|
1833
1692
|
return this.completed(e), e;
|
|
1834
1693
|
}
|
|
1835
1694
|
}
|
|
1836
|
-
class
|
|
1695
|
+
class ee extends R {
|
|
1837
1696
|
static name = "DeleteSelectLine";
|
|
1838
1697
|
shortcutKeys = ["Delete"];
|
|
1839
1698
|
static commandName = "deleteSelectLine";
|
|
1840
1699
|
onAddFromParent(e) {
|
|
1841
|
-
super.onAddFromParent(e), this.commandManager.addCommandFlow(
|
|
1842
|
-
this.eventInput.isKeyCombination(
|
|
1700
|
+
super.onAddFromParent(e), this.commandManager.addCommandFlow(ee.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.delete.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ee.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1701
|
+
this.eventInput.isKeyCombination(ee.commandName) && await this.commandManager.start(ee.commandName, [...this.default.selectLines]);
|
|
1843
1702
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1844
1703
|
}
|
|
1845
1704
|
/**
|
|
1846
1705
|
* 进入命令约束
|
|
1847
1706
|
*/
|
|
1848
1707
|
constraint(e, t) {
|
|
1849
|
-
Array.isArray(t) ? t.length === 0 ? (
|
|
1708
|
+
Array.isArray(t) ? t.length === 0 ? (L({ message: "请选择线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1850
1709
|
}
|
|
1851
1710
|
/** 开始
|
|
1852
1711
|
* @param next
|
|
1853
1712
|
*/
|
|
1854
1713
|
delete(e, t) {
|
|
1855
|
-
t.forEach((n) => this.renderManager.removeLine(n)),
|
|
1714
|
+
t.forEach((n) => this.renderManager.removeLine(n)), L({ message: "删除成功", type: "success" }), e(t);
|
|
1856
1715
|
}
|
|
1857
1716
|
/** 回滚操作
|
|
1858
1717
|
* @param data
|
|
@@ -1868,22 +1727,22 @@ class ie extends W {
|
|
|
1868
1727
|
return e.forEach((t) => this.renderManager.removeLine(t)), e;
|
|
1869
1728
|
}
|
|
1870
1729
|
}
|
|
1871
|
-
class
|
|
1730
|
+
class te extends R {
|
|
1872
1731
|
static name = "ConnectionLine";
|
|
1873
1732
|
shortcutKeys = ["Shift", "L"];
|
|
1874
1733
|
static commandName = "connectionLine";
|
|
1875
1734
|
onAddFromParent(e) {
|
|
1876
1735
|
super.onAddFromParent(e);
|
|
1877
|
-
const t = this.commandManager.addCommandFlow(
|
|
1878
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1879
|
-
this.eventInput.isKeyCombination(
|
|
1736
|
+
const t = this.commandManager.addCommandFlow(te.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1737
|
+
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(te.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1738
|
+
this.eventInput.isKeyCombination(te.commandName) && await this.commandManager.start(te.commandName, [...this.default.selectLines]);
|
|
1880
1739
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1881
1740
|
}
|
|
1882
1741
|
/**
|
|
1883
1742
|
* 进入命令约束
|
|
1884
1743
|
*/
|
|
1885
1744
|
constraint(e, t) {
|
|
1886
|
-
Array.isArray(t) ? t.length !== 2 ? (
|
|
1745
|
+
Array.isArray(t) ? t.length !== 2 ? (L({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1887
1746
|
}
|
|
1888
1747
|
/** 连接
|
|
1889
1748
|
* @param next
|
|
@@ -1892,12 +1751,12 @@ class re extends W {
|
|
|
1892
1751
|
let n, s, o = 1 / 0;
|
|
1893
1752
|
for (let a = 0; a < 2; a++)
|
|
1894
1753
|
for (let r = 0; r < 2; r++) {
|
|
1895
|
-
const l = t[0].points[a], i = t[1].points[r],
|
|
1896
|
-
|
|
1754
|
+
const l = t[0].points[a], i = t[1].points[r], c = l.distance(i);
|
|
1755
|
+
c < o && (n = l, s = i, o = c);
|
|
1897
1756
|
}
|
|
1898
1757
|
if (n && s) {
|
|
1899
|
-
const a = new
|
|
1900
|
-
e(a),
|
|
1758
|
+
const a = new B(n.clone(), s.clone());
|
|
1759
|
+
e(a), L({ message: "连接成功", type: "success" });
|
|
1901
1760
|
} else this.cancel();
|
|
1902
1761
|
}
|
|
1903
1762
|
/** 成功
|
|
@@ -1921,22 +1780,22 @@ class re extends W {
|
|
|
1921
1780
|
return this.completed(e), e;
|
|
1922
1781
|
}
|
|
1923
1782
|
}
|
|
1924
|
-
class
|
|
1783
|
+
class ne extends R {
|
|
1925
1784
|
static name = "IntersectionConnectionLine";
|
|
1926
1785
|
shortcutKeys = ["control", "Shift", "L"];
|
|
1927
1786
|
static commandName = "intersectionConnectionLine";
|
|
1928
1787
|
onAddFromParent(e) {
|
|
1929
1788
|
super.onAddFromParent(e);
|
|
1930
|
-
const t = this.commandManager.addCommandFlow(
|
|
1931
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1932
|
-
this.eventInput.isKeyCombination(
|
|
1789
|
+
const t = this.commandManager.addCommandFlow(ne.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1790
|
+
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(ne.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1791
|
+
this.eventInput.isKeyCombination(ne.commandName) && await this.commandManager.start(ne.commandName, [...this.default.selectLines]);
|
|
1933
1792
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1934
1793
|
}
|
|
1935
1794
|
/**
|
|
1936
1795
|
* 进入命令约束
|
|
1937
1796
|
*/
|
|
1938
1797
|
constraint(e, t) {
|
|
1939
|
-
Array.isArray(t) ? t.length !== 2 ? (
|
|
1798
|
+
Array.isArray(t) ? t.length !== 2 ? (L({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1940
1799
|
}
|
|
1941
1800
|
/** 开始
|
|
1942
1801
|
* @param next
|
|
@@ -1944,10 +1803,10 @@ class de extends W {
|
|
|
1944
1803
|
connection(e, t) {
|
|
1945
1804
|
const n = t[0], s = t[1], o = t[0].getIntersection(t[1]);
|
|
1946
1805
|
if (!o) return;
|
|
1947
|
-
const a = n.points.map((
|
|
1806
|
+
const a = n.points.map((c) => c.clone()), r = s.points.map((c) => c.clone());
|
|
1948
1807
|
n.start.distance(o) < n.end.distance(o) ? n.start.copy(o) : n.end.copy(o), s.start.distance(o) < s.end.distance(o) ? s.start.copy(o) : s.end.copy(o);
|
|
1949
|
-
const l = n.points.map((
|
|
1950
|
-
e({ line1: n, line2: s, oldLine1: a, oldLine2: r, newLine1: l, newLine2: i }),
|
|
1808
|
+
const l = n.points.map((c) => c.clone()), i = s.points.map((c) => c.clone());
|
|
1809
|
+
e({ line1: n, line2: s, oldLine1: a, oldLine2: r, newLine1: l, newLine2: i }), L({ message: "连接成功", type: "success" });
|
|
1951
1810
|
}
|
|
1952
1811
|
/** 执行完成
|
|
1953
1812
|
* @param next
|
|
@@ -1971,22 +1830,22 @@ class de extends W {
|
|
|
1971
1830
|
return this.completed(e), e;
|
|
1972
1831
|
}
|
|
1973
1832
|
}
|
|
1974
|
-
class
|
|
1833
|
+
class se extends R {
|
|
1975
1834
|
static name = "DeleteSelectWindow";
|
|
1976
1835
|
shortcutKeys = ["Q", "Delete"];
|
|
1977
1836
|
static commandName = "deleteSelectWindow";
|
|
1978
1837
|
onAddFromParent(e) {
|
|
1979
1838
|
super.onAddFromParent(e);
|
|
1980
|
-
const t = this.commandManager.addCommandFlow(
|
|
1981
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1982
|
-
this.eventInput.isKeyCombination(
|
|
1839
|
+
const t = this.commandManager.addCommandFlow(se.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1840
|
+
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(se.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1841
|
+
this.eventInput.isKeyCombination(se.commandName) && await this.commandManager.start(se.commandName, [...this.default.selectLines]);
|
|
1983
1842
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1984
1843
|
}
|
|
1985
1844
|
/**
|
|
1986
1845
|
* 进入命令约束
|
|
1987
1846
|
*/
|
|
1988
1847
|
constraint(e, t) {
|
|
1989
|
-
Array.isArray(t) ? t.some((n) => n.userData.isWindow) ? e(t) : (
|
|
1848
|
+
Array.isArray(t) ? t.some((n) => n.userData.isWindow) ? e(t) : (L({ message: "请选择有窗户线段", type: "warning" }), this.cancel()) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1990
1849
|
}
|
|
1991
1850
|
/** 开始
|
|
1992
1851
|
* @param next
|
|
@@ -1998,7 +1857,7 @@ class le extends W {
|
|
|
1998
1857
|
line: o,
|
|
1999
1858
|
drawDoorData: o.userData.drawDoorData
|
|
2000
1859
|
}), n = !0);
|
|
2001
|
-
}), n &&
|
|
1860
|
+
}), n && L({ message: "删除窗户成功", type: "success" }), e(s);
|
|
2002
1861
|
}
|
|
2003
1862
|
/**
|
|
2004
1863
|
* 完成
|
|
@@ -2028,16 +1887,16 @@ class le extends W {
|
|
|
2028
1887
|
return this.completed(e), e;
|
|
2029
1888
|
}
|
|
2030
1889
|
}
|
|
2031
|
-
class
|
|
1890
|
+
class oe extends R {
|
|
2032
1891
|
static name = "SelectAll";
|
|
2033
|
-
container = new
|
|
1892
|
+
container = new m.Group();
|
|
2034
1893
|
shortcutKeys = ["control", "a"];
|
|
2035
1894
|
static commandName = "selectAll";
|
|
2036
1895
|
onAddFromParent(e) {
|
|
2037
1896
|
super.onAddFromParent(e), this.editor.container.add(this.container), this.container.position.z = 1e-3;
|
|
2038
|
-
const t = this.commandManager.addCommandFlow(
|
|
2039
|
-
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
2040
|
-
this.eventInput.isKeyCombination(
|
|
1897
|
+
const t = this.commandManager.addCommandFlow(oe.commandName).add(this.createInterrupt()).add(this.selectAll.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1898
|
+
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(oe.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1899
|
+
this.eventInput.isKeyCombination(oe.commandName) && await this.commandManager.start(oe.commandName);
|
|
2041
1900
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
2042
1901
|
}
|
|
2043
1902
|
/** 开始
|
|
@@ -2065,22 +1924,22 @@ class ce extends W {
|
|
|
2065
1924
|
return this.completed(e), e;
|
|
2066
1925
|
}
|
|
2067
1926
|
}
|
|
2068
|
-
class
|
|
1927
|
+
class ae extends R {
|
|
2069
1928
|
static name = "ViewAngle";
|
|
2070
1929
|
shortcutKeys = ["r"];
|
|
2071
1930
|
static commandName = "viewAngle";
|
|
2072
1931
|
onAddFromParent(e) {
|
|
2073
1932
|
super.onAddFromParent(e);
|
|
2074
|
-
const t = this.commandManager.addCommandFlow(
|
|
2075
|
-
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(
|
|
2076
|
-
this.eventInput.isKeyCombination(
|
|
1933
|
+
const t = this.commandManager.addCommandFlow(ae.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.viewAngle.bind(this));
|
|
1934
|
+
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ae.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1935
|
+
this.eventInput.isKeyCombination(ae.commandName) && await this.commandManager.start(ae.commandName, [...this.default.selectLines]);
|
|
2077
1936
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
2078
1937
|
}
|
|
2079
1938
|
/**
|
|
2080
1939
|
* 进入命令约束
|
|
2081
1940
|
*/
|
|
2082
1941
|
constraint(e, t) {
|
|
2083
|
-
Array.isArray(t) ? t.length !== 2 || !t[0].sameEndpoint(t[1]) ? (
|
|
1942
|
+
Array.isArray(t) ? t.length !== 2 || !t[0].sameEndpoint(t[1]) ? (L({ message: "请选择两条具有端点相交的线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
2084
1943
|
}
|
|
2085
1944
|
/**
|
|
2086
1945
|
*
|
|
@@ -2089,37 +1948,37 @@ class me extends W {
|
|
|
2089
1948
|
*/
|
|
2090
1949
|
viewAngle(e, t) {
|
|
2091
1950
|
const [n, s] = t, o = Math.min(0.5, n.length(), s.length());
|
|
2092
|
-
let a, r, l, i = 0,
|
|
1951
|
+
let a, r, l, i = 0, c = 0;
|
|
2093
1952
|
n.sameEndpointAsStart(s) ? (a = n.start, r = n.end) : (a = n.end, r = n.start), s.sameEndpointAsStart(n) ? l = s.end : l = s.start;
|
|
2094
|
-
function
|
|
2095
|
-
const
|
|
2096
|
-
let
|
|
2097
|
-
return
|
|
1953
|
+
function h(A, M) {
|
|
1954
|
+
const b = M.x - A.x, K = M.y - A.y;
|
|
1955
|
+
let W = Math.atan2(K, b) * (180 / Math.PI);
|
|
1956
|
+
return W < 0 && (W += 360), W;
|
|
2098
1957
|
}
|
|
2099
|
-
const
|
|
2100
|
-
function
|
|
2101
|
-
for (let
|
|
2102
|
-
const
|
|
2103
|
-
|
|
1958
|
+
const y = h(a, r), u = h(a, l), v = Math.min(y, u), g = Math.max(y, u), E = [];
|
|
1959
|
+
function x(A, M) {
|
|
1960
|
+
for (let b = A; b <= M; b++) {
|
|
1961
|
+
const K = Math.cos(b * Math.PI / 180) * o + a.x, W = Math.sin(b * Math.PI / 180) * o + a.y, he = Math.cos((b + 1) * Math.PI / 180) * o + a.x, Ce = Math.sin((b + 1) * Math.PI / 180) * o + a.y;
|
|
1962
|
+
E.push(K, W, 0, he, Ce, 0);
|
|
2104
1963
|
}
|
|
2105
1964
|
}
|
|
2106
|
-
|
|
2107
|
-
const
|
|
2108
|
-
|
|
2109
|
-
position:
|
|
2110
|
-
},
|
|
2111
|
-
const
|
|
1965
|
+
g - v > 180 ? (x(0, v), x(g, 360), i = 360 - (g - v), c = (g + i / 2) % 360) : (x(v, g), i = g - v, c = v + i / 2);
|
|
1966
|
+
const D = new m.LineSegments();
|
|
1967
|
+
D.geometry = this.renderManager.createGeometry({
|
|
1968
|
+
position: E
|
|
1969
|
+
}, E.length / 3), D.material = new m.LineBasicMaterial({ color: 16711935 }), this.renderManager.container.add(D);
|
|
1970
|
+
const z = Math.cos(c * Math.PI / 180) * o + a.x, me = Math.sin(c * Math.PI / 180) * o + a.y, Z = this.renderer.createText(Number(i.toFixed(2)), new m.Vector3(z, me, 0), {
|
|
2112
1971
|
textShadow: "0px 0px 2px #000"
|
|
2113
1972
|
}, this.renderManager.container);
|
|
2114
|
-
let
|
|
2115
|
-
this.addEventRecord("clear").add(() =>
|
|
2116
|
-
this.eventInput.isOnlyKeyDown("enter") ? e() : this.eventInput.isOnlyKeyDown("mouse_0") && (
|
|
1973
|
+
let G = 0;
|
|
1974
|
+
this.addEventRecord("clear").add(() => D.removeFromParent()).add(() => Z.removeFromParent()).add(this.eventInput.addEventListener("codeChange", () => {
|
|
1975
|
+
this.eventInput.isOnlyKeyDown("enter") ? e() : this.eventInput.isOnlyKeyDown("mouse_0") && (G++, G === 1 ? setTimeout(() => G = 0, 500) : G === 2 && (e(), G = 0));
|
|
2117
1976
|
}));
|
|
2118
1977
|
}
|
|
2119
1978
|
}
|
|
2120
|
-
class
|
|
1979
|
+
class rt extends R {
|
|
2121
1980
|
static name = "ClippingLine";
|
|
2122
|
-
container = new
|
|
1981
|
+
container = new m.Group();
|
|
2123
1982
|
shortcutKeys = ["control", "x"];
|
|
2124
1983
|
commandName = "clippingLine";
|
|
2125
1984
|
static commandName = "clippingLine";
|
|
@@ -2132,7 +1991,7 @@ class ct extends W {
|
|
|
2132
1991
|
* @param next
|
|
2133
1992
|
*/
|
|
2134
1993
|
selectPointStart(e) {
|
|
2135
|
-
let t = null, n = new
|
|
1994
|
+
let t = null, n = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 16711935 })), s = null;
|
|
2136
1995
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2137
1996
|
const { point: o, line: a, find: r } = this.editor.renderManager.adsorption();
|
|
2138
1997
|
this.dispatchEvent({ type: "pointerMove", point: o }), r ? (this.domElement.style.cursor = "none", n.position.copy(o), s = a, t = o.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
|
|
@@ -2144,7 +2003,7 @@ class ct extends W {
|
|
|
2144
2003
|
* @param next
|
|
2145
2004
|
*/
|
|
2146
2005
|
selectPointEnd(e, { point: t, line: n }) {
|
|
2147
|
-
let s = null, o = new
|
|
2006
|
+
let s = null, o = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 16711935 }));
|
|
2148
2007
|
this.addEventRecord("clear").add(() => o.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2149
2008
|
const { point: a, find: r, line: l } = this.editor.renderManager.adsorption();
|
|
2150
2009
|
this.dispatchEvent({ type: "pointerMove", point: a }), r && l === n ? (this.domElement.style.cursor = "none", o.position.copy(a), s = a.clone(), this.container.add(o)) : (this.domElement.style.cursor = "no-drop", s = null, o.removeFromParent());
|
|
@@ -2158,14 +2017,14 @@ class ct extends W {
|
|
|
2158
2017
|
* @param points
|
|
2159
2018
|
*/
|
|
2160
2019
|
end(e, { start: t, end: n, line: s }) {
|
|
2161
|
-
const o =
|
|
2020
|
+
const o = _.from(t), a = _.from(n);
|
|
2162
2021
|
e({
|
|
2163
2022
|
oldLine: s,
|
|
2164
|
-
newLine1: new
|
|
2023
|
+
newLine1: new B(
|
|
2165
2024
|
s.start,
|
|
2166
2025
|
s.start.distance(o) < s.start.distance(a) ? o.clone() : a.clone()
|
|
2167
2026
|
),
|
|
2168
|
-
newLine2: new
|
|
2027
|
+
newLine2: new B(
|
|
2169
2028
|
s.end,
|
|
2170
2029
|
s.end.distance(o) < s.end.distance(a) ? o.clone() : a.clone()
|
|
2171
2030
|
)
|
|
@@ -2190,22 +2049,22 @@ class ct extends W {
|
|
|
2190
2049
|
return this.completed(e), e;
|
|
2191
2050
|
}
|
|
2192
2051
|
}
|
|
2193
|
-
class
|
|
2052
|
+
class ie extends R {
|
|
2194
2053
|
static name = "VerticalReferenceLine";
|
|
2195
2054
|
shortcutKeys = ["v"];
|
|
2196
2055
|
static commandName = "VerticalReferenceLine";
|
|
2197
2056
|
onAddFromParent(e) {
|
|
2198
2057
|
super.onAddFromParent(e);
|
|
2199
|
-
const t = this.commandManager.addCommandFlow(
|
|
2200
|
-
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(
|
|
2201
|
-
this.eventInput.isKeyCombination(
|
|
2058
|
+
const t = this.commandManager.addCommandFlow(ie.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalReferenceLine.bind(this));
|
|
2059
|
+
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ie.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
2060
|
+
this.eventInput.isKeyCombination(ie.commandName) && await this.commandManager.start(ie.commandName, [...this.default.selectLines]);
|
|
2202
2061
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
2203
2062
|
}
|
|
2204
2063
|
/**
|
|
2205
2064
|
* 进入命令约束
|
|
2206
2065
|
*/
|
|
2207
2066
|
constraint(e, t) {
|
|
2208
|
-
Array.isArray(t) ? t.length !== 1 ? (
|
|
2067
|
+
Array.isArray(t) ? t.length !== 1 ? (L({ message: "请选择一条墙壁线段", type: "warning" }), this.cancel()) : t[0].userData.isDoor ? (L({ message: "请选择一条墙壁线段", type: "warning" }), this.cancel()) : e(t) : (L({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
2209
2068
|
}
|
|
2210
2069
|
/**
|
|
2211
2070
|
*
|
|
@@ -2233,52 +2092,52 @@ const as = {
|
|
|
2233
2092
|
}, fs = {
|
|
2234
2093
|
key: 0,
|
|
2235
2094
|
class: "flex flex-row items-center flex-wrap justify-between gap-[10px] mt-[10px] text-[10px]"
|
|
2236
|
-
}, ys = { class: "flex-wrap border-t-1 border-t-[#eee] mt-[5px] pt-[5px] flex items-center gap-[10px]" }, ws = ["onClick", "title"], bs = ["src"], xs = /* @__PURE__ */
|
|
2095
|
+
}, ys = { class: "flex-wrap border-t-1 border-t-[#eee] mt-[5px] pt-[5px] flex items-center gap-[10px]" }, ws = ["onClick", "title"], bs = ["src"], xs = /* @__PURE__ */ ce({
|
|
2237
2096
|
__name: "EditorTool",
|
|
2238
2097
|
props: {
|
|
2239
2098
|
dxfSystem: {},
|
|
2240
2099
|
permission: {}
|
|
2241
2100
|
},
|
|
2242
|
-
setup(
|
|
2243
|
-
function e(
|
|
2244
|
-
const
|
|
2245
|
-
|
|
2101
|
+
setup(d) {
|
|
2102
|
+
function e(C, p, w = h.value.getBoundingClientRect(), U = y.value.getBoundingClientRect()) {
|
|
2103
|
+
const ue = w.width - U.width, pe = 0, Me = w.height - U.height;
|
|
2104
|
+
C = Math.max(0, Math.min(C, ue)), p = Math.max(pe, Math.min(p, Me)), A.value = { left: C, top: p };
|
|
2246
2105
|
}
|
|
2247
|
-
function t(
|
|
2248
|
-
|
|
2106
|
+
function t(C) {
|
|
2107
|
+
v.value === C.command || v.value !== "default" || x.commandManager.start(C.command);
|
|
2249
2108
|
}
|
|
2250
|
-
function n(
|
|
2251
|
-
if (
|
|
2252
|
-
localStorage.setItem("lines", JSON.stringify(
|
|
2109
|
+
function n(C) {
|
|
2110
|
+
if (C) {
|
|
2111
|
+
localStorage.setItem("lines", JSON.stringify(C));
|
|
2253
2112
|
try {
|
|
2254
|
-
|
|
2255
|
-
} catch (
|
|
2256
|
-
console.log(
|
|
2113
|
+
g.Dxf.set(C), g.Dxf.lineOffset();
|
|
2114
|
+
} catch (p) {
|
|
2115
|
+
console.log(p);
|
|
2257
2116
|
}
|
|
2258
2117
|
}
|
|
2259
2118
|
}
|
|
2260
2119
|
async function s() {
|
|
2261
|
-
const
|
|
2262
|
-
Array.isArray(
|
|
2120
|
+
const C = await Pt.json();
|
|
2121
|
+
Array.isArray(C) && (localStorage.removeItem("orbitControls"), n(C));
|
|
2263
2122
|
}
|
|
2264
|
-
function o({ offsetX:
|
|
2265
|
-
|
|
2266
|
-
const
|
|
2123
|
+
function o({ offsetX: C, offsetY: p }) {
|
|
2124
|
+
E.mouseMoveEventProxylock = !0;
|
|
2125
|
+
const w = document.body.style.cursor;
|
|
2267
2126
|
document.body.style.cursor = "move";
|
|
2268
|
-
const
|
|
2269
|
-
const
|
|
2127
|
+
const U = (ue) => {
|
|
2128
|
+
const pe = h.value.getBoundingClientRect(), Me = y.value.getBoundingClientRect();
|
|
2270
2129
|
e(
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
),
|
|
2276
|
-
},
|
|
2277
|
-
document.body.removeEventListener("mousemove",
|
|
2130
|
+
ue.pageX - pe.left - C,
|
|
2131
|
+
ue.pageY - pe.top - p,
|
|
2132
|
+
pe,
|
|
2133
|
+
Me
|
|
2134
|
+
), ue.stopPropagation(), document.body.style.cursor = "move";
|
|
2135
|
+
}, Ee = () => {
|
|
2136
|
+
document.body.removeEventListener("mousemove", U), document.removeEventListener("mouseup", Ee), document.body.style.cursor = w, E.mouseMoveEventProxylock = !1;
|
|
2278
2137
|
};
|
|
2279
|
-
document.body.addEventListener("mousemove",
|
|
2138
|
+
document.body.addEventListener("mousemove", U), document.addEventListener("mouseup", Ee);
|
|
2280
2139
|
}
|
|
2281
|
-
const a =
|
|
2140
|
+
const a = d, r = S(!0), l = S(!0), i = S(!0), c = S(!1), h = S(), y = S(), u = S(!0), v = S(""), g = Ot(a.dxfSystem), E = g.findComponentByType(It), x = g.findComponentByType(dt), D = g.findComponentByType(_e), z = g.findComponentByType(At), me = g.findComponentByType(St), Z = S(0), G = S(0), A = S({ left: 10, top: 100 }), M = /* @__PURE__ */ Object.assign({ "./assets/images/angle.svg": Cn, "./assets/images/connection.svg": Mn, "./assets/images/cutLine.svg": kn, "./assets/images/deleteSelectLine.svg": Pn, "./assets/images/deleteSelectWindow.svg": An, "./assets/images/door.svg": _n, "./assets/images/intersectionConnection.svg": Nn, "./assets/images/line.svg": Rn, "./assets/images/mergeLine.svg": Fn, "./assets/images/revokeRollback.svg": Tn, "./assets/images/rollback.svg": Vn, "./assets/images/selectAll.svg": Qn, "./assets/images/selectPoint.svg": Wn, "./assets/images/verticalCorrection.svg": Un, "./assets/images/verticalLine.svg": Zn, "./assets/images/window.svg": Xn }), b = S(!1), K = S(0), W = S(!1), he = new ResizeObserver(() => e(A.value.left, A.value.top)), Ce = [
|
|
2282
2141
|
{ name: "开启绘制线段命令", shortcut: "Ctrl + L" },
|
|
2283
2142
|
{ name: "开启绘制门线命令", shortcut: "Ctrl + M" },
|
|
2284
2143
|
{ name: "开启绘制窗户线命令", shortcut: "Ctrl + Q" },
|
|
@@ -2298,7 +2157,7 @@ const as = {
|
|
|
2298
2157
|
{ name: "取消命令", shortcut: "Esc" },
|
|
2299
2158
|
{ name: "回滚操作", shortcut: "Ctrl + Z" },
|
|
2300
2159
|
{ name: "取消回滚操作", shortcut: "Ctrl + Y" }
|
|
2301
|
-
],
|
|
2160
|
+
], lt = [
|
|
2302
2161
|
{
|
|
2303
2162
|
command: "default",
|
|
2304
2163
|
name: "默认",
|
|
@@ -2308,7 +2167,7 @@ const as = {
|
|
|
2308
2167
|
{
|
|
2309
2168
|
command: "draw-line",
|
|
2310
2169
|
name: "绘制线段",
|
|
2311
|
-
src:
|
|
2170
|
+
src: M["./assets/images/line.svg"].default,
|
|
2312
2171
|
show: !0,
|
|
2313
2172
|
shortcut: "Ctrl + L"
|
|
2314
2173
|
},
|
|
@@ -2316,78 +2175,78 @@ const as = {
|
|
|
2316
2175
|
command: "draw-door-line",
|
|
2317
2176
|
name: "绘制门线",
|
|
2318
2177
|
show: !0,
|
|
2319
|
-
src:
|
|
2178
|
+
src: M["./assets/images/door.svg"].default,
|
|
2320
2179
|
shortcut: "Ctrl + M"
|
|
2321
2180
|
},
|
|
2322
2181
|
{
|
|
2323
2182
|
command: "draw-window-line",
|
|
2324
2183
|
name: "绘制窗户线",
|
|
2325
2184
|
show: !0,
|
|
2326
|
-
src:
|
|
2185
|
+
src: M["./assets/images/window.svg"].default,
|
|
2327
2186
|
shortcut: "Ctrl + Q"
|
|
2328
2187
|
},
|
|
2329
2188
|
{
|
|
2330
2189
|
command: "point",
|
|
2331
2190
|
name: "点修改",
|
|
2332
2191
|
show: !0,
|
|
2333
|
-
src:
|
|
2192
|
+
src: M["./assets/images/selectPoint.svg"].default,
|
|
2334
2193
|
shortcut: "Ctrl + P"
|
|
2335
2194
|
},
|
|
2336
2195
|
{
|
|
2337
|
-
command:
|
|
2196
|
+
command: rt.commandName,
|
|
2338
2197
|
name: "裁剪线段",
|
|
2339
2198
|
show: !0,
|
|
2340
|
-
src:
|
|
2199
|
+
src: M["./assets/images/cutLine.svg"].default,
|
|
2341
2200
|
shortcut: "Ctrl + X"
|
|
2342
2201
|
}
|
|
2343
|
-
],
|
|
2202
|
+
], ct = [
|
|
2344
2203
|
{
|
|
2345
2204
|
command: "",
|
|
2346
2205
|
name: "操作回滚",
|
|
2347
|
-
src:
|
|
2348
|
-
show:
|
|
2206
|
+
src: M["./assets/images/rollback.svg"].default,
|
|
2207
|
+
show: P(() => Z.value !== 0),
|
|
2349
2208
|
shortcut: "Ctrl + Z",
|
|
2350
2209
|
action() {
|
|
2351
|
-
|
|
2210
|
+
x.commandManager.rollback();
|
|
2352
2211
|
}
|
|
2353
2212
|
},
|
|
2354
2213
|
{
|
|
2355
2214
|
command: "",
|
|
2356
2215
|
name: "撤销操作回滚",
|
|
2357
|
-
src:
|
|
2358
|
-
show:
|
|
2216
|
+
src: M["./assets/images/revokeRollback.svg"].default,
|
|
2217
|
+
show: P(() => G.value !== 0),
|
|
2359
2218
|
shortcut: "Ctrl + Y",
|
|
2360
2219
|
class: "rotateY-[180deg]",
|
|
2361
2220
|
action() {
|
|
2362
|
-
|
|
2221
|
+
x.commandManager.revokeRollback();
|
|
2363
2222
|
}
|
|
2364
2223
|
},
|
|
2365
2224
|
{
|
|
2366
|
-
command:
|
|
2225
|
+
command: $.commandName,
|
|
2367
2226
|
name: "合并",
|
|
2368
|
-
src:
|
|
2369
|
-
show:
|
|
2227
|
+
src: M["./assets/images/mergeLine.svg"].default,
|
|
2228
|
+
show: P(() => K.value === 2),
|
|
2370
2229
|
shortcut: "Ctrl + G"
|
|
2371
2230
|
},
|
|
2372
2231
|
{
|
|
2373
|
-
command:
|
|
2232
|
+
command: te.commandName,
|
|
2374
2233
|
name: "两点连接",
|
|
2375
|
-
show:
|
|
2376
|
-
src:
|
|
2234
|
+
show: P(() => K.value === 2),
|
|
2235
|
+
src: M["./assets/images/connection.svg"].default,
|
|
2377
2236
|
shortcut: "Shift + L"
|
|
2378
2237
|
},
|
|
2379
2238
|
{
|
|
2380
|
-
command:
|
|
2239
|
+
command: ne.commandName,
|
|
2381
2240
|
name: "延长线交点连接",
|
|
2382
|
-
show:
|
|
2383
|
-
src:
|
|
2241
|
+
show: P(() => K.value === 2),
|
|
2242
|
+
src: M["./assets/images/intersectionConnection.svg"].default,
|
|
2384
2243
|
shortcut: "Ctrl + Shift + L"
|
|
2385
2244
|
},
|
|
2386
2245
|
{
|
|
2387
|
-
command:
|
|
2246
|
+
command: X.commandName,
|
|
2388
2247
|
name: "线段垂直纠正",
|
|
2389
|
-
show:
|
|
2390
|
-
src:
|
|
2248
|
+
show: P(() => K.value === 1),
|
|
2249
|
+
src: M["./assets/images/verticalCorrection.svg"].default,
|
|
2391
2250
|
shortcut: `
|
|
2392
2251
|
Ctrl + C 垂直纠正
|
|
2393
2252
|
Ctrl + Shift + C 全部垂直纠正
|
|
@@ -2395,147 +2254,147 @@ const as = {
|
|
|
2395
2254
|
`
|
|
2396
2255
|
},
|
|
2397
2256
|
{
|
|
2398
|
-
command:
|
|
2257
|
+
command: ie.commandName,
|
|
2399
2258
|
name: "y轴垂直基准线",
|
|
2400
|
-
show:
|
|
2401
|
-
() =>
|
|
2259
|
+
show: P(
|
|
2260
|
+
() => K.value === 1 && !D.selectLines[0].userData.isDoor
|
|
2402
2261
|
),
|
|
2403
|
-
src:
|
|
2262
|
+
src: M["./assets/images/verticalLine.svg"].default,
|
|
2404
2263
|
shortcut: "V"
|
|
2405
2264
|
},
|
|
2406
2265
|
{
|
|
2407
|
-
command:
|
|
2266
|
+
command: ae.commandName,
|
|
2408
2267
|
name: "角度显示",
|
|
2409
|
-
show:
|
|
2410
|
-
src:
|
|
2268
|
+
show: P(() => K.value === 2 && D.selectLines[0].sameEndpoint(D.selectLines[1])),
|
|
2269
|
+
src: M["./assets/images/angle.svg"].default,
|
|
2411
2270
|
shortcut: "r"
|
|
2412
2271
|
},
|
|
2413
2272
|
{
|
|
2414
|
-
command:
|
|
2273
|
+
command: oe.commandName,
|
|
2415
2274
|
name: "全选",
|
|
2416
|
-
show:
|
|
2417
|
-
src:
|
|
2275
|
+
show: P(() => K.value !== x.renderManager.lines.length),
|
|
2276
|
+
src: M["./assets/images/selectAll.svg"].default,
|
|
2418
2277
|
shortcut: "Ctrl + A"
|
|
2419
2278
|
},
|
|
2420
2279
|
{
|
|
2421
|
-
command:
|
|
2280
|
+
command: se.commandName,
|
|
2422
2281
|
name: "清除窗户",
|
|
2423
|
-
show:
|
|
2424
|
-
src:
|
|
2282
|
+
show: P(() => W.value),
|
|
2283
|
+
src: M["./assets/images/deleteSelectWindow.svg"].default,
|
|
2425
2284
|
shortcut: "Q + Delete"
|
|
2426
2285
|
},
|
|
2427
2286
|
{
|
|
2428
|
-
command:
|
|
2287
|
+
command: ee.commandName,
|
|
2429
2288
|
name: "删除",
|
|
2430
|
-
show:
|
|
2431
|
-
src:
|
|
2289
|
+
show: P(() => K.value > 0),
|
|
2290
|
+
src: M["./assets/images/deleteSelectLine.svg"].default,
|
|
2432
2291
|
shortcut: "Delete"
|
|
2433
2292
|
}
|
|
2434
2293
|
];
|
|
2435
|
-
|
|
2436
|
-
localStorage.setItem("toolBarExpand",
|
|
2437
|
-
}),
|
|
2438
|
-
const
|
|
2439
|
-
|
|
2294
|
+
J(A, () => localStorage.setItem("editorToolPosition", JSON.stringify(A.value))), J(b, () => localStorage.setItem("showShortcutKey", b.value + "")), J(u, () => {
|
|
2295
|
+
localStorage.setItem("toolBarExpand", u.value + ""), u.value && we(() => e(A.value.left, A.value.top));
|
|
2296
|
+
}), J(r, () => g.Variable.set("originalLineVisible", r.value)), J(l, () => g.Variable.set("dxfVisible", l.value)), J(i, () => g.Variable.set("whiteModelVisible", i.value)), g.Variable.addEventListener("isLook", (C) => c.value = C.value), g.Variable.addEventListener("originalLineVisible", (C) => r.value = C.value), g.Variable.addEventListener("dxfVisible", (C) => l.value = C.value), g.Variable.addEventListener("whiteModelVisible", (C) => i.value = C.value);
|
|
2297
|
+
const mt = x.commandManager.addEventListener("started", (C) => {
|
|
2298
|
+
v.value = C.name;
|
|
2440
2299
|
});
|
|
2441
|
-
return localStorage.getItem("showShortcutKey") && (
|
|
2442
|
-
|
|
2443
|
-
if (
|
|
2444
|
-
const { left:
|
|
2445
|
-
e(
|
|
2300
|
+
return localStorage.getItem("showShortcutKey") && (b.value = localStorage.getItem("showShortcutKey") === "true"), localStorage.getItem("toolBarExpand") && (u.value = localStorage.getItem("toolBarExpand") === "true"), tt(() => {
|
|
2301
|
+
y.value.style.display = "none", setTimeout(() => {
|
|
2302
|
+
if (y.value.style.display = "block", localStorage.getItem("editorToolPosition")) {
|
|
2303
|
+
const { left: C, top: p } = JSON.parse(localStorage.getItem("editorToolPosition") ?? "{}");
|
|
2304
|
+
e(C, p), we(() => he.observe(h.value));
|
|
2446
2305
|
} else
|
|
2447
|
-
|
|
2448
|
-
}, 100),
|
|
2449
|
-
|
|
2450
|
-
}), ["rollback", "completed", "revokeRollback"].forEach((
|
|
2451
|
-
|
|
2306
|
+
we(() => he.observe(h.value));
|
|
2307
|
+
}, 100), D.addEventListener("selectLineChange", () => {
|
|
2308
|
+
K.value = D.selectLines.length, W.value = D.selectLines.some((C) => C.userData.isWindow);
|
|
2309
|
+
}), ["rollback", "completed", "revokeRollback"].forEach((C) => {
|
|
2310
|
+
x.commandManager.addEventListener(C, () => {
|
|
2452
2311
|
setTimeout(() => {
|
|
2453
|
-
|
|
2312
|
+
Z.value = x.commandManager.operationList.length, G.value = x.commandManager.rollbackList.length;
|
|
2454
2313
|
});
|
|
2455
2314
|
});
|
|
2456
2315
|
});
|
|
2457
2316
|
}), Rt(() => {
|
|
2458
|
-
|
|
2459
|
-
}), (
|
|
2317
|
+
E.mouseMoveEventProxylock = !1, mt(), he.disconnect();
|
|
2318
|
+
}), (C, p) => (I(), O("div", {
|
|
2460
2319
|
ref_key: "elRef",
|
|
2461
|
-
ref:
|
|
2320
|
+
ref: h,
|
|
2462
2321
|
class: "editorTool pointer-events-none overflow-hidden absolute left-0 top-0 w-full h-full z-[20] flex flex-row justify-between p-[5px] box-border select-none pointer-events-[all]"
|
|
2463
2322
|
}, [
|
|
2464
|
-
|
|
2465
|
-
default:
|
|
2466
|
-
|
|
2467
|
-
(
|
|
2323
|
+
F(xe, null, {
|
|
2324
|
+
default: j(() => [
|
|
2325
|
+
b.value ? (I(), O("div", as, [
|
|
2326
|
+
(I(), O(ve, null, ke(Ce, (w) => k("div", {
|
|
2468
2327
|
class: "p-[4px_0px] flex justify-between text-right border-b-1 border-b-[rgba(255,255,255,0.1)] last-of-type:border-b-0",
|
|
2469
|
-
key:
|
|
2328
|
+
key: w.name
|
|
2470
2329
|
}, [
|
|
2471
|
-
|
|
2472
|
-
|
|
2330
|
+
k("p", is, de(w.name), 1),
|
|
2331
|
+
k("span", rs, de(w.shortcut), 1)
|
|
2473
2332
|
])), 64))
|
|
2474
|
-
])) :
|
|
2333
|
+
])) : q("", !0)
|
|
2475
2334
|
]),
|
|
2476
2335
|
_: 1
|
|
2477
2336
|
}),
|
|
2478
|
-
|
|
2337
|
+
k("div", {
|
|
2479
2338
|
ref_key: "toolBarRef",
|
|
2480
|
-
ref:
|
|
2481
|
-
style:
|
|
2482
|
-
class:
|
|
2483
|
-
onMousedown:
|
|
2339
|
+
ref: y,
|
|
2340
|
+
style: Se({ left: A.value.left + "px", top: A.value.top + "px" }),
|
|
2341
|
+
class: V(["overflow-hidden pointer-events-auto w-fit max-w-[260px] transition-[border-radius] text-[#333] absolute z-[11] bg-white select-none", { "rounded-[8px] ": u.value }]),
|
|
2342
|
+
onMousedown: p[10] || (p[10] = (w) => w.stopPropagation())
|
|
2484
2343
|
}, [
|
|
2485
|
-
|
|
2344
|
+
k("div", {
|
|
2486
2345
|
onMousedown: o,
|
|
2487
|
-
class:
|
|
2346
|
+
class: V([{ "border-b-[#eee] border-b-1": u.value }, "flex flex-row justify-between header text-[14px] font-bold p-[10px 0px]"])
|
|
2488
2347
|
}, [
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
onMousedown:
|
|
2492
|
-
onClick:
|
|
2348
|
+
p[12] || (p[12] = Kt('<div class="flex flex-row" data-v-09e4c536><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-09e4c536><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-09e4c536><path d="M341.333333 298.666667a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m0 298.666666a85.333333 85.333333 0 1 0 0-170.666666 85.333333 85.333333 0 0 0 0 170.666666z m85.333334 213.333334a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m256-512a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m85.333333 213.333333a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m-85.333333 384a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z" data-v-09e4c536></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-09e4c536>绘制工具</h5></div>', 1)),
|
|
2349
|
+
k("div", {
|
|
2350
|
+
onMousedown: p[0] || (p[0] = (w) => w.stopPropagation()),
|
|
2351
|
+
onClick: p[1] || (p[1] = (w) => u.value = !u.value),
|
|
2493
2352
|
class: "cursor-pointer flex items-center p-[0px_5px]"
|
|
2494
2353
|
}, [
|
|
2495
|
-
(
|
|
2354
|
+
(I(), O("svg", {
|
|
2496
2355
|
fill: "#666",
|
|
2497
|
-
class:
|
|
2356
|
+
class: V([{ "rotate-90": u.value }, "transition-all"]),
|
|
2498
2357
|
viewBox: "0 0 1024 1024",
|
|
2499
2358
|
version: "1.1",
|
|
2500
2359
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2501
2360
|
width: "12",
|
|
2502
2361
|
height: "12"
|
|
2503
|
-
},
|
|
2504
|
-
|
|
2362
|
+
}, p[11] || (p[11] = [
|
|
2363
|
+
k("path", { d: "M315.050667 938.666667a60.757333 60.757333 0 0 0 41.813333-16.298667L750.933333 551.338667a53.418667 53.418667 0 0 0 0-78.677334L356.864 101.632a61.696 61.696 0 0 0-83.541333 0 53.418667 53.418667 0 0 0-0.256 78.677333L625.408 512 273.066667 843.690667a53.418667 53.418667 0 0 0 0 78.677333 60.757333 60.757333 0 0 0 41.984 16.298667z" }, null, -1)
|
|
2505
2364
|
]), 2))
|
|
2506
2365
|
], 32)
|
|
2507
2366
|
], 34),
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
(
|
|
2511
|
-
key:
|
|
2367
|
+
u.value ? (I(), O("div", ds, [
|
|
2368
|
+
k("ul", ls, [
|
|
2369
|
+
(I(), O(ve, null, ke(lt, (w) => (I(), O(ve, {
|
|
2370
|
+
key: w.command
|
|
2512
2371
|
}, [
|
|
2513
|
-
|
|
2372
|
+
w.show ? (I(), O("li", {
|
|
2514
2373
|
key: 0,
|
|
2515
|
-
onClick: (
|
|
2516
|
-
class:
|
|
2517
|
-
"!bg-[var(--primary-color)] text-[#fff]":
|
|
2518
|
-
"!cursor-no-drop":
|
|
2374
|
+
onClick: (U) => t(w),
|
|
2375
|
+
class: V([{
|
|
2376
|
+
"!bg-[var(--primary-color)] text-[#fff]": v.value === w.command,
|
|
2377
|
+
"!cursor-no-drop": v.value !== w.command && v.value !== "default"
|
|
2519
2378
|
}, "gap-[10px] text-[12px] hover:bg-[#ddd] transition-all rounded-[6px] p-[5px] flex flex-row items-center justify-between cursor-pointer"])
|
|
2520
2379
|
}, [
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2380
|
+
k("div", ms, [
|
|
2381
|
+
k("div", hs, [
|
|
2382
|
+
k("img", {
|
|
2524
2383
|
class: "size-[14px]",
|
|
2525
|
-
src:
|
|
2384
|
+
src: w.src,
|
|
2526
2385
|
alt: "",
|
|
2527
2386
|
srcset: ""
|
|
2528
2387
|
}, null, 8, us)
|
|
2529
2388
|
]),
|
|
2530
|
-
|
|
2389
|
+
k("span", ps, de(w.name), 1)
|
|
2531
2390
|
]),
|
|
2532
|
-
|
|
2391
|
+
v.value === w.command ? (I(), O("div", {
|
|
2533
2392
|
key: 0,
|
|
2534
2393
|
title: "取消命令(Esc)",
|
|
2535
2394
|
class: "active:scale-[0.7] transition-all",
|
|
2536
|
-
onClick:
|
|
2537
|
-
},
|
|
2538
|
-
|
|
2395
|
+
onClick: p[2] || (p[2] = (U) => (f(x).cancelCommand(), U.stopPropagation()))
|
|
2396
|
+
}, p[13] || (p[13] = [
|
|
2397
|
+
k("svg", {
|
|
2539
2398
|
fill: "#fff",
|
|
2540
2399
|
width: "16",
|
|
2541
2400
|
height: "16",
|
|
@@ -2543,118 +2402,118 @@ const as = {
|
|
|
2543
2402
|
version: "1.1",
|
|
2544
2403
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2545
2404
|
}, [
|
|
2546
|
-
|
|
2547
|
-
|
|
2405
|
+
k("path", { d: "M511.104 0C228.821333 0 0 228.821333 0 511.104c0 282.282667 228.821333 511.104 511.104 511.104 282.282667 0 511.104-228.842667 511.104-511.104C1022.208 228.821333 793.386667 0 511.104 0zM511.104 898.496c-213.973333 0-387.434667-173.44-387.434667-387.413333 0-213.952 173.44-387.413333 387.434667-387.413333 213.952 0 387.392 173.44 387.392 387.413333C898.496 725.056 725.056 898.496 511.104 898.496z" }),
|
|
2406
|
+
k("path", { d: "M236.437333 463.914667l549.333333 0 0 96.874667-549.333333 0 0-96.874667Z" })
|
|
2548
2407
|
], -1)
|
|
2549
|
-
]))) :
|
|
2550
|
-
], 10, cs)) :
|
|
2408
|
+
]))) : w.shortcut ? (I(), O("div", gs, de(w.shortcut), 1)) : q("", !0)
|
|
2409
|
+
], 10, cs)) : q("", !0)
|
|
2551
2410
|
], 64))), 64))
|
|
2552
2411
|
]),
|
|
2553
|
-
|
|
2554
|
-
|
|
2412
|
+
k("div", vs, [
|
|
2413
|
+
F(f(Ke), {
|
|
2555
2414
|
size: "small",
|
|
2556
|
-
modelValue:
|
|
2557
|
-
"onUpdate:modelValue":
|
|
2415
|
+
modelValue: b.value,
|
|
2416
|
+
"onUpdate:modelValue": p[3] || (p[3] = (w) => b.value = w),
|
|
2558
2417
|
label: "快捷键提示"
|
|
2559
2418
|
}, null, 8, ["modelValue"]),
|
|
2560
|
-
|
|
2419
|
+
F(f(Ke), {
|
|
2561
2420
|
size: "small",
|
|
2562
2421
|
modelValue: l.value,
|
|
2563
|
-
"onUpdate:modelValue":
|
|
2422
|
+
"onUpdate:modelValue": p[4] || (p[4] = (w) => l.value = w),
|
|
2564
2423
|
label: "dxf"
|
|
2565
2424
|
}, null, 8, ["modelValue"])
|
|
2566
2425
|
]),
|
|
2567
|
-
|
|
2568
|
-
|
|
2426
|
+
C.permission === "admin" ? (I(), O("div", fs, [
|
|
2427
|
+
F(f(re), {
|
|
2569
2428
|
style: { padding: "5px", "font-size": "10px" },
|
|
2570
2429
|
size: "small",
|
|
2571
2430
|
type: "success",
|
|
2572
2431
|
onClick: s
|
|
2573
2432
|
}, {
|
|
2574
|
-
default:
|
|
2575
|
-
|
|
2433
|
+
default: j(() => p[14] || (p[14] = [
|
|
2434
|
+
Y(" 选择文件 ", -1)
|
|
2576
2435
|
])),
|
|
2577
2436
|
_: 1,
|
|
2578
2437
|
__: [14]
|
|
2579
2438
|
}),
|
|
2580
|
-
|
|
2439
|
+
F(f(re), {
|
|
2581
2440
|
style: { padding: "5px", "font-size": "10px" },
|
|
2582
2441
|
size: "small",
|
|
2583
2442
|
type: "primary",
|
|
2584
|
-
onClick:
|
|
2443
|
+
onClick: p[5] || (p[5] = (w) => f(g).Dxf.downloadOriginalData("json.json"))
|
|
2585
2444
|
}, {
|
|
2586
|
-
default:
|
|
2587
|
-
|
|
2445
|
+
default: j(() => p[15] || (p[15] = [
|
|
2446
|
+
Y(" 下载Json ", -1)
|
|
2588
2447
|
])),
|
|
2589
2448
|
_: 1,
|
|
2590
2449
|
__: [15]
|
|
2591
2450
|
}),
|
|
2592
|
-
|
|
2451
|
+
F(f(re), {
|
|
2593
2452
|
style: { padding: "5px", "font-size": "10px" },
|
|
2594
2453
|
size: "small",
|
|
2595
2454
|
type: "primary",
|
|
2596
|
-
onClick:
|
|
2455
|
+
onClick: p[6] || (p[6] = (w) => f(g).AngleCorrectionDxf.download("test.dxf"))
|
|
2597
2456
|
}, {
|
|
2598
|
-
default:
|
|
2599
|
-
|
|
2457
|
+
default: j(() => p[16] || (p[16] = [
|
|
2458
|
+
Y(" 下载DXF ", -1)
|
|
2600
2459
|
])),
|
|
2601
2460
|
_: 1,
|
|
2602
2461
|
__: [16]
|
|
2603
2462
|
}),
|
|
2604
|
-
|
|
2463
|
+
F(f(re), {
|
|
2605
2464
|
style: { padding: "5px", "font-size": "10px" },
|
|
2606
2465
|
size: "small",
|
|
2607
2466
|
type: "primary",
|
|
2608
|
-
onClick:
|
|
2467
|
+
onClick: p[7] || (p[7] = (w) => f(g).AngleCorrectionDxf.downloadImage("dxf.jpg"))
|
|
2609
2468
|
}, {
|
|
2610
|
-
default:
|
|
2611
|
-
|
|
2469
|
+
default: j(() => p[17] || (p[17] = [
|
|
2470
|
+
Y(" 下载JPG ", -1)
|
|
2612
2471
|
])),
|
|
2613
2472
|
_: 1,
|
|
2614
2473
|
__: [17]
|
|
2615
2474
|
}),
|
|
2616
|
-
|
|
2475
|
+
F(f(re), {
|
|
2617
2476
|
style: { padding: "5px", "font-size": "10px" },
|
|
2618
2477
|
size: "small",
|
|
2619
2478
|
type: "primary",
|
|
2620
|
-
onClick:
|
|
2479
|
+
onClick: p[8] || (p[8] = (w) => f(z).downloadGltf("test.glb", !0))
|
|
2621
2480
|
}, {
|
|
2622
|
-
default:
|
|
2623
|
-
|
|
2481
|
+
default: j(() => p[18] || (p[18] = [
|
|
2482
|
+
Y(" 下载白膜 ", -1)
|
|
2624
2483
|
])),
|
|
2625
2484
|
_: 1,
|
|
2626
2485
|
__: [18]
|
|
2627
2486
|
}),
|
|
2628
|
-
|
|
2487
|
+
F(f(re), {
|
|
2629
2488
|
style: { padding: "5px", "font-size": "10px" },
|
|
2630
2489
|
size: "small",
|
|
2631
2490
|
type: "primary",
|
|
2632
|
-
onClick:
|
|
2491
|
+
onClick: p[9] || (p[9] = (w) => f(me).download())
|
|
2633
2492
|
}, {
|
|
2634
|
-
default:
|
|
2635
|
-
|
|
2493
|
+
default: j(() => p[19] || (p[19] = [
|
|
2494
|
+
Y(" 下载三维家JSON ", -1)
|
|
2636
2495
|
])),
|
|
2637
2496
|
_: 1,
|
|
2638
2497
|
__: [19]
|
|
2639
2498
|
})
|
|
2640
|
-
])) :
|
|
2641
|
-
|
|
2642
|
-
default:
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
default:
|
|
2646
|
-
(
|
|
2647
|
-
onClick: (
|
|
2648
|
-
title: `${
|
|
2649
|
-
class:
|
|
2650
|
-
"opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !
|
|
2651
|
-
[
|
|
2499
|
+
])) : q("", !0),
|
|
2500
|
+
F(xe, null, {
|
|
2501
|
+
default: j(() => [
|
|
2502
|
+
k("div", ys, [
|
|
2503
|
+
F(Ft, null, {
|
|
2504
|
+
default: j(() => [
|
|
2505
|
+
(I(), O(ve, null, ke(ct, (w) => k("div", {
|
|
2506
|
+
onClick: (U) => w.show.value && v.value === "default" && (w.action ? w.action() : f(x).commandManager.start(w.command, [...f(D).selectLines])),
|
|
2507
|
+
title: `${w.name}(${w.shortcut})`,
|
|
2508
|
+
class: V(["size-[20px] flex justify-center items-center relative overflow-hidden active:scale-[0.8] border-1 border-[#ccc] rounded-[4px] transition-all cursor-pointer", {
|
|
2509
|
+
"opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !w.show.value || v.value !== "default",
|
|
2510
|
+
[w.class ?? ""]: !0
|
|
2652
2511
|
}]),
|
|
2653
|
-
key:
|
|
2512
|
+
key: w.command
|
|
2654
2513
|
}, [
|
|
2655
|
-
|
|
2514
|
+
k("img", {
|
|
2656
2515
|
class: "size-[14px]",
|
|
2657
|
-
src:
|
|
2516
|
+
src: w.src
|
|
2658
2517
|
}, null, 8, bs)
|
|
2659
2518
|
], 10, ws)), 64))
|
|
2660
2519
|
]),
|
|
@@ -2664,19 +2523,19 @@ const as = {
|
|
|
2664
2523
|
]),
|
|
2665
2524
|
_: 1
|
|
2666
2525
|
})
|
|
2667
|
-
])) :
|
|
2526
|
+
])) : q("", !0)
|
|
2668
2527
|
], 38)
|
|
2669
2528
|
], 512));
|
|
2670
2529
|
}
|
|
2671
|
-
}), Cs = (
|
|
2672
|
-
const t =
|
|
2530
|
+
}), Cs = (d, e) => {
|
|
2531
|
+
const t = d.__vccOpts || d;
|
|
2673
2532
|
for (const [n, s] of e)
|
|
2674
2533
|
t[n] = s;
|
|
2675
2534
|
return t;
|
|
2676
|
-
}, Es = /* @__PURE__ */ Cs(xs, [["__scopeId", "data-v-
|
|
2677
|
-
let
|
|
2535
|
+
}, Es = /* @__PURE__ */ Cs(xs, [["__scopeId", "data-v-09e4c536"]]);
|
|
2536
|
+
let dt = class extends Ae {
|
|
2678
2537
|
static name = "Editor";
|
|
2679
|
-
container = new
|
|
2538
|
+
container = new m.Group();
|
|
2680
2539
|
get renderer() {
|
|
2681
2540
|
return this.parent?.findComponentByName("Renderer");
|
|
2682
2541
|
}
|
|
@@ -2699,7 +2558,7 @@ let mt = class extends Oe {
|
|
|
2699
2558
|
return this.parent?.findComponentByName("DomContainer");
|
|
2700
2559
|
}
|
|
2701
2560
|
commandManager = new bn();
|
|
2702
|
-
plane = new
|
|
2561
|
+
plane = new m.Mesh(new m.PlaneGeometry(2e3, 2e3, 2, 2));
|
|
2703
2562
|
app;
|
|
2704
2563
|
domElement = document.createElement("div");
|
|
2705
2564
|
viewPermission;
|
|
@@ -2722,7 +2581,7 @@ let mt = class extends Oe {
|
|
|
2722
2581
|
}
|
|
2723
2582
|
onAddFromParent(e) {
|
|
2724
2583
|
setTimeout(() => this.openEdit(), 10);
|
|
2725
|
-
const t = new
|
|
2584
|
+
const t = new m.GridHelper(200, 100, 6710886, 4473924);
|
|
2726
2585
|
t.rotation.x = Math.PI * 0.5, t.position.z = -0.01, this.container.add(t), this.container.add(this.plane), this.plane.visible = !1;
|
|
2727
2586
|
const n = this.addEventListener("update", () => {
|
|
2728
2587
|
this.domContainer.domElement.parentElement && (this.domContainer.domElement.parentElement.appendChild(this.domElement), this.domContainer.domElement.parentElement.appendChild(this.imgEl), n());
|
|
@@ -2757,27 +2616,27 @@ let mt = class extends Oe {
|
|
|
2757
2616
|
type: "cancelCommand"
|
|
2758
2617
|
});
|
|
2759
2618
|
}
|
|
2760
|
-
coords = new
|
|
2761
|
-
pointerPosition = new
|
|
2619
|
+
coords = new m.Vector2();
|
|
2620
|
+
pointerPosition = new m.Vector2();
|
|
2762
2621
|
_exitEditCallBack;
|
|
2763
2622
|
/**
|
|
2764
2623
|
* 打开编辑器
|
|
2765
2624
|
*/
|
|
2766
2625
|
openEdit() {
|
|
2767
|
-
const e = this.renderer, t = this.domEventRegister, n = this.dxf, s = e.orbitControls, o = e.camera, a = n.box.center, r = e.camera.position.clone(), l = s?.target?.clone(), i = new
|
|
2626
|
+
const e = this.renderer, t = this.domEventRegister, n = this.dxf, s = e.orbitControls, o = e.camera, a = n.box.center, r = e.camera.position.clone(), l = s?.target?.clone(), i = new m.Vector2(), c = new m.Raycaster(), h = this.coords, y = this.pointerPosition;
|
|
2768
2627
|
this.container.position.z = n.originalZAverage, e.scene.add(this.container), s && (o.position.set(a.x, a.y, 15), s.target.set(a.x, a.y, 0), s.enableRotate = !1);
|
|
2769
|
-
const
|
|
2628
|
+
const u = () => {
|
|
2770
2629
|
e.renderer.getSize(i);
|
|
2771
|
-
const
|
|
2772
|
-
|
|
2773
|
-
const
|
|
2774
|
-
|
|
2630
|
+
const v = t.pointer.x / i.x * 2 - 1, g = -(t.pointer.y / i.y * 2 - 1);
|
|
2631
|
+
h.set(v, g), c.setFromCamera(h, e.camera.children.length ? e.camera.children[0] : e.camera);
|
|
2632
|
+
const E = c.intersectObject(this.plane);
|
|
2633
|
+
E.length && (y.copy(E[0].point), this.dispatchEvent({
|
|
2775
2634
|
type: "pointerPositionChange",
|
|
2776
|
-
position:
|
|
2635
|
+
position: y
|
|
2777
2636
|
}));
|
|
2778
2637
|
};
|
|
2779
|
-
t.addEventListener("mousemove",
|
|
2780
|
-
t.removeEventListener("mousemove",
|
|
2638
|
+
t.addEventListener("mousemove", u), this.commandManager.disabled = !1, this.commandManager.start("default"), this._exitEditCallBack = () => {
|
|
2639
|
+
t.removeEventListener("mousemove", u), s && (o.position.copy(r), s.enableRotate = !0, s.target.copy(l));
|
|
2781
2640
|
};
|
|
2782
2641
|
}
|
|
2783
2642
|
/**
|
|
@@ -2790,9 +2649,9 @@ let mt = class extends Oe {
|
|
|
2790
2649
|
super.destroy(), this.exitEdit(), this.renderer.scene.remove(this.container), this.domElement.remove(), this.app?.unmount();
|
|
2791
2650
|
}
|
|
2792
2651
|
};
|
|
2793
|
-
class Ms extends
|
|
2652
|
+
class Ms extends R {
|
|
2794
2653
|
static name = "PointDrag";
|
|
2795
|
-
container = new
|
|
2654
|
+
container = new m.Group();
|
|
2796
2655
|
interruptKeys = ["escape"];
|
|
2797
2656
|
shortcutKeys = ["control", "p"];
|
|
2798
2657
|
commandName = "point";
|
|
@@ -2805,7 +2664,7 @@ class Ms extends W {
|
|
|
2805
2664
|
* @param next
|
|
2806
2665
|
*/
|
|
2807
2666
|
selectPoint(e) {
|
|
2808
|
-
let t = null, n = new
|
|
2667
|
+
let t = null, n = new m.Mesh(new m.SphereGeometry(0.04), new m.MeshBasicMaterial({ color: 16711935 })), s = null;
|
|
2809
2668
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2810
2669
|
const { point: o, line: a, find: r, mode: l } = this.editor.renderManager.adsorption();
|
|
2811
2670
|
this.dispatchEvent({ type: "pointerMove", point: o }), r && l === "point" ? (this.domElement.style.cursor = "none", n.position.copy(o), s = a, t = o.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
|
|
@@ -2820,15 +2679,15 @@ class Ms extends W {
|
|
|
2820
2679
|
*/
|
|
2821
2680
|
drag(e, { point: t, line: n }) {
|
|
2822
2681
|
this.domElement.style.cursor = "crosshair";
|
|
2823
|
-
const s = n.start.equal(
|
|
2682
|
+
const s = n.start.equal(_.from(t)) ? "start" : "end", o = s == "start" ? new m.Vector3(n.end.x, n.end.y, 0) : new m.Vector3(n.start.x, n.start.y, 0), a = t.clone(), r = new ye([o, a], 16711935), l = new m.Mesh(new m.SphereGeometry(0.03), new m.MeshBasicMaterial({ color: 16711935 }));
|
|
2824
2683
|
this.container.add(r), this.addEventRecord("clear").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2825
|
-
let { point: i, find:
|
|
2684
|
+
let { point: i, find: c } = this.editor.renderManager.adsorption(), h = "none";
|
|
2826
2685
|
if (i) {
|
|
2827
2686
|
if (this.dispatchEvent({ type: "pointerMove", point: i }), this.eventInput.isKeyDown("shift")) {
|
|
2828
|
-
const
|
|
2829
|
-
i.set(
|
|
2687
|
+
const y = n.projectPoint(_.from(i), !1);
|
|
2688
|
+
i.set(y?.x ?? i.x, y?.y ?? i.y, 0), c = !0, h = "crosshair";
|
|
2830
2689
|
}
|
|
2831
|
-
|
|
2690
|
+
c ? (l.position.copy(i), this.container.add(l)) : (l.removeFromParent(), h = "crosshair"), a.copy(i), r.setPoint(o, a), this.domElement.style.cursor = h;
|
|
2832
2691
|
}
|
|
2833
2692
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2834
2693
|
this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint: s === "end" ? n.end.clone() : n.start.clone(), line: n, mode: s }));
|
|
@@ -2855,15 +2714,15 @@ class Ms extends W {
|
|
|
2855
2714
|
return this.completed(e), e;
|
|
2856
2715
|
}
|
|
2857
2716
|
}
|
|
2858
|
-
function
|
|
2859
|
-
|
|
2717
|
+
function Je(d, e = {}) {
|
|
2718
|
+
d.addComponent(new dt(e.viewPermission)), d.addComponent(new ns()), d.addComponent(new _e()), d.addComponent(new yn()), d.addComponent(new ss()), d.addComponent(new os()), d.addComponent(new Ms()), d.addComponent(new ee()), d.addComponent(new $()), d.addComponent(new X()), d.addComponent(new te()), d.addComponent(new ne()), d.addComponent(new se()), d.addComponent(new oe()), d.addComponent(new ae()), d.addComponent(new ie()), d.addComponent(new rt());
|
|
2860
2719
|
}
|
|
2861
|
-
const _s = Object.assign(
|
|
2862
|
-
create(
|
|
2863
|
-
return (e) =>
|
|
2720
|
+
const _s = Object.assign(Je, {
|
|
2721
|
+
create(d = {}) {
|
|
2722
|
+
return (e) => Je(e, d);
|
|
2864
2723
|
}
|
|
2865
2724
|
});
|
|
2866
2725
|
export {
|
|
2867
2726
|
_s as Editor,
|
|
2868
|
-
|
|
2727
|
+
Je as Editor_
|
|
2869
2728
|
};
|