rm-graphical-computing 1.0.65 → 1.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +1066 -1051
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,22 +1,22 @@
1
1
  var Qn = Object.defineProperty;
2
2
  var Jn = (n, t, e) => t in n ? Qn(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
3
  var Oe = (n, t, e) => Jn(n, typeof t != "symbol" ? t + "" : t, e);
4
- import * as x from "three";
4
+ import * as y from "three";
5
5
  import { BufferGeometry as to, BufferAttribute as eo, Plane as no, Vector3 as zt, Matrix3 as En, MathUtils as Ne, Box3 as oo, Matrix4 as Tn, Ray as ro } from "three";
6
6
  function io(n, t = !1) {
7
7
  const e = n[0].index !== null, o = new Set(Object.keys(n[0].attributes)), i = new Set(Object.keys(n[0].morphAttributes)), r = {}, s = {}, a = n[0].morphTargetsRelative, l = new to();
8
- let c = 0;
8
+ let u = 0;
9
9
  for (let h = 0; h < n.length; ++h) {
10
10
  const d = n[h];
11
- let u = 0;
11
+ let c = 0;
12
12
  if (e !== (d.index !== null))
13
13
  return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
14
14
  for (const f in d.attributes) {
15
15
  if (!o.has(f))
16
16
  return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + '. All geometries must have compatible attributes; make sure "' + f + '" attribute exists among all geometries, or in none of them.'), null;
17
- r[f] === void 0 && (r[f] = []), r[f].push(d.attributes[f]), u++;
17
+ r[f] === void 0 && (r[f] = []), r[f].push(d.attributes[f]), c++;
18
18
  }
19
- if (u !== o.size)
19
+ if (c !== o.size)
20
20
  return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". Make sure all geometries have the same number of attributes."), null;
21
21
  if (a !== d.morphTargetsRelative)
22
22
  return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
@@ -33,17 +33,17 @@ function io(n, t = !1) {
33
33
  f = d.attributes.position.count;
34
34
  else
35
35
  return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". The geometry must have either an index or a position attribute"), null;
36
- l.addGroup(c, f, h), c += f;
36
+ l.addGroup(u, f, h), u += f;
37
37
  }
38
38
  }
39
39
  if (e) {
40
40
  let h = 0;
41
41
  const d = [];
42
- for (let u = 0; u < n.length; ++u) {
43
- const f = n[u].index;
42
+ for (let c = 0; c < n.length; ++c) {
43
+ const f = n[c].index;
44
44
  for (let w = 0; w < f.count; ++w)
45
45
  d.push(f.getX(w) + h);
46
- h += n[u].attributes.position.count;
46
+ h += n[c].attributes.position.count;
47
47
  }
48
48
  l.setIndex(d);
49
49
  }
@@ -57,10 +57,10 @@ function io(n, t = !1) {
57
57
  const d = s[h][0].length;
58
58
  if (d === 0) break;
59
59
  l.morphAttributes = l.morphAttributes || {}, l.morphAttributes[h] = [];
60
- for (let u = 0; u < d; ++u) {
60
+ for (let c = 0; c < d; ++c) {
61
61
  const f = [];
62
- for (let y = 0; y < s[h].length; ++y)
63
- f.push(s[h][y][u]);
62
+ for (let x = 0; x < s[h].length; ++x)
63
+ f.push(s[h][x][c]);
64
64
  const w = Qe(f);
65
65
  if (!w)
66
66
  return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " morphAttribute."), null;
@@ -71,8 +71,8 @@ function io(n, t = !1) {
71
71
  }
72
72
  function Qe(n) {
73
73
  let t, e, o, i = -1, r = 0;
74
- for (let c = 0; c < n.length; ++c) {
75
- const h = n[c];
74
+ for (let u = 0; u < n.length; ++u) {
75
+ const h = n[u];
76
76
  if (t === void 0 && (t = h.array.constructor), t !== h.array.constructor)
77
77
  return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
78
78
  if (e === void 0 && (e = h.itemSize), e !== h.itemSize)
@@ -85,14 +85,14 @@ function Qe(n) {
85
85
  }
86
86
  const s = new t(r), a = new eo(s, e, o);
87
87
  let l = 0;
88
- for (let c = 0; c < n.length; ++c) {
89
- const h = n[c];
88
+ for (let u = 0; u < n.length; ++u) {
89
+ const h = n[u];
90
90
  if (h.isInterleavedBufferAttribute) {
91
91
  const d = l / e;
92
- for (let u = 0, f = h.count; u < f; u++)
92
+ for (let c = 0, f = h.count; c < f; c++)
93
93
  for (let w = 0; w < e; w++) {
94
- const y = h.getComponent(u, w);
95
- a.setComponent(u + d, w, y);
94
+ const x = h.getComponent(c, w);
95
+ a.setComponent(c + d, w, x);
96
96
  }
97
97
  } else
98
98
  s.set(h.array, l);
@@ -101,16 +101,16 @@ function Qe(n) {
101
101
  return i !== void 0 && (a.gpuType = i), a;
102
102
  }
103
103
  const so = (n, t, e) => {
104
- let o = new x.LineBasicMaterial({ color: "#0011ff" }), i = [];
104
+ let o = new y.LineBasicMaterial({ color: "#0011ff" }), i = [];
105
105
  i.push(n), i.push(t);
106
- let r = new x.BufferGeometry();
107
- r.setFromPoints(i), r.rotateX(-Math.PI / 2), e.add(new x.Line(r, o));
106
+ let r = new y.BufferGeometry();
107
+ r.setFromPoints(i), r.rotateX(-Math.PI / 2), e.add(new y.Line(r, o));
108
108
  }, te = (n, t, e, o, i = 1e-8) => {
109
- const r = t.x - n.x, s = t.y - n.y, a = o.x - e.x, l = o.y - e.y, c = r * l - s * a;
110
- if (Math.abs(c) < i) return null;
111
- const h = ((e.x - n.x) * l - (e.y - n.y) * a) / c, d = ((e.x - n.x) * s - (e.y - n.y) * r) / c;
109
+ const r = t.x - n.x, s = t.y - n.y, a = o.x - e.x, l = o.y - e.y, u = r * l - s * a;
110
+ if (Math.abs(u) < i) return null;
111
+ const h = ((e.x - n.x) * l - (e.y - n.y) * a) / u, d = ((e.x - n.x) * s - (e.y - n.y) * r) / u;
112
112
  return h < -i || h > 1 + i || d < -i || d > 1 + i ? null : {
113
- point: new x.Vector3(
113
+ point: new y.Vector3(
114
114
  n.x + h * r,
115
115
  n.y + h * s,
116
116
  n.z
@@ -127,29 +127,29 @@ const so = (n, t, e) => {
127
127
  // 最大宽度限制
128
128
  } = e, h = document.createElement("canvas").getContext("2d");
129
129
  h.font = `bold ${o}px ${i}`;
130
- const u = h.measureText(n).width;
131
- let f = Math.min(u + a * 2, l), w = o + a * 2;
132
- const y = document.createElement("canvas");
133
- y.width = f, y.height = w;
134
- const M = y.getContext("2d");
135
- M.fillStyle = r, M.fillRect(0, 0, f, w), M.fillStyle = s, M.font = `bold ${o}px ${i}`, M.textAlign = "center", M.textBaseline = "middle", u > l - a * 2 ? lo(M, n, f / 2, w / 2, l, o) : M.fillText(n, f / 2, w / 2);
136
- const P = new x.CanvasTexture(y), g = new x.SpriteMaterial({
137
- map: P,
130
+ const c = h.measureText(n).width;
131
+ let f = Math.min(c + a * 2, l), w = o + a * 2;
132
+ const x = document.createElement("canvas");
133
+ x.width = f, x.height = w;
134
+ const P = x.getContext("2d");
135
+ P.fillStyle = r, P.fillRect(0, 0, f, w), P.fillStyle = s, P.font = `bold ${o}px ${i}`, P.textAlign = "center", P.textBaseline = "middle", c > l - a * 2 ? lo(P, n, f / 2, w / 2, l, o) : P.fillText(n, f / 2, w / 2);
136
+ const M = new y.CanvasTexture(x), g = new y.SpriteMaterial({
137
+ map: M,
138
138
  depthTest: !1,
139
139
  transparent: !0
140
- }), m = new x.Sprite(g);
140
+ }), m = new y.Sprite(g);
141
141
  m.position.set(t.x, t.y, t.z);
142
142
  const p = 5e-3;
143
143
  return m.scale.set(f * p, w * p, 1), m;
144
144
  };
145
145
  function lo(n, t, e, o, i, r) {
146
146
  const s = t.split("");
147
- let a = "", l = r * 1.2, c = o;
147
+ let a = "", l = r * 1.2, u = o;
148
148
  for (let h = 0; h < s.length; h++) {
149
149
  const d = a + s[h];
150
- n.measureText(d).width > i && h > 0 ? (n.fillText(a, e, c), a = s[h], c += l) : a = d;
150
+ n.measureText(d).width > i && h > 0 ? (n.fillText(a, e, u), a = s[h], u += l) : a = d;
151
151
  }
152
- n.fillText(a, e, c);
152
+ n.fillText(a, e, u);
153
153
  }
154
154
  const oe = (n, t, e = 0.01) => {
155
155
  const o = Math.sqrt(n.x * n.x + n.y * n.y + n.z * n.z), i = Math.sqrt(t.x * t.x + t.y * t.y + t.z * t.z);
@@ -158,33 +158,33 @@ const oe = (n, t, e = 0.01) => {
158
158
  const r = { x: n.x / o, y: n.y / o, z: n.z / o }, s = { x: t.x / i, y: t.y / i, z: t.z / i };
159
159
  let a = r.x * s.x + r.y * s.y + r.z * s.z;
160
160
  a = Math.max(-1, Math.min(1, a));
161
- const l = Math.acos(Math.abs(a)), c = l <= e;
161
+ const l = Math.acos(Math.abs(a)), u = l <= e;
162
162
  return {
163
- parallel: c,
164
- sameDirection: c ? a > 0 : null,
163
+ parallel: u,
164
+ sameDirection: u ? a > 0 : null,
165
165
  angle: l
166
166
  };
167
167
  }, co = (n, t, e, o) => {
168
168
  const i = n;
169
169
  let r = [];
170
- if (o && o.length && (r = o.map((V) => V.clone())), !i || i.length < 4) return {};
171
- const s = new x.Vector3().subVectors(i[1], i[0]).normalize(), a = new x.Vector3().subVectors(i[3], i[0]).normalize(), l = s.clone().cross(a).normalize();
172
- let c = 1 / 0, h = -1 / 0, d = 1 / 0, u = -1 / 0;
173
- for (const V of i) {
174
- const v = V.dot(s), S = V.dot(a);
175
- v < c && (c = v), v > h && (h = v), S < d && (d = S), S > u && (u = S);
176
- }
177
- const f = i[0].dot(l), w = s.clone().multiplyScalar(c).add(a.clone().multiplyScalar(d)).add(l.clone().multiplyScalar(f)), y = s.clone().multiplyScalar(h).add(a.clone().multiplyScalar(d)).add(l.clone().multiplyScalar(f)), M = s.clone().multiplyScalar(h).add(a.clone().multiplyScalar(u)).add(l.clone().multiplyScalar(f)), P = s.clone().multiplyScalar(c).add(a.clone().multiplyScalar(u)).add(l.clone().multiplyScalar(f));
178
- let g = [w, y, M, P], m = oe(new x.Vector3().subVectors(w, y), new x.Vector3(0, 0, 1));
179
- m && m.parallel && (g = [w, P, M, y]);
170
+ if (o && o.length && (r = o.map((z) => z.clone())), !i || i.length < 4) return {};
171
+ const s = new y.Vector3().subVectors(i[1], i[0]).normalize(), a = new y.Vector3().subVectors(i[3], i[0]).normalize(), l = s.clone().cross(a).normalize();
172
+ let u = 1 / 0, h = -1 / 0, d = 1 / 0, c = -1 / 0;
173
+ for (const z of i) {
174
+ const v = z.dot(s), S = z.dot(a);
175
+ v < u && (u = v), v > h && (h = v), S < d && (d = S), S > c && (c = S);
176
+ }
177
+ const f = i[0].dot(l), w = s.clone().multiplyScalar(u).add(a.clone().multiplyScalar(d)).add(l.clone().multiplyScalar(f)), x = s.clone().multiplyScalar(h).add(a.clone().multiplyScalar(d)).add(l.clone().multiplyScalar(f)), P = s.clone().multiplyScalar(h).add(a.clone().multiplyScalar(c)).add(l.clone().multiplyScalar(f)), M = s.clone().multiplyScalar(u).add(a.clone().multiplyScalar(c)).add(l.clone().multiplyScalar(f));
178
+ let g = [w, x, P, M], m = oe(new y.Vector3().subVectors(w, x), new y.Vector3(0, 0, 1));
179
+ m && m.parallel && (g = [w, M, P, x]);
180
180
  let p = 0;
181
181
  if (o.length > 0) {
182
- const V = new x.Vector3().subVectors(g[1], g[0]).normalize(), v = V.clone().negate(), S = new x.Vector3().subVectors(g[3], g[0]).normalize(), z = S.clone().negate();
182
+ const z = new y.Vector3().subVectors(g[1], g[0]).normalize(), v = z.clone().negate(), S = new y.Vector3().subVectors(g[3], g[0]).normalize(), V = S.clone().negate();
183
183
  let D = g[0].distanceTo(g[1]), _ = g[0].distanceTo(g[3]), E = D / t, T = _ / e, A = 1e-3;
184
184
  for (let O = 0; O < E; O++) {
185
185
  let I = g[0], B = 0;
186
186
  for (let L = 0; L < T; L++) {
187
- let N = I.clone().addScaledVector(V, t), C = N.clone().addScaledVector(S, e), R = I.clone().addScaledVector(S, e), $ = new x.Vector3().add(I).add(N).add(C).add(R).multiplyScalar(0.25);
187
+ let N = I.clone().addScaledVector(z, t), C = N.clone().addScaledVector(S, e), R = I.clone().addScaledVector(S, e), $ = new y.Vector3().add(I).add(N).add(C).add(R).multiplyScalar(0.25);
188
188
  for (let X = 0; X < r.length; X++)
189
189
  if (r[X].distanceTo($) < A) {
190
190
  B++;
@@ -194,13 +194,13 @@ const oe = (n, t, e = 0.01) => {
194
194
  }
195
195
  if (B >= T / 2)
196
196
  break;
197
- p += B, g[0] = g[0].addScaledVector(V, t), g[3] = g[3].addScaledVector(V, t);
197
+ p += B, g[0] = g[0].addScaledVector(z, t), g[3] = g[3].addScaledVector(z, t);
198
198
  }
199
199
  D = g[0].distanceTo(g[1]), E = D / t;
200
200
  for (let O = 0; O < E; O++) {
201
201
  let I = g[1], B = 0;
202
202
  for (let L = 0; L < T; L++) {
203
- let N = I.clone().addScaledVector(v, t), C = N.clone().addScaledVector(S, e), R = I.clone().addScaledVector(S, e), $ = new x.Vector3().add(I).add(N).add(C).add(R).multiplyScalar(0.25);
203
+ let N = I.clone().addScaledVector(v, t), C = N.clone().addScaledVector(S, e), R = I.clone().addScaledVector(S, e), $ = new y.Vector3().add(I).add(N).add(C).add(R).multiplyScalar(0.25);
204
204
  for (let X = 0; X < r.length; X++)
205
205
  if (r[X].distanceTo($) < A) {
206
206
  B++;
@@ -216,7 +216,7 @@ const oe = (n, t, e = 0.01) => {
216
216
  for (let O = 0; O < T; O++) {
217
217
  let I = g[3], B = 0;
218
218
  for (let L = 0; L < E; L++) {
219
- let N = I.clone().addScaledVector(V, t), C = N.clone().addScaledVector(z, e), R = I.clone().addScaledVector(z, e), $ = new x.Vector3().add(I).add(N).add(C).add(R).multiplyScalar(0.25);
219
+ let N = I.clone().addScaledVector(z, t), C = N.clone().addScaledVector(V, e), R = I.clone().addScaledVector(V, e), $ = new y.Vector3().add(I).add(N).add(C).add(R).multiplyScalar(0.25);
220
220
  for (let X = 0; X < r.length; X++)
221
221
  if (r[X].distanceTo($) < A) {
222
222
  B++;
@@ -226,7 +226,7 @@ const oe = (n, t, e = 0.01) => {
226
226
  }
227
227
  if (B >= E / 2)
228
228
  break;
229
- p += B, g[2] = g[2].addScaledVector(z, e), g[3] = g[3].addScaledVector(z, e);
229
+ p += B, g[2] = g[2].addScaledVector(V, e), g[3] = g[3].addScaledVector(V, e);
230
230
  }
231
231
  }
232
232
  const b = g[0].distanceTo(g[1]) * g[0].distanceTo(g[3]);
@@ -235,22 +235,22 @@ const oe = (n, t, e = 0.01) => {
235
235
  boxArea: b,
236
236
  totalInPlaneNum: p
237
237
  };
238
- }, Jt = (n, t, e, o, i = x.MathUtils.degToRad(8)) => {
239
- const r = new x.Vector3(), s = new x.Vector3();
238
+ }, Jt = (n, t, e, o, i = y.MathUtils.degToRad(8)) => {
239
+ const r = new y.Vector3(), s = new y.Vector3();
240
240
  r.subVectors(
241
- new x.Vector3(t.x, t.y, 0),
242
- new x.Vector3(n.x, n.y, 0)
241
+ new y.Vector3(t.x, t.y, 0),
242
+ new y.Vector3(n.x, n.y, 0)
243
243
  ).normalize(), s.subVectors(
244
- new x.Vector3(o.x, o.y, 0),
245
- new x.Vector3(e.x, e.y, 0)
244
+ new y.Vector3(o.x, o.y, 0),
245
+ new y.Vector3(e.x, e.y, 0)
246
246
  ).normalize();
247
- const a = r.dot(s), l = Math.acos(Math.min(Math.abs(a), 1)), c = 1 - Math.min(l / i, 1), h = a > 0 ? "same" : "opposite";
247
+ const a = r.dot(s), l = Math.acos(Math.min(Math.abs(a), 1)), u = 1 - Math.min(l / i, 1), h = a > 0 ? "same" : "opposite";
248
248
  return {
249
- parallelism: c,
249
+ parallelism: u,
250
250
  // 平行率 0-1
251
251
  angle: l,
252
252
  // 实际夹角(弧度)
253
- angleDeg: x.MathUtils.radToDeg(l),
253
+ angleDeg: y.MathUtils.radToDeg(l),
254
254
  // 夹角(度)
255
255
  isParallel: l < i,
256
256
  // 是否平行(基于阈值)
@@ -260,15 +260,15 @@ const oe = (n, t, e = 0.01) => {
260
260
  // 方向向量
261
261
  };
262
262
  }, re = (n, t, e, o) => {
263
- const i = new x.Vector3().subVectors(t, n), r = new x.Vector3().subVectors(o, e), s = i.length(), a = r.length();
263
+ const i = new y.Vector3().subVectors(t, n), r = new y.Vector3().subVectors(o, e), s = i.length(), a = r.length();
264
264
  if (s === 0 || a === 0)
265
265
  return { rate: NaN, angle: NaN, isPerpendicular: !1, isParallel: !1 };
266
266
  i.normalize(), r.normalize();
267
- const l = Math.abs(i.dot(r)), c = Math.min(1, Math.max(0, l)), h = Math.acos(c), d = x.MathUtils.radToDeg(h), u = 1 - c;
267
+ const l = Math.abs(i.dot(r)), u = Math.min(1, Math.max(0, l)), h = Math.acos(u), d = y.MathUtils.radToDeg(h), c = 1 - u;
268
268
  return {
269
- rate: u,
269
+ rate: c,
270
270
  // 垂直率 0~1
271
- percent: `${(u * 100).toFixed(2)}%`,
271
+ percent: `${(c * 100).toFixed(2)}%`,
272
272
  // 垂直率百分比
273
273
  angle: d,
274
274
  // 夹角(度,0~90)
@@ -277,28 +277,28 @@ const oe = (n, t, e = 0.01) => {
277
277
  isParallel: d < 0.01
278
278
  // 是否平行
279
279
  };
280
- }, ee = (n, t, e = !1) => new x.Vector3((n.x + t.x) / 2, (n.y + t.y) / 2, e ? 0 : (n.z + t.z) / 2), ne = (n, t, e, o, i = {}) => {
280
+ }, ee = (n, t, e = !1) => new y.Vector3((n.x + t.x) / 2, (n.y + t.y) / 2, e ? 0 : (n.z + t.z) / 2), ne = (n, t, e, o, i = {}) => {
281
281
  const {
282
- parallelAngleMax: r = x.MathUtils.degToRad(10),
283
- collinearAngleMax: s = x.MathUtils.degToRad(7),
282
+ parallelAngleMax: r = y.MathUtils.degToRad(10),
283
+ collinearAngleMax: s = y.MathUtils.degToRad(7),
284
284
  distanceThreshold: a = 2,
285
285
  overlapThreshold: l = 0.01
286
286
  // 投影重叠量大于此值才算 overlap
287
- } = i, c = new x.Vector3().subVectors(t, n), h = new x.Vector3().subVectors(o, e), d = c.clone().normalize(), u = h.clone().normalize();
288
- let f = x.MathUtils.clamp(d.dot(u), -1, 1);
289
- const w = Math.acos(Math.abs(f)), y = x.MathUtils.radToDeg(w);
287
+ } = i, u = new y.Vector3().subVectors(t, n), h = new y.Vector3().subVectors(o, e), d = u.clone().normalize(), c = h.clone().normalize();
288
+ let f = y.MathUtils.clamp(d.dot(c), -1, 1);
289
+ const w = Math.acos(Math.abs(f)), x = y.MathUtils.radToDeg(w);
290
290
  if (w > r)
291
291
  return {
292
292
  type: "not_parallel",
293
- angleDeg: y,
293
+ angleDeg: x,
294
294
  avgPerpendicularDistance: null,
295
295
  maxPerpendicularDistance: null,
296
296
  gap: null,
297
297
  overlap: null,
298
298
  closestDistance: null
299
299
  };
300
- f < 0 && u.negate();
301
- const M = new x.Vector3().addVectors(d, u).normalize(), P = new x.Vector3().addVectors(n, t).multiplyScalar(0.5), g = Je(e, P, d), m = Je(o, P, d), p = (g + m) / 2, b = Math.max(g, m), V = n.dot(M), v = t.dot(M), S = e.dot(M), z = o.dot(M), D = Math.min(V, v), _ = Math.max(V, v), E = Math.min(S, z), T = Math.max(S, z), A = _ - D, O = T - E, I = Math.min(A, O), B = Math.min(_, T) - Math.max(D, E), L = B < 0 ? -B : 0, N = B > 0 ? B : 0, C = I > 0 ? N / I : 0, R = uo(
300
+ f < 0 && c.negate();
301
+ const P = new y.Vector3().addVectors(d, c).normalize(), M = new y.Vector3().addVectors(n, t).multiplyScalar(0.5), g = Je(e, M, d), m = Je(o, M, d), p = (g + m) / 2, b = Math.max(g, m), z = n.dot(P), v = t.dot(P), S = e.dot(P), V = o.dot(P), D = Math.min(z, v), _ = Math.max(z, v), E = Math.min(S, V), T = Math.max(S, V), A = _ - D, O = T - E, I = Math.min(A, O), B = Math.min(_, T) - Math.max(D, E), L = B < 0 ? -B : 0, N = B > 0 ? B : 0, C = I > 0 ? N / I : 0, R = uo(
302
302
  n,
303
303
  t,
304
304
  e,
@@ -307,7 +307,7 @@ const oe = (n, t, e = 0.01) => {
307
307
  let X;
308
308
  return $ ? X = C > 0.5 ? "collinear_overlap" : "collinear_gap" : w <= r && (X = "parallel_offset"), {
309
309
  type: X,
310
- angleDeg: y,
310
+ angleDeg: x,
311
311
  avgPerpendicularDistance: p,
312
312
  maxPerpendicularDistance: b,
313
313
  gap: L,
@@ -316,97 +316,97 @@ const oe = (n, t, e = 0.01) => {
316
316
  };
317
317
  };
318
318
  function Je(n, t, e) {
319
- const o = new x.Vector3().subVectors(n, t), i = o.dot(e), r = e.clone().multiplyScalar(i);
320
- return new x.Vector3().subVectors(o, r).length();
319
+ const o = new y.Vector3().subVectors(n, t), i = o.dot(e), r = e.clone().multiplyScalar(i);
320
+ return new y.Vector3().subVectors(o, r).length();
321
321
  }
322
322
  function uo(n, t, e, o) {
323
- const i = new x.Vector3().subVectors(t, n), r = new x.Vector3().subVectors(o, e), s = new x.Vector3().subVectors(e, n), a = i.dot(i), l = i.dot(r), c = r.dot(r), h = i.dot(s), d = r.dot(s), u = a * c - l * l;
323
+ const i = new y.Vector3().subVectors(t, n), r = new y.Vector3().subVectors(o, e), s = new y.Vector3().subVectors(e, n), a = i.dot(i), l = i.dot(r), u = r.dot(r), h = i.dot(s), d = r.dot(s), c = a * u - l * l;
324
324
  let f, w;
325
- u < 1e-10 ? (f = 0, w = c !== 0 ? d / c : 0) : (f = (l * d - c * h) / u, w = (a * d - l * h) / u), f = x.MathUtils.clamp(f, 0, 1), w = c !== 0 ? x.MathUtils.clamp((l * f + d) / c, 0, 1) : 0, f = a !== 0 ? x.MathUtils.clamp((l * w - h) / a, 0, 1) : 0;
326
- const y = n.clone().add(i.clone().multiplyScalar(f)), M = e.clone().add(r.clone().multiplyScalar(w));
327
- return y.distanceTo(M);
325
+ c < 1e-10 ? (f = 0, w = u !== 0 ? d / u : 0) : (f = (l * d - u * h) / c, w = (a * d - l * h) / c), f = y.MathUtils.clamp(f, 0, 1), w = u !== 0 ? y.MathUtils.clamp((l * f + d) / u, 0, 1) : 0, f = a !== 0 ? y.MathUtils.clamp((l * w - h) / a, 0, 1) : 0;
326
+ const x = n.clone().add(i.clone().multiplyScalar(f)), P = e.clone().add(r.clone().multiplyScalar(w));
327
+ return x.distanceTo(P);
328
328
  }
329
329
  const tn = (n, t) => Math.round(Math.max(5, Math.min(350, t * Math.sqrt(n)))), ho = (n) => {
330
- let t = new x.Vector3(n.start.x, n.start.y, n.start.z), e = new x.Vector3(n.end.x, n.end.y, n.end.z), o = t.distanceTo(e), i = n.rooftopPz - n.start.z, r = tn(o, 100), s = tn(i, 70), a = i / s, l = /* @__PURE__ */ new Map();
331
- for (let y = 0; y < s; y++)
332
- l.set((y + 1) * a, { count: 0, minZ: 1 / 0, maxZ: -1 / 0 });
333
- let c = new x.Line3(t, e);
334
- const h = n.originalPoints, d = new x.Vector3();
335
- for (let y = 0; y < h.length; y++) {
336
- const M = h[y];
337
- let g = c.closestPointToPoint(M, !0, d).distanceTo(M);
330
+ let t = new y.Vector3(n.start.x, n.start.y, n.start.z), e = new y.Vector3(n.end.x, n.end.y, n.end.z), o = t.distanceTo(e), i = n.rooftopPz - n.start.z, r = tn(o, 100), s = tn(i, 70), a = i / s, l = /* @__PURE__ */ new Map();
331
+ for (let x = 0; x < s; x++)
332
+ l.set((x + 1) * a, { count: 0, minZ: 1 / 0, maxZ: -1 / 0 });
333
+ let u = new y.Line3(t, e);
334
+ const h = n.originalPoints, d = new y.Vector3();
335
+ for (let x = 0; x < h.length; x++) {
336
+ const P = h[x];
337
+ let g = u.closestPointToPoint(P, !0, d).distanceTo(P);
338
338
  const m = Math.floor(g / a);
339
339
  if (m < s) {
340
340
  const p = l.get((m + 1) * a);
341
- p.count++, M.z < p.minZ && (p.minZ = M.z), M.z > p.maxZ && (p.maxZ = M.z);
341
+ p.count++, P.z < p.minZ && (p.minZ = P.z), P.z > p.maxZ && (p.maxZ = P.z);
342
342
  }
343
343
  }
344
- let u, f, w = r / 2;
345
- for (const [y, M] of l)
346
- if (M.count >= w) {
347
- u = M.minZ;
344
+ let c, f, w = r / 2;
345
+ for (const [x, P] of l)
346
+ if (P.count >= w) {
347
+ c = P.minZ;
348
348
  break;
349
349
  }
350
- for (const [y, M] of [...l.entries()].reverse())
351
- if (M.count >= w) {
352
- f = M.maxZ;
350
+ for (const [x, P] of [...l.entries()].reverse())
351
+ if (P.count >= w) {
352
+ f = P.maxZ;
353
353
  break;
354
354
  }
355
- return { minZ: u, maxZ: f };
355
+ return { minZ: c, maxZ: f };
356
356
  }, ze = (n, t, e) => {
357
- let o = new x.Plane();
358
- const i = new x.Vector3(n.x, n.y, n.z), r = new x.Vector3(t.x, t.y, t.z), s = new x.Vector3(t.x, t.y, t.z + 5);
357
+ let o = new y.Plane();
358
+ const i = new y.Vector3(n.x, n.y, n.z), r = new y.Vector3(t.x, t.y, t.z), s = new y.Vector3(t.x, t.y, t.z + 5);
359
359
  o.setFromCoplanarPoints(i, r, s);
360
360
  const a = [], l = [];
361
- e.forEach((M) => {
362
- const P = new x.Vector3();
363
- o.projectPoint(M, P), l.push(P.clone()), P.z = i.z, a.push(P);
361
+ e.forEach((P) => {
362
+ const M = new y.Vector3();
363
+ o.projectPoint(P, M), l.push(M.clone()), M.z = i.z, a.push(M);
364
364
  });
365
- let c = new x.Vector3(), h = new x.Vector3();
366
- o.projectPoint(i, c), o.projectPoint(r, h);
367
- const d = new x.Line3(c, h), u = [], f = [], w = [];
368
- let y = new x.Vector3();
369
- return a.forEach((M, P) => {
370
- d.closestPointToPoint(M, !0, y).distanceTo(M) < 1e-3 ? (u.push(e[P]), f.push(l[P])) : w.push(M);
371
- }), { newOriginalPoints: u, newProjectPoints: w, newOnLinePoints: f };
365
+ let u = new y.Vector3(), h = new y.Vector3();
366
+ o.projectPoint(i, u), o.projectPoint(r, h);
367
+ const d = new y.Line3(u, h), c = [], f = [], w = [];
368
+ let x = new y.Vector3();
369
+ return a.forEach((P, M) => {
370
+ d.closestPointToPoint(P, !0, x).distanceTo(P) < 1e-3 ? (c.push(e[M]), f.push(l[M])) : w.push(P);
371
+ }), { newOriginalPoints: c, newProjectPoints: w, newOnLinePoints: f };
372
372
  }, fo = (n) => {
373
- function t(e, o, i, r, s, a, l, c, h) {
374
- let d = new x.Line3(e, o), u = /* @__PURE__ */ new Map(), f = new x.Vector3(), w = e.clone(), y = o.clone(), M = 0;
373
+ function t(e, o, i, r, s, a, l, u, h) {
374
+ let d = new y.Line3(e, o), c = /* @__PURE__ */ new Map(), f = new y.Vector3(), w = e.clone(), x = o.clone(), P = 0;
375
375
  for (; ; ) {
376
- let P = /* @__PURE__ */ new Map(), g = 0;
376
+ let M = /* @__PURE__ */ new Map(), g = 0;
377
377
  for (let m = 0; m < h.checkResults.length; m++)
378
- if (!(h.checkResults[m].allCenterPoints.length / c * 100 < 1))
378
+ if (!(h.checkResults[m].allCenterPoints.length / u * 100 < 1))
379
379
  for (let b = 0; b < h.checkResults[m].allCenterPoints.length; b++) {
380
- if (u.has(m) && u.get(m).removePtsIndex.includes(b))
380
+ if (c.has(m) && c.get(m).removePtsIndex.includes(b))
381
381
  continue;
382
- let V = h.checkResults[m].allCenterPoints[b];
383
- V = new x.Vector3(V.x, V.y, V.z);
384
- let v = d.closestPointToPoint(V, !0, f), S = V.distanceTo(v);
385
- Math.abs(S - s) < 0.01 && (g++, P.has(m) ? P.get(m).removePtsIndex.push(b) : P.set(m, {
382
+ let z = h.checkResults[m].allCenterPoints[b];
383
+ z = new y.Vector3(z.x, z.y, z.z);
384
+ let v = d.closestPointToPoint(z, !0, f), S = z.distanceTo(v);
385
+ Math.abs(S - s) < 0.01 && (g++, M.has(m) ? M.get(m).removePtsIndex.push(b) : M.set(m, {
386
386
  index: m,
387
387
  removePtsIndex: [b]
388
388
  }));
389
389
  }
390
- if (M == l) {
391
- e = w, o = y;
390
+ if (P == l) {
391
+ e = w, o = x;
392
392
  break;
393
393
  }
394
394
  if (g < a / 20 * 18 || g == 0) {
395
- P.clear(), l - M < 5 && (e = w, o = y, u.clear());
395
+ M.clear(), l - P < 5 && (e = w, o = x, c.clear());
396
396
  break;
397
397
  } else {
398
- M++;
399
- for (const [m, p] of P)
400
- u.has(m) ? u.get(m).removePtsIndex.push(...p.removePtsIndex) : u.set(m, p);
401
- P.clear(), e = e.addScaledVector(i, r), o = o.addScaledVector(i, r), d.set(e, o);
398
+ P++;
399
+ for (const [m, p] of M)
400
+ c.has(m) ? c.get(m).removePtsIndex.push(...p.removePtsIndex) : c.set(m, p);
401
+ M.clear(), e = e.addScaledVector(i, r), o = o.addScaledVector(i, r), d.set(e, o);
402
402
  }
403
403
  }
404
- if (u.size > 0 && M != l)
405
- for (const [P, g] of u) {
404
+ if (c.size > 0 && P != l)
405
+ for (const [M, g] of c) {
406
406
  let m = [], p = [];
407
- for (let b = 0; b < h.checkResults[P].allCenterPoints.length; b++)
408
- g.removePtsIndex.includes(b) || (m.push(h.checkResults[P].allCenterPoints[b]), p.push(h.checkResults[P].originalVertices[b]));
409
- h.checkResults[P].allCenterPoints = m, h.checkResults[P].originalVertices = p;
407
+ for (let b = 0; b < h.checkResults[M].allCenterPoints.length; b++)
408
+ g.removePtsIndex.includes(b) || (m.push(h.checkResults[M].allCenterPoints[b]), p.push(h.checkResults[M].originalVertices[b]));
409
+ h.checkResults[M].allCenterPoints = m, h.checkResults[M].originalVertices = p;
410
410
  }
411
411
  }
412
412
  for (let e = 0; e < n.length; e++) {
@@ -418,24 +418,24 @@ const tn = (n, t) => Math.round(Math.max(5, Math.min(350, t * Math.sqrt(n)))), h
418
418
  continue;
419
419
  if (o.checkResults[0].originalVertices && o.checkResults[0].originalVertices.length > 0) {
420
420
  const S = o.checkResults[0].originalVertices[0];
421
- let [z, D, _, E] = S;
422
- z = new x.Vector3(z.x, z.y, z.z), D = new x.Vector3(D.x, D.y, D.z), _ = new x.Vector3(_.x, _.y, _.z), E = new x.Vector3(E.x, E.y, E.z), i = z.distanceTo(D), r = z.distanceTo(E);
423
- let T = new x.Vector3().subVectors(z, D).normalize(), A = oe(T, new x.Vector3(0, 0, 1));
421
+ let [V, D, _, E] = S;
422
+ V = new y.Vector3(V.x, V.y, V.z), D = new y.Vector3(D.x, D.y, D.z), _ = new y.Vector3(_.x, _.y, _.z), E = new y.Vector3(E.x, E.y, E.z), i = V.distanceTo(D), r = V.distanceTo(E);
423
+ let T = new y.Vector3().subVectors(V, D).normalize(), A = oe(T, new y.Vector3(0, 0, 1));
424
424
  A && A.parallel && ([r, i] = [i, r]);
425
425
  }
426
426
  if (i < 0 || r < 0)
427
427
  continue;
428
- let s = new x.Vector3(o.start.x, o.start.y, o.start.z), a = new x.Vector3(o.end.x, o.end.y, o.end.z);
429
- const l = s.distanceTo(a), c = o.rooftopPz - o.start.z, h = Math.ceil(l / i), d = Math.ceil(c / r);
430
- let u = s.clone(), f = a.clone(), w = f.clone().add(new x.Vector3(0, 0, c)), y = u.clone().add(new x.Vector3(0, 0, c)), M = new x.Vector3().subVectors(f, u).normalize(), P = M.clone().negate();
431
- new x.Vector3().subVectors(w, u).normalize().clone().negate();
432
- let m = i / 2, p = l * c, b = i * r, V = p / b;
433
- t(u, y, M, i, m, d, h, V, o), t(f, w, P, i, m, d, h, V, o), o.start = u, o.end = f;
434
- const { newOriginalPoints: v } = ze(u, f, o.originalPoints);
428
+ let s = new y.Vector3(o.start.x, o.start.y, o.start.z), a = new y.Vector3(o.end.x, o.end.y, o.end.z);
429
+ const l = s.distanceTo(a), u = o.rooftopPz - o.start.z, h = Math.ceil(l / i), d = Math.ceil(u / r);
430
+ let c = s.clone(), f = a.clone(), w = f.clone().add(new y.Vector3(0, 0, u)), x = c.clone().add(new y.Vector3(0, 0, u)), P = new y.Vector3().subVectors(f, c).normalize(), M = P.clone().negate();
431
+ new y.Vector3().subVectors(w, c).normalize().clone().negate();
432
+ let m = i / 2, p = l * u, b = i * r, z = p / b;
433
+ t(c, x, P, i, m, d, h, z, o), t(f, w, M, i, m, d, h, z, o), o.start = c, o.end = f;
434
+ const { newOriginalPoints: v } = ze(c, f, o.originalPoints);
435
435
  o.originalPoints = v;
436
436
  }
437
- }, Lt = (n, t) => new x.Vector3(n.x, n.y, 0).distanceTo(new x.Vector3(t.x, t.y, 0)), mo = (n, t, e = 1e-6) => {
438
- const o = new x.Vector3();
437
+ }, Lt = (n, t) => new y.Vector3(n.x, n.y, 0).distanceTo(new y.Vector3(t.x, t.y, 0)), mo = (n, t, e = 1e-6) => {
438
+ const o = new y.Vector3();
439
439
  return n.closestPointToPoint(t, !0, o), o.distanceTo(t) < e;
440
440
  }, Se = (n) => {
441
441
  let t = 0, e = [];
@@ -501,9 +501,9 @@ class yo {
501
501
  */
502
502
  createWallPlaneMeshFromFourPoints(t, e, o, i, r, s, a = 16777215) {
503
503
  const l = [t, e, o, i];
504
- for (let M = 0; M < l.length; M++)
505
- this.isValidVector3(l[M]) || (console.error(`点${M + 1}包含无效数据:`, l[M]), l[M] = new x.Vector3(M, 0, M));
506
- const c = new x.BufferGeometry(), h = new Float32Array([
504
+ for (let P = 0; P < l.length; P++)
505
+ this.isValidVector3(l[P]) || (console.error(`点${P + 1}包含无效数据:`, l[P]), l[P] = new y.Vector3(P, 0, P));
506
+ const u = new y.BufferGeometry(), h = new Float32Array([
507
507
  l[0].x,
508
508
  l[0].y,
509
509
  l[0].z,
@@ -520,7 +520,7 @@ class yo {
520
520
  l[3].y,
521
521
  l[3].z
522
522
  // 左上
523
- ]), d = [0, 1, 2, 0, 2, 3], u = new Float32Array([
523
+ ]), d = [0, 1, 2, 0, 2, 3], c = new Float32Array([
524
524
  0,
525
525
  0,
526
526
  // 左下
@@ -534,9 +534,9 @@ class yo {
534
534
  1
535
535
  // 左上
536
536
  ]);
537
- c.setAttribute("position", new x.BufferAttribute(h, 3)), c.setAttribute("uv", new x.BufferAttribute(u, 2)), c.setIndex(d), c.computeVertexNormals();
538
- const f = new x.Mesh(c, r), w = new x.EdgesGeometry(c), y = new x.LineSegments(w, new x.LineBasicMaterial({ color: a }));
539
- return s.add(y), f;
537
+ u.setAttribute("position", new y.BufferAttribute(h, 3)), u.setAttribute("uv", new y.BufferAttribute(c, 2)), u.setIndex(d), u.computeVertexNormals();
538
+ const f = new y.Mesh(u, r), w = new y.EdgesGeometry(u), x = new y.LineSegments(w, new y.LineBasicMaterial({ color: a }));
539
+ return s.add(x), f;
540
540
  }
541
541
  /**
542
542
  * 将一面墙体按 rows×cols 细分成小格 Mesh,每格存入 wallGroup。
@@ -549,19 +549,19 @@ class yo {
549
549
  const s = [];
550
550
  if (!t || !t.start || !t.end || isNaN(t.rooftopPz))
551
551
  return s;
552
- const a = new x.Vector3(t.start.x, t.start.y, t.start.z), l = new x.Vector3(t.end.x, t.end.y, t.end.z), c = new x.Vector3(t.end.x, t.end.y, t.rooftopPz), h = new x.Vector3(t.start.x, t.start.y, t.rooftopPz), d = [a, l, c, h];
552
+ const a = new y.Vector3(t.start.x, t.start.y, t.start.z), l = new y.Vector3(t.end.x, t.end.y, t.end.z), u = new y.Vector3(t.end.x, t.end.y, t.rooftopPz), h = new y.Vector3(t.start.x, t.start.y, t.rooftopPz), d = [a, l, u, h];
553
553
  for (let g = 0; g < d.length; g++)
554
554
  if (!this.isValidVector3(d[g]))
555
555
  return console.error(`墙体基础点${g}无效:`, d[g]), s;
556
- const u = a.distanceTo(l), f = Math.abs(t.rooftopPz - t.start.z);
557
- if (u === 0 || f === 0)
556
+ const c = a.distanceTo(l), f = Math.abs(t.rooftopPz - t.start.z);
557
+ if (c === 0 || f === 0)
558
558
  return console.error("墙体宽度或高度为0"), console.log("line.rooftopPz", t.rooftopPz), console.log("bottomLeft", a), console.log("bottomRight", l), console.log(t.length), s;
559
- const w = u / o, y = f / e, M = new x.Vector3().subVectors(l, a).normalize(), P = new x.Vector3(0, 0, 1);
559
+ const w = c / o, x = f / e, P = new y.Vector3().subVectors(l, a).normalize(), M = new y.Vector3(0, 0, 1);
560
560
  for (let g = 0; g < e; g++)
561
561
  for (let m = 0; m < o; m++)
562
562
  try {
563
- const p = new x.Vector3().copy(a).add(M.clone().multiplyScalar(m * w)).add(P.clone().multiplyScalar(g * y)), b = new x.Vector3().copy(a).add(M.clone().multiplyScalar((m + 1) * w)).add(P.clone().multiplyScalar(g * y)), V = new x.Vector3().copy(a).add(M.clone().multiplyScalar((m + 1) * w)).add(P.clone().multiplyScalar((g + 1) * y)), v = new x.Vector3().copy(a).add(M.clone().multiplyScalar(m * w)).add(P.clone().multiplyScalar((g + 1) * y)), S = {
564
- points: [p, b, V, v],
563
+ const p = new y.Vector3().copy(a).add(P.clone().multiplyScalar(m * w)).add(M.clone().multiplyScalar(g * x)), b = new y.Vector3().copy(a).add(P.clone().multiplyScalar((m + 1) * w)).add(M.clone().multiplyScalar(g * x)), z = new y.Vector3().copy(a).add(P.clone().multiplyScalar((m + 1) * w)).add(M.clone().multiplyScalar((g + 1) * x)), v = new y.Vector3().copy(a).add(P.clone().multiplyScalar(m * w)).add(M.clone().multiplyScalar((g + 1) * x)), S = {
564
+ points: [p, b, z, v],
565
565
  userData: {}
566
566
  };
567
567
  S.userData = {
@@ -570,7 +570,7 @@ class yo {
570
570
  col: m,
571
571
  originalMaterial: i,
572
572
  width: w,
573
- height: y
573
+ height: x
574
574
  }, s.push(S);
575
575
  } catch (p) {
576
576
  console.error(`创建墙体小平面(${g}, ${m})时出错:`, p);
@@ -813,9 +813,9 @@ class yo {
813
813
  }
814
814
  evaluateSegmentByArea(t, e, o, i) {
815
815
  if (e === 0) return !1;
816
- const r = t.area, s = t.minRequiredPoints, a = t.expectedDensity, l = e / Math.max(r, 1e-3), c = e >= s, h = l >= a * 0.3;
816
+ const r = t.area, s = t.minRequiredPoints, a = t.expectedDensity, l = e / Math.max(r, 1e-3), u = e >= s, h = l >= a * 0.3;
817
817
  let d = !0;
818
- return r < 0.5 && e > 0 && (d = this.checkSmallAreaDistribution(t, o, i)), c && h && d;
818
+ return r < 0.5 && e > 0 && (d = this.checkSmallAreaDistribution(t, o, i)), u && h && d;
819
819
  }
820
820
  checkSmallAreaDistribution(t, e, o) {
821
821
  if (e.length < 2) return !0;
@@ -845,9 +845,9 @@ class yo {
845
845
  if (!e || !e.attributes.position) return null;
846
846
  const o = e.attributes.position;
847
847
  if (o.count < 3) return null;
848
- const i = new x.Vector3().fromBufferAttribute(o, 0), r = new x.Vector3().fromBufferAttribute(o, 1), s = new x.Vector3().fromBufferAttribute(o, 2);
848
+ const i = new y.Vector3().fromBufferAttribute(o, 0), r = new y.Vector3().fromBufferAttribute(o, 1), s = new y.Vector3().fromBufferAttribute(o, 2);
849
849
  i.applyMatrix4(t.matrixWorld), r.applyMatrix4(t.matrixWorld), s.applyMatrix4(t.matrixWorld);
850
- const a = new x.Plane();
850
+ const a = new y.Plane();
851
851
  return a.setFromCoplanarPoints(i, r, s), a;
852
852
  }
853
853
  analyzePointDistribution(t, e, o = 0.01) {
@@ -867,25 +867,25 @@ class yo {
867
867
  if (s.userData && s.userData.type === "wallSegment") {
868
868
  const a = this.getWorldVerticesNew(s.points);
869
869
  if (a.length < 4) return;
870
- const l = new x.Vector3().add(a[0]).add(a[1]).add(a[2]).add(a[3]).multiplyScalar(0.25);
870
+ const l = new y.Vector3().add(a[0]).add(a[1]).add(a[2]).add(a[3]).multiplyScalar(0.25);
871
871
  s.userData.center = l, s.vertices = a, r.push(s);
872
872
  }
873
873
  }), this.results.totalSegments = r.length;
874
874
  for (const s of r) {
875
875
  if (s.vertices.length < 4) continue;
876
- const a = s.userData.center, l = `row${s.userData.row}_col${s.userData.col}`, [c, h, d, u] = s.vertices, f = new x.Vector3().subVectors(h, c).normalize(), w = new x.Vector3().subVectors(u, c).normalize(), y = c.distanceTo(h), M = c.distanceTo(u), P = new x.Plane();
877
- P.setFromCoplanarPoints(c, h, u);
878
- const g = y / 2, m = M / 2;
876
+ const a = s.userData.center, l = `row${s.userData.row}_col${s.userData.col}`, [u, h, d, c] = s.vertices, f = new y.Vector3().subVectors(h, u).normalize(), w = new y.Vector3().subVectors(c, u).normalize(), x = u.distanceTo(h), P = u.distanceTo(c), M = new y.Plane();
877
+ M.setFromCoplanarPoints(u, h, c);
878
+ const g = x / 2, m = P / 2;
879
879
  for (let p = 0; p < e.length; p++)
880
880
  this.isPointInWallSegmentOptimized(
881
881
  e[p],
882
882
  a,
883
- P,
884
- c,
883
+ M,
884
+ u,
885
885
  f,
886
886
  w,
887
- y,
888
- M,
887
+ x,
888
+ P,
889
889
  g,
890
890
  m,
891
891
  o
@@ -911,13 +911,13 @@ class yo {
911
911
  }), this.results.analysisTime = performance.now() - i, this.printAnalysisResults(), this.results;
912
912
  }
913
913
  // 优化后的判断函数(移出重复计算)
914
- isPointInWallSegmentOptimized(t, e, o, i, r, s, a, l, c, h, d) {
914
+ isPointInWallSegmentOptimized(t, e, o, i, r, s, a, l, u, h, d) {
915
915
  if (Math.abs(o.distanceToPoint(t)) > d)
916
916
  return !1;
917
- const f = new x.Vector3().subVectors(t, e), w = Math.abs(f.dot(r)), y = Math.abs(f.dot(s));
918
- if (w > c && y > h)
917
+ const f = new y.Vector3().subVectors(t, e), w = Math.abs(f.dot(r)), x = Math.abs(f.dot(s));
918
+ if (w > u && x > h)
919
919
  return !1;
920
- const M = new x.Vector3().subVectors(t, i), P = M.dot(r), g = M.dot(s), m = P >= -d && P <= a + d, p = g >= -d && g <= l + d;
920
+ const P = new y.Vector3().subVectors(t, i), M = P.dot(r), g = P.dot(s), m = M >= -d && M <= a + d, p = g >= -d && g <= l + d;
921
921
  return m && p;
922
922
  }
923
923
  // 判断点是否在细分墙体平面内
@@ -932,13 +932,13 @@ class yo {
932
932
  }
933
933
  // 判断点是否在任意旋转的墙体平面内
934
934
  isPointInRotatedWall(t, e, o, i = 0.1) {
935
- const [r, s, a, l] = t, c = new x.Plane();
936
- if (c.setFromCoplanarPoints(r, s, l), Math.abs(c.distanceToPoint(e)) > i)
935
+ const [r, s, a, l] = t, u = new y.Plane();
936
+ if (u.setFromCoplanarPoints(r, s, l), Math.abs(u.distanceToPoint(e)) > i)
937
937
  return !1;
938
- const d = new x.Vector3().subVectors(s, r).normalize(), u = new x.Vector3().subVectors(l, r).normalize();
939
- new x.Vector3().crossVectors(d, u).normalize();
940
- const f = new x.Vector3().subVectors(e, r), w = f.dot(d), y = f.dot(u), M = r.distanceTo(s), P = r.distanceTo(l), g = w >= -i && w <= M + i, m = y >= -i && y <= P + i;
941
- return g && m && o.distanceTo(e) < M / 2 && o.distanceTo(e) < P / 2;
938
+ const d = new y.Vector3().subVectors(s, r).normalize(), c = new y.Vector3().subVectors(l, r).normalize();
939
+ new y.Vector3().crossVectors(d, c).normalize();
940
+ const f = new y.Vector3().subVectors(e, r), w = f.dot(d), x = f.dot(c), P = r.distanceTo(s), M = r.distanceTo(l), g = w >= -i && w <= P + i, m = x >= -i && x <= M + i;
941
+ return g && m && o.distanceTo(e) < P / 2 && o.distanceTo(e) < M / 2;
942
942
  }
943
943
  // 优化顶点获取(添加缓存)
944
944
  getWorldVertices(t) {
@@ -946,7 +946,7 @@ class yo {
946
946
  return t._cachedWorldVertices;
947
947
  const e = t.geometry.getAttribute("position"), o = [];
948
948
  for (let i = 0; i < Math.min(4, e.count); i++) {
949
- const r = new x.Vector3();
949
+ const r = new y.Vector3();
950
950
  r.fromBufferAttribute(e, i), r.applyMatrix4(t.matrixWorld), o.push(r);
951
951
  }
952
952
  return t._cachedWorldVertices = o, t._cachedMatrixWorld = t.matrixWorld.clone(), o;
@@ -963,16 +963,16 @@ class yo {
963
963
  // 获取细分平面的边界信息
964
964
  getWallSegmentBounds(t) {
965
965
  if (!t.geometry) return null;
966
- const e = t.geometry.getAttribute("position"), o = new x.Box3();
966
+ const e = t.geometry.getAttribute("position"), o = new y.Box3();
967
967
  for (let i = 0; i < e.count; i++) {
968
- const r = new x.Vector3();
968
+ const r = new y.Vector3();
969
969
  r.fromBufferAttribute(e, i), r.applyMatrix4(t.matrixWorld), o.expandByPoint(r);
970
970
  }
971
971
  return {
972
972
  min: o.min.toArray(),
973
973
  max: o.max.toArray(),
974
- center: o.getCenter(new x.Vector3()).toArray(),
975
- size: o.getSize(new x.Vector3()).toArray()
974
+ center: o.getCenter(new y.Vector3()).toArray(),
975
+ size: o.getSize(new y.Vector3()).toArray()
976
976
  };
977
977
  }
978
978
  // 高亮没有点的平面
@@ -1012,16 +1012,16 @@ class yo {
1012
1012
  return;
1013
1013
  }
1014
1014
  const r = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
1015
- this.results.missingSegments.forEach((u) => {
1016
- r.set(u.segmentKey, u), s.has(u.row) || s.set(u.row, /* @__PURE__ */ new Map()), s.get(u.row).set(u.col, {
1017
- segmentKey: u.segmentKey,
1015
+ this.results.missingSegments.forEach((c) => {
1016
+ r.set(c.segmentKey, c), s.has(c.row) || s.set(c.row, /* @__PURE__ */ new Map()), s.get(c.row).set(c.col, {
1017
+ segmentKey: c.segmentKey,
1018
1018
  isEmpty: !0,
1019
1019
  visited: !1
1020
1020
  });
1021
- }), t.forEach((u) => {
1022
- if (u.userData && u.userData.type === "wallSegment") {
1023
- const f = `row${u.userData.row}_col${u.userData.col}`, w = r.has(f);
1024
- s.has(u.userData.row) || s.set(u.userData.row, /* @__PURE__ */ new Map()), s.get(u.userData.row).has(u.userData.col) || s.get(u.userData.row).set(u.userData.col, {
1021
+ }), t.forEach((c) => {
1022
+ if (c.userData && c.userData.type === "wallSegment") {
1023
+ const f = `row${c.userData.row}_col${c.userData.col}`, w = r.has(f);
1024
+ s.has(c.userData.row) || s.set(c.userData.row, /* @__PURE__ */ new Map()), s.get(c.userData.row).has(c.userData.col) || s.get(c.userData.row).set(c.userData.col, {
1025
1025
  segmentKey: f,
1026
1026
  isEmpty: w,
1027
1027
  visited: !1
@@ -1038,29 +1038,29 @@ class yo {
1038
1038
  [-1, 0]
1039
1039
  // 上
1040
1040
  ];
1041
- for (const [u, f] of r) {
1041
+ for (const [c, f] of r) {
1042
1042
  const w = (d = s.get(f.row)) == null ? void 0 : d.get(f.col);
1043
1043
  if (w && !w.visited) {
1044
- const y = [], M = [[f.row, f.col]];
1045
- for (w.visited = !0; M.length > 0; ) {
1046
- const [P, g] = M.shift(), m = `row${P}_col${g}`;
1047
- r.has(m) && y.push(r.get(m));
1044
+ const x = [], P = [[f.row, f.col]];
1045
+ for (w.visited = !0; P.length > 0; ) {
1046
+ const [M, g] = P.shift(), m = `row${M}_col${g}`;
1047
+ r.has(m) && x.push(r.get(m));
1048
1048
  for (const [p, b] of l) {
1049
- const V = P + p, v = g + b;
1050
- if (s.has(V) && s.get(V).has(v)) {
1051
- const S = s.get(V).get(v);
1052
- !S.visited && S.isEmpty && (S.visited = !0, M.push([V, v]));
1049
+ const z = M + p, v = g + b;
1050
+ if (s.has(z) && s.get(z).has(v)) {
1051
+ const S = s.get(z).get(v);
1052
+ !S.visited && S.isEmpty && (S.visited = !0, P.push([z, v]));
1053
1053
  }
1054
1054
  }
1055
1055
  }
1056
- y.length >= i && a.push(y);
1056
+ x.length >= i && a.push(x);
1057
1057
  }
1058
1058
  }
1059
- const c = this.createClusterMaterials(a.length), h = [];
1059
+ const u = this.createClusterMaterials(a.length), h = [];
1060
1060
  return this.clusterResults = {
1061
- clusters: a.sort((u, f) => f.length - u.length),
1061
+ clusters: a.sort((c, f) => f.length - c.length),
1062
1062
  highlightedMeshes: h,
1063
- clusterMaterials: c,
1063
+ clusterMaterials: u,
1064
1064
  totalClusters: a.length,
1065
1065
  totalHighlighted: h.length
1066
1066
  }, this.clusterResults;
@@ -1070,23 +1070,23 @@ class yo {
1070
1070
  let s = 0;
1071
1071
  const a = e;
1072
1072
  let l = !0;
1073
- for (let y = i; y <= r; y++)
1074
- t.has(a) && t.get(a).has(y) || (l = !1);
1073
+ for (let x = i; x <= r; x++)
1074
+ t.has(a) && t.get(a).has(x) || (l = !1);
1075
1075
  l && s++;
1076
- const c = o;
1076
+ const u = o;
1077
1077
  let h = !0;
1078
- for (let y = i; y <= r; y++)
1079
- t.has(c) && t.get(c).has(y) || (h = !1);
1078
+ for (let x = i; x <= r; x++)
1079
+ t.has(u) && t.get(u).has(x) || (h = !1);
1080
1080
  h && s++;
1081
1081
  const d = i;
1082
- let u = !0;
1083
- for (let y = e; y <= o; y++)
1084
- t.has(y) && t.get(y).has(d) || (u = !1);
1085
- u && s++;
1082
+ let c = !0;
1083
+ for (let x = e; x <= o; x++)
1084
+ t.has(x) && t.get(x).has(d) || (c = !1);
1085
+ c && s++;
1086
1086
  const f = r;
1087
1087
  let w = !0;
1088
- for (let y = e; y <= o; y++)
1089
- t.has(y) && t.get(y).has(f) || (w = !1);
1088
+ for (let x = e; x <= o; x++)
1089
+ t.has(x) && t.get(x).has(f) || (w = !1);
1090
1090
  return w && s++, s / 4;
1091
1091
  }
1092
1092
  // 计算聚类质量分数
@@ -1096,20 +1096,20 @@ class yo {
1096
1096
  }
1097
1097
  // 计算严格的聚类边界尺寸(基于实际几何)
1098
1098
  calculateStrictClusterBounds(t) {
1099
- var d, u;
1099
+ var d, c;
1100
1100
  if (t.length === 0) return { width: 0, height: 0 };
1101
1101
  const e = [];
1102
1102
  if (t.forEach((f) => {
1103
1103
  f.vertices && f.vertices.length > 0 && e.push(...f.vertices);
1104
1104
  }), e.length === 0) {
1105
- const f = [...new Set(t.map((y) => y.row))];
1105
+ const f = [...new Set(t.map((x) => x.row))];
1106
1106
  return {
1107
- width: [...new Set(t.map((y) => y.col))].length * (((d = t[0].bounds) == null ? void 0 : d.width) || 1),
1108
- height: f.length * (((u = t[0].bounds) == null ? void 0 : u.height) || 1)
1107
+ width: [...new Set(t.map((x) => x.col))].length * (((d = t[0].bounds) == null ? void 0 : d.width) || 1),
1108
+ height: f.length * (((c = t[0].bounds) == null ? void 0 : c.height) || 1)
1109
1109
  };
1110
1110
  }
1111
- const o = Math.min(...e.map((f) => f.x)), i = Math.max(...e.map((f) => f.x)), r = Math.min(...e.map((f) => f.y)), s = Math.max(...e.map((f) => f.y)), a = Math.min(...e.map((f) => f.z)), l = Math.max(...e.map((f) => f.z)), c = Math.abs(i - o), h = Math.max(Math.abs(s - r), Math.abs(l - a));
1112
- return { width: c, height: h };
1111
+ const o = Math.min(...e.map((f) => f.x)), i = Math.max(...e.map((f) => f.x)), r = Math.min(...e.map((f) => f.y)), s = Math.max(...e.map((f) => f.y)), a = Math.min(...e.map((f) => f.z)), l = Math.max(...e.map((f) => f.z)), u = Math.abs(i - o), h = Math.max(Math.abs(s - r), Math.abs(l - a));
1112
+ return { width: u, height: h };
1113
1113
  }
1114
1114
  // 创建不同颜色的聚类材质
1115
1115
  createClusterMaterials(t) {
@@ -1137,11 +1137,11 @@ class yo {
1137
1137
  "lightcoral"
1138
1138
  ];
1139
1139
  for (let i = 0; i < t; i++) {
1140
- const r = o[i % o.length], s = new x.MeshBasicMaterial({
1140
+ const r = o[i % o.length], s = new y.MeshBasicMaterial({
1141
1141
  color: r,
1142
1142
  transparent: !0,
1143
1143
  opacity: 0.6,
1144
- side: x.DoubleSide
1144
+ side: y.DoubleSide
1145
1145
  });
1146
1146
  e.push(s);
1147
1147
  }
@@ -1177,13 +1177,13 @@ class yo {
1177
1177
  }
1178
1178
  // 创建可视化调试助手
1179
1179
  createDebugHelpers(t) {
1180
- const e = new x.Group();
1180
+ const e = new y.Group();
1181
1181
  return t.traverse((o) => {
1182
1182
  if (o.userData && o.userData.type === "wallSegment") {
1183
1183
  const i = this.getWorldVertices(o);
1184
1184
  if (i.length < 4) return;
1185
- const r = new x.Vector3().add(i[0]).add(i[1]).add(i[2]).add(i[3]).multiplyScalar(0.25), s = new x.Vector3().subVectors(i[1], i[0]).normalize(), a = new x.Vector3().subVectors(i[3], i[0]).normalize(), l = new x.Vector3().crossVectors(s, a).normalize(), c = new x.ArrowHelper(l, r, 0.3, 16711680), h = new x.ArrowHelper(s, r, 0.2, 65280), d = new x.ArrowHelper(a, r, 0.2, 255);
1186
- e.add(c), e.add(h), e.add(d);
1185
+ const r = new y.Vector3().add(i[0]).add(i[1]).add(i[2]).add(i[3]).multiplyScalar(0.25), s = new y.Vector3().subVectors(i[1], i[0]).normalize(), a = new y.Vector3().subVectors(i[3], i[0]).normalize(), l = new y.Vector3().crossVectors(s, a).normalize(), u = new y.ArrowHelper(l, r, 0.3, 16711680), h = new y.ArrowHelper(s, r, 0.2, 65280), d = new y.ArrowHelper(a, r, 0.2, 255);
1186
+ e.add(u), e.add(h), e.add(d);
1187
1187
  }
1188
1188
  }), e;
1189
1189
  }
@@ -1211,7 +1211,7 @@ class yo {
1211
1211
  o.forEach((a, l) => {
1212
1212
  a.applyMatrix4(e[l].matrixWorld);
1213
1213
  });
1214
- const i = io(o), r = e[0].material.clone(), s = new x.Mesh(i, r);
1214
+ const i = io(o), r = e[0].material.clone(), s = new y.Mesh(i, r);
1215
1215
  return s.name = "mergedWalls", s;
1216
1216
  } catch (o) {
1217
1217
  return console.error("合并网格时出错:", o), null;
@@ -1239,35 +1239,35 @@ const xo = (n) => {
1239
1239
  for (let i = 0; i < n.length; i++) {
1240
1240
  const r = n[i];
1241
1241
  if (!r) continue;
1242
- let s = new x.Vector3(r.start.x, r.start.y, r.start.z);
1243
- s.applyEuler(new x.Euler(-Math.PI / 2, 0, 0));
1244
- let a = new x.Vector3(r.end.x, r.end.y, r.end.z);
1245
- if (a.applyEuler(new x.Euler(-Math.PI / 2, 0, 0)), t.add(ao(String(i), new x.Vector3((s.x + a.x) / 2, (s.y + a.y) / 2, (s.z + a.z) / 2))), (r.isBayWindow || r.isWindow) && e) continue;
1246
- const l = new no().setFromCoplanarPoints(new zt(r.start.x, r.start.y, r.start.z), new zt(r.end.x, r.end.y, r.end.z), new zt(r.start.x, r.start.y, r.rooftopPz)), c = [];
1242
+ let s = new y.Vector3(r.start.x, r.start.y, r.start.z);
1243
+ s.applyEuler(new y.Euler(-Math.PI / 2, 0, 0));
1244
+ let a = new y.Vector3(r.end.x, r.end.y, r.end.z);
1245
+ if (a.applyEuler(new y.Euler(-Math.PI / 2, 0, 0)), t.add(ao(String(i), new y.Vector3((s.x + a.x) / 2, (s.y + a.y) / 2, (s.z + a.z) / 2))), (r.isBayWindow || r.isWindow) && e) continue;
1246
+ const l = new no().setFromCoplanarPoints(new zt(r.start.x, r.start.y, r.start.z), new zt(r.end.x, r.end.y, r.end.z), new zt(r.start.x, r.start.y, r.rooftopPz)), u = [];
1247
1247
  r.originalPoints.forEach((v, S) => {
1248
- const z = new zt();
1249
- l.projectPoint(v, z), c.push(z);
1248
+ const V = new zt();
1249
+ l.projectPoint(v, V), u.push(V);
1250
1250
  });
1251
- const h = new zt(r.start.x, r.start.y, r.start.z).distanceTo(new zt(r.end.x, r.end.y, r.end.z)), d = Math.abs(r.rooftopPz - r.start.z), u = new x.MeshBasicMaterial({
1251
+ const h = new zt(r.start.x, r.start.y, r.start.z).distanceTo(new zt(r.end.x, r.end.y, r.end.z)), d = Math.abs(r.rooftopPz - r.start.z), c = new y.MeshBasicMaterial({
1252
1252
  color: "red",
1253
- side: x.DoubleSide,
1253
+ side: y.DoubleSide,
1254
1254
  wireframe: !1,
1255
1255
  transparent: !0,
1256
1256
  opacity: 0.5
1257
- }), f = new x.Group(), w = new yo(), { horizontalSubdivisions: y, verticalSubdivisions: M } = w.initLimits4(h, d), P = w.createSubdividedWallPlane(r, M, y, u, f);
1258
- w.analyzePointDistribution(P, c, 0.01);
1259
- const g = new x.MeshBasicMaterial({
1257
+ }), f = new y.Group(), w = new yo(), { horizontalSubdivisions: x, verticalSubdivisions: P } = w.initLimits4(h, d), M = w.createSubdividedWallPlane(r, P, x, c, f);
1258
+ w.analyzePointDistribution(M, u, 0.01);
1259
+ const g = new y.MeshBasicMaterial({
1260
1260
  color: "black",
1261
1261
  transparent: !0,
1262
1262
  opacity: 0.8,
1263
- side: x.DoubleSide
1264
- }), m = w.highlightEmptySegments(P, g, f), p = [];
1263
+ side: y.DoubleSide
1264
+ }), m = w.highlightEmptySegments(M, g, f), p = [];
1265
1265
  for (const v of m.clusters) {
1266
1266
  const S = xo(v);
1267
1267
  S && p.push(S);
1268
1268
  }
1269
- const V = wo(r).direction;
1270
- r.checkResults = p, r.verticalDirection = V, r.originaIndex = i, o.push(r);
1269
+ const z = wo(r).direction;
1270
+ r.checkResults = p, r.verticalDirection = z, r.originaIndex = i, o.push(r);
1271
1271
  }
1272
1272
  return o;
1273
1273
  }, xi = (n, t) => {
@@ -1275,38 +1275,38 @@ const xo = (n) => {
1275
1275
  for (let e = 0; e < n.length; e++) {
1276
1276
  const o = n[e], i = [];
1277
1277
  o.originalPoints.forEach((m) => {
1278
- let p = new x.Vector3(m.x, m.y, 0), b = !1;
1279
- for (let V = 0; V < i.length; V++)
1280
- if (kt(p, i[V], 0.01)) {
1278
+ let p = new y.Vector3(m.x, m.y, 0), b = !1;
1279
+ for (let z = 0; z < i.length; z++)
1280
+ if (kt(p, i[z], 0.01)) {
1281
1281
  b = !0;
1282
1282
  break;
1283
1283
  }
1284
1284
  b || i.push(p);
1285
1285
  });
1286
1286
  const r = Math.round(Math.max(5, Math.min(350, 20 * Math.sqrt(o.length)))), s = 1;
1287
- let a = new x.Vector3(o.start.x, o.start.y, o.start.z), l = new x.Vector3(o.end.x, o.end.y, o.end.z), c = new x.Vector3().subVectors(l, a).normalize(), h = c.clone().cross(new x.Vector3(0, 0, 1)).normalize(), d = h.clone().negate(), u = [];
1287
+ let a = new y.Vector3(o.start.x, o.start.y, o.start.z), l = new y.Vector3(o.end.x, o.end.y, o.end.z), u = new y.Vector3().subVectors(l, a).normalize(), h = u.clone().cross(new y.Vector3(0, 0, 1)).normalize(), d = h.clone().negate(), c = [];
1288
1288
  const f = [];
1289
1289
  let w = o.length / r;
1290
1290
  console.log(w);
1291
1291
  for (let m = 0; m < r; m++) {
1292
1292
  const p = [];
1293
- p.push(a.clone().addScaledVector(h, s)), p.push(p[0].clone().addScaledVector(c, w)), p.push(p[1].clone().addScaledVector(d, s * 2)), p.push(a.clone().addScaledVector(d, w));
1293
+ p.push(a.clone().addScaledVector(h, s)), p.push(p[0].clone().addScaledVector(u, w)), p.push(p[1].clone().addScaledVector(d, s * 2)), p.push(a.clone().addScaledVector(d, w));
1294
1294
  let b = [];
1295
- for (let V = 0; V < i.length; V++)
1296
- u.includes(V) || Po(i[V], p) && (u.push(V), b.push(i[V]));
1297
- b.length > 0 && f.push(Mo(b)), a = a.addScaledVector(c, w);
1295
+ for (let z = 0; z < i.length; z++)
1296
+ c.includes(z) || Po(i[z], p) && (c.push(z), b.push(i[z]));
1297
+ b.length > 0 && f.push(Mo(b)), a = a.addScaledVector(u, w);
1298
1298
  }
1299
- const y = new Float32Array(i.length * 3);
1299
+ const x = new Float32Array(i.length * 3);
1300
1300
  i.forEach((m, p) => {
1301
- y[p * 3] = m.x, y[p * 3 + 1] = m.y, y[p * 3 + 2] = m.z;
1301
+ x[p * 3] = m.x, x[p * 3 + 1] = m.y, x[p * 3 + 2] = m.z;
1302
1302
  });
1303
- const M = new x.BufferGeometry();
1304
- M.setAttribute("position", new x.BufferAttribute(y, 3)), M.rotateX(-Math.PI / 2), t.add(new x.Points(M, new x.PointsMaterial({ color: go(), size: 0.02 })));
1305
- const [P, g] = vo(f, {
1303
+ const P = new y.BufferGeometry();
1304
+ P.setAttribute("position", new y.BufferAttribute(x, 3)), P.rotateX(-Math.PI / 2), t.add(new y.Points(P, new y.PointsMaterial({ color: go(), size: 0.02 })));
1305
+ const [M, g] = vo(f, {
1306
1306
  plane: "xy",
1307
1307
  trimRatio: 0
1308
1308
  });
1309
- so(P, g, t);
1309
+ so(M, g, t);
1310
1310
  }
1311
1311
  };
1312
1312
  function en(n, t = "xy") {
@@ -1328,7 +1328,7 @@ function Po(n, t, e = "xy") {
1328
1328
  const o = en(n, e), i = t.map((a) => en(a, e));
1329
1329
  let r = !1, s = !1;
1330
1330
  for (let a = 0; a < 4; a++) {
1331
- const l = i[a], c = i[(a + 1) % 4], h = bo(l, c, o);
1331
+ const l = i[a], u = i[(a + 1) % 4], h = bo(l, u, o);
1332
1332
  if (h > 1e-9 && (r = !0), h < -1e-9 && (s = !0), r && s)
1333
1333
  return !1;
1334
1334
  }
@@ -1337,13 +1337,13 @@ function Po(n, t, e = "xy") {
1337
1337
  function Mo(n) {
1338
1338
  if (!n || n.length === 0)
1339
1339
  return null;
1340
- const t = new x.Vector3(0, 0, 0);
1340
+ const t = new y.Vector3(0, 0, 0);
1341
1341
  for (const e of n)
1342
1342
  Array.isArray(e) ? (t.x += e[0], t.y += e[1], t.z += e[2]) : (t.x += e.x, t.y += e.y, t.z += e.z);
1343
1343
  return t.divideScalar(n.length), t;
1344
1344
  }
1345
1345
  function zo(n) {
1346
- return n instanceof x.Vector3 ? n.clone() : Array.isArray(n) ? new x.Vector3(n[0], n[1], n[2]) : new x.Vector3(n.x, n.y, n.z);
1346
+ return n instanceof y.Vector3 ? n.clone() : Array.isArray(n) ? new y.Vector3(n[0], n[1], n[2]) : new y.Vector3(n.x, n.y, n.z);
1347
1347
  }
1348
1348
  function Vo(n, t = "xy") {
1349
1349
  const e = zo(n);
@@ -1369,22 +1369,22 @@ function Vo(n, t = "xy") {
1369
1369
  }
1370
1370
  function nn(n, t, e, o = "xy") {
1371
1371
  if (o === "xy")
1372
- return new x.Vector3(n, t, e);
1372
+ return new y.Vector3(n, t, e);
1373
1373
  if (o === "xz")
1374
- return new x.Vector3(n, e, t);
1374
+ return new y.Vector3(n, e, t);
1375
1375
  if (o === "yz")
1376
- return new x.Vector3(e, n, t);
1376
+ return new y.Vector3(e, n, t);
1377
1377
  throw new Error(`Unsupported plane: ${o}`);
1378
1378
  }
1379
1379
  function So(n, t, e) {
1380
1380
  if (Math.abs(t) < 1e-12)
1381
1381
  return n >= e ? { x: 1, y: 0 } : { x: 0, y: 1 };
1382
1382
  const i = n + e, r = n * e - t * t, s = Math.sqrt(Math.max(0, i * i * 0.25 - r)), a = i * 0.5 + s;
1383
- let l = t, c = a - n;
1384
- const h = Math.hypot(l, c);
1383
+ let l = t, u = a - n;
1384
+ const h = Math.hypot(l, u);
1385
1385
  return h < 1e-12 ? { x: 1, y: 0 } : {
1386
1386
  x: l / h,
1387
- y: c / h
1387
+ y: u / h
1388
1388
  };
1389
1389
  }
1390
1390
  function vo(n, t = {}) {
@@ -1401,18 +1401,18 @@ function vo(n, t = {}) {
1401
1401
  for (const B of i)
1402
1402
  r += B.x, s += B.y, a += B.up;
1403
1403
  r /= i.length, s /= i.length, a /= i.length;
1404
- let l = 0, c = 0, h = 0;
1404
+ let l = 0, u = 0, h = 0;
1405
1405
  for (const B of i) {
1406
1406
  const L = B.x - r, N = B.y - s;
1407
- l += L * L, c += L * N, h += N * N;
1407
+ l += L * L, u += L * N, h += N * N;
1408
1408
  }
1409
- l /= i.length, c /= i.length, h /= i.length;
1410
- const d = So(l, c, h), u = {
1409
+ l /= i.length, u /= i.length, h /= i.length;
1410
+ const d = So(l, u, h), c = {
1411
1411
  x: -d.y,
1412
1412
  y: d.x
1413
1413
  }, f = [];
1414
1414
  for (const B of i) {
1415
- const L = B.x - r, N = B.y - s, C = L * d.x + N * d.y, R = L * u.x + N * u.y;
1415
+ const L = B.x - r, N = B.y - s, C = L * d.x + N * d.y, R = L * c.x + N * c.y;
1416
1416
  f.push({
1417
1417
  s: C,
1418
1418
  t: R,
@@ -1421,15 +1421,15 @@ function vo(n, t = {}) {
1421
1421
  }
1422
1422
  f.sort((B, L) => B.s - L.s);
1423
1423
  const w = f.length;
1424
- let y = Math.floor(w * o), M = Math.ceil(w * (1 - o)) - 1;
1425
- y = Math.max(0, Math.min(w - 1, y)), M = Math.max(0, Math.min(w - 1, M));
1426
- const P = f[y], g = f[M], m = (() => {
1424
+ let x = Math.floor(w * o), P = Math.ceil(w * (1 - o)) - 1;
1425
+ x = Math.max(0, Math.min(w - 1, x)), P = Math.max(0, Math.min(w - 1, P));
1426
+ const M = f[x], g = f[P], m = (() => {
1427
1427
  const B = f.map((N) => N.t).sort((N, C) => N - C), L = Math.floor(B.length / 2);
1428
1428
  return B.length % 2 === 0 ? (B[L - 1] + B[L]) * 0.5 : B[L];
1429
1429
  })(), p = (() => {
1430
1430
  const B = f.map((N) => N.up).sort((N, C) => N - C), L = Math.floor(B.length / 2);
1431
1431
  return B.length % 2 === 0 ? (B[L - 1] + B[L]) * 0.5 : B[L];
1432
- })(), b = P.s, V = g.s, v = m, S = m, z = p, D = p, _ = r + d.x * b + u.x * v, E = s + d.y * b + u.y * v, T = r + d.x * V + u.x * S, A = s + d.y * V + u.y * S, O = nn(_, E, z, e), I = nn(T, A, D, e);
1432
+ })(), b = M.s, z = g.s, v = m, S = m, V = p, D = p, _ = r + d.x * b + c.x * v, E = s + d.y * b + c.y * v, T = r + d.x * z + c.x * S, A = s + d.y * z + c.y * S, O = nn(_, E, V, e), I = nn(T, A, D, e);
1433
1433
  return [O, I];
1434
1434
  }
1435
1435
  const wi = async (n, t, e, o, i) => {
@@ -1446,27 +1446,27 @@ const wi = async (n, t, e, o, i) => {
1446
1446
  if (!(!m.checkResults || m.checkResults.length <= 0)) {
1447
1447
  for (let b = 0; b < m.checkResults.length; b++) {
1448
1448
  let D = function(A) {
1449
- for (; z[A] !== A; )
1450
- z[A] = z[z[A]], A = z[A];
1449
+ for (; V[A] !== A; )
1450
+ V[A] = V[V[A]], A = V[A];
1451
1451
  return A;
1452
1452
  };
1453
- const V = m.checkResults[b];
1454
- if (V.isDoor = !1, !V.originalVertices || V.originalVertices.length == 0)
1453
+ const z = m.checkResults[b];
1454
+ if (z.isDoor = !1, !z.originalVertices || z.originalVertices.length == 0)
1455
1455
  continue;
1456
1456
  const v = [];
1457
- V.originalVertices.forEach((A) => {
1457
+ z.originalVertices.forEach((A) => {
1458
1458
  let O = [];
1459
1459
  A.forEach((I) => {
1460
- O.push(new x.Vector3(I.x, I.y, I.z));
1460
+ O.push(new y.Vector3(I.x, I.y, I.z));
1461
1461
  }), v.push(O);
1462
1462
  });
1463
- const S = v.length, z = Array.from({ length: S }, (A, O) => O);
1463
+ const S = v.length, V = Array.from({ length: S }, (A, O) => O);
1464
1464
  for (let A = 0; A < S; A++)
1465
1465
  for (let O = A + 1; O < S; O++) {
1466
1466
  const I = v[A], B = v[O];
1467
1467
  if (I.some((N) => B.some((C) => N.equals(C)))) {
1468
1468
  const N = D(A), C = D(O);
1469
- N !== C && (z[N] = C);
1469
+ N !== C && (V[N] = C);
1470
1470
  }
1471
1471
  }
1472
1472
  const _ = /* @__PURE__ */ new Map();
@@ -1484,11 +1484,11 @@ const wi = async (n, t, e, o, i) => {
1484
1484
  });
1485
1485
  const I = _.get(O);
1486
1486
  let [B, L, N, C] = v[A];
1487
- const R = new x.Vector3().add(B).add(L).add(N).add(C).multiplyScalar(0.25);
1487
+ const R = new y.Vector3().add(B).add(L).add(N).add(C).multiplyScalar(0.25);
1488
1488
  if (I.points.push(...v[A]), I.area += B.distanceTo(L) * B.distanceTo(C), I.originalVertices.push(v[A]), I.index = b, I.centerPts.push(R), E == -1 || T == -1) {
1489
- let $ = new x.Vector3().subVectors(B, L).normalize();
1489
+ let $ = new y.Vector3().subVectors(B, L).normalize();
1490
1490
  T = B.distanceTo(C), E = B.distanceTo(L);
1491
- let X = oe($, new x.Vector3(0, 0, 1));
1491
+ let X = oe($, new y.Vector3(0, 0, 1));
1492
1492
  X && X.parallel && ([T, E] = [E, T]);
1493
1493
  }
1494
1494
  I.gridWidth = E, I.gridHeight = T;
@@ -1520,14 +1520,14 @@ const wi = async (n, t, e, o, i) => {
1520
1520
  if (p.isFindBeam = !1, p.category == "door") {
1521
1521
  let b = [];
1522
1522
  p.coordinatesByArea.coordinates.forEach((D) => {
1523
- b.push(new x.Vector3(D.x, D.y, D.z));
1523
+ b.push(new y.Vector3(D.x, D.y, D.z));
1524
1524
  }), b[0].equals(b[b.length - 1]) && b.pop();
1525
- let V = b[0].distanceTo(b[1]), v = b[0].distanceTo(b[3]);
1526
- v > V && ([V, v] = [v, V], b = [b[0], b[3], b[2], b[1]]);
1527
- let S = ee(b[0], b[3], !0), z = ee(b[1], b[2], !0);
1525
+ let z = b[0].distanceTo(b[1]), v = b[0].distanceTo(b[3]);
1526
+ v > z && ([z, v] = [v, z], b = [b[0], b[3], b[2], b[1]]);
1527
+ let S = ee(b[0], b[3], !0), V = ee(b[1], b[2], !0);
1528
1528
  a.push({
1529
1529
  doorStartPt: S,
1530
- doorEndPt: z,
1530
+ doorEndPt: V,
1531
1531
  boxPoints: b,
1532
1532
  minZ: p.coordinatesByArea.heightData.minZ,
1533
1533
  maxZ: p.coordinatesByArea.heightData.maxZ,
@@ -1542,31 +1542,31 @@ const wi = async (n, t, e, o, i) => {
1542
1542
  const p = a[m];
1543
1543
  for (let b = 0; b < n.length; b++) {
1544
1544
  if (n[b].length < 0.5) continue;
1545
- let V = [];
1545
+ let z = [];
1546
1546
  const v = ee(n[b].start, n[b].end, !0);
1547
- V.push(v), V.push(ee(v, n[b].start, !0)), V.push(ee(v, n[b].end, !0));
1547
+ z.push(v), z.push(ee(v, n[b].start, !0)), z.push(ee(v, n[b].end, !0));
1548
1548
  let S = !1;
1549
- const z = p.boxPoints.length;
1550
- for (let D = 0; D < V.length; D++) {
1551
- const _ = V[D].x, E = V[D].y;
1552
- for (let T = 0, A = z - 1; T < z; A = T++) {
1549
+ const V = p.boxPoints.length;
1550
+ for (let D = 0; D < z.length; D++) {
1551
+ const _ = z[D].x, E = z[D].y;
1552
+ for (let T = 0, A = V - 1; T < V; A = T++) {
1553
1553
  const O = p.boxPoints[T].x, I = p.boxPoints[T].y, B = p.boxPoints[A].x, L = p.boxPoints[A].y;
1554
1554
  I > E != L > E && _ < (B - O) * (E - I) / (L - I) + O && (S = !S);
1555
1555
  }
1556
1556
  if (S) break;
1557
1557
  }
1558
1558
  if (S) {
1559
- let D = new x.Vector3(n[b].start.x, n[b].start.y, 0), _ = new x.Vector3(n[b].end.x, n[b].end.y, 0), E = p.doorStartPt.distanceTo(p.doorEndPt), T = D.distanceTo(_), A = Jt(p.doorStartPt, p.doorEndPt, D, _);
1559
+ let D = new y.Vector3(n[b].start.x, n[b].start.y, 0), _ = new y.Vector3(n[b].end.x, n[b].end.y, 0), E = p.doorStartPt.distanceTo(p.doorEndPt), T = D.distanceTo(_), A = Jt(p.doorStartPt, p.doorEndPt, D, _);
1560
1560
  if (Math.abs(T - E) < 0.5 && A && A.angleDeg < 15) {
1561
- p.doorStartPt = new x.Vector3(n[b].start.x, n[b].start.y, 0), p.doorEndPt = new x.Vector3(n[b].end.x, n[b].end.y, 0);
1561
+ p.doorStartPt = new y.Vector3(n[b].start.x, n[b].start.y, 0), p.doorEndPt = new y.Vector3(n[b].end.x, n[b].end.y, 0);
1562
1562
  break;
1563
1563
  } else if (Math.abs(T - E) > 1.3 && A && A.angleDeg < 15) {
1564
- let O = ne(p.doorStartPt, p.doorEndPt, D, _, { parallelAngleMax: x.MathUtils.degToRad(15) }), I = p.doorStartPt.distanceTo(D), B = p.doorStartPt.distanceTo(_), L = p.doorEndPt.distanceTo(D), N = p.doorEndPt.distanceTo(_), C = I < 0.2 || B < 0.2 || L < 0.2 || N < 0.2;
1564
+ let O = ne(p.doorStartPt, p.doorEndPt, D, _, { parallelAngleMax: y.MathUtils.degToRad(15) }), I = p.doorStartPt.distanceTo(D), B = p.doorStartPt.distanceTo(_), L = p.doorEndPt.distanceTo(D), N = p.doorEndPt.distanceTo(_), C = I < 0.2 || B < 0.2 || L < 0.2 || N < 0.2;
1565
1565
  if (O && O.type == "collinear_overlap" && O.maxPerpendicularDistance < 0.1 && !C) {
1566
1566
  p.inWall = !0;
1567
1567
  break;
1568
1568
  } else {
1569
- let R = new x.Line3(D, _), $ = R.closestPointToPoint(p.doorStartPt, !0, new x.Vector3()), X = R.closestPointToPoint(p.doorEndPt, !0, new x.Vector3()), ot = $.distanceTo(p.doorStartPt), K = X.distanceTo(p.doorEndPt);
1569
+ let R = new y.Line3(D, _), $ = R.closestPointToPoint(p.doorStartPt, !0, new y.Vector3()), X = R.closestPointToPoint(p.doorEndPt, !0, new y.Vector3()), ot = $.distanceTo(p.doorStartPt), K = X.distanceTo(p.doorEndPt);
1570
1570
  if (ot < 0.1 || K < 0.1) {
1571
1571
  p.inWall = !0;
1572
1572
  break;
@@ -1577,20 +1577,20 @@ const wi = async (n, t, e, o, i) => {
1577
1577
  continue;
1578
1578
  }
1579
1579
  }
1580
- let l = 0, c = [], h = [], d = [];
1581
- const u = [];
1580
+ let l = 0, u = [], h = [], d = [];
1581
+ const c = [];
1582
1582
  let f = 0.15;
1583
1583
  for (let m = 0; m < n.length; m++) {
1584
1584
  const p = n[m];
1585
1585
  if (p.noDetection || (p.doorAndBeamData = [], !p.mergeCheckRegion || p.mergeCheckRegion.length == 0))
1586
1586
  continue;
1587
1587
  p.completePointAreaPercentage = -1;
1588
- let b = new x.Box3();
1588
+ let b = new y.Box3();
1589
1589
  b.setFromPoints(p.originalPoints);
1590
- let V = b.max.z;
1590
+ let z = b.max.z;
1591
1591
  b.min.z;
1592
- const v = new x.Vector3(p.start.x, p.start.y, p.start.z), S = new x.Vector3(p.end.x, p.end.y, p.end.z);
1593
- let z = p.rooftopPz - p.start.z, D = 0;
1592
+ const v = new y.Vector3(p.start.x, p.start.y, p.start.z), S = new y.Vector3(p.end.x, p.end.y, p.end.z);
1593
+ let V = p.rooftopPz - p.start.z, D = 0;
1594
1594
  for (const E of p.mergeCheckRegion) {
1595
1595
  const { facePoints: T, boxArea: A, totalInPlaneNum: O } = co(
1596
1596
  E.points,
@@ -1603,9 +1603,9 @@ const wi = async (n, t, e, o, i) => {
1603
1603
  T[0].distanceTo(T[1]);
1604
1604
  let I = T[0].distanceTo(T[3]);
1605
1605
  const B = E.gridHeight * (I / E.gridHeight / 3 * 2) + E.gridHeight / 2;
1606
- let L = new x.Vector3(T[0].x, T[0].y, T[0].z + B), N = new x.Vector3(T[1].x, T[1].y, T[1].z + B);
1607
- const C = new x.Line3(L, N), R = [];
1608
- let $ = new x.Vector3();
1606
+ let L = new y.Vector3(T[0].x, T[0].y, T[0].z + B), N = new y.Vector3(T[1].x, T[1].y, T[1].z + B);
1607
+ const C = new y.Line3(L, N), R = [];
1608
+ let $ = new y.Vector3();
1609
1609
  E.points.forEach((rt) => {
1610
1610
  C.closestPointToPoint(rt, !0, $).distanceTo(rt) < E.gridHeight + 0.01 && R.push(rt);
1611
1611
  });
@@ -1629,12 +1629,12 @@ const wi = async (n, t, e, o, i) => {
1629
1629
  const K = [];
1630
1630
  for (let rt = 0; rt < X.length; rt++) {
1631
1631
  const F = {
1632
- lineSt: new x.Vector3(),
1633
- lineEd: new x.Vector3(),
1632
+ lineSt: new y.Vector3(),
1633
+ lineEd: new y.Vector3(),
1634
1634
  facePoints: []
1635
1635
  };
1636
1636
  let H = Se(X[rt]);
1637
- Array.isArray(H) && H.length == 2 && (F.lineSt = H[0], F.lineEd = H[1], F.facePoints.push(new x.Vector3(H[0].x, H[0].y, T[0].z)), F.facePoints.push(new x.Vector3(H[1].x, H[1].y, T[0].z)), F.facePoints.push(new x.Vector3(H[1].x, H[1].y, T[2].z)), F.facePoints.push(new x.Vector3(H[0].x, H[0].y, T[2].z)), K.push(F));
1637
+ Array.isArray(H) && H.length == 2 && (F.lineSt = H[0], F.lineEd = H[1], F.facePoints.push(new y.Vector3(H[0].x, H[0].y, T[0].z)), F.facePoints.push(new y.Vector3(H[1].x, H[1].y, T[0].z)), F.facePoints.push(new y.Vector3(H[1].x, H[1].y, T[2].z)), F.facePoints.push(new y.Vector3(H[0].x, H[0].y, T[2].z)), K.push(F));
1638
1638
  }
1639
1639
  D += E.area;
1640
1640
  let G = 0;
@@ -1642,7 +1642,7 @@ const wi = async (n, t, e, o, i) => {
1642
1642
  for (let rt = 0; rt < K.length; rt++) {
1643
1643
  const F = K[rt];
1644
1644
  let H = F.facePoints[0].distanceTo(F.facePoints[1]), Mt = F.facePoints[0].distanceTo(F.facePoints[3]), Zt = H / p.length * 100, qt = p.rooftopPz - F.facePoints[2].z;
1645
- if (Mt < 1.5 || V < F.facePoints[2].z || qt > z / 3 * 2)
1645
+ if (Mt < 1.5 || z < F.facePoints[2].z || qt > V / 3 * 2)
1646
1646
  continue;
1647
1647
  let Rt = !1, _t = !1, Et = !1, Ft = [], tt = F.facePoints[2].clone(), lt = F.facePoints[3].clone(), W = F.facePoints[0].clone(), j = F.facePoints[1].clone(), Nt = !1, Tt = -1;
1648
1648
  if (Math.abs(F.facePoints[0].z - p.start.z) < 0.25) {
@@ -1654,11 +1654,11 @@ const wi = async (n, t, e, o, i) => {
1654
1654
  if (Ut.forEach((Q) => {
1655
1655
  Q.z >= tt.z ? at.push(Q) : Q.z <= W.z;
1656
1656
  }), at.length > 10) {
1657
- const Q = new x.Vector3(p.start.x, p.start.y, 0), gt = new x.Vector3(p.end.x, p.end.y, 0), Pt = new x.Vector3().subVectors(Q, gt).normalize();
1658
- let Gt = new x.Vector3(), ht = 1 / 0, Z = -1, k = !1, ft = !1;
1657
+ const Q = new y.Vector3(p.start.x, p.start.y, 0), gt = new y.Vector3(p.end.x, p.end.y, 0), Pt = new y.Vector3().subVectors(Q, gt).normalize();
1658
+ let Gt = new y.Vector3(), ht = 1 / 0, Z = -1, k = !1, ft = !1;
1659
1659
  for (let U = 0; U < n.length; U++) {
1660
1660
  if (U == m) continue;
1661
- const it = new x.Vector3(n[U].start.x, n[U].start.y, 0), dt = new x.Vector3(n[U].end.x, n[U].end.y, 0), Ct = te(Q, gt, it, dt);
1661
+ const it = new y.Vector3(n[U].start.x, n[U].start.y, 0), dt = new y.Vector3(n[U].end.x, n[U].end.y, 0), Ct = te(Q, gt, it, dt);
1662
1662
  let St = re(Q, gt, it, dt);
1663
1663
  if (Ct != null) {
1664
1664
  if (St && St.angle > 85) {
@@ -1671,22 +1671,22 @@ const wi = async (n, t, e, o, i) => {
1671
1671
  continue;
1672
1672
  }
1673
1673
  if (St && St.angle > 85) {
1674
- const Y = new x.Line3(it, dt).closestPointToPoint(Q, !0, Gt);
1674
+ const Y = new y.Line3(it, dt).closestPointToPoint(Q, !0, Gt);
1675
1675
  let pt = Jt(Q, gt, Y, Q);
1676
1676
  if (!pt || pt.direction != "same") continue;
1677
1677
  const et = Q.clone().addScaledVector(Pt, Vt), st = gt.clone().addScaledVector(Pt.clone().negate(), Vt);
1678
- let xt = new x.Vector3().subVectors(dt, it).normalize(), vt = it.clone().addScaledVector(xt.clone().negate(), 0.03), Bt = dt.clone().addScaledVector(xt, 0.03);
1678
+ let xt = new y.Vector3().subVectors(dt, it).normalize(), vt = it.clone().addScaledVector(xt.clone().negate(), 0.03), Bt = dt.clone().addScaledVector(xt, 0.03);
1679
1679
  const wt = te(et, st, vt, Bt);
1680
1680
  if (wt == null) continue;
1681
1681
  let Xt = Q.distanceTo(wt.point);
1682
1682
  Xt < ht && (ht = Xt, Z = U);
1683
1683
  } else if (St && St.angle < 5) {
1684
- const At = new x.Vector3(W.x, W.y, 0), Y = new x.Vector3(j.x, j.y, 0);
1684
+ const At = new y.Vector3(W.x, W.y, 0), Y = new y.Vector3(j.x, j.y, 0);
1685
1685
  let pt = Lt(At, it), et = Lt(At, dt), st = Lt(Y, it), xt = Lt(Y, dt), vt = Jt(Q, gt, it, At), Bt = !1;
1686
1686
  for (let wt = 0; wt < n[U].checkResults.length; wt++) {
1687
1687
  let Xt = [];
1688
1688
  for (let Kt = 0; Kt < n[U].checkResults[wt].allCenterPoints.length; Kt++)
1689
- Xt.push(new x.Vector3(
1689
+ Xt.push(new y.Vector3(
1690
1690
  n[U].checkResults[wt].allCenterPoints[Kt].x,
1691
1691
  n[U].checkResults[wt].allCenterPoints[Kt].y,
1692
1692
  0
@@ -1722,11 +1722,11 @@ const wi = async (n, t, e, o, i) => {
1722
1722
  if (Ut.forEach((Q) => {
1723
1723
  Q.z >= tt.z ? at.push(Q) : Q.z <= W.z;
1724
1724
  }), at.length > 10) {
1725
- const Q = new x.Vector3(p.start.x, p.start.y, 0), gt = new x.Vector3(p.end.x, p.end.y, 0), Pt = new x.Vector3().subVectors(gt, Q).normalize();
1726
- let Gt = new x.Vector3(), ht = 1 / 0, Z = -1, k = !1, ft = !1;
1725
+ const Q = new y.Vector3(p.start.x, p.start.y, 0), gt = new y.Vector3(p.end.x, p.end.y, 0), Pt = new y.Vector3().subVectors(gt, Q).normalize();
1726
+ let Gt = new y.Vector3(), ht = 1 / 0, Z = -1, k = !1, ft = !1;
1727
1727
  for (let U = 0; U < n.length; U++) {
1728
1728
  if (U == m) continue;
1729
- const it = new x.Vector3(n[U].start.x, n[U].start.y, 0), dt = new x.Vector3(n[U].end.x, n[U].end.y, 0), Ct = te(Q, gt, it, dt);
1729
+ const it = new y.Vector3(n[U].start.x, n[U].start.y, 0), dt = new y.Vector3(n[U].end.x, n[U].end.y, 0), Ct = te(Q, gt, it, dt);
1730
1730
  let St = re(Q, gt, it, dt);
1731
1731
  if (Ct != null) {
1732
1732
  if (St && St.angle > 85 && (Ct.point.distanceTo(Q), Ct.point.distanceTo(gt) < 0.3)) {
@@ -1736,22 +1736,22 @@ const wi = async (n, t, e, o, i) => {
1736
1736
  continue;
1737
1737
  }
1738
1738
  if (St && St.angle > 85) {
1739
- const Y = new x.Line3(it, dt).closestPointToPoint(gt, !0, Gt);
1739
+ const Y = new y.Line3(it, dt).closestPointToPoint(gt, !0, Gt);
1740
1740
  let pt = Jt(gt, Q, Y, gt);
1741
1741
  if (!pt || pt.direction != "same") continue;
1742
1742
  const et = Q.clone().addScaledVector(Pt.clone().negate(), Vt), st = gt.clone().addScaledVector(Pt, Vt);
1743
- let xt = new x.Vector3().subVectors(dt, it).normalize(), vt = it.clone().addScaledVector(xt.clone().negate(), 0.03), Bt = dt.clone().addScaledVector(xt, 0.03);
1743
+ let xt = new y.Vector3().subVectors(dt, it).normalize(), vt = it.clone().addScaledVector(xt.clone().negate(), 0.03), Bt = dt.clone().addScaledVector(xt, 0.03);
1744
1744
  const wt = te(et, st, vt, Bt);
1745
1745
  if (wt == null) continue;
1746
1746
  let Xt = gt.distanceTo(wt.point);
1747
1747
  Xt < ht && (ht = Xt, Z = U);
1748
1748
  } else if (St && St.angle < 5) {
1749
- const At = new x.Vector3(W.x, W.y, 0), Y = new x.Vector3(j.x, j.y, 0);
1749
+ const At = new y.Vector3(W.x, W.y, 0), Y = new y.Vector3(j.x, j.y, 0);
1750
1750
  let pt = Lt(At, it), et = Lt(At, dt), st = Lt(Y, it), xt = Lt(Y, dt), vt = Jt(gt, Q, it, At), Bt = !1;
1751
1751
  for (let wt = 0; wt < n[U].checkResults.length; wt++) {
1752
1752
  let Xt = [];
1753
1753
  for (let Kt = 0; Kt < n[U].checkResults[wt].allCenterPoints.length; Kt++)
1754
- Xt.push(new x.Vector3(
1754
+ Xt.push(new y.Vector3(
1755
1755
  n[U].checkResults[wt].allCenterPoints[Kt].x,
1756
1756
  n[U].checkResults[wt].allCenterPoints[Kt].y,
1757
1757
  0
@@ -1784,18 +1784,18 @@ const wi = async (n, t, e, o, i) => {
1784
1784
  }
1785
1785
  H = lt.distanceTo(tt);
1786
1786
  }
1787
- if (Zt < 85 && H > 0.3 || H > 0.7 && Mt > z - z / 3) {
1787
+ if (Zt < 85 && H > 0.3 || H > 0.7 && Mt > V - V / 3) {
1788
1788
  let Wt = !1;
1789
1789
  for (let J = 0; J < t.length; J++) {
1790
1790
  let ct = J + 1;
1791
1791
  if (ct >= t.length)
1792
1792
  continue;
1793
- let q = new x.Vector3(t[J].x, t[J].y, t[J].z), bt = new x.Vector3(t[ct].x, t[ct].y, t[ct].z);
1793
+ let q = new y.Vector3(t[J].x, t[J].y, t[J].z), bt = new y.Vector3(t[ct].x, t[ct].y, t[ct].z);
1794
1794
  if (te(
1795
- new x.Vector3(q.x, q.y, 0),
1796
- new x.Vector3(bt.x, bt.y, 0),
1797
- new x.Vector3(F.facePoints[0].x, F.facePoints[0].y, 0),
1798
- new x.Vector3(F.facePoints[1].x, F.facePoints[1].y, 0),
1795
+ new y.Vector3(q.x, q.y, 0),
1796
+ new y.Vector3(bt.x, bt.y, 0),
1797
+ new y.Vector3(F.facePoints[0].x, F.facePoints[0].y, 0),
1798
+ new y.Vector3(F.facePoints[1].x, F.facePoints[1].y, 0),
1799
1799
  0.1
1800
1800
  ) != null) {
1801
1801
  Wt = !0;
@@ -1803,13 +1803,13 @@ const wi = async (n, t, e, o, i) => {
1803
1803
  }
1804
1804
  }
1805
1805
  for (let J = 0; J < a.length; J++) {
1806
- let ct = new x.Vector3(a[J].doorStartPt.x, a[J].doorStartPt.y, 0), q = new x.Vector3(a[J].doorEndPt.x, a[J].doorEndPt.y, 0), bt = new x.Vector3(F.facePoints[0].x, F.facePoints[0].y, 0), Vt = new x.Vector3(F.facePoints[1].x, F.facePoints[1].y, 0), Ut = F.facePoints[2].z < a[J].maxZ || Math.abs(F.facePoints[2].z - a[J].maxZ) < 0.3;
1806
+ let ct = new y.Vector3(a[J].doorStartPt.x, a[J].doorStartPt.y, 0), q = new y.Vector3(a[J].doorEndPt.x, a[J].doorEndPt.y, 0), bt = new y.Vector3(F.facePoints[0].x, F.facePoints[0].y, 0), Vt = new y.Vector3(F.facePoints[1].x, F.facePoints[1].y, 0), Ut = F.facePoints[2].z < a[J].maxZ || Math.abs(F.facePoints[2].z - a[J].maxZ) < 0.3;
1807
1807
  if (Math.abs(F.facePoints[2].z - a[J].maxZ) > 0.2, Ut) {
1808
1808
  let at = ne(ct.clone(), q.clone(), bt.clone(), Vt.clone(), {
1809
1809
  distanceThreshold: 2
1810
1810
  });
1811
1811
  if (at && at.type == "collinear_gap") {
1812
- let Q = ee(ct, q), gt = new x.Line3(new x.Vector3(p.start.x, p.start.y, 0), new x.Vector3(p.end.x, p.end.y, 0)), Pt = new x.Vector3(), Gt = gt.closestPointToPoint(Q, !0, Pt);
1812
+ let Q = ee(ct, q), gt = new y.Line3(new y.Vector3(p.start.x, p.start.y, 0), new y.Vector3(p.end.x, p.end.y, 0)), Pt = new y.Vector3(), Gt = gt.closestPointToPoint(Q, !0, Pt);
1813
1813
  if (Q.distanceTo(Gt) < 0.15) {
1814
1814
  let Z = bt.distanceTo(ct), k = Vt.distanceTo(ct);
1815
1815
  if (Z > 0.25 && k > 0.25) {
@@ -1818,14 +1818,14 @@ const wi = async (n, t, e, o, i) => {
1818
1818
  continue;
1819
1819
  }
1820
1820
  _t = !0, Et = !0, Ft.push(a[J].index), a[J].isFind = !0, Tt = J, e[a[J].index].isFindBeam = !0;
1821
- let ft = new x.Vector3().subVectors(bt, Vt).normalize(), U = ct.distanceTo(q) - at.overlap;
1821
+ let ft = new y.Vector3().subVectors(bt, Vt).normalize(), U = ct.distanceTo(q) - at.overlap;
1822
1822
  k < Z && ft.negate(), Z > k ? (tt = F.facePoints[2].clone().addScaledVector(ft, U), lt = F.facePoints[3].clone(), W = lt.clone(), j = tt.clone(), W.z = j.z = F.facePoints[0].z) : (tt = F.facePoints[2].clone(), lt = F.facePoints[3].clone().addScaledVector(ft, U), W = lt.clone(), j = tt.clone(), W.z = j.z = F.facePoints[0].z);
1823
1823
  }
1824
1824
  } else if (at && at.type == "collinear_overlap" && at.maxPerpendicularDistance < 0.35) {
1825
1825
  let Q = bt.distanceTo(Vt), gt = q.distanceTo(ct);
1826
1826
  if (Math.abs(Q - at.overlap) < 0.25 || Math.abs(gt - at.overlap) < 0.25) {
1827
1827
  if (gt > Q && Math.abs(gt - at.overlap) > 1) {
1828
- let Pt = bt.distanceTo(ct), Gt = bt.distanceTo(q), ht = Vt.distanceTo(ct), Z = Vt.distanceTo(q), k = Pt < Gt ? Pt : Gt, ft = ht < Z ? ht : Z, U = new x.Vector3().subVectors(bt, Vt).normalize(), it = gt - at.overlap;
1828
+ let Pt = bt.distanceTo(ct), Gt = bt.distanceTo(q), ht = Vt.distanceTo(ct), Z = Vt.distanceTo(q), k = Pt < Gt ? Pt : Gt, ft = ht < Z ? ht : Z, U = new y.Vector3().subVectors(bt, Vt).normalize(), it = gt - at.overlap;
1829
1829
  k < ft ? (U.negate(), tt = F.facePoints[2].clone().addScaledVector(U, it), lt = F.facePoints[3].clone(), W = lt.clone(), j = tt.clone(), W.z = j.z = F.facePoints[0].z) : (tt = F.facePoints[2].clone(), lt = F.facePoints[3].clone().addScaledVector(U, it), W = lt.clone(), j = tt.clone(), W.z = j.z = F.facePoints[0].z);
1830
1830
  }
1831
1831
  _t = !0, Et = !0, Ft.push(a[J].index), a[J].isFind = !0, e[a[J].index].isFindBeam = !0, Tt = J;
@@ -1836,10 +1836,10 @@ const wi = async (n, t, e, o, i) => {
1836
1836
  if (!Et && H < 1.5)
1837
1837
  for (let J = 0; J < a.length; J++) {
1838
1838
  if (a[J].inWall) continue;
1839
- let ct = new x.Vector3(a[J].doorStartPt.x, a[J].doorStartPt.y, 0), q = new x.Vector3(a[J].doorEndPt.x, a[J].doorEndPt.y, 0), bt = new x.Vector3(F.facePoints[0].x, F.facePoints[0].y, 0), Vt = new x.Vector3(F.facePoints[1].x, F.facePoints[1].y, 0), Ut = new x.Vector3().subVectors(ct, q).normalize(), at = new x.Vector3().subVectors(bt, Vt).normalize(), Q = 0.25, gt = ct.clone().addScaledVector(Ut, Q), Pt = q.clone().addScaledVector(Ut.clone().negate(), Q), Gt = bt.clone().addScaledVector(at, Q), ht = Vt.clone().addScaledVector(at.clone().negate(), Q), Z = te(gt, Pt, Gt, ht), k = !0, ft = ct.distanceTo(bt), U = ct.distanceTo(Vt), it = q.distanceTo(bt), dt = q.distanceTo(Vt);
1839
+ let ct = new y.Vector3(a[J].doorStartPt.x, a[J].doorStartPt.y, 0), q = new y.Vector3(a[J].doorEndPt.x, a[J].doorEndPt.y, 0), bt = new y.Vector3(F.facePoints[0].x, F.facePoints[0].y, 0), Vt = new y.Vector3(F.facePoints[1].x, F.facePoints[1].y, 0), Ut = new y.Vector3().subVectors(ct, q).normalize(), at = new y.Vector3().subVectors(bt, Vt).normalize(), Q = 0.25, gt = ct.clone().addScaledVector(Ut, Q), Pt = q.clone().addScaledVector(Ut.clone().negate(), Q), Gt = bt.clone().addScaledVector(at, Q), ht = Vt.clone().addScaledVector(at.clone().negate(), Q), Z = te(gt, Pt, Gt, ht), k = !0, ft = ct.distanceTo(bt), U = ct.distanceTo(Vt), it = q.distanceTo(bt), dt = q.distanceTo(Vt);
1840
1840
  (ft < f || U < f || it < f || dt < f || Z) && k && (e[a[J].index].isFindBeam = !0, _t = !0, a[J].isFind = !0, Tt = J);
1841
1841
  }
1842
- (_t || Wt || Math.abs(Mt - z) > 0.1 && Mt > z / 2 && H > 0.3) && (Rt = !0);
1842
+ (_t || Wt || Math.abs(Mt - V) > 0.1 && Mt > V / 2 && H > 0.3) && (Rt = !0);
1843
1843
  }
1844
1844
  }
1845
1845
  if (Rt) {
@@ -1860,13 +1860,13 @@ const wi = async (n, t, e, o, i) => {
1860
1860
  end: j
1861
1861
  });
1862
1862
  {
1863
- new x.PointsMaterial({ color: 65535, size: 0.01 });
1864
- let Z = new x.Vector3().subVectors(W, j), k = new x.Vector3().subVectors(j, W), ft = 1 / 0, U = 1 / 0, it = W.clone(), dt = j.clone();
1863
+ new y.PointsMaterial({ color: 65535, size: 0.01 });
1864
+ let Z = new y.Vector3().subVectors(W, j), k = new y.Vector3().subVectors(j, W), ft = 1 / 0, U = 1 / 0, it = W.clone(), dt = j.clone();
1865
1865
  const Ct = [], St = [];
1866
- let At = new x.Line3(tt, lt), Y = new x.Vector3(), pt = 999999;
1866
+ let At = new y.Line3(tt, lt), Y = new y.Vector3(), pt = 999999;
1867
1867
  if (p.originalPoints.forEach((et) => {
1868
1868
  if (et.z - W.z < Mt / 2 + 0.1 && et.z - W.z > Mt / 2 - 0.1 && Ct.push(et), et.z > tt.z) {
1869
- let st = At.closestPointToPoint(et, !0, Y), xt = new x.Vector3().subVectors(st, tt), vt = new x.Vector3().subVectors(st, lt), Bt = oe(Z, vt), wt = oe(k, xt);
1869
+ let st = At.closestPointToPoint(et, !0, Y), xt = new y.Vector3().subVectors(st, tt), vt = new y.Vector3().subVectors(st, lt), Bt = oe(Z, vt), wt = oe(k, xt);
1870
1870
  Bt && Bt.parallel && !Bt.sameDirection && wt && wt.parallel && !wt.sameDirection && St.push(et);
1871
1871
  }
1872
1872
  }), Ct.length > 0) {
@@ -1874,7 +1874,7 @@ const wi = async (n, t, e, o, i) => {
1874
1874
  for (const st of et)
1875
1875
  st.z = W.z;
1876
1876
  et.forEach((st) => {
1877
- let xt = new x.Vector3(st.x, st.y, W.z), vt = new x.Vector3().subVectors(xt, j), Bt = new x.Vector3().subVectors(xt, W), wt = oe(Z, Bt), Xt = oe(k, vt);
1877
+ let xt = new y.Vector3(st.x, st.y, W.z), vt = new y.Vector3().subVectors(xt, j), Bt = new y.Vector3().subVectors(xt, W), wt = oe(Z, Bt), Xt = oe(k, vt);
1878
1878
  if (wt && wt.parallel && wt.sameDirection) {
1879
1879
  let $t = xt.distanceTo(W);
1880
1880
  $t < ft && (ft = $t, it = xt);
@@ -1884,7 +1884,7 @@ const wi = async (n, t, e, o, i) => {
1884
1884
  }
1885
1885
  });
1886
1886
  }
1887
- if (it.equals(W) || (W = it, lt = new x.Vector3(W.x, W.y, lt.z)), dt.equals(j) || (j = dt, tt = new x.Vector3(j.x, j.y, tt.z)), St.length > 10) {
1887
+ if (it.equals(W) || (W = it, lt = new y.Vector3(W.x, W.y, lt.z)), dt.equals(j) || (j = dt, tt = new y.Vector3(j.x, j.y, tt.z)), St.length > 10) {
1888
1888
  const { newOnLinePoints: et } = ze(lt, tt, St);
1889
1889
  for (let st = 0; st < et.length; st++) {
1890
1890
  let vt = At.closestPointToPoint(et[st], !0, Y).distanceTo(et[st]);
@@ -1912,10 +1912,10 @@ const wi = async (n, t, e, o, i) => {
1912
1912
  isDoor: _t,
1913
1913
  isPullOutDoor: Et,
1914
1914
  pcbDoorIndexs: Ft,
1915
- beamNearWallVec: new x.Vector3(0, 0, 0)
1916
- }, bt = !1, Vt = new x.Vector3(), Ut = new x.Vector3(), at = -1, Q = -1, gt = -1;
1917
- for (let Z = 0; Z < c.length; Z++) {
1918
- const k = n[c[Z].linesIndex].doorAndBeamData[c[Z].doorIndex];
1915
+ beamNearWallVec: new y.Vector3(0, 0, 0)
1916
+ }, bt = !1, Vt = new y.Vector3(), Ut = new y.Vector3(), at = -1, Q = -1, gt = -1;
1917
+ for (let Z = 0; Z < u.length; Z++) {
1918
+ const k = n[u[Z].linesIndex].doorAndBeamData[u[Z].doorIndex];
1919
1919
  if (k.nearId != -1)
1920
1920
  continue;
1921
1921
  let ft = Jt(
@@ -1925,38 +1925,38 @@ const wi = async (n, t, e, o, i) => {
1925
1925
  k.beamEnd.clone()
1926
1926
  );
1927
1927
  if (ft && ft.isParallel) {
1928
- let U = tt.distanceTo(lt), it = k.beamStart.distanceTo(k.beamEnd), dt = new x.Line3(tt.clone(), lt.clone());
1928
+ let U = tt.distanceTo(lt), it = k.beamStart.distanceTo(k.beamEnd), dt = new y.Line3(tt.clone(), lt.clone());
1929
1929
  dt.start.z = 0, dt.end.z = 0;
1930
1930
  let Ct = ee(k.beamStart, k.beamEnd, !0);
1931
- it > U && (dt.start = new x.Vector3(k.beamStart.x, k.beamStart.y, 0), dt.end = new x.Vector3(k.beamEnd.x, k.beamEnd.y, 0), Ct = ee(tt, lt, !0));
1932
- let St = new x.Vector3(), At = dt.closestPointToPoint(Ct, !0, St), Y = At.distanceTo(Ct), pt = new x.Vector3().subVectors(Ct, At).normalize(), et = pt.clone().negate(), st = Ct.clone().addScaledVector(et, Y + 0.1), xt = te(dt.start, dt.end, Ct, st), vt = !_t && !k.isDoor && (U > it * 2 || it > U * 2);
1931
+ it > U && (dt.start = new y.Vector3(k.beamStart.x, k.beamStart.y, 0), dt.end = new y.Vector3(k.beamEnd.x, k.beamEnd.y, 0), Ct = ee(tt, lt, !0));
1932
+ let St = new y.Vector3(), At = dt.closestPointToPoint(Ct, !0, St), Y = At.distanceTo(Ct), pt = new y.Vector3().subVectors(Ct, At).normalize(), et = pt.clone().negate(), st = Ct.clone().addScaledVector(et, Y + 0.1), xt = te(dt.start, dt.end, Ct, st), vt = !_t && !k.isDoor && (U > it * 2 || it > U * 2);
1933
1933
  if (Y < 0.4 && xt != null && !vt) {
1934
1934
  k.nearId = l, q.nearId = k.id;
1935
1935
  let Bt = 0.8;
1936
1936
  (k.isDoor || q.isDoor) && (k.isDoor = !0, q.isDoor = !0);
1937
1937
  const wt = Ft.some((Xt) => k.pcbDoorIndexs.includes(Xt));
1938
- U < it ? U > Bt && !k.isPullOutDoor ? (k.beamStart = tt.clone().addScaledVector(et, Y), k.beamEnd = lt.clone().addScaledVector(et, Y), k.doorStart = W.clone().addScaledVector(et, Y), k.doorEnd = j.clone().addScaledVector(et, Y), k.doorHeight = q.doorHeight, k.beamStart.z = k.beamEnd.z = k.doorStart.z + k.doorHeight) : !Et || Et && k.isPullOutDoor && wt ? (q.beamStart = k.beamStart.clone().addScaledVector(pt, Y), q.beamEnd = k.beamEnd.clone().addScaledVector(pt, Y), q.doorStart = k.doorStart.clone().addScaledVector(pt, Y), q.doorEnd = k.doorEnd.clone().addScaledVector(pt, Y), q.doorHeight = k.doorHeight, q.beamStart.z = q.beamEnd.z = q.doorStart.z + q.doorHeight) : (k.beamStart = tt.clone().addScaledVector(et, Y), k.beamEnd = lt.clone().addScaledVector(et, Y), k.doorStart = W.clone().addScaledVector(et, Y), k.doorEnd = j.clone().addScaledVector(et, Y), k.doorHeight = q.doorHeight, k.beamStart.z = k.beamEnd.z = k.doorStart.z + k.doorHeight) : U > it && (it > Bt && !Et ? (q.beamStart = k.beamStart.clone().addScaledVector(et, Y), q.beamEnd = k.beamEnd.clone().addScaledVector(et, Y), q.doorStart = k.doorStart.clone().addScaledVector(et, Y), q.doorEnd = k.doorEnd.clone().addScaledVector(et, Y), q.doorHeight = k.doorHeight, q.beamStart.z = q.beamEnd.z = q.doorStart.z + q.doorHeight) : !k.isPullOutDoor || Et && k.isPullOutDoor && wt ? (k.beamStart = tt.clone().addScaledVector(pt, Y), k.beamEnd = lt.clone().addScaledVector(pt, Y), k.doorStart = W.clone().addScaledVector(pt, Y), k.doorEnd = j.clone().addScaledVector(pt, Y), k.doorHeight = q.doorHeight, k.beamStart.z = k.beamEnd.z = k.doorStart.z + k.doorHeight) : (q.beamStart = k.beamStart.clone().addScaledVector(et, Y), q.beamEnd = k.beamEnd.clone().addScaledVector(et, Y), q.doorStart = k.doorStart.clone().addScaledVector(et, Y), q.doorEnd = k.doorEnd.clone().addScaledVector(et, Y), q.doorHeight = k.doorHeight, q.beamStart.z = q.beamEnd.z = q.doorStart.z + q.doorHeight)), at = q.nearId, Vt = k.beamStart.clone(), Ut = k.beamEnd.clone(), bt = !0, Q = c[Z].linesIndex, gt = c[Z].doorIndex;
1938
+ U < it ? U > Bt && !k.isPullOutDoor ? (k.beamStart = tt.clone().addScaledVector(et, Y), k.beamEnd = lt.clone().addScaledVector(et, Y), k.doorStart = W.clone().addScaledVector(et, Y), k.doorEnd = j.clone().addScaledVector(et, Y), k.doorHeight = q.doorHeight, k.beamStart.z = k.beamEnd.z = k.doorStart.z + k.doorHeight) : !Et || Et && k.isPullOutDoor && wt ? (q.beamStart = k.beamStart.clone().addScaledVector(pt, Y), q.beamEnd = k.beamEnd.clone().addScaledVector(pt, Y), q.doorStart = k.doorStart.clone().addScaledVector(pt, Y), q.doorEnd = k.doorEnd.clone().addScaledVector(pt, Y), q.doorHeight = k.doorHeight, q.beamStart.z = q.beamEnd.z = q.doorStart.z + q.doorHeight) : (k.beamStart = tt.clone().addScaledVector(et, Y), k.beamEnd = lt.clone().addScaledVector(et, Y), k.doorStart = W.clone().addScaledVector(et, Y), k.doorEnd = j.clone().addScaledVector(et, Y), k.doorHeight = q.doorHeight, k.beamStart.z = k.beamEnd.z = k.doorStart.z + k.doorHeight) : U > it && (it > Bt && !Et ? (q.beamStart = k.beamStart.clone().addScaledVector(et, Y), q.beamEnd = k.beamEnd.clone().addScaledVector(et, Y), q.doorStart = k.doorStart.clone().addScaledVector(et, Y), q.doorEnd = k.doorEnd.clone().addScaledVector(et, Y), q.doorHeight = k.doorHeight, q.beamStart.z = q.beamEnd.z = q.doorStart.z + q.doorHeight) : !k.isPullOutDoor || Et && k.isPullOutDoor && wt ? (k.beamStart = tt.clone().addScaledVector(pt, Y), k.beamEnd = lt.clone().addScaledVector(pt, Y), k.doorStart = W.clone().addScaledVector(pt, Y), k.doorEnd = j.clone().addScaledVector(pt, Y), k.doorHeight = q.doorHeight, k.beamStart.z = k.beamEnd.z = k.doorStart.z + k.doorHeight) : (q.beamStart = k.beamStart.clone().addScaledVector(et, Y), q.beamEnd = k.beamEnd.clone().addScaledVector(et, Y), q.doorStart = k.doorStart.clone().addScaledVector(et, Y), q.doorEnd = k.doorEnd.clone().addScaledVector(et, Y), q.doorHeight = k.doorHeight, q.beamStart.z = q.beamEnd.z = q.doorStart.z + q.doorHeight)), at = q.nearId, Vt = k.beamStart.clone(), Ut = k.beamEnd.clone(), bt = !0, Q = u[Z].linesIndex, gt = u[Z].doorIndex;
1939
1939
  break;
1940
1940
  }
1941
1941
  }
1942
1942
  }
1943
1943
  let Pt = !1;
1944
1944
  if (!bt) {
1945
- let Z = new x.Line3(W.clone(), j.clone());
1945
+ let Z = new y.Line3(W.clone(), j.clone());
1946
1946
  for (let k = 0; k < n.length; k++) {
1947
1947
  if (n[k].length < 0.5 || k == m) continue;
1948
- let ft = new x.Vector3(n[k].start.x, n[k].start.y, n[k].start.z), U = new x.Vector3(n[k].end.x, n[k].end.y, n[k].end.z), it = ne(ft, U, W, j), dt = Jt(ft, U, W, j);
1948
+ let ft = new y.Vector3(n[k].start.x, n[k].start.y, n[k].start.z), U = new y.Vector3(n[k].end.x, n[k].end.y, n[k].end.z), it = ne(ft, U, W, j), dt = Jt(ft, U, W, j);
1949
1949
  const Ct = ho(n[k]);
1950
1950
  if (it && it.maxPerpendicularDistance < 0.5) {
1951
1951
  if (dt && dt.isParallel) {
1952
- let st = new x.Line3(ft, U), xt = new x.Vector3(W.x, W.y, ft.z), vt = st.closestPointToPoint(xt, !0, new x.Vector3()), Bt = re(vt, xt, W, j);
1953
- Bt && Bt.angle > 85 && (q.beamNearWallVec = new x.Vector3().subVectors(vt, xt).normalize());
1952
+ let st = new y.Line3(ft, U), xt = new y.Vector3(W.x, W.y, ft.z), vt = st.closestPointToPoint(xt, !0, new y.Vector3()), Bt = re(vt, xt, W, j);
1953
+ Bt && Bt.angle > 85 && (q.beamNearWallVec = new y.Vector3().subVectors(vt, xt).normalize());
1954
1954
  }
1955
1955
  const St = [];
1956
1956
  n[k].originalPoints.forEach((st) => {
1957
- st.z > W.z + 0.2 && st.z < W.z + Mt / 2 && St.push(new x.Vector3(st.x, st.y, W.z));
1957
+ st.z > W.z + 0.2 && st.z < W.z + Mt / 2 && St.push(new y.Vector3(st.x, st.y, W.z));
1958
1958
  });
1959
- const At = new x.Vector3();
1959
+ const At = new y.Vector3();
1960
1960
  let Y = [], pt = [];
1961
1961
  for (let st = 0; st < St.length; st++) {
1962
1962
  let xt = Z.closestPointToPoint(St[st], !0, At);
@@ -1969,8 +1969,8 @@ const wi = async (n, t, e, o, i) => {
1969
1969
  if (et.length == 2) {
1970
1970
  let st = et[0].distanceTo(et[1]);
1971
1971
  if (Math.abs(st - Z.distance()) < 0.3) {
1972
- let xt = new x.Line3(ft, U), vt = new x.Vector3(W.x, W.y, ft.z), Bt = xt.closestPointToPoint(vt, !0, new x.Vector3());
1973
- if (q.beamNearWallVec = new x.Vector3().subVectors(Bt, vt).normalize(), q.beamStart.z > Ct.maxZ - 0.03 && H > 1)
1972
+ let xt = new y.Line3(ft, U), vt = new y.Vector3(W.x, W.y, ft.z), Bt = xt.closestPointToPoint(vt, !0, new y.Vector3());
1973
+ if (q.beamNearWallVec = new y.Vector3().subVectors(Bt, vt).normalize(), q.beamStart.z > Ct.maxZ - 0.03 && H > 1)
1974
1974
  Pt = !0;
1975
1975
  else if (Wt = !0, Tt != -1 && (e[a[Tt].index].isFindBeam = !1, a[Tt].isFind = !1), Q != -1 && gt != -1) {
1976
1976
  const wt = n[Q].doorAndBeamData[gt];
@@ -1991,9 +1991,9 @@ const wi = async (n, t, e, o, i) => {
1991
1991
  }
1992
1992
  let Gt = !1;
1993
1993
  if (at != -1)
1994
- for (let Z = 0; Z < u.length && !(u[Z].length == 1 && (u[Z][0].id == l ? (u[Z].push({ id: at, beamStart: Vt, beamEnd: Ut }), Gt = !0) : u[Z][0].id == at && (u[Z].push({ id: l, beamStart: tt, beamEnd: lt }), Gt = !0), Gt)); Z++)
1994
+ for (let Z = 0; Z < c.length && !(c[Z].length == 1 && (c[Z][0].id == l ? (c[Z].push({ id: at, beamStart: Vt, beamEnd: Ut }), Gt = !0) : c[Z][0].id == at && (c[Z].push({ id: l, beamStart: tt, beamEnd: lt }), Gt = !0), Gt)); Z++)
1995
1995
  ;
1996
- Gt || u.push([{ id: l, beamStart: tt, beamEnd: lt }]);
1996
+ Gt || c.push([{ id: l, beamStart: tt, beamEnd: lt }]);
1997
1997
  const ht = q.doorStart.distanceTo(q.doorEnd);
1998
1998
  if (_t ? ct = "door" : ht > 1.8 ? ct = "beam" : ct = Pt && ht > 1 ? "beam" : "hole", q.type = ct, q.nearId != -1 && ct == "hole") {
1999
1999
  let Z = !1;
@@ -2007,7 +2007,7 @@ const wi = async (n, t, e, o, i) => {
2007
2007
  if (Z) break;
2008
2008
  }
2009
2009
  }
2010
- if (p.doorAndBeamData.push(q), c.push({
2010
+ if (p.doorAndBeamData.push(q), u.push({
2011
2011
  linesIndex: m,
2012
2012
  doorIndex: p.doorAndBeamData.length - 1
2013
2013
  }), l++, Et && H < 2) break;
@@ -2021,11 +2021,11 @@ const wi = async (n, t, e, o, i) => {
2021
2021
  for (let m = 0; m < h.length; m++) {
2022
2022
  let p = [];
2023
2023
  for (let b = 0; b < n[h[m]].doorAndBeamData.length; b++) {
2024
- let V = !1;
2025
- if (n[h[m]].doorAndBeamData[b].type === "beam" && n[h[m]].doorAndBeamData[b].beamNearWallVec.x == 0 && n[h[m]].doorAndBeamData[b].beamNearWallVec.y == 0 && n[h[m]].doorAndBeamData[b].beamNearWallVec.z == 0 && n[h[m]].doorAndBeamData[b].nearId == -1 && (V = !0), !V) {
2024
+ let z = !1;
2025
+ if (n[h[m]].doorAndBeamData[b].type === "beam" && n[h[m]].doorAndBeamData[b].beamNearWallVec.x == 0 && n[h[m]].doorAndBeamData[b].beamNearWallVec.y == 0 && n[h[m]].doorAndBeamData[b].beamNearWallVec.z == 0 && n[h[m]].doorAndBeamData[b].nearId == -1 && (z = !0), !z) {
2026
2026
  let v = n[h[m]].doorAndBeamData[b].doorStart.clone(), S = n[h[m]].doorAndBeamData[b].doorEnd.clone();
2027
2027
  v.z = S.z = 0;
2028
- let z = v.distanceTo(S);
2028
+ let V = v.distanceTo(S);
2029
2029
  for (let D = 0; D < h.length; D++)
2030
2030
  if (m != D)
2031
2031
  for (let _ = 0; _ < n[h[D]].doorAndBeamData.length; _++) {
@@ -2033,49 +2033,49 @@ const wi = async (n, t, e, o, i) => {
2033
2033
  E.z = T.z = 0, E.distanceTo(T);
2034
2034
  let A = ne(v, S, E, T);
2035
2035
  if (A.type == "collinear_overlap" && A.maxPerpendicularDistance < 0.2) {
2036
- let O = new x.Line3(E, T), I = ee(v, S), B = O.closestPointToPoint(I, !0, new x.Vector3()), L = I.distanceTo(B);
2037
- if (Math.abs(z - A.overlap) < 0.1 && L < 0.04) {
2038
- n[h[D]].doorAndBeamData[_].nearId == n[h[m]].doorAndBeamData[b].id && (n[h[D]].doorAndBeamData[_].nearId = -1), V = !0;
2036
+ let O = new y.Line3(E, T), I = ee(v, S), B = O.closestPointToPoint(I, !0, new y.Vector3()), L = I.distanceTo(B);
2037
+ if (Math.abs(V - A.overlap) < 0.1 && L < 0.04) {
2038
+ n[h[D]].doorAndBeamData[_].nearId == n[h[m]].doorAndBeamData[b].id && (n[h[D]].doorAndBeamData[_].nearId = -1), z = !0;
2039
2039
  break;
2040
2040
  }
2041
2041
  }
2042
2042
  }
2043
2043
  }
2044
- V || p.push(n[h[m]].doorAndBeamData[b]);
2044
+ z || p.push(n[h[m]].doorAndBeamData[b]);
2045
2045
  }
2046
2046
  p.length != n[h[m]].doorAndBeamData.length && (n[h[m]].doorAndBeamData = p);
2047
2047
  }
2048
- let w = 0.65, y = 2, M = [], P = [];
2048
+ let w = 0.65, x = 2, P = [], M = [];
2049
2049
  for (let m = 0; m < a.length; m++) {
2050
2050
  if (a[m].isFind || a[m].inWall)
2051
2051
  continue;
2052
- let p = new x.Vector3(a[m].doorStartPt.x, a[m].doorStartPt.y, 0), b = new x.Vector3(a[m].doorEndPt.x, a[m].doorEndPt.y, 0), V = new x.Vector3().subVectors(p, b).normalize();
2052
+ let p = new y.Vector3(a[m].doorStartPt.x, a[m].doorStartPt.y, 0), b = new y.Vector3(a[m].doorEndPt.x, a[m].doorEndPt.y, 0), z = new y.Vector3().subVectors(p, b).normalize();
2053
2053
  for (let v = 0; v < n.length; v++) {
2054
2054
  if (n[v].length < 0.7 || n[v].completePointAreaPercentage > 60)
2055
2055
  continue;
2056
- let S = new x.Vector3(n[v].start.x, n[v].start.y, 0), z = new x.Vector3(n[v].end.x, n[v].end.y, 0), D = new x.Vector3().subVectors(S, z).normalize(), _ = 0.3, E = p.clone().addScaledVector(V, _), T = b.clone().addScaledVector(V.clone().negate(), _), A = S.clone().addScaledVector(D, _), O = z.clone().addScaledVector(D.clone().negate(), _);
2056
+ let S = new y.Vector3(n[v].start.x, n[v].start.y, 0), V = new y.Vector3(n[v].end.x, n[v].end.y, 0), D = new y.Vector3().subVectors(S, V).normalize(), _ = 0.3, E = p.clone().addScaledVector(z, _), T = b.clone().addScaledVector(z.clone().negate(), _), A = S.clone().addScaledVector(D, _), O = V.clone().addScaledVector(D.clone().negate(), _);
2057
2057
  te(E, T, A, O);
2058
2058
  let I = Jt(
2059
2059
  E,
2060
2060
  T,
2061
2061
  A,
2062
2062
  O
2063
- ), B = p.distanceTo(S) > b.distanceTo(S) ? b : p, L = B.distanceTo(S), N = B.distanceTo(z);
2063
+ ), B = p.distanceTo(S) > b.distanceTo(S) ? b : p, L = B.distanceTo(S), N = B.distanceTo(V);
2064
2064
  if ((L < f || N < f) && I && !I.isParallel) {
2065
- let R = p.distanceTo(S), $ = p.distanceTo(z), X = R < $ ? S : z, ot = !1;
2065
+ let R = p.distanceTo(S), $ = p.distanceTo(V), X = R < $ ? S : V, ot = !1;
2066
2066
  for (let K = 0; K < n.length; K++) {
2067
- if (K == v || M.includes(K) || n[K].length < 0.7)
2067
+ if (K == v || P.includes(K) || n[K].length < 0.7)
2068
2068
  continue;
2069
- let G = new x.Vector3(n[K].start.x, n[K].start.y, 0), ut = new x.Vector3(n[K].end.x, n[K].end.y, 0), rt = new x.Vector3().subVectors(G, ut).normalize(), F = rt.clone().negate(), H = G.clone().addScaledVector(rt, 5), Mt = ut.clone().addScaledVector(F, 5), Zt = re(S, z, G, ut), qt = ne(S, z, G, ut), Rt = te(S, z, H, Mt), _t = !0;
2070
- if (Rt != null && (_t = Rt.point.distanceTo(S) < f || Rt.point.distanceTo(z) < f), (Zt && Zt.angle > 85 || qt && qt.type == "collinear_gap") && _t) {
2071
- let Et = new x.Line3(S, z), Ft = new x.Vector3(), tt = Et.closestPointToPoint(G, !0, Ft), lt = Et.closestPointToPoint(ut, !0, Ft), W = tt.distanceTo(G), j = lt.distanceTo(ut), Nt, Tt;
2069
+ let G = new y.Vector3(n[K].start.x, n[K].start.y, 0), ut = new y.Vector3(n[K].end.x, n[K].end.y, 0), rt = new y.Vector3().subVectors(G, ut).normalize(), F = rt.clone().negate(), H = G.clone().addScaledVector(rt, 5), Mt = ut.clone().addScaledVector(F, 5), Zt = re(S, V, G, ut), qt = ne(S, V, G, ut), Rt = te(S, V, H, Mt), _t = !0;
2070
+ if (Rt != null && (_t = Rt.point.distanceTo(S) < f || Rt.point.distanceTo(V) < f), (Zt && Zt.angle > 85 || qt && qt.type == "collinear_gap") && _t) {
2071
+ let Et = new y.Line3(S, V), Ft = new y.Vector3(), tt = Et.closestPointToPoint(G, !0, Ft), lt = Et.closestPointToPoint(ut, !0, Ft), W = tt.distanceTo(G), j = lt.distanceTo(ut), Nt, Tt;
2072
2072
  if (W > j && j > w)
2073
2073
  Nt = ut, Tt = lt;
2074
2074
  else if (W < j && W > w)
2075
2075
  Nt = G, Tt = tt;
2076
2076
  else
2077
2077
  continue;
2078
- if (W = X.distanceTo(G), j = X.distanceTo(ut), W > y && j > y)
2078
+ if (W = X.distanceTo(G), j = X.distanceTo(ut), W > x && j > x)
2079
2079
  continue;
2080
2080
  let Wt = Jt(Nt, Tt, G, ut), J = Jt(Nt, Tt, E, T);
2081
2081
  if (J && J.isParallel || !Wt || !Wt.isParallel)
@@ -2085,8 +2085,8 @@ const wi = async (n, t, e, o, i) => {
2085
2085
  continue;
2086
2086
  Nt.z = Tt.z = n[K].start.z;
2087
2087
  let q = !1;
2088
- for (let at = 0; at < P.length; at++) {
2089
- let Q = ne(P[at].start, P[at].end, Nt, Tt);
2088
+ for (let at = 0; at < M.length; at++) {
2089
+ let Q = ne(M[at].start, M[at].end, Nt, Tt);
2090
2090
  if (Q && Q.type == "collinear_overlap" && Q.maxPerpendicularDistance < 0.2) {
2091
2091
  q = !0;
2092
2092
  break;
@@ -2096,7 +2096,7 @@ const wi = async (n, t, e, o, i) => {
2096
2096
  continue;
2097
2097
  for (let at = 0; at < n.length; at++) {
2098
2098
  if (n[at].length < 0.5) continue;
2099
- let Q = new x.Vector3(n[at].start.x, n[at].start.y, n[at].start.z), gt = new x.Vector3(n[at].end.x, n[at].end.y, n[at].end.z), Pt = ne(Q, gt, Nt, Tt);
2099
+ let Q = new y.Vector3(n[at].start.x, n[at].start.y, n[at].start.z), gt = new y.Vector3(n[at].end.x, n[at].end.y, n[at].end.z), Pt = ne(Q, gt, Nt, Tt);
2100
2100
  if (Pt && Pt.type == "collinear_overlap" && Pt.maxPerpendicularDistance < 0.1) {
2101
2101
  q = !0;
2102
2102
  break;
@@ -2104,10 +2104,10 @@ const wi = async (n, t, e, o, i) => {
2104
2104
  }
2105
2105
  if (q)
2106
2106
  continue;
2107
- P.push({
2107
+ M.push({
2108
2108
  start: Nt,
2109
2109
  end: Tt
2110
- }), M.push(K);
2110
+ }), P.push(K);
2111
2111
  let bt = n[K].rooftopPz - n[K].start.z, Vt = n[v].rooftopPz - n[v].start.z, Ut = bt < Vt ? bt : Vt;
2112
2112
  n[K].doorAndBeamData || (n[K].doorAndBeamData = []), n[K].doorAndBeamData.push({
2113
2113
  id: l,
@@ -2120,8 +2120,8 @@ const wi = async (n, t, e, o, i) => {
2120
2120
  nearId: -1,
2121
2121
  type: "onlyDoor",
2122
2122
  isDoor: !0,
2123
- beamNearWallVec: new x.Vector3(0, 0, 0)
2124
- }), e[a[m].index].isFindBeam = !0, e[a[m].index].isFindOnlyDoor = !0, u.push([{ id: l, beamStart: Nt, beamEnd: Tt }]), l++, ot = !0;
2123
+ beamNearWallVec: new y.Vector3(0, 0, 0)
2124
+ }), e[a[m].index].isFindBeam = !0, e[a[m].index].isFindOnlyDoor = !0, c.push([{ id: l, beamStart: Nt, beamEnd: Tt }]), l++, ot = !0;
2125
2125
  break;
2126
2126
  }
2127
2127
  }
@@ -2132,7 +2132,7 @@ const wi = async (n, t, e, o, i) => {
2132
2132
  let g = [];
2133
2133
  for (let m = 0; m < n.length; m++)
2134
2134
  n[m].isLine2 || g.push(n[m]), n[m].isLine2 && n[m].doorAndBeamData.length != 0 && g.push(n[m]);
2135
- return n.length = 0, n.push(...g), { lines: n, beamGroup: u };
2135
+ return n.length = 0, n.push(...g), { lines: n, beamGroup: c };
2136
2136
  }, bi = (n, t) => {
2137
2137
  if (!n || n.length <= 0) return;
2138
2138
  let e = {
@@ -2141,54 +2141,54 @@ const wi = async (n, t, e, o, i) => {
2141
2141
  }, o = /* @__PURE__ */ new Set(), i = 0.2, r = 1.5, s = 0.15, a = 2;
2142
2142
  if (!n[0].uuid) {
2143
2143
  let l = 1e4;
2144
- for (let c = 0; c < n.length; c++)
2145
- n[c].uuid = l++;
2144
+ for (let u = 0; u < n.length; u++)
2145
+ n[u].uuid = l++;
2146
2146
  }
2147
2147
  for (let l = 0; l < n.length; l++) {
2148
- let c = n[l].length;
2149
- if (o.has(n[l].uuid) || c < i || c > r)
2148
+ let u = n[l].length;
2149
+ if (o.has(n[l].uuid) || u < i || u > r)
2150
2150
  continue;
2151
- let h = [], d = new x.Vector3(n[l].start.x, n[l].start.y, n[l].start.z), u = new x.Vector3(n[l].end.x, n[l].end.y, n[l].end.z), w = new x.Vector3().subVectors(u, d).normalize().clone().negate(), y = new x.Vector3(), M = new x.Vector3(), P = new x.Vector3();
2152
- new x.Vector3();
2151
+ let h = [], d = new y.Vector3(n[l].start.x, n[l].start.y, n[l].start.z), c = new y.Vector3(n[l].end.x, n[l].end.y, n[l].end.z), w = new y.Vector3().subVectors(c, d).normalize().clone().negate(), x = new y.Vector3(), P = new y.Vector3(), M = new y.Vector3();
2152
+ new y.Vector3();
2153
2153
  for (let g = 0; g < n.length; g++) {
2154
2154
  let m = n[g].length;
2155
2155
  if (g == l || m < i || m > r)
2156
2156
  continue;
2157
- let p = new x.Vector3(n[g].start.x, n[g].start.y, n[g].start.z), b = new x.Vector3(n[g].end.x, n[g].end.y, n[g].end.z), V = re(d, u, p, b);
2158
- if (!V || V.angle < 85)
2157
+ let p = new y.Vector3(n[g].start.x, n[g].start.y, n[g].start.z), b = new y.Vector3(n[g].end.x, n[g].end.y, n[g].end.z), z = re(d, c, p, b);
2158
+ if (!z || z.angle < 85)
2159
2159
  continue;
2160
- let v = kt(p, d), S = kt(p, u), z = kt(b, d), D = kt(b, u);
2161
- if (!(!v && !S && !z && !D)) {
2162
- v || S ? (y = p.clone(), M = b.clone()) : (y = b.clone(), M = p.clone()), P = new x.Vector3().subVectors(M, y).normalize(), P.clone().negate();
2160
+ let v = kt(p, d), S = kt(p, c), V = kt(b, d), D = kt(b, c);
2161
+ if (!(!v && !S && !V && !D)) {
2162
+ v || S ? (x = p.clone(), P = b.clone()) : (x = b.clone(), P = p.clone()), M = new y.Vector3().subVectors(P, x).normalize(), M.clone().negate();
2163
2163
  for (let _ = 0; _ < n.length; _++) {
2164
2164
  let E = n[_].length;
2165
2165
  if (_ == l || _ == g || E < i || E > r)
2166
2166
  continue;
2167
- let T = new x.Vector3(n[_].start.x, n[_].start.y, n[_].start.z), A = new x.Vector3(n[_].end.x, n[_].end.y, n[_].end.z), O = re(p, b, T, A);
2167
+ let T = new y.Vector3(n[_].start.x, n[_].start.y, n[_].start.z), A = new y.Vector3(n[_].end.x, n[_].end.y, n[_].end.z), O = re(p, b, T, A);
2168
2168
  if (!O || O.angle < 85)
2169
2169
  continue;
2170
- let I = kt(T, M), B = kt(A, M);
2170
+ let I = kt(T, P), B = kt(A, P);
2171
2171
  if (!I && !B) continue;
2172
- new x.Vector3();
2173
- let L = new x.Vector3(), N = new x.Vector3();
2174
- I ? (N = new x.Vector3().subVectors(A, T).normalize(), T.clone(), L = A.clone()) : (N = new x.Vector3().subVectors(T, A).normalize(), A.clone(), L = T.clone());
2172
+ new y.Vector3();
2173
+ let L = new y.Vector3(), N = new y.Vector3();
2174
+ I ? (N = new y.Vector3().subVectors(A, T).normalize(), T.clone(), L = A.clone()) : (N = new y.Vector3().subVectors(T, A).normalize(), A.clone(), L = T.clone());
2175
2175
  let C = oe(w, N, 0.1);
2176
2176
  if (!(!C || !C.parallel || !C.sameDirection)) {
2177
2177
  for (let R = 0; R < n.length; R++) {
2178
2178
  let $ = n[R].length;
2179
2179
  if (R == l || R == g || R == _ || $ < i || $ > r)
2180
2180
  continue;
2181
- let X = new x.Vector3(n[R].start.x, n[R].start.y, n[R].start.z), ot = new x.Vector3(n[R].end.x, n[R].end.y, n[R].end.z), K = re(X, ot, T, A);
2181
+ let X = new y.Vector3(n[R].start.x, n[R].start.y, n[R].start.z), ot = new y.Vector3(n[R].end.x, n[R].end.y, n[R].end.z), K = re(X, ot, T, A);
2182
2182
  if (!K || K.angle < 85)
2183
2183
  continue;
2184
2184
  let G = kt(X, L), ut = kt(ot, L);
2185
2185
  if (!G && !ut) continue;
2186
- new x.Vector3();
2187
- let rt = new x.Vector3();
2186
+ new y.Vector3();
2187
+ let rt = new y.Vector3();
2188
2188
  G ? (X.clone(), rt = ot.clone()) : (ot.clone(), rt = X.clone());
2189
- let F = kt(rt, d), H = kt(rt, u);
2189
+ let F = kt(rt, d), H = kt(rt, c);
2190
2190
  if (!F && !H) continue;
2191
- let Mt = c * m;
2191
+ let Mt = u * m;
2192
2192
  if (!(Mt < s || Mt > a)) {
2193
2193
  h = [n[l].uuid, n[g].uuid, n[_].uuid, n[R].uuid];
2194
2194
  break;
@@ -2205,81 +2205,81 @@ const wi = async (n, t, e, o, i) => {
2205
2205
  h.length == 4 && (h.forEach((g) => o.add(g)), e.rectangles.push(h));
2206
2206
  }
2207
2207
  for (let l = 0; l < n.length; l++) {
2208
- let c = n[l].length;
2209
- if (o.has(n[l].uuid) || c < i || c > r)
2208
+ let u = n[l].length;
2209
+ if (o.has(n[l].uuid) || u < i || u > r)
2210
2210
  continue;
2211
2211
  let h = {
2212
2212
  indexs: [],
2213
2213
  missingEdge: {
2214
- start: new x.Vector3(),
2215
- end: new x.Vector3()
2214
+ start: new y.Vector3(),
2215
+ end: new y.Vector3()
2216
2216
  }
2217
- }, d = new x.Vector3(n[l].start.x, n[l].start.y, n[l].start.z), u = new x.Vector3(n[l].end.x, n[l].end.y, n[l].end.z), f = !0, w = !0;
2218
- for (let P = 0; P < n.length; P++) {
2219
- if (P == l || n[P].length < i)
2217
+ }, d = new y.Vector3(n[l].start.x, n[l].start.y, n[l].start.z), c = new y.Vector3(n[l].end.x, n[l].end.y, n[l].end.z), f = !0, w = !0;
2218
+ for (let M = 0; M < n.length; M++) {
2219
+ if (M == l || n[M].length < i)
2220
2220
  continue;
2221
- let g = new x.Vector3(n[P].start.x, n[P].start.y, n[P].start.z), m = new x.Vector3(n[P].end.x, n[P].end.y, n[P].end.z), p = kt(g, d), b = kt(m, d), V = kt(g, u), v = kt(m, u);
2222
- if (p || b ? f = !1 : (V || v) && (w = !1), !f && !w) break;
2221
+ let g = new y.Vector3(n[M].start.x, n[M].start.y, n[M].start.z), m = new y.Vector3(n[M].end.x, n[M].end.y, n[M].end.z), p = kt(g, d), b = kt(m, d), z = kt(g, c), v = kt(m, c);
2222
+ if (p || b ? f = !1 : (z || v) && (w = !1), !f && !w) break;
2223
2223
  }
2224
2224
  if (!f && !w) continue;
2225
- let y = new x.Vector3();
2226
- f || ([d, u] = [u, d]), y = new x.Vector3().subVectors(u, d).normalize();
2227
- let M = y.clone().negate();
2228
- for (let P = 0; P < n.length; P++) {
2229
- let g = n[P].length;
2230
- if (P == l || o.has(P) || g < i || g > r)
2225
+ let x = new y.Vector3();
2226
+ f || ([d, c] = [c, d]), x = new y.Vector3().subVectors(c, d).normalize();
2227
+ let P = x.clone().negate();
2228
+ for (let M = 0; M < n.length; M++) {
2229
+ let g = n[M].length;
2230
+ if (M == l || o.has(M) || g < i || g > r)
2231
2231
  continue;
2232
- let m = new x.Vector3(n[P].start.x, n[P].start.y, n[P].start.z), p = new x.Vector3(n[P].end.x, n[P].end.y, n[P].end.z), b = re(d, u, m, p);
2232
+ let m = new y.Vector3(n[M].start.x, n[M].start.y, n[M].start.z), p = new y.Vector3(n[M].end.x, n[M].end.y, n[M].end.z), b = re(d, c, m, p);
2233
2233
  if (!b || b.angle < 85)
2234
2234
  continue;
2235
- let V = kt(m, u), v = kt(p, u);
2236
- if (!V && !v) continue;
2237
- new x.Vector3();
2238
- let S = new x.Vector3();
2239
- V ? (m.clone(), S = p.clone()) : (p.clone(), S = m.clone());
2240
- for (let z = 0; z < n.length; z++) {
2241
- let D = n[z].length;
2242
- if (z == l || z == P || o.has(z) || D < i || D > r)
2235
+ let z = kt(m, c), v = kt(p, c);
2236
+ if (!z && !v) continue;
2237
+ new y.Vector3();
2238
+ let S = new y.Vector3();
2239
+ z ? (m.clone(), S = p.clone()) : (p.clone(), S = m.clone());
2240
+ for (let V = 0; V < n.length; V++) {
2241
+ let D = n[V].length;
2242
+ if (V == l || V == M || o.has(V) || D < i || D > r)
2243
2243
  continue;
2244
- let _ = new x.Vector3(n[z].start.x, n[z].start.y, n[z].start.z), E = new x.Vector3(n[z].end.x, n[z].end.y, n[z].end.z), T = re(m, p, _, E);
2244
+ let _ = new y.Vector3(n[V].start.x, n[V].start.y, n[V].start.z), E = new y.Vector3(n[V].end.x, n[V].end.y, n[V].end.z), T = re(m, p, _, E);
2245
2245
  if (!T || T.angle < 85)
2246
2246
  continue;
2247
2247
  let A = kt(_, S), O = kt(E, S);
2248
2248
  if (!A && !O) continue;
2249
- let I = new x.Vector3(), B = new x.Vector3();
2249
+ let I = new y.Vector3(), B = new y.Vector3();
2250
2250
  A ? (I = _.clone(), B = E.clone()) : (I = E.clone(), B = _.clone());
2251
- let L = new x.Vector3().subVectors(B, I).normalize(), N = oe(M, L, 0.1);
2251
+ let L = new y.Vector3().subVectors(B, I).normalize(), N = oe(P, L, 0.1);
2252
2252
  if (!N || !N.parallel || !N.sameDirection) continue;
2253
2253
  let C = !0, R = !0;
2254
2254
  for (let X = 0; X < n.length; X++) {
2255
- if (X == z || n[X].length < i) continue;
2256
- let ot = new x.Vector3(n[X].start.x, n[X].start.y, n[X].start.z), K = new x.Vector3(n[X].end.x, n[X].end.y, n[X].end.z), G = kt(ot, _), ut = kt(K, _), rt = kt(ot, E), F = kt(K, E);
2255
+ if (X == V || n[X].length < i) continue;
2256
+ let ot = new y.Vector3(n[X].start.x, n[X].start.y, n[X].start.z), K = new y.Vector3(n[X].end.x, n[X].end.y, n[X].end.z), G = kt(ot, _), ut = kt(K, _), rt = kt(ot, E), F = kt(K, E);
2257
2257
  if (G || ut ? C = !1 : (rt || F) && (R = !1), !C && !R) break;
2258
2258
  }
2259
2259
  if (!C && !R) continue;
2260
- let $ = c * g;
2260
+ let $ = u * g;
2261
2261
  if (!($ < s || $ > a)) {
2262
- h.indexs = [n[l].uuid, n[P].uuid, n[z].uuid], h.missingEdge.start = B, h.missingEdge.end = d;
2262
+ h.indexs = [n[l].uuid, n[M].uuid, n[V].uuid], h.missingEdge.start = B, h.missingEdge.end = d;
2263
2263
  break;
2264
2264
  }
2265
2265
  }
2266
2266
  if (h.indexs.length == 3) break;
2267
2267
  }
2268
- h.indexs.length == 3 && (h.indexs.forEach((P) => o.add(P)), e.threeEdgeRect.push(h));
2268
+ h.indexs.length == 3 && (h.indexs.forEach((M) => o.add(M)), e.threeEdgeRect.push(h));
2269
2269
  }
2270
2270
  return e;
2271
2271
  }, ae = 11102230246251565e-32, Yt = 134217729, Do = (3 + 8 * ae) * ae;
2272
2272
  function qe(n, t, e, o, i) {
2273
- let r, s, a, l, c = t[0], h = o[0], d = 0, u = 0;
2274
- h > c == h > -c ? (r = c, c = t[++d]) : (r = h, h = o[++u]);
2273
+ let r, s, a, l, u = t[0], h = o[0], d = 0, c = 0;
2274
+ h > u == h > -u ? (r = u, u = t[++d]) : (r = h, h = o[++c]);
2275
2275
  let f = 0;
2276
- if (d < n && u < e)
2277
- for (h > c == h > -c ? (s = c + r, a = r - (s - c), c = t[++d]) : (s = h + r, a = r - (s - h), h = o[++u]), r = s, a !== 0 && (i[f++] = a); d < n && u < e; )
2278
- h > c == h > -c ? (s = r + c, l = s - r, a = r - (s - l) + (c - l), c = t[++d]) : (s = r + h, l = s - r, a = r - (s - l) + (h - l), h = o[++u]), r = s, a !== 0 && (i[f++] = a);
2276
+ if (d < n && c < e)
2277
+ for (h > u == h > -u ? (s = u + r, a = r - (s - u), u = t[++d]) : (s = h + r, a = r - (s - h), h = o[++c]), r = s, a !== 0 && (i[f++] = a); d < n && c < e; )
2278
+ h > u == h > -u ? (s = r + u, l = s - r, a = r - (s - l) + (u - l), u = t[++d]) : (s = r + h, l = s - r, a = r - (s - l) + (h - l), h = o[++c]), r = s, a !== 0 && (i[f++] = a);
2279
2279
  for (; d < n; )
2280
- s = r + c, l = s - r, a = r - (s - l) + (c - l), c = t[++d], r = s, a !== 0 && (i[f++] = a);
2281
- for (; u < e; )
2282
- s = r + h, l = s - r, a = r - (s - l) + (h - l), h = o[++u], r = s, a !== 0 && (i[f++] = a);
2280
+ s = r + u, l = s - r, a = r - (s - l) + (u - l), u = t[++d], r = s, a !== 0 && (i[f++] = a);
2281
+ for (; c < e; )
2282
+ s = r + h, l = s - r, a = r - (s - l) + (h - l), h = o[++c], r = s, a !== 0 && (i[f++] = a);
2283
2283
  return (r !== 0 || f === 0) && (i[f++] = r), f;
2284
2284
  }
2285
2285
  function _o(n, t) {
@@ -2292,22 +2292,22 @@ function Ve(n) {
2292
2292
  }
2293
2293
  const Eo = (3 + 16 * ae) * ae, To = (2 + 12 * ae) * ae, Ao = (9 + 64 * ae) * ae * ae, me = Ve(4), on = Ve(8), rn = Ve(12), sn = Ve(16), jt = Ve(4);
2294
2294
  function Bo(n, t, e, o, i, r, s) {
2295
- let a, l, c, h, d, u, f, w, y, M, P, g, m, p, b, V, v, S;
2296
- const z = n - i, D = e - i, _ = t - r, E = o - r;
2297
- p = z * E, u = Yt * z, f = u - (u - z), w = z - f, u = Yt * E, y = u - (u - E), M = E - y, b = w * M - (p - f * y - w * y - f * M), V = _ * D, u = Yt * _, f = u - (u - _), w = _ - f, u = Yt * D, y = u - (u - D), M = D - y, v = w * M - (V - f * y - w * y - f * M), P = b - v, d = b - P, me[0] = b - (P + d) + (d - v), g = p + P, d = g - p, m = p - (g - d) + (P - d), P = m - V, d = m - P, me[1] = m - (P + d) + (d - V), S = g + P, d = S - g, me[2] = g - (S - d) + (P - d), me[3] = S;
2295
+ let a, l, u, h, d, c, f, w, x, P, M, g, m, p, b, z, v, S;
2296
+ const V = n - i, D = e - i, _ = t - r, E = o - r;
2297
+ p = V * E, c = Yt * V, f = c - (c - V), w = V - f, c = Yt * E, x = c - (c - E), P = E - x, b = w * P - (p - f * x - w * x - f * P), z = _ * D, c = Yt * _, f = c - (c - _), w = _ - f, c = Yt * D, x = c - (c - D), P = D - x, v = w * P - (z - f * x - w * x - f * P), M = b - v, d = b - M, me[0] = b - (M + d) + (d - v), g = p + M, d = g - p, m = p - (g - d) + (M - d), M = m - z, d = m - M, me[1] = m - (M + d) + (d - z), S = g + M, d = S - g, me[2] = g - (S - d) + (M - d), me[3] = S;
2298
2298
  let T = _o(4, me), A = To * s;
2299
- if (T >= A || -T >= A || (d = n - z, a = n - (z + d) + (d - i), d = e - D, c = e - (D + d) + (d - i), d = t - _, l = t - (_ + d) + (d - r), d = o - E, h = o - (E + d) + (d - r), a === 0 && l === 0 && c === 0 && h === 0) || (A = Ao * s + Do * Math.abs(T), T += z * h + E * a - (_ * c + D * l), T >= A || -T >= A)) return T;
2300
- p = a * E, u = Yt * a, f = u - (u - a), w = a - f, u = Yt * E, y = u - (u - E), M = E - y, b = w * M - (p - f * y - w * y - f * M), V = l * D, u = Yt * l, f = u - (u - l), w = l - f, u = Yt * D, y = u - (u - D), M = D - y, v = w * M - (V - f * y - w * y - f * M), P = b - v, d = b - P, jt[0] = b - (P + d) + (d - v), g = p + P, d = g - p, m = p - (g - d) + (P - d), P = m - V, d = m - P, jt[1] = m - (P + d) + (d - V), S = g + P, d = S - g, jt[2] = g - (S - d) + (P - d), jt[3] = S;
2299
+ if (T >= A || -T >= A || (d = n - V, a = n - (V + d) + (d - i), d = e - D, u = e - (D + d) + (d - i), d = t - _, l = t - (_ + d) + (d - r), d = o - E, h = o - (E + d) + (d - r), a === 0 && l === 0 && u === 0 && h === 0) || (A = Ao * s + Do * Math.abs(T), T += V * h + E * a - (_ * u + D * l), T >= A || -T >= A)) return T;
2300
+ p = a * E, c = Yt * a, f = c - (c - a), w = a - f, c = Yt * E, x = c - (c - E), P = E - x, b = w * P - (p - f * x - w * x - f * P), z = l * D, c = Yt * l, f = c - (c - l), w = l - f, c = Yt * D, x = c - (c - D), P = D - x, v = w * P - (z - f * x - w * x - f * P), M = b - v, d = b - M, jt[0] = b - (M + d) + (d - v), g = p + M, d = g - p, m = p - (g - d) + (M - d), M = m - z, d = m - M, jt[1] = m - (M + d) + (d - z), S = g + M, d = S - g, jt[2] = g - (S - d) + (M - d), jt[3] = S;
2301
2301
  const O = qe(4, me, 4, jt, on);
2302
- p = z * h, u = Yt * z, f = u - (u - z), w = z - f, u = Yt * h, y = u - (u - h), M = h - y, b = w * M - (p - f * y - w * y - f * M), V = _ * c, u = Yt * _, f = u - (u - _), w = _ - f, u = Yt * c, y = u - (u - c), M = c - y, v = w * M - (V - f * y - w * y - f * M), P = b - v, d = b - P, jt[0] = b - (P + d) + (d - v), g = p + P, d = g - p, m = p - (g - d) + (P - d), P = m - V, d = m - P, jt[1] = m - (P + d) + (d - V), S = g + P, d = S - g, jt[2] = g - (S - d) + (P - d), jt[3] = S;
2302
+ p = V * h, c = Yt * V, f = c - (c - V), w = V - f, c = Yt * h, x = c - (c - h), P = h - x, b = w * P - (p - f * x - w * x - f * P), z = _ * u, c = Yt * _, f = c - (c - _), w = _ - f, c = Yt * u, x = c - (c - u), P = u - x, v = w * P - (z - f * x - w * x - f * P), M = b - v, d = b - M, jt[0] = b - (M + d) + (d - v), g = p + M, d = g - p, m = p - (g - d) + (M - d), M = m - z, d = m - M, jt[1] = m - (M + d) + (d - z), S = g + M, d = S - g, jt[2] = g - (S - d) + (M - d), jt[3] = S;
2303
2303
  const I = qe(O, on, 4, jt, rn);
2304
- p = a * h, u = Yt * a, f = u - (u - a), w = a - f, u = Yt * h, y = u - (u - h), M = h - y, b = w * M - (p - f * y - w * y - f * M), V = l * c, u = Yt * l, f = u - (u - l), w = l - f, u = Yt * c, y = u - (u - c), M = c - y, v = w * M - (V - f * y - w * y - f * M), P = b - v, d = b - P, jt[0] = b - (P + d) + (d - v), g = p + P, d = g - p, m = p - (g - d) + (P - d), P = m - V, d = m - P, jt[1] = m - (P + d) + (d - V), S = g + P, d = S - g, jt[2] = g - (S - d) + (P - d), jt[3] = S;
2304
+ p = a * h, c = Yt * a, f = c - (c - a), w = a - f, c = Yt * h, x = c - (c - h), P = h - x, b = w * P - (p - f * x - w * x - f * P), z = l * u, c = Yt * l, f = c - (c - l), w = l - f, c = Yt * u, x = c - (c - u), P = u - x, v = w * P - (z - f * x - w * x - f * P), M = b - v, d = b - M, jt[0] = b - (M + d) + (d - v), g = p + M, d = g - p, m = p - (g - d) + (M - d), M = m - z, d = m - M, jt[1] = m - (M + d) + (d - z), S = g + M, d = S - g, jt[2] = g - (S - d) + (M - d), jt[3] = S;
2305
2305
  const B = qe(I, rn, 4, jt, sn);
2306
2306
  return sn[B - 1];
2307
2307
  }
2308
2308
  function ve(n, t, e, o, i, r) {
2309
- const s = (t - r) * (e - i), a = (n - i) * (o - r), l = s - a, c = Math.abs(s + a);
2310
- return Math.abs(l) >= Eo * c ? l : -Bo(n, t, e, o, i, r, c);
2309
+ const s = (t - r) * (e - i), a = (n - i) * (o - r), l = s - a, u = Math.abs(s + a);
2310
+ return Math.abs(l) >= Eo * u ? l : -Bo(n, t, e, o, i, r, u);
2311
2311
  }
2312
2312
  const an = Math.pow(2, -52), De = new Uint32Array(512);
2313
2313
  class Be {
@@ -2348,57 +2348,57 @@ class Be {
2348
2348
  */
2349
2349
  update() {
2350
2350
  const { coords: t, _hullPrev: e, _hullNext: o, _hullTri: i, _hullHash: r } = this, s = t.length >> 1;
2351
- let a = 1 / 0, l = 1 / 0, c = -1 / 0, h = -1 / 0;
2352
- for (let z = 0; z < s; z++) {
2353
- const D = t[2 * z], _ = t[2 * z + 1];
2354
- D < a && (a = D), _ < l && (l = _), D > c && (c = D), _ > h && (h = _), this._ids[z] = z;
2351
+ let a = 1 / 0, l = 1 / 0, u = -1 / 0, h = -1 / 0;
2352
+ for (let V = 0; V < s; V++) {
2353
+ const D = t[2 * V], _ = t[2 * V + 1];
2354
+ D < a && (a = D), _ < l && (l = _), D > u && (u = D), _ > h && (h = _), this._ids[V] = V;
2355
2355
  }
2356
- const d = (a + c) / 2, u = (l + h) / 2;
2357
- let f = 0, w = 0, y = 0;
2358
- for (let z = 0, D = 1 / 0; z < s; z++) {
2359
- const _ = We(d, u, t[2 * z], t[2 * z + 1]);
2360
- _ < D && (f = z, D = _);
2356
+ const d = (a + u) / 2, c = (l + h) / 2;
2357
+ let f = 0, w = 0, x = 0;
2358
+ for (let V = 0, D = 1 / 0; V < s; V++) {
2359
+ const _ = We(d, c, t[2 * V], t[2 * V + 1]);
2360
+ _ < D && (f = V, D = _);
2361
2361
  }
2362
- const M = t[2 * f], P = t[2 * f + 1];
2363
- for (let z = 0, D = 1 / 0; z < s; z++) {
2364
- if (z === f) continue;
2365
- const _ = We(M, P, t[2 * z], t[2 * z + 1]);
2366
- _ < D && _ > 0 && (w = z, D = _);
2362
+ const P = t[2 * f], M = t[2 * f + 1];
2363
+ for (let V = 0, D = 1 / 0; V < s; V++) {
2364
+ if (V === f) continue;
2365
+ const _ = We(P, M, t[2 * V], t[2 * V + 1]);
2366
+ _ < D && _ > 0 && (w = V, D = _);
2367
2367
  }
2368
2368
  let g = t[2 * w], m = t[2 * w + 1], p = 1 / 0;
2369
- for (let z = 0; z < s; z++) {
2370
- if (z === f || z === w) continue;
2371
- const D = Co(M, P, g, m, t[2 * z], t[2 * z + 1]);
2372
- D < p && (y = z, p = D);
2369
+ for (let V = 0; V < s; V++) {
2370
+ if (V === f || V === w) continue;
2371
+ const D = Co(P, M, g, m, t[2 * V], t[2 * V + 1]);
2372
+ D < p && (x = V, p = D);
2373
2373
  }
2374
- let b = t[2 * y], V = t[2 * y + 1];
2374
+ let b = t[2 * x], z = t[2 * x + 1];
2375
2375
  if (p === 1 / 0) {
2376
2376
  for (let _ = 0; _ < s; _++)
2377
2377
  this._dists[_] = t[2 * _] - t[0] || t[2 * _ + 1] - t[1];
2378
2378
  ye(this._ids, this._dists, 0, s - 1);
2379
- const z = new Uint32Array(s);
2379
+ const V = new Uint32Array(s);
2380
2380
  let D = 0;
2381
2381
  for (let _ = 0, E = -1 / 0; _ < s; _++) {
2382
2382
  const T = this._ids[_], A = this._dists[T];
2383
- A > E && (z[D++] = T, E = A);
2383
+ A > E && (V[D++] = T, E = A);
2384
2384
  }
2385
- this.hull = z.subarray(0, D), this.triangles = new Uint32Array(0), this.halfedges = new Int32Array(0);
2385
+ this.hull = V.subarray(0, D), this.triangles = new Uint32Array(0), this.halfedges = new Int32Array(0);
2386
2386
  return;
2387
2387
  }
2388
- if (ve(M, P, g, m, b, V) < 0) {
2389
- const z = w, D = g, _ = m;
2390
- w = y, g = b, m = V, y = z, b = D, V = _;
2388
+ if (ve(P, M, g, m, b, z) < 0) {
2389
+ const V = w, D = g, _ = m;
2390
+ w = x, g = b, m = z, x = V, b = D, z = _;
2391
2391
  }
2392
- const v = Lo(M, P, g, m, b, V);
2392
+ const v = Lo(P, M, g, m, b, z);
2393
2393
  this._cx = v.x, this._cy = v.y;
2394
- for (let z = 0; z < s; z++)
2395
- this._dists[z] = We(t[2 * z], t[2 * z + 1], v.x, v.y);
2394
+ for (let V = 0; V < s; V++)
2395
+ this._dists[V] = We(t[2 * V], t[2 * V + 1], v.x, v.y);
2396
2396
  ye(this._ids, this._dists, 0, s - 1), this._hullStart = f;
2397
2397
  let S = 3;
2398
- o[f] = e[y] = w, o[w] = e[f] = y, o[y] = e[w] = f, i[f] = 0, i[w] = 1, i[y] = 2, r.fill(-1), r[this._hashKey(M, P)] = f, r[this._hashKey(g, m)] = w, r[this._hashKey(b, V)] = y, this.trianglesLen = 0, this._addTriangle(f, w, y, -1, -1, -1);
2399
- for (let z = 0, D = 0, _ = 0; z < this._ids.length; z++) {
2400
- const E = this._ids[z], T = t[2 * E], A = t[2 * E + 1];
2401
- if (z > 0 && Math.abs(T - D) <= an && Math.abs(A - _) <= an || (D = T, _ = A, E === f || E === w || E === y)) continue;
2398
+ o[f] = e[x] = w, o[w] = e[f] = x, o[x] = e[w] = f, i[f] = 0, i[w] = 1, i[x] = 2, r.fill(-1), r[this._hashKey(P, M)] = f, r[this._hashKey(g, m)] = w, r[this._hashKey(b, z)] = x, this.trianglesLen = 0, this._addTriangle(f, w, x, -1, -1, -1);
2399
+ for (let V = 0, D = 0, _ = 0; V < this._ids.length; V++) {
2400
+ const E = this._ids[V], T = t[2 * E], A = t[2 * E + 1];
2401
+ if (V > 0 && Math.abs(T - D) <= an && Math.abs(A - _) <= an || (D = T, _ = A, E === f || E === w || E === x)) continue;
2402
2402
  let O = 0;
2403
2403
  for (let C = 0, R = this._hashKey(T, A); C < this._hashSize && (O = r[(R + C) % this._hashSize], !(O !== -1 && O !== o[O])); C++)
2404
2404
  ;
@@ -2421,8 +2421,8 @@ class Be {
2421
2421
  this._hullStart = e[E] = I, o[I] = e[N] = E, o[E] = N, r[this._hashKey(T, A)] = E, r[this._hashKey(t[2 * I], t[2 * I + 1])] = I;
2422
2422
  }
2423
2423
  this.hull = new Uint32Array(S);
2424
- for (let z = 0, D = this._hullStart; z < S; z++)
2425
- this.hull[z] = D, D = o[D];
2424
+ for (let V = 0, D = this._hullStart; V < S; V++)
2425
+ this.hull[V] = D, D = o[D];
2426
2426
  this.triangles = this._triangles.subarray(0, this.trianglesLen), this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
2427
2427
  }
2428
2428
  /**
@@ -2451,20 +2451,20 @@ class Be {
2451
2451
  t = De[--r];
2452
2452
  continue;
2453
2453
  }
2454
- const c = a - a % 3, h = l + (t + 1) % 3, d = c + (a + 2) % 3, u = e[s], f = e[t], w = e[h], y = e[d];
2454
+ const u = a - a % 3, h = l + (t + 1) % 3, d = u + (a + 2) % 3, c = e[s], f = e[t], w = e[h], x = e[d];
2455
2455
  if (ko(
2456
- i[2 * u],
2457
- i[2 * u + 1],
2456
+ i[2 * c],
2457
+ i[2 * c + 1],
2458
2458
  i[2 * f],
2459
2459
  i[2 * f + 1],
2460
2460
  i[2 * w],
2461
2461
  i[2 * w + 1],
2462
- i[2 * y],
2463
- i[2 * y + 1]
2462
+ i[2 * x],
2463
+ i[2 * x + 1]
2464
2464
  )) {
2465
- e[t] = y, e[a] = u;
2466
- const P = o[d];
2467
- if (P === -1) {
2465
+ e[t] = x, e[a] = c;
2466
+ const M = o[d];
2467
+ if (M === -1) {
2468
2468
  let m = this._hullStart;
2469
2469
  do {
2470
2470
  if (this._hullTri[m] === d) {
@@ -2474,8 +2474,8 @@ class Be {
2474
2474
  m = this._hullPrev[m];
2475
2475
  } while (m !== this._hullStart);
2476
2476
  }
2477
- this._link(t, P), this._link(a, o[s]), this._link(s, d);
2478
- const g = c + (a + 1) % 3;
2477
+ this._link(t, M), this._link(a, o[s]), this._link(s, d);
2478
+ const g = u + (a + 1) % 3;
2479
2479
  r < De.length && (De[r++] = g);
2480
2480
  } else {
2481
2481
  if (r === 0) break;
@@ -2518,15 +2518,15 @@ function We(n, t, e, o) {
2518
2518
  return i * i + r * r;
2519
2519
  }
2520
2520
  function ko(n, t, e, o, i, r, s, a) {
2521
- const l = n - s, c = t - a, h = e - s, d = o - a, u = i - s, f = r - a, w = l * l + c * c, y = h * h + d * d, M = u * u + f * f;
2522
- return l * (d * M - y * f) - c * (h * M - y * u) + w * (h * f - d * u) < 0;
2521
+ const l = n - s, u = t - a, h = e - s, d = o - a, c = i - s, f = r - a, w = l * l + u * u, x = h * h + d * d, P = c * c + f * f;
2522
+ return l * (d * P - x * f) - u * (h * P - x * c) + w * (h * f - d * c) < 0;
2523
2523
  }
2524
2524
  function Co(n, t, e, o, i, r) {
2525
- const s = e - n, a = o - t, l = i - n, c = r - t, h = s * s + a * a, d = l * l + c * c, u = 0.5 / (s * c - a * l), f = (c * h - a * d) * u, w = (s * d - l * h) * u;
2525
+ const s = e - n, a = o - t, l = i - n, u = r - t, h = s * s + a * a, d = l * l + u * u, c = 0.5 / (s * u - a * l), f = (u * h - a * d) * c, w = (s * d - l * h) * c;
2526
2526
  return f * f + w * w;
2527
2527
  }
2528
2528
  function Lo(n, t, e, o, i, r) {
2529
- const s = e - n, a = o - t, l = i - n, c = r - t, h = s * s + a * a, d = l * l + c * c, u = 0.5 / (s * c - a * l), f = n + (c * h - a * d) * u, w = t + (s * d - l * h) * u;
2529
+ const s = e - n, a = o - t, l = i - n, u = r - t, h = s * s + a * a, d = l * l + u * u, c = 0.5 / (s * u - a * l), f = n + (u * h - a * d) * c, w = t + (s * d - l * h) * c;
2530
2530
  return { x: f, y: w };
2531
2531
  }
2532
2532
  function ye(n, t, e, o) {
@@ -2622,8 +2622,8 @@ class Oo {
2622
2622
  const { delaunay: { points: t, hull: e, triangles: o }, vectors: i } = this;
2623
2623
  let r, s;
2624
2624
  const a = this.circumcenters = this._circumcenters.subarray(0, o.length / 3 * 2);
2625
- for (let y = 0, M = 0, P = o.length, g, m; y < P; y += 3, M += 2) {
2626
- const p = o[y] * 2, b = o[y + 1] * 2, V = o[y + 2] * 2, v = t[p], S = t[p + 1], z = t[b], D = t[b + 1], _ = t[V], E = t[V + 1], T = z - v, A = D - S, O = _ - v, I = E - S, B = (T * I - A * O) * 2;
2625
+ for (let x = 0, P = 0, M = o.length, g, m; x < M; x += 3, P += 2) {
2626
+ const p = o[x] * 2, b = o[x + 1] * 2, z = o[x + 2] * 2, v = t[p], S = t[p + 1], V = t[b], D = t[b + 1], _ = t[z], E = t[z + 1], T = V - v, A = D - S, O = _ - v, I = E - S, B = (T * I - A * O) * 2;
2627
2627
  if (Math.abs(B) < 1e-9) {
2628
2628
  if (r === void 0) {
2629
2629
  r = s = 0;
@@ -2636,27 +2636,27 @@ class Oo {
2636
2636
  const L = 1 / B, N = T * T + A * A, C = O * O + I * I;
2637
2637
  g = v + (I * N - A * C) * L, m = S + (T * C - O * N) * L;
2638
2638
  }
2639
- a[M] = g, a[M + 1] = m;
2639
+ a[P] = g, a[P + 1] = m;
2640
2640
  }
2641
- let l = e[e.length - 1], c, h = l * 4, d, u = t[2 * l], f, w = t[2 * l + 1];
2641
+ let l = e[e.length - 1], u, h = l * 4, d, c = t[2 * l], f, w = t[2 * l + 1];
2642
2642
  i.fill(0);
2643
- for (let y = 0; y < e.length; ++y)
2644
- l = e[y], c = h, d = u, f = w, h = l * 4, u = t[2 * l], w = t[2 * l + 1], i[c + 2] = i[h] = f - w, i[c + 3] = i[h + 1] = u - d;
2643
+ for (let x = 0; x < e.length; ++x)
2644
+ l = e[x], u = h, d = c, f = w, h = l * 4, c = t[2 * l], w = t[2 * l + 1], i[u + 2] = i[h] = f - w, i[u + 3] = i[h + 1] = c - d;
2645
2645
  }
2646
2646
  render(t) {
2647
2647
  const e = t == null ? t = new de() : void 0, { delaunay: { halfedges: o, inedges: i, hull: r }, circumcenters: s, vectors: a } = this;
2648
2648
  if (r.length <= 1) return null;
2649
2649
  for (let h = 0, d = o.length; h < d; ++h) {
2650
- const u = o[h];
2651
- if (u < h) continue;
2652
- const f = Math.floor(h / 3) * 2, w = Math.floor(u / 3) * 2, y = s[f], M = s[f + 1], P = s[w], g = s[w + 1];
2653
- this._renderSegment(y, M, P, g, t);
2650
+ const c = o[h];
2651
+ if (c < h) continue;
2652
+ const f = Math.floor(h / 3) * 2, w = Math.floor(c / 3) * 2, x = s[f], P = s[f + 1], M = s[w], g = s[w + 1];
2653
+ this._renderSegment(x, P, M, g, t);
2654
2654
  }
2655
- let l, c = r[r.length - 1];
2655
+ let l, u = r[r.length - 1];
2656
2656
  for (let h = 0; h < r.length; ++h) {
2657
- l = c, c = r[h];
2658
- const d = Math.floor(i[c] / 3) * 2, u = s[d], f = s[d + 1], w = l * 4, y = this._project(u, f, a[w + 2], a[w + 3]);
2659
- y && this._renderSegment(u, f, y[0], y[1], t);
2657
+ l = u, u = r[h];
2658
+ const d = Math.floor(i[u] / 3) * 2, c = s[d], f = s[d + 1], w = l * 4, x = this._project(c, f, a[w + 2], a[w + 3]);
2659
+ x && this._renderSegment(c, f, x[0], x[1], t);
2660
2660
  }
2661
2661
  return e && e.value();
2662
2662
  }
@@ -2713,8 +2713,8 @@ class Oo {
2713
2713
  const a = [];
2714
2714
  let l = s;
2715
2715
  do {
2716
- const c = Math.floor(l / 3);
2717
- if (a.push(e[c * 2], e[c * 2 + 1]), l = l % 3 === 2 ? l - 2 : l + 1, r[l] !== t) break;
2716
+ const u = Math.floor(l / 3);
2717
+ if (a.push(e[u * 2], e[u * 2 + 1]), l = l % 3 === 2 ? l - 2 : l + 1, r[l] !== t) break;
2718
2718
  l = i[l];
2719
2719
  } while (l !== s && l !== -1);
2720
2720
  return a;
@@ -2729,23 +2729,23 @@ class Oo {
2729
2729
  }
2730
2730
  _clipFinite(t, e) {
2731
2731
  const o = e.length;
2732
- let i = null, r, s, a = e[o - 2], l = e[o - 1], c, h = this._regioncode(a, l), d, u = 0;
2732
+ let i = null, r, s, a = e[o - 2], l = e[o - 1], u, h = this._regioncode(a, l), d, c = 0;
2733
2733
  for (let f = 0; f < o; f += 2)
2734
- if (r = a, s = l, a = e[f], l = e[f + 1], c = h, h = this._regioncode(a, l), c === 0 && h === 0)
2735
- d = u, u = 0, i ? i.push(a, l) : i = [a, l];
2734
+ if (r = a, s = l, a = e[f], l = e[f + 1], u = h, h = this._regioncode(a, l), u === 0 && h === 0)
2735
+ d = c, c = 0, i ? i.push(a, l) : i = [a, l];
2736
2736
  else {
2737
- let w, y, M, P, g;
2738
- if (c === 0) {
2739
- if ((w = this._clipSegment(r, s, a, l, c, h)) === null) continue;
2740
- [y, M, P, g] = w;
2737
+ let w, x, P, M, g;
2738
+ if (u === 0) {
2739
+ if ((w = this._clipSegment(r, s, a, l, u, h)) === null) continue;
2740
+ [x, P, M, g] = w;
2741
2741
  } else {
2742
- if ((w = this._clipSegment(a, l, r, s, h, c)) === null) continue;
2743
- [P, g, y, M] = w, d = u, u = this._edgecode(y, M), d && u && this._edge(t, d, u, i, i.length), i ? i.push(y, M) : i = [y, M];
2742
+ if ((w = this._clipSegment(a, l, r, s, h, u)) === null) continue;
2743
+ [M, g, x, P] = w, d = c, c = this._edgecode(x, P), d && c && this._edge(t, d, c, i, i.length), i ? i.push(x, P) : i = [x, P];
2744
2744
  }
2745
- d = u, u = this._edgecode(P, g), d && u && this._edge(t, d, u, i, i.length), i ? i.push(P, g) : i = [P, g];
2745
+ d = c, c = this._edgecode(M, g), d && c && this._edge(t, d, c, i, i.length), i ? i.push(M, g) : i = [M, g];
2746
2746
  }
2747
2747
  if (i)
2748
- d = u, u = this._edgecode(i[0], i[1]), d && u && this._edge(t, d, u, i, i.length);
2748
+ d = c, c = this._edgecode(i[0], i[1]), d && c && this._edge(t, d, c, i, i.length);
2749
2749
  else if (this.contains(t, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2))
2750
2750
  return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
2751
2751
  return i;
@@ -2755,15 +2755,15 @@ class Oo {
2755
2755
  for (a && ([t, e, o, i, r, s] = [o, i, t, e, s, r]); ; ) {
2756
2756
  if (r === 0 && s === 0) return a ? [o, i, t, e] : [t, e, o, i];
2757
2757
  if (r & s) return null;
2758
- let l, c, h = r || s;
2759
- h & 8 ? (l = t + (o - t) * (this.ymax - e) / (i - e), c = this.ymax) : h & 4 ? (l = t + (o - t) * (this.ymin - e) / (i - e), c = this.ymin) : h & 2 ? (c = e + (i - e) * (this.xmax - t) / (o - t), l = this.xmax) : (c = e + (i - e) * (this.xmin - t) / (o - t), l = this.xmin), r ? (t = l, e = c, r = this._regioncode(t, e)) : (o = l, i = c, s = this._regioncode(o, i));
2758
+ let l, u, h = r || s;
2759
+ h & 8 ? (l = t + (o - t) * (this.ymax - e) / (i - e), u = this.ymax) : h & 4 ? (l = t + (o - t) * (this.ymin - e) / (i - e), u = this.ymin) : h & 2 ? (u = e + (i - e) * (this.xmax - t) / (o - t), l = this.xmax) : (u = e + (i - e) * (this.xmin - t) / (o - t), l = this.xmin), r ? (t = l, e = u, r = this._regioncode(t, e)) : (o = l, i = u, s = this._regioncode(o, i));
2760
2760
  }
2761
2761
  }
2762
2762
  _clipInfinite(t, e, o, i, r, s) {
2763
2763
  let a = Array.from(e), l;
2764
2764
  if ((l = this._project(a[0], a[1], o, i)) && a.unshift(l[0], l[1]), (l = this._project(a[a.length - 2], a[a.length - 1], r, s)) && a.push(l[0], l[1]), a = this._clipFinite(t, a))
2765
- for (let c = 0, h = a.length, d, u = this._edgecode(a[h - 2], a[h - 1]); c < h; c += 2)
2766
- d = u, u = this._edgecode(a[c], a[c + 1]), d && u && (c = this._edge(t, d, u, a, c), h = a.length);
2765
+ for (let u = 0, h = a.length, d, c = this._edgecode(a[h - 2], a[h - 1]); u < h; u += 2)
2766
+ d = c, c = this._edgecode(a[u], a[u + 1]), d && c && (u = this._edge(t, d, c, a, u), h = a.length);
2767
2767
  else this.contains(t, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2) && (a = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]);
2768
2768
  return a;
2769
2769
  }
@@ -2866,21 +2866,21 @@ class ke {
2866
2866
  _init() {
2867
2867
  const t = this._delaunator, e = this.points;
2868
2868
  if (t.hull && t.hull.length > 2 && Xo(t)) {
2869
- this.collinear = Int32Array.from({ length: e.length / 2 }, (u, f) => f).sort((u, f) => e[2 * u] - e[2 * f] || e[2 * u + 1] - e[2 * f + 1]);
2870
- const l = this.collinear[0], c = this.collinear[this.collinear.length - 1], h = [e[2 * l], e[2 * l + 1], e[2 * c], e[2 * c + 1]], d = 1e-8 * Math.hypot(h[3] - h[1], h[2] - h[0]);
2871
- for (let u = 0, f = e.length / 2; u < f; ++u) {
2872
- const w = $o(e[2 * u], e[2 * u + 1], d);
2873
- e[2 * u] = w[0], e[2 * u + 1] = w[1];
2869
+ this.collinear = Int32Array.from({ length: e.length / 2 }, (c, f) => f).sort((c, f) => e[2 * c] - e[2 * f] || e[2 * c + 1] - e[2 * f + 1]);
2870
+ const l = this.collinear[0], u = this.collinear[this.collinear.length - 1], h = [e[2 * l], e[2 * l + 1], e[2 * u], e[2 * u + 1]], d = 1e-8 * Math.hypot(h[3] - h[1], h[2] - h[0]);
2871
+ for (let c = 0, f = e.length / 2; c < f; ++c) {
2872
+ const w = $o(e[2 * c], e[2 * c + 1], d);
2873
+ e[2 * c] = w[0], e[2 * c + 1] = w[1];
2874
2874
  }
2875
2875
  this._delaunator = new Be(e);
2876
2876
  } else
2877
2877
  delete this.collinear;
2878
2878
  const o = this.halfedges = this._delaunator.halfedges, i = this.hull = this._delaunator.hull, r = this.triangles = this._delaunator.triangles, s = this.inedges.fill(-1), a = this._hullIndex.fill(-1);
2879
- for (let l = 0, c = o.length; l < c; ++l) {
2879
+ for (let l = 0, u = o.length; l < u; ++l) {
2880
2880
  const h = r[l % 3 === 2 ? l - 2 : l + 1];
2881
2881
  (o[l] === -1 || s[h] === -1) && (s[h] = l);
2882
2882
  }
2883
- for (let l = 0, c = i.length; l < c; ++l)
2883
+ for (let l = 0, u = i.length; l < u; ++l)
2884
2884
  a[i[l]] = l;
2885
2885
  i.length <= 2 && i.length > 0 && (this.triangles = new Int32Array(3).fill(-1), this.halfedges = new Int32Array(3).fill(-1), this.triangles[0] = i[0], s[i[0]] = 1, i.length === 2 && (s[i[1]] = 0, this.triangles[1] = i[1], this.triangles[2] = i[1]));
2886
2886
  }
@@ -2896,15 +2896,15 @@ class ke {
2896
2896
  }
2897
2897
  const l = e[t];
2898
2898
  if (l === -1) return;
2899
- let c = l, h = -1;
2899
+ let u = l, h = -1;
2900
2900
  do {
2901
- if (yield h = s[c], c = c % 3 === 2 ? c - 2 : c + 1, s[c] !== t) return;
2902
- if (c = r[c], c === -1) {
2901
+ if (yield h = s[u], u = u % 3 === 2 ? u - 2 : u + 1, s[u] !== t) return;
2902
+ if (u = r[u], u === -1) {
2903
2903
  const d = o[(i[t] + 1) % o.length];
2904
2904
  d !== h && (yield d);
2905
2905
  return;
2906
2906
  }
2907
- } while (c !== l);
2907
+ } while (u !== l);
2908
2908
  }
2909
2909
  find(t, e, o = 0) {
2910
2910
  if (t = +t, t !== t || (e = +e, e !== e)) return -1;
@@ -2914,21 +2914,21 @@ class ke {
2914
2914
  return r;
2915
2915
  }
2916
2916
  _step(t, e, o) {
2917
- const { inedges: i, hull: r, _hullIndex: s, halfedges: a, triangles: l, points: c } = this;
2918
- if (i[t] === -1 || !c.length) return (t + 1) % (c.length >> 1);
2919
- let h = t, d = ge(e - c[t * 2], 2) + ge(o - c[t * 2 + 1], 2);
2920
- const u = i[t];
2921
- let f = u;
2917
+ const { inedges: i, hull: r, _hullIndex: s, halfedges: a, triangles: l, points: u } = this;
2918
+ if (i[t] === -1 || !u.length) return (t + 1) % (u.length >> 1);
2919
+ let h = t, d = ge(e - u[t * 2], 2) + ge(o - u[t * 2 + 1], 2);
2920
+ const c = i[t];
2921
+ let f = c;
2922
2922
  do {
2923
2923
  let w = l[f];
2924
- const y = ge(e - c[w * 2], 2) + ge(o - c[w * 2 + 1], 2);
2925
- if (y < d && (d = y, h = w), f = f % 3 === 2 ? f - 2 : f + 1, l[f] !== t) break;
2924
+ const x = ge(e - u[w * 2], 2) + ge(o - u[w * 2 + 1], 2);
2925
+ if (x < d && (d = x, h = w), f = f % 3 === 2 ? f - 2 : f + 1, l[f] !== t) break;
2926
2926
  if (f = a[f], f === -1) {
2927
- if (f = r[(s[t] + 1) % r.length], f !== w && ge(e - c[f * 2], 2) + ge(o - c[f * 2 + 1], 2) < d)
2927
+ if (f = r[(s[t] + 1) % r.length], f !== w && ge(e - u[f * 2], 2) + ge(o - u[f * 2 + 1], 2) < d)
2928
2928
  return f;
2929
2929
  break;
2930
2930
  }
2931
- } while (f !== u);
2931
+ } while (f !== c);
2932
2932
  return h;
2933
2933
  }
2934
2934
  render(t) {
@@ -2936,8 +2936,8 @@ class ke {
2936
2936
  for (let s = 0, a = i.length; s < a; ++s) {
2937
2937
  const l = i[s];
2938
2938
  if (l < s) continue;
2939
- const c = r[s] * 2, h = r[l] * 2;
2940
- t.moveTo(o[c], o[c + 1]), t.lineTo(o[h], o[h + 1]);
2939
+ const u = r[s] * 2, h = r[l] * 2;
2940
+ t.moveTo(o[u], o[u + 1]), t.lineTo(o[h], o[h + 1]);
2941
2941
  }
2942
2942
  return this.renderHull(t), e && e.value();
2943
2943
  }
@@ -2994,43 +2994,43 @@ function Go(n, t, e, o) {
2994
2994
  return 1 + (n[t][0] === 0 || n[e][0] === 0 || n[o][0] === 0 ? 1 : 0);
2995
2995
  }
2996
2996
  function jo(n, t, e, o, i, r) {
2997
- const s = Math.hypot(e - i, o - r), a = Math.hypot(n - i, t - r), l = Math.hypot(n - e, t - o), c = Math.abs((e - n) * (r - t) - (i - n) * (o - t)) / 2;
2998
- return c === 0 ? 1 / 0 : s * a * l / (4 * c);
2997
+ const s = Math.hypot(e - i, o - r), a = Math.hypot(n - i, t - r), l = Math.hypot(n - e, t - o), u = Math.abs((e - n) * (r - t) - (i - n) * (o - t)) / 2;
2998
+ return u === 0 ? 1 / 0 : s * a * l / (4 * u);
2999
2999
  }
3000
3000
  function cn(n) {
3001
3001
  if (!n || n.length < 3) return [];
3002
3002
  const t = /* @__PURE__ */ new Set(), e = [];
3003
3003
  for (const w of n) {
3004
- const y = `${w[0]}_${w[1]}`;
3005
- t.has(y) || (t.add(y), e.push(w));
3004
+ const x = `${w[0]}_${w[1]}`;
3005
+ t.has(x) || (t.add(x), e.push(w));
3006
3006
  }
3007
3007
  if (e.length < 3) return [];
3008
3008
  const o = new ke(Float64Array.from(e.flat())), { triangles: i } = o;
3009
3009
  if (!i.length) return [];
3010
- const r = /* @__PURE__ */ new Map(), s = (w, y) => w < y ? `${w}_${y}` : `${y}_${w}`;
3010
+ const r = /* @__PURE__ */ new Map(), s = (w, x) => w < x ? `${w}_${x}` : `${x}_${w}`;
3011
3011
  for (let w = 0; w < i.length; w += 3) {
3012
- const y = i[w], M = i[w + 1], P = i[w + 2], [g, m] = e[y], [p, b] = e[M], [V, v] = e[P], S = jo(g, m, p, b, V, v), z = Go(e, y, M, P);
3013
- if (S <= 1 / z)
3014
- for (const [D, _] of [[y, M], [M, P], [P, y]]) {
3012
+ const x = i[w], P = i[w + 1], M = i[w + 2], [g, m] = e[x], [p, b] = e[P], [z, v] = e[M], S = jo(g, m, p, b, z, v), V = Go(e, x, P, M);
3013
+ if (S <= 1 / V)
3014
+ for (const [D, _] of [[x, P], [P, M], [M, x]]) {
3015
3015
  const E = s(D, _);
3016
3016
  r.set(E, (r.get(E) || 0) + 1);
3017
3017
  }
3018
3018
  }
3019
3019
  const a = [];
3020
- for (const [w, y] of r) y === 1 && a.push(w.split("_").map(Number));
3020
+ for (const [w, x] of r) x === 1 && a.push(w.split("_").map(Number));
3021
3021
  if (!a.length) return [];
3022
3022
  const l = /* @__PURE__ */ new Map();
3023
- for (const [w, y] of a)
3024
- (l.get(w) || l.set(w, []).get(w)).push(y), (l.get(y) || l.set(y, []).get(y)).push(w);
3025
- const c = a[0][0], h = [], d = /* @__PURE__ */ new Set();
3026
- let u = c, f = -1;
3023
+ for (const [w, x] of a)
3024
+ (l.get(w) || l.set(w, []).get(w)).push(x), (l.get(x) || l.set(x, []).get(x)).push(w);
3025
+ const u = a[0][0], h = [], d = /* @__PURE__ */ new Set();
3026
+ let c = u, f = -1;
3027
3027
  do {
3028
- h.push(e[u]), d.add(u);
3029
- const w = l.get(u) || [];
3030
- let y = w.find((M) => M !== f && !d.has(M));
3031
- if (y === void 0 && (y = w.find((M) => M !== f)), y === void 0) break;
3032
- f = u, u = y;
3033
- } while (u !== c && h.length <= a.length + 1);
3028
+ h.push(e[c]), d.add(c);
3029
+ const w = l.get(c) || [];
3030
+ let x = w.find((P) => P !== f && !d.has(P));
3031
+ if (x === void 0 && (x = w.find((P) => P !== f)), x === void 0) break;
3032
+ f = c, c = x;
3033
+ } while (c !== u && h.length <= a.length + 1);
3034
3034
  return h;
3035
3035
  }
3036
3036
  const mt = {
@@ -3225,8 +3225,8 @@ let An = class {
3225
3225
  let o = Ot.set(e[0], e[1], e[2]).length();
3226
3226
  const i = Ot.set(e[4], e[5], e[6]).length(), r = Ot.set(e[8], e[9], e[10]).length();
3227
3227
  t.determinant() < 0 && (o = -o), Qt.setFromMatrix4(t);
3228
- const a = 1 / o, l = 1 / i, c = 1 / r;
3229
- return Qt.elements[0] *= a, Qt.elements[1] *= a, Qt.elements[2] *= a, Qt.elements[3] *= l, Qt.elements[4] *= l, Qt.elements[5] *= l, Qt.elements[6] *= c, Qt.elements[7] *= c, Qt.elements[8] *= c, this.rotation.multiply(Qt), this.halfSize.x *= o, this.halfSize.y *= i, this.halfSize.z *= r, Ot.setFromMatrixPosition(t), this.center.add(Ot), this;
3228
+ const a = 1 / o, l = 1 / i, u = 1 / r;
3229
+ return Qt.elements[0] *= a, Qt.elements[1] *= a, Qt.elements[2] *= a, Qt.elements[3] *= l, Qt.elements[4] *= l, Qt.elements[5] *= l, Qt.elements[6] *= u, Qt.elements[7] *= u, Qt.elements[8] *= u, this.rotation.multiply(Qt), this.halfSize.x *= o, this.halfSize.y *= i, this.halfSize.z *= r, Ot.setFromMatrixPosition(t), this.center.add(Ot), this;
3230
3230
  }
3231
3231
  };
3232
3232
  const Uo = new An();
@@ -3313,17 +3313,17 @@ function Qo(n) {
3313
3313
  }
3314
3314
  function Pe(n, t, e) {
3315
3315
  if (n !== null)
3316
- for (var o, i, r, s, a, l, c, h = 0, d = 0, u, f = n.type, w = f === "FeatureCollection", y = f === "Feature", M = w ? n.features.length : 1, P = 0; P < M; P++) {
3317
- c = w ? (
3316
+ for (var o, i, r, s, a, l, u, h = 0, d = 0, c, f = n.type, w = f === "FeatureCollection", x = f === "Feature", P = w ? n.features.length : 1, M = 0; M < P; M++) {
3317
+ u = w ? (
3318
3318
  // @ts-expect-error: Known type conflict
3319
- n.features[P].geometry
3320
- ) : y ? (
3319
+ n.features[M].geometry
3320
+ ) : x ? (
3321
3321
  // @ts-expect-error: Known type conflict
3322
3322
  n.geometry
3323
- ) : n, u = c ? c.type === "GeometryCollection" : !1, a = u ? c.geometries.length : 1;
3323
+ ) : n, c = u ? u.type === "GeometryCollection" : !1, a = c ? u.geometries.length : 1;
3324
3324
  for (var g = 0; g < a; g++) {
3325
3325
  var m = 0, p = 0;
3326
- if (s = u ? c.geometries[g] : c, s !== null) {
3326
+ if (s = c ? u.geometries[g] : u, s !== null) {
3327
3327
  l = s.coordinates;
3328
3328
  var b = s.type;
3329
3329
  switch (h = e && (b === "Polygon" || b === "MultiPolygon") ? 1 : 0, b) {
@@ -3335,7 +3335,7 @@ function Pe(n, t, e) {
3335
3335
  t(
3336
3336
  l,
3337
3337
  d,
3338
- P,
3338
+ M,
3339
3339
  m,
3340
3340
  p
3341
3341
  ) === !1
@@ -3351,7 +3351,7 @@ function Pe(n, t, e) {
3351
3351
  t(
3352
3352
  l[o],
3353
3353
  d,
3354
- P,
3354
+ M,
3355
3355
  m,
3356
3356
  p
3357
3357
  ) === !1
@@ -3370,7 +3370,7 @@ function Pe(n, t, e) {
3370
3370
  t(
3371
3371
  l[o][i],
3372
3372
  d,
3373
- P,
3373
+ M,
3374
3374
  m,
3375
3375
  p
3376
3376
  ) === !1
@@ -3391,7 +3391,7 @@ function Pe(n, t, e) {
3391
3391
  t(
3392
3392
  l[o][i][r],
3393
3393
  d,
3394
- P,
3394
+ M,
3395
3395
  m,
3396
3396
  p
3397
3397
  ) === !1
@@ -3426,15 +3426,15 @@ function Jo(n) {
3426
3426
  }), t;
3427
3427
  }
3428
3428
  function tr(n, t) {
3429
- var e, o, i, r, s, a, l, c, h, d, u = 0, f = n.type === "FeatureCollection", w = n.type === "Feature", y = f ? n.features.length : 1;
3430
- for (e = 0; e < y; e++) {
3429
+ var e, o, i, r, s, a, l, u, h, d, c = 0, f = n.type === "FeatureCollection", w = n.type === "Feature", x = f ? n.features.length : 1;
3430
+ for (e = 0; e < x; e++) {
3431
3431
  for (a = f ? (
3432
3432
  // @ts-expect-error: Known type conflict
3433
3433
  n.features[e].geometry
3434
3434
  ) : w ? (
3435
3435
  // @ts-expect-error: Known type conflict
3436
3436
  n.geometry
3437
- ) : n, c = f ? (
3437
+ ) : n, u = f ? (
3438
3438
  // @ts-expect-error: Known type conflict
3439
3439
  n.features[e].properties
3440
3440
  ) : w ? (
@@ -3459,8 +3459,8 @@ function tr(n, t) {
3459
3459
  t(
3460
3460
  // @ts-expect-error: Known type conflict
3461
3461
  null,
3462
- u,
3463
3462
  c,
3463
+ u,
3464
3464
  h,
3465
3465
  d
3466
3466
  ) === !1
@@ -3479,8 +3479,8 @@ function tr(n, t) {
3479
3479
  // @ts-expect-error: Known type conflict
3480
3480
  t(
3481
3481
  r,
3482
- u,
3483
3482
  c,
3483
+ u,
3484
3484
  h,
3485
3485
  d
3486
3486
  ) === !1
@@ -3494,8 +3494,8 @@ function tr(n, t) {
3494
3494
  // @ts-expect-error: Known type conflict
3495
3495
  t(
3496
3496
  r.geometries[o],
3497
- u,
3498
3497
  c,
3498
+ u,
3499
3499
  h,
3500
3500
  d
3501
3501
  ) === !1
@@ -3507,7 +3507,7 @@ function tr(n, t) {
3507
3507
  throw new Error("Unknown Geometry Type");
3508
3508
  }
3509
3509
  }
3510
- u++;
3510
+ c++;
3511
3511
  }
3512
3512
  }
3513
3513
  function er(n, t, e) {
@@ -3555,21 +3555,21 @@ var Ze = { exports: {} }, On = { exports: {} };
3555
3555
  (function(e, o) {
3556
3556
  n.exports = o();
3557
3557
  })(Fn, function() {
3558
- function e(g, m, p, b, V) {
3559
- (function v(S, z, D, _, E) {
3558
+ function e(g, m, p, b, z) {
3559
+ (function v(S, V, D, _, E) {
3560
3560
  for (; _ > D; ) {
3561
3561
  if (_ - D > 600) {
3562
- var T = _ - D + 1, A = z - D + 1, O = Math.log(T), I = 0.5 * Math.exp(2 * O / 3), B = 0.5 * Math.sqrt(O * I * (T - I) / T) * (A - T / 2 < 0 ? -1 : 1), L = Math.max(D, Math.floor(z - A * I / T + B)), N = Math.min(_, Math.floor(z + (T - A) * I / T + B));
3563
- v(S, z, L, N, E);
3562
+ var T = _ - D + 1, A = V - D + 1, O = Math.log(T), I = 0.5 * Math.exp(2 * O / 3), B = 0.5 * Math.sqrt(O * I * (T - I) / T) * (A - T / 2 < 0 ? -1 : 1), L = Math.max(D, Math.floor(V - A * I / T + B)), N = Math.min(_, Math.floor(V + (T - A) * I / T + B));
3563
+ v(S, V, L, N, E);
3564
3564
  }
3565
- var C = S[z], R = D, $ = _;
3566
- for (o(S, D, z), E(S[_], C) > 0 && o(S, D, _); R < $; ) {
3565
+ var C = S[V], R = D, $ = _;
3566
+ for (o(S, D, V), E(S[_], C) > 0 && o(S, D, _); R < $; ) {
3567
3567
  for (o(S, R, $), R++, $--; E(S[R], C) < 0; ) R++;
3568
3568
  for (; E(S[$], C) > 0; ) $--;
3569
3569
  }
3570
- E(S[D], C) === 0 ? o(S, D, $) : o(S, ++$, _), $ <= z && (D = $ + 1), z <= $ && (_ = $ - 1);
3570
+ E(S[D], C) === 0 ? o(S, D, $) : o(S, ++$, _), $ <= V && (D = $ + 1), V <= $ && (_ = $ - 1);
3571
3571
  }
3572
- })(g, m, p || 0, b || g.length - 1, V || i);
3572
+ })(g, m, p || 0, b || g.length - 1, z || i);
3573
3573
  }
3574
3574
  function o(g, m, p) {
3575
3575
  var b = g[m];
@@ -3589,15 +3589,15 @@ var Ze = { exports: {} }, On = { exports: {} };
3589
3589
  function a(g, m) {
3590
3590
  l(g, 0, g.children.length, m, g);
3591
3591
  }
3592
- function l(g, m, p, b, V) {
3593
- V || (V = M(null)), V.minX = 1 / 0, V.minY = 1 / 0, V.maxX = -1 / 0, V.maxY = -1 / 0;
3592
+ function l(g, m, p, b, z) {
3593
+ z || (z = P(null)), z.minX = 1 / 0, z.minY = 1 / 0, z.maxX = -1 / 0, z.maxY = -1 / 0;
3594
3594
  for (var v = m; v < p; v++) {
3595
3595
  var S = g.children[v];
3596
- c(V, g.leaf ? b(S) : S);
3596
+ u(z, g.leaf ? b(S) : S);
3597
3597
  }
3598
- return V;
3598
+ return z;
3599
3599
  }
3600
- function c(g, m) {
3600
+ function u(g, m) {
3601
3601
  return g.minX = Math.min(g.minX, m.minX), g.minY = Math.min(g.minY, m.minY), g.maxX = Math.max(g.maxX, m.maxX), g.maxY = Math.max(g.maxY, m.maxY), g;
3602
3602
  }
3603
3603
  function h(g, m) {
@@ -3606,7 +3606,7 @@ var Ze = { exports: {} }, On = { exports: {} };
3606
3606
  function d(g, m) {
3607
3607
  return g.minY - m.minY;
3608
3608
  }
3609
- function u(g) {
3609
+ function c(g) {
3610
3610
  return (g.maxX - g.minX) * (g.maxY - g.minY);
3611
3611
  }
3612
3612
  function f(g) {
@@ -3615,40 +3615,40 @@ var Ze = { exports: {} }, On = { exports: {} };
3615
3615
  function w(g, m) {
3616
3616
  return g.minX <= m.minX && g.minY <= m.minY && m.maxX <= g.maxX && m.maxY <= g.maxY;
3617
3617
  }
3618
- function y(g, m) {
3618
+ function x(g, m) {
3619
3619
  return m.minX <= g.maxX && m.minY <= g.maxY && m.maxX >= g.minX && m.maxY >= g.minY;
3620
3620
  }
3621
- function M(g) {
3621
+ function P(g) {
3622
3622
  return { children: g, height: 1, leaf: !0, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 };
3623
3623
  }
3624
- function P(g, m, p, b, V) {
3624
+ function M(g, m, p, b, z) {
3625
3625
  for (var v = [m, p]; v.length; ) if (!((p = v.pop()) - (m = v.pop()) <= b)) {
3626
3626
  var S = m + Math.ceil((p - m) / b / 2) * b;
3627
- e(g, S, m, p, V), v.push(m, S, S, p);
3627
+ e(g, S, m, p, z), v.push(m, S, S, p);
3628
3628
  }
3629
3629
  }
3630
3630
  return r.prototype.all = function() {
3631
3631
  return this._all(this.data, []);
3632
3632
  }, r.prototype.search = function(g) {
3633
3633
  var m = this.data, p = [];
3634
- if (!y(g, m)) return p;
3635
- for (var b = this.toBBox, V = []; m; ) {
3634
+ if (!x(g, m)) return p;
3635
+ for (var b = this.toBBox, z = []; m; ) {
3636
3636
  for (var v = 0; v < m.children.length; v++) {
3637
- var S = m.children[v], z = m.leaf ? b(S) : S;
3638
- y(g, z) && (m.leaf ? p.push(S) : w(g, z) ? this._all(S, p) : V.push(S));
3637
+ var S = m.children[v], V = m.leaf ? b(S) : S;
3638
+ x(g, V) && (m.leaf ? p.push(S) : w(g, V) ? this._all(S, p) : z.push(S));
3639
3639
  }
3640
- m = V.pop();
3640
+ m = z.pop();
3641
3641
  }
3642
3642
  return p;
3643
3643
  }, r.prototype.collides = function(g) {
3644
3644
  var m = this.data;
3645
- if (!y(g, m)) return !1;
3645
+ if (!x(g, m)) return !1;
3646
3646
  for (var p = []; m; ) {
3647
3647
  for (var b = 0; b < m.children.length; b++) {
3648
- var V = m.children[b], v = m.leaf ? this.toBBox(V) : V;
3649
- if (y(g, v)) {
3648
+ var z = m.children[b], v = m.leaf ? this.toBBox(z) : z;
3649
+ if (x(g, v)) {
3650
3650
  if (m.leaf || w(g, v)) return !0;
3651
- p.push(V);
3651
+ p.push(z);
3652
3652
  }
3653
3653
  }
3654
3654
  m = p.pop();
@@ -3674,15 +3674,15 @@ var Ze = { exports: {} }, On = { exports: {} };
3674
3674
  }, r.prototype.insert = function(g) {
3675
3675
  return g && this._insert(g, this.data.height - 1), this;
3676
3676
  }, r.prototype.clear = function() {
3677
- return this.data = M([]), this;
3677
+ return this.data = P([]), this;
3678
3678
  }, r.prototype.remove = function(g, m) {
3679
3679
  if (!g) return this;
3680
- for (var p, b, V, v = this.data, S = this.toBBox(g), z = [], D = []; v || z.length; ) {
3681
- if (v || (v = z.pop(), b = z[z.length - 1], p = D.pop(), V = !0), v.leaf) {
3680
+ for (var p, b, z, v = this.data, S = this.toBBox(g), V = [], D = []; v || V.length; ) {
3681
+ if (v || (v = V.pop(), b = V[V.length - 1], p = D.pop(), z = !0), v.leaf) {
3682
3682
  var _ = s(g, v.children, m);
3683
- if (_ !== -1) return v.children.splice(_, 1), z.push(v), this._condense(z), this;
3683
+ if (_ !== -1) return v.children.splice(_, 1), V.push(v), this._condense(V), this;
3684
3684
  }
3685
- V || v.leaf || !w(v, S) ? b ? (p++, v = b.children[p], V = !1) : v = null : (z.push(v), D.push(p), p = 0, b = v, v = v.children[0]);
3685
+ z || v.leaf || !w(v, S) ? b ? (p++, v = b.children[p], z = !1) : v = null : (V.push(v), D.push(p), p = 0, b = v, v = v.children[0]);
3686
3686
  }
3687
3687
  return this;
3688
3688
  }, r.prototype.toBBox = function(g) {
@@ -3699,63 +3699,63 @@ var Ze = { exports: {} }, On = { exports: {} };
3699
3699
  for (var p = []; g; ) g.leaf ? m.push.apply(m, g.children) : p.push.apply(p, g.children), g = p.pop();
3700
3700
  return m;
3701
3701
  }, r.prototype._build = function(g, m, p, b) {
3702
- var V, v = p - m + 1, S = this._maxEntries;
3703
- if (v <= S) return a(V = M(g.slice(m, p + 1)), this.toBBox), V;
3704
- b || (b = Math.ceil(Math.log(v) / Math.log(S)), S = Math.ceil(v / Math.pow(S, b - 1))), (V = M([])).leaf = !1, V.height = b;
3705
- var z = Math.ceil(v / S), D = z * Math.ceil(Math.sqrt(S));
3706
- P(g, m, p, D, this.compareMinX);
3702
+ var z, v = p - m + 1, S = this._maxEntries;
3703
+ if (v <= S) return a(z = P(g.slice(m, p + 1)), this.toBBox), z;
3704
+ b || (b = Math.ceil(Math.log(v) / Math.log(S)), S = Math.ceil(v / Math.pow(S, b - 1))), (z = P([])).leaf = !1, z.height = b;
3705
+ var V = Math.ceil(v / S), D = V * Math.ceil(Math.sqrt(S));
3706
+ M(g, m, p, D, this.compareMinX);
3707
3707
  for (var _ = m; _ <= p; _ += D) {
3708
3708
  var E = Math.min(_ + D - 1, p);
3709
- P(g, _, E, z, this.compareMinY);
3710
- for (var T = _; T <= E; T += z) {
3711
- var A = Math.min(T + z - 1, E);
3712
- V.children.push(this._build(g, T, A, b - 1));
3709
+ M(g, _, E, V, this.compareMinY);
3710
+ for (var T = _; T <= E; T += V) {
3711
+ var A = Math.min(T + V - 1, E);
3712
+ z.children.push(this._build(g, T, A, b - 1));
3713
3713
  }
3714
3714
  }
3715
- return a(V, this.toBBox), V;
3715
+ return a(z, this.toBBox), z;
3716
3716
  }, r.prototype._chooseSubtree = function(g, m, p, b) {
3717
3717
  for (; b.push(m), !m.leaf && b.length - 1 !== p; ) {
3718
- for (var V = 1 / 0, v = 1 / 0, S = void 0, z = 0; z < m.children.length; z++) {
3719
- var D = m.children[z], _ = u(D), E = (T = g, A = D, (Math.max(A.maxX, T.maxX) - Math.min(A.minX, T.minX)) * (Math.max(A.maxY, T.maxY) - Math.min(A.minY, T.minY)) - _);
3720
- E < v ? (v = E, V = _ < V ? _ : V, S = D) : E === v && _ < V && (V = _, S = D);
3718
+ for (var z = 1 / 0, v = 1 / 0, S = void 0, V = 0; V < m.children.length; V++) {
3719
+ var D = m.children[V], _ = c(D), E = (T = g, A = D, (Math.max(A.maxX, T.maxX) - Math.min(A.minX, T.minX)) * (Math.max(A.maxY, T.maxY) - Math.min(A.minY, T.minY)) - _);
3720
+ E < v ? (v = E, z = _ < z ? _ : z, S = D) : E === v && _ < z && (z = _, S = D);
3721
3721
  }
3722
3722
  m = S || m.children[0];
3723
3723
  }
3724
3724
  var T, A;
3725
3725
  return m;
3726
3726
  }, r.prototype._insert = function(g, m, p) {
3727
- var b = p ? g : this.toBBox(g), V = [], v = this._chooseSubtree(b, this.data, m, V);
3728
- for (v.children.push(g), c(v, b); m >= 0 && V[m].children.length > this._maxEntries; ) this._split(V, m), m--;
3729
- this._adjustParentBBoxes(b, V, m);
3727
+ var b = p ? g : this.toBBox(g), z = [], v = this._chooseSubtree(b, this.data, m, z);
3728
+ for (v.children.push(g), u(v, b); m >= 0 && z[m].children.length > this._maxEntries; ) this._split(z, m), m--;
3729
+ this._adjustParentBBoxes(b, z, m);
3730
3730
  }, r.prototype._split = function(g, m) {
3731
- var p = g[m], b = p.children.length, V = this._minEntries;
3732
- this._chooseSplitAxis(p, V, b);
3733
- var v = this._chooseSplitIndex(p, V, b), S = M(p.children.splice(v, p.children.length - v));
3731
+ var p = g[m], b = p.children.length, z = this._minEntries;
3732
+ this._chooseSplitAxis(p, z, b);
3733
+ var v = this._chooseSplitIndex(p, z, b), S = P(p.children.splice(v, p.children.length - v));
3734
3734
  S.height = p.height, S.leaf = p.leaf, a(p, this.toBBox), a(S, this.toBBox), m ? g[m - 1].children.push(S) : this._splitRoot(p, S);
3735
3735
  }, r.prototype._splitRoot = function(g, m) {
3736
- this.data = M([g, m]), this.data.height = g.height + 1, this.data.leaf = !1, a(this.data, this.toBBox);
3736
+ this.data = P([g, m]), this.data.height = g.height + 1, this.data.leaf = !1, a(this.data, this.toBBox);
3737
3737
  }, r.prototype._chooseSplitIndex = function(g, m, p) {
3738
- for (var b, V, v, S, z, D, _, E = 1 / 0, T = 1 / 0, A = m; A <= p - m; A++) {
3739
- var O = l(g, 0, A, this.toBBox), I = l(g, A, p, this.toBBox), B = (V = O, v = I, S = void 0, z = void 0, D = void 0, _ = void 0, S = Math.max(V.minX, v.minX), z = Math.max(V.minY, v.minY), D = Math.min(V.maxX, v.maxX), _ = Math.min(V.maxY, v.maxY), Math.max(0, D - S) * Math.max(0, _ - z)), L = u(O) + u(I);
3738
+ for (var b, z, v, S, V, D, _, E = 1 / 0, T = 1 / 0, A = m; A <= p - m; A++) {
3739
+ var O = l(g, 0, A, this.toBBox), I = l(g, A, p, this.toBBox), B = (z = O, v = I, S = void 0, V = void 0, D = void 0, _ = void 0, S = Math.max(z.minX, v.minX), V = Math.max(z.minY, v.minY), D = Math.min(z.maxX, v.maxX), _ = Math.min(z.maxY, v.maxY), Math.max(0, D - S) * Math.max(0, _ - V)), L = c(O) + c(I);
3740
3740
  B < E ? (E = B, b = A, T = L < T ? L : T) : B === E && L < T && (T = L, b = A);
3741
3741
  }
3742
3742
  return b || p - m;
3743
3743
  }, r.prototype._chooseSplitAxis = function(g, m, p) {
3744
- var b = g.leaf ? this.compareMinX : h, V = g.leaf ? this.compareMinY : d;
3745
- this._allDistMargin(g, m, p, b) < this._allDistMargin(g, m, p, V) && g.children.sort(b);
3744
+ var b = g.leaf ? this.compareMinX : h, z = g.leaf ? this.compareMinY : d;
3745
+ this._allDistMargin(g, m, p, b) < this._allDistMargin(g, m, p, z) && g.children.sort(b);
3746
3746
  }, r.prototype._allDistMargin = function(g, m, p, b) {
3747
3747
  g.children.sort(b);
3748
- for (var V = this.toBBox, v = l(g, 0, m, V), S = l(g, p - m, p, V), z = f(v) + f(S), D = m; D < p - m; D++) {
3748
+ for (var z = this.toBBox, v = l(g, 0, m, z), S = l(g, p - m, p, z), V = f(v) + f(S), D = m; D < p - m; D++) {
3749
3749
  var _ = g.children[D];
3750
- c(v, g.leaf ? V(_) : _), z += f(v);
3750
+ u(v, g.leaf ? z(_) : _), V += f(v);
3751
3751
  }
3752
3752
  for (var E = p - m - 1; E >= m; E--) {
3753
3753
  var T = g.children[E];
3754
- c(S, g.leaf ? V(T) : T), z += f(S);
3754
+ u(S, g.leaf ? z(T) : T), V += f(S);
3755
3755
  }
3756
- return z;
3756
+ return V;
3757
3757
  }, r.prototype._adjustParentBBoxes = function(g, m, p) {
3758
- for (var b = p; b >= 0; b--) c(m[b], g);
3758
+ for (var b = p; b >= 0; b--) u(m[b], g);
3759
3759
  }, r.prototype._condense = function(g) {
3760
3760
  for (var m = g.length - 1, p = void 0; m >= 0; m--) g[m].children.length === 0 ? m > 0 ? (p = g[m - 1].children).splice(p.indexOf(g[m]), 1) : this.clear() : a(g[m], this.toBBox);
3761
3761
  }, r;
@@ -3808,17 +3808,17 @@ const ar = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3808
3808
  var Ce = { exports: {} }, cr = function(t, e, o, i) {
3809
3809
  var r = t[0], s = t[1], a = !1;
3810
3810
  o === void 0 && (o = 0), i === void 0 && (i = e.length);
3811
- for (var l = (i - o) / 2, c = 0, h = l - 1; c < l; h = c++) {
3812
- var d = e[o + c * 2 + 0], u = e[o + c * 2 + 1], f = e[o + h * 2 + 0], w = e[o + h * 2 + 1], y = u > s != w > s && r < (f - d) * (s - u) / (w - u) + d;
3813
- y && (a = !a);
3811
+ for (var l = (i - o) / 2, u = 0, h = l - 1; u < l; h = u++) {
3812
+ var d = e[o + u * 2 + 0], c = e[o + u * 2 + 1], f = e[o + h * 2 + 0], w = e[o + h * 2 + 1], x = c > s != w > s && r < (f - d) * (s - c) / (w - c) + d;
3813
+ x && (a = !a);
3814
3814
  }
3815
3815
  return a;
3816
3816
  }, ur = function(t, e, o, i) {
3817
3817
  var r = t[0], s = t[1], a = !1;
3818
3818
  o === void 0 && (o = 0), i === void 0 && (i = e.length);
3819
- for (var l = i - o, c = 0, h = l - 1; c < l; h = c++) {
3820
- var d = e[c + o][0], u = e[c + o][1], f = e[h + o][0], w = e[h + o][1], y = u > s != w > s && r < (f - d) * (s - u) / (w - u) + d;
3821
- y && (a = !a);
3819
+ for (var l = i - o, u = 0, h = l - 1; u < l; h = u++) {
3820
+ var d = e[u + o][0], c = e[u + o][1], f = e[h + o][0], w = e[h + o][1], x = c > s != w > s && r < (f - d) * (s - c) / (w - c) + d;
3821
+ x && (a = !a);
3822
3822
  }
3823
3823
  return a;
3824
3824
  }, Nn = cr, qn = ur;
@@ -3833,43 +3833,43 @@ var hr = Ce.exports, Ue = { exports: {} };
3833
3833
  o(t);
3834
3834
  })(Fn, function(e) {
3835
3835
  const i = 33306690738754706e-32;
3836
- function r(y, M, P, g, m) {
3837
- let p, b, V, v, S = M[0], z = g[0], D = 0, _ = 0;
3838
- z > S == z > -S ? (p = S, S = M[++D]) : (p = z, z = g[++_]);
3836
+ function r(x, P, M, g, m) {
3837
+ let p, b, z, v, S = P[0], V = g[0], D = 0, _ = 0;
3838
+ V > S == V > -S ? (p = S, S = P[++D]) : (p = V, V = g[++_]);
3839
3839
  let E = 0;
3840
- if (D < y && _ < P) for (z > S == z > -S ? (V = p - ((b = S + p) - S), S = M[++D]) : (V = p - ((b = z + p) - z), z = g[++_]), p = b, V !== 0 && (m[E++] = V); D < y && _ < P; ) z > S == z > -S ? (V = p - ((b = p + S) - (v = b - p)) + (S - v), S = M[++D]) : (V = p - ((b = p + z) - (v = b - p)) + (z - v), z = g[++_]), p = b, V !== 0 && (m[E++] = V);
3841
- for (; D < y; ) V = p - ((b = p + S) - (v = b - p)) + (S - v), S = M[++D], p = b, V !== 0 && (m[E++] = V);
3842
- for (; _ < P; ) V = p - ((b = p + z) - (v = b - p)) + (z - v), z = g[++_], p = b, V !== 0 && (m[E++] = V);
3840
+ if (D < x && _ < M) for (V > S == V > -S ? (z = p - ((b = S + p) - S), S = P[++D]) : (z = p - ((b = V + p) - V), V = g[++_]), p = b, z !== 0 && (m[E++] = z); D < x && _ < M; ) V > S == V > -S ? (z = p - ((b = p + S) - (v = b - p)) + (S - v), S = P[++D]) : (z = p - ((b = p + V) - (v = b - p)) + (V - v), V = g[++_]), p = b, z !== 0 && (m[E++] = z);
3841
+ for (; D < x; ) z = p - ((b = p + S) - (v = b - p)) + (S - v), S = P[++D], p = b, z !== 0 && (m[E++] = z);
3842
+ for (; _ < M; ) z = p - ((b = p + V) - (v = b - p)) + (V - v), V = g[++_], p = b, z !== 0 && (m[E++] = z);
3843
3843
  return p === 0 && E !== 0 || (m[E++] = p), E;
3844
3844
  }
3845
- function s(y) {
3846
- return new Float64Array(y);
3845
+ function s(x) {
3846
+ return new Float64Array(x);
3847
3847
  }
3848
- const a = 33306690738754716e-32, l = 22204460492503146e-32, c = 11093356479670487e-47, h = s(4), d = s(8), u = s(12), f = s(16), w = s(4);
3849
- e.orient2d = function(y, M, P, g, m, p) {
3850
- const b = (M - p) * (P - m), V = (y - m) * (g - p), v = b - V;
3851
- if (b === 0 || V === 0 || b > 0 != V > 0) return v;
3852
- const S = Math.abs(b + V);
3853
- return Math.abs(v) >= a * S ? v : -function(z, D, _, E, T, A, O) {
3848
+ const a = 33306690738754716e-32, l = 22204460492503146e-32, u = 11093356479670487e-47, h = s(4), d = s(8), c = s(12), f = s(16), w = s(4);
3849
+ e.orient2d = function(x, P, M, g, m, p) {
3850
+ const b = (P - p) * (M - m), z = (x - m) * (g - p), v = b - z;
3851
+ if (b === 0 || z === 0 || b > 0 != z > 0) return v;
3852
+ const S = Math.abs(b + z);
3853
+ return Math.abs(v) >= a * S ? v : -function(V, D, _, E, T, A, O) {
3854
3854
  let I, B, L, N, C, R, $, X, ot, K, G, ut, rt, F, H, Mt, Zt, qt;
3855
- const Rt = z - T, _t = _ - T, Et = D - A, Ft = E - A;
3855
+ const Rt = V - T, _t = _ - T, Et = D - A, Ft = E - A;
3856
3856
  C = (H = (X = Rt - ($ = (R = 134217729 * Rt) - (R - Rt))) * (K = Ft - (ot = (R = 134217729 * Ft) - (R - Ft))) - ((F = Rt * Ft) - $ * ot - X * ot - $ * K)) - (G = H - (Zt = (X = Et - ($ = (R = 134217729 * Et) - (R - Et))) * (K = _t - (ot = (R = 134217729 * _t) - (R - _t))) - ((Mt = Et * _t) - $ * ot - X * ot - $ * K))), h[0] = H - (G + C) + (C - Zt), C = (rt = F - ((ut = F + G) - (C = ut - F)) + (G - C)) - (G = rt - Mt), h[1] = rt - (G + C) + (C - Mt), C = (qt = ut + G) - ut, h[2] = ut - (qt - C) + (G - C), h[3] = qt;
3857
3857
  let tt = function(Tt, Wt) {
3858
3858
  let J = Wt[0];
3859
3859
  for (let ct = 1; ct < Tt; ct++) J += Wt[ct];
3860
3860
  return J;
3861
3861
  }(4, h), lt = l * O;
3862
- if (tt >= lt || -tt >= lt || (I = z - (Rt + (C = z - Rt)) + (C - T), L = _ - (_t + (C = _ - _t)) + (C - T), B = D - (Et + (C = D - Et)) + (C - A), N = E - (Ft + (C = E - Ft)) + (C - A), I === 0 && B === 0 && L === 0 && N === 0) || (lt = c * O + i * Math.abs(tt), (tt += Rt * N + Ft * I - (Et * L + _t * B)) >= lt || -tt >= lt)) return tt;
3862
+ if (tt >= lt || -tt >= lt || (I = V - (Rt + (C = V - Rt)) + (C - T), L = _ - (_t + (C = _ - _t)) + (C - T), B = D - (Et + (C = D - Et)) + (C - A), N = E - (Ft + (C = E - Ft)) + (C - A), I === 0 && B === 0 && L === 0 && N === 0) || (lt = u * O + i * Math.abs(tt), (tt += Rt * N + Ft * I - (Et * L + _t * B)) >= lt || -tt >= lt)) return tt;
3863
3863
  C = (H = (X = I - ($ = (R = 134217729 * I) - (R - I))) * (K = Ft - (ot = (R = 134217729 * Ft) - (R - Ft))) - ((F = I * Ft) - $ * ot - X * ot - $ * K)) - (G = H - (Zt = (X = B - ($ = (R = 134217729 * B) - (R - B))) * (K = _t - (ot = (R = 134217729 * _t) - (R - _t))) - ((Mt = B * _t) - $ * ot - X * ot - $ * K))), w[0] = H - (G + C) + (C - Zt), C = (rt = F - ((ut = F + G) - (C = ut - F)) + (G - C)) - (G = rt - Mt), w[1] = rt - (G + C) + (C - Mt), C = (qt = ut + G) - ut, w[2] = ut - (qt - C) + (G - C), w[3] = qt;
3864
3864
  const W = r(4, h, 4, w, d);
3865
3865
  C = (H = (X = Rt - ($ = (R = 134217729 * Rt) - (R - Rt))) * (K = N - (ot = (R = 134217729 * N) - (R - N))) - ((F = Rt * N) - $ * ot - X * ot - $ * K)) - (G = H - (Zt = (X = Et - ($ = (R = 134217729 * Et) - (R - Et))) * (K = L - (ot = (R = 134217729 * L) - (R - L))) - ((Mt = Et * L) - $ * ot - X * ot - $ * K))), w[0] = H - (G + C) + (C - Zt), C = (rt = F - ((ut = F + G) - (C = ut - F)) + (G - C)) - (G = rt - Mt), w[1] = rt - (G + C) + (C - Mt), C = (qt = ut + G) - ut, w[2] = ut - (qt - C) + (G - C), w[3] = qt;
3866
- const j = r(W, d, 4, w, u);
3866
+ const j = r(W, d, 4, w, c);
3867
3867
  C = (H = (X = I - ($ = (R = 134217729 * I) - (R - I))) * (K = N - (ot = (R = 134217729 * N) - (R - N))) - ((F = I * N) - $ * ot - X * ot - $ * K)) - (G = H - (Zt = (X = B - ($ = (R = 134217729 * B) - (R - B))) * (K = L - (ot = (R = 134217729 * L) - (R - L))) - ((Mt = B * L) - $ * ot - X * ot - $ * K))), w[0] = H - (G + C) + (C - Zt), C = (rt = F - ((ut = F + G) - (C = ut - F)) + (G - C)) - (G = rt - Mt), w[1] = rt - (G + C) + (C - Mt), C = (qt = ut + G) - ut, w[2] = ut - (qt - C) + (G - C), w[3] = qt;
3868
- const Nt = r(j, u, 4, w, f);
3868
+ const Nt = r(j, c, 4, w, f);
3869
3869
  return f[Nt - 1];
3870
- }(y, M, P, g, m, p, S);
3871
- }, e.orient2dfast = function(y, M, P, g, m, p) {
3872
- return (M - p) * (P - m) - (y - m) * (g - p);
3870
+ }(x, P, M, g, m, p, S);
3871
+ }, e.orient2dfast = function(x, P, M, g, m, p) {
3872
+ return (P - p) * (M - m) - (x - m) * (g - p);
3873
3873
  }, Object.defineProperty(e, "__esModule", { value: !0 });
3874
3874
  });
3875
3875
  })(Ue, Ue.exports);
@@ -3896,34 +3896,34 @@ function Wn(n, t, e) {
3896
3896
  var l = o[s];
3897
3897
  i.remove(l), a = wn(l, a), r.push(a);
3898
3898
  }
3899
- var c = new pn(16);
3900
- for (s = 0; s < r.length; s++) c.insert(Xe(r[s]));
3899
+ var u = new pn(16);
3900
+ for (s = 0; s < r.length; s++) u.insert(Xe(r[s]));
3901
3901
  for (var h = t * t, d = e * e; r.length; ) {
3902
- var u = r.shift(), f = u.p, w = u.next.p, y = $e(f, w);
3903
- if (!(y < d)) {
3904
- var M = y / h;
3905
- l = gr(i, u.prev.p, f, w, u.next.next.p, M, c), l && Math.min($e(l, f), $e(l, w)) <= M && (r.push(u), r.push(wn(l, u)), i.remove(l), c.remove(u), c.insert(Xe(u)), c.insert(Xe(u.next)));
3902
+ var c = r.shift(), f = c.p, w = c.next.p, x = $e(f, w);
3903
+ if (!(x < d)) {
3904
+ var P = x / h;
3905
+ l = gr(i, c.prev.p, f, w, c.next.next.p, P, u), l && Math.min($e(l, f), $e(l, w)) <= P && (r.push(c), r.push(wn(l, c)), i.remove(l), u.remove(c), u.insert(Xe(c)), u.insert(Xe(c.next)));
3906
3906
  }
3907
3907
  }
3908
- u = a;
3909
- var P = [];
3908
+ c = a;
3909
+ var M = [];
3910
3910
  do
3911
- P.push(u.p), u = u.next;
3912
- while (u !== a);
3913
- return P.push(u.p), P;
3911
+ M.push(c.p), c = c.next;
3912
+ while (c !== a);
3913
+ return M.push(c.p), M;
3914
3914
  }
3915
3915
  function gr(n, t, e, o, i, r, s) {
3916
3916
  for (var a = new Ae([], pr), l = n.data; l; ) {
3917
- for (var c = 0; c < l.children.length; c++) {
3918
- var h = l.children[c], d = l.leaf ? He(h, e, o) : yr(e, o, h);
3917
+ for (var u = 0; u < l.children.length; u++) {
3918
+ var h = l.children[u], d = l.leaf ? He(h, e, o) : yr(e, o, h);
3919
3919
  d > r || a.push({
3920
3920
  node: h,
3921
3921
  dist: d
3922
3922
  });
3923
3923
  }
3924
3924
  for (; a.length && !a.peek().node.children; ) {
3925
- var u = a.pop(), f = u.node, w = He(f, t, e), y = He(f, o, i);
3926
- if (u.dist < w && u.dist < y && xn(e, f, s) && xn(o, f, s)) return f;
3925
+ var c = a.pop(), f = c.node, w = He(f, t, e), x = He(f, o, i);
3926
+ if (c.dist < w && c.dist < x && xn(e, f, s) && xn(o, f, s)) return f;
3927
3927
  }
3928
3928
  l = a.pop(), l && (l = l.node);
3929
3929
  }
@@ -3996,9 +3996,9 @@ function He(n, t, e) {
3996
3996
  return r = n[0] - o, s = n[1] - i, r * r + s * s;
3997
3997
  }
3998
3998
  function Ee(n, t, e, o, i, r, s, a) {
3999
- var l = e - n, c = o - t, h = s - i, d = a - r, u = n - i, f = t - r, w = l * l + c * c, y = l * h + c * d, M = h * h + d * d, P = l * u + c * f, g = h * u + d * f, m = w * M - y * y, p, b, V, v, S = m, z = m;
4000
- m === 0 ? (b = 0, S = 1, v = g, z = M) : (b = y * g - M * P, v = w * g - y * P, b < 0 ? (b = 0, v = g, z = M) : b > S && (b = S, v = g + y, z = M)), v < 0 ? (v = 0, -P < 0 ? b = 0 : -P > w ? b = S : (b = -P, S = w)) : v > z && (v = z, -P + y < 0 ? b = 0 : -P + y > w ? b = S : (b = -P + y, S = w)), p = b === 0 ? 0 : b / S, V = v === 0 ? 0 : v / z;
4001
- var D = (1 - p) * n + p * e, _ = (1 - p) * t + p * o, E = (1 - V) * i + V * s, T = (1 - V) * r + V * a, A = E - D, O = T - _;
3999
+ var l = e - n, u = o - t, h = s - i, d = a - r, c = n - i, f = t - r, w = l * l + u * u, x = l * h + u * d, P = h * h + d * d, M = l * c + u * f, g = h * c + d * f, m = w * P - x * x, p, b, z, v, S = m, V = m;
4000
+ m === 0 ? (b = 0, S = 1, v = g, V = P) : (b = x * g - P * M, v = w * g - x * M, b < 0 ? (b = 0, v = g, V = P) : b > S && (b = S, v = g + x, V = P)), v < 0 ? (v = 0, -M < 0 ? b = 0 : -M > w ? b = S : (b = -M, S = w)) : v > V && (v = V, -M + x < 0 ? b = 0 : -M + x > w ? b = S : (b = -M + x, S = w)), p = b === 0 ? 0 : b / S, z = v === 0 ? 0 : v / V;
4001
+ var D = (1 - p) * n + p * e, _ = (1 - p) * t + p * o, E = (1 - z) * i + z * s, T = (1 - z) * r + z * a, A = E - D, O = T - _;
4002
4002
  return A * A + O * O;
4003
4003
  }
4004
4004
  function br(n, t) {
@@ -4091,9 +4091,9 @@ function _r(n, t, e) {
4091
4091
  a > Math.PI && (a -= 2 * Math.PI);
4092
4092
  const l = Math.log(
4093
4093
  Math.tan(r / 2 + Math.PI / 4) / Math.tan(i / 2 + Math.PI / 4)
4094
- ), c = Math.abs(l) > 1e-11 ? s / l : Math.cos(i);
4094
+ ), u = Math.abs(l) > 1e-11 ? s / l : Math.cos(i);
4095
4095
  return Math.sqrt(
4096
- s * s + c * c * a * a
4096
+ s * s + u * u * a * a
4097
4097
  ) * o;
4098
4098
  }
4099
4099
  function Er(n, t, e, o = {}) {
@@ -4114,14 +4114,14 @@ function Er(n, t, e, o = {}) {
4114
4114
  function Tr(n, t, e, o) {
4115
4115
  o = o === void 0 ? Ht : Number(o);
4116
4116
  const i = t / o, r = n[0] * Math.PI / 180, s = ie(n[1]), a = ie(e), l = i * Math.cos(a);
4117
- let c = s + l;
4118
- Math.abs(c) > Math.PI / 2 && (c = c > 0 ? Math.PI - c : -Math.PI - c);
4117
+ let u = s + l;
4118
+ Math.abs(u) > Math.PI / 2 && (u = u > 0 ? Math.PI - u : -Math.PI - u);
4119
4119
  const h = Math.log(
4120
- Math.tan(c / 2 + Math.PI / 4) / Math.tan(s / 2 + Math.PI / 4)
4121
- ), d = Math.abs(h) > 1e-11 ? l / h : Math.cos(s), u = i * Math.sin(a) / d;
4120
+ Math.tan(u / 2 + Math.PI / 4) / Math.tan(s / 2 + Math.PI / 4)
4121
+ ), d = Math.abs(h) > 1e-11 ? l / h : Math.cos(s), c = i * Math.sin(a) / d;
4122
4122
  return [
4123
- ((r + u) * 180 / Math.PI + 540) % 360 - 180,
4124
- c * 180 / Math.PI
4123
+ ((r + c) * 180 / Math.PI + 540) % 360 - 180,
4124
+ u * 180 / Math.PI
4125
4125
  ];
4126
4126
  }
4127
4127
  function Ar(n) {
@@ -4193,8 +4193,8 @@ function Pn(n, t, e) {
4193
4193
  if (t === 0) return n;
4194
4194
  const r = o ?? Xn(n);
4195
4195
  return (i === !1 || i === void 0) && (n = Ar(n)), Pe(n, function(s) {
4196
- const l = vr(r, s) + t, c = Dr(r, s), h = Sr(
4197
- Er(r, c, l)
4196
+ const l = vr(r, s) + t, u = Dr(r, s), h = Sr(
4197
+ Er(r, u, l)
4198
4198
  );
4199
4199
  s[0] = h[0], s[1] = h[1];
4200
4200
  }), n;
@@ -4202,8 +4202,8 @@ function Pn(n, t, e) {
4202
4202
  function Gn(n, t, e = {}) {
4203
4203
  if (e.final === !0)
4204
4204
  return Ir(n, t);
4205
- const o = se(n), i = se(t), r = ie(o[0]), s = ie(i[0]), a = ie(o[1]), l = ie(i[1]), c = Math.sin(s - r) * Math.cos(l), h = Math.cos(a) * Math.sin(l) - Math.sin(a) * Math.cos(l) * Math.cos(s - r);
4206
- return Ln(Math.atan2(c, h));
4205
+ const o = se(n), i = se(t), r = ie(o[0]), s = ie(i[0]), a = ie(o[1]), l = ie(i[1]), u = Math.sin(s - r) * Math.cos(l), h = Math.cos(a) * Math.sin(l) - Math.sin(a) * Math.cos(l) * Math.cos(s - r);
4206
+ return Ln(Math.atan2(u, h));
4207
4207
  }
4208
4208
  function Ir(n, t) {
4209
4209
  let e = Gn(t, n);
@@ -4272,8 +4272,8 @@ function zn(n) {
4272
4272
  if (t <= 2) return 0;
4273
4273
  let e = 0, o = 0;
4274
4274
  for (; o < t; ) {
4275
- const i = n[o], r = n[o + 1 === t ? 0 : o + 1], s = n[o + 2 >= t ? (o + 2) % t : o + 2], a = i[0] * Ye, l = r[1] * Ye, c = s[0] * Ye;
4276
- e += (c - a) * Math.sin(l), o++;
4275
+ const i = n[o], r = n[o + 1 === t ? 0 : o + 1], s = n[o + 2 >= t ? (o + 2) % t : o + 2], a = i[0] * Ye, l = r[1] * Ye, u = s[0] * Ye;
4276
+ e += (u - a) * Math.sin(l), o++;
4277
4277
  }
4278
4278
  return e * Or;
4279
4279
  }
@@ -4286,8 +4286,8 @@ function Nr(n) {
4286
4286
  for (let s = 0; s < o.length - 1; s++) {
4287
4287
  let a = Gn(o[s], o[s + 1]), l = Pn(t, -1 * a, {
4288
4288
  pivot: e
4289
- }), c = Lr(l), h = Rr(c);
4290
- h < i && (i = h, r = Pn(c, a, {
4289
+ }), u = Lr(l), h = Rr(u);
4290
+ h < i && (i = h, r = Pn(u, a, {
4291
4291
  pivot: e
4292
4292
  }));
4293
4293
  }
@@ -4305,18 +4305,18 @@ function qr(n) {
4305
4305
  }
4306
4306
  class Ie extends An {
4307
4307
  getBoxMesh() {
4308
- le.identity(), le.setFromMatrix3(this.rotation), le.decompose(Te, fe, new x.Vector3());
4309
- const t = this.halfSize.clone().multiplyScalar(2), e = new x.Mesh(new x.BoxGeometry(t.x, t.y, t.z));
4308
+ le.identity(), le.setFromMatrix3(this.rotation), le.decompose(Te, fe, new y.Vector3());
4309
+ const t = this.halfSize.clone().multiplyScalar(2), e = new y.Mesh(new y.BoxGeometry(t.x, t.y, t.z));
4310
4310
  return e.position.copy(this.center), e.rotation.setFromQuaternion(fe), e;
4311
4311
  }
4312
4312
  getBoxEdge(t = 16776960) {
4313
4313
  const e = this.getBoxMesh();
4314
4314
  Xr.setFromObject(e);
4315
- const o = new x.EdgesGeometry(e.geometry.clone().applyMatrix4(e.matrixWorld));
4316
- return new x.LineSegments(o, new x.LineBasicMaterial({ color: t, toneMapped: !1 }));
4315
+ const o = new y.EdgesGeometry(e.geometry.clone().applyMatrix4(e.matrixWorld));
4316
+ return new y.LineSegments(o, new y.LineBasicMaterial({ color: t, toneMapped: !1 }));
4317
4317
  }
4318
4318
  toJson() {
4319
- return le.identity(), le.setFromMatrix3(this.rotation), le.decompose(Te, fe, new x.Vector3()), {
4319
+ return le.identity(), le.setFromMatrix3(this.rotation), le.decompose(Te, fe, new y.Vector3()), {
4320
4320
  size: this.halfSize.toArray(),
4321
4321
  center: this.center.toArray(),
4322
4322
  quaternion: fe.toArray()
@@ -4330,8 +4330,8 @@ class Ie extends An {
4330
4330
  * @returns
4331
4331
  */
4332
4332
  static from(t, e, o, i = new Ie()) {
4333
- if (o instanceof x.Euler) fe.setFromEuler(o);
4334
- else if (o instanceof x.Quaternion) fe.copy(o);
4333
+ if (o instanceof y.Euler) fe.setFromEuler(o);
4334
+ else if (o instanceof y.Quaternion) fe.copy(o);
4335
4335
  else throw new Error("传入的旋转不是欧拉角或者四元数");
4336
4336
  return le.compose(e, fe, Wr), i.center.copy(e), i.halfSize.copy(t.multiplyScalar(0.5)), i.rotation.setFromMatrix4(le), i;
4337
4337
  }
@@ -4348,41 +4348,41 @@ class Ie extends An {
4348
4348
  coordinates: [t.map((f) => [f.x, f.y])]
4349
4349
  });
4350
4350
  if (!r) throw new Error("2d obb 获取失败");
4351
- const s = r.geometry.coordinates[0], a = Vn(s[0], s[1]), l = Vn(s[1], s[2]), c = Math.atan2(s[1][1] - s[0][1], s[1][0] - s[0][0]);
4352
- Te.set(a, l, o), Sn.set(0, 0, c);
4351
+ const s = r.geometry.coordinates[0], a = Vn(s[0], s[1]), l = Vn(s[1], s[2]), u = Math.atan2(s[1][1] - s[0][1], s[1][0] - s[0][0]);
4352
+ Te.set(a, l, o), Sn.set(0, 0, u);
4353
4353
  const [h, d] = qr(s);
4354
4354
  return e.x = h, e.y = d, this.from(Te, e, Sn, i);
4355
4355
  }
4356
4356
  }
4357
- const le = new x.Matrix4(), fe = new x.Quaternion(), Sn = new x.Euler(), Wr = new x.Vector3(1, 1, 1), Te = new x.Vector3(), Xr = new x.Box3();
4357
+ const le = new y.Matrix4(), fe = new y.Quaternion(), Sn = new y.Euler(), Wr = new y.Vector3(1, 1, 1), Te = new y.Vector3(), Xr = new y.Box3();
4358
4358
  function $r(n, t, e = 5e-3, o = 0.2) {
4359
4359
  if (!n.length || !t.length) return 0;
4360
- const i = Math.max(e, 0.03), r = e * e, s = /* @__PURE__ */ new Map(), a = (d, u, f) => `${Math.floor(d / i)},${Math.floor(u / i)},${Math.floor(f / i)}`;
4360
+ const i = Math.max(e, 0.03), r = e * e, s = /* @__PURE__ */ new Map(), a = (d, c, f) => `${Math.floor(d / i)},${Math.floor(c / i)},${Math.floor(f / i)}`;
4361
4361
  for (const d of t) {
4362
- const u = a(d.x, d.y, d.z);
4363
- s.has(u) || s.set(u, []), s.get(u).push(d);
4362
+ const c = a(d.x, d.y, d.z);
4363
+ s.has(c) || s.set(c, []), s.get(c).push(d);
4364
4364
  }
4365
4365
  let l = 0;
4366
- const c = Math.ceil(e / i) + 1, h = [];
4367
- for (let d = -c; d <= c; d++)
4368
- for (let u = -c; u <= c; u++)
4369
- for (let f = -c; f <= c; f++)
4370
- d * d + u * u + f * f <= c * c && h.push([d, u, f]);
4366
+ const u = Math.ceil(e / i) + 1, h = [];
4367
+ for (let d = -u; d <= u; d++)
4368
+ for (let c = -u; c <= u; c++)
4369
+ for (let f = -u; f <= u; f++)
4370
+ d * d + c * c + f * f <= u * u && h.push([d, c, f]);
4371
4371
  for (const d of n) {
4372
- const u = Math.floor(d.x / i), f = Math.floor(d.y / i), w = Math.floor(d.z / i);
4373
- let y = !1;
4374
- for (const [M, P, g] of h) {
4375
- const m = `${u + M},${f + P},${w + g}`;
4372
+ const c = Math.floor(d.x / i), f = Math.floor(d.y / i), w = Math.floor(d.z / i);
4373
+ let x = !1;
4374
+ for (const [P, M, g] of h) {
4375
+ const m = `${c + P},${f + M},${w + g}`;
4376
4376
  if (s.has(m)) {
4377
4377
  for (const p of s.get(m))
4378
4378
  if (d.distanceToSquared(p) < r) {
4379
- y = !0;
4379
+ x = !0;
4380
4380
  break;
4381
4381
  }
4382
- if (y) break;
4382
+ if (x) break;
4383
4383
  }
4384
4384
  }
4385
- if (y && (l++, l / n.length > o))
4385
+ if (x && (l++, l / n.length > o))
4386
4386
  return l / n.length;
4387
4387
  }
4388
4388
  return l / n.length;
@@ -4405,7 +4405,7 @@ function Ge(n, t, e, o) {
4405
4405
  return !1;
4406
4406
  }
4407
4407
  function vn(n, t) {
4408
- const e = new x.Vector3(), o = new x.Vector3();
4408
+ const e = new y.Vector3(), o = new y.Vector3();
4409
4409
  n.getSize(e), t.getSize(o);
4410
4410
  const i = e.x * e.y * e.z, r = o.x * o.y * o.z;
4411
4411
  return i > r ? 1 : i < r ? -1 : 0;
@@ -4437,7 +4437,7 @@ function Dn(n) {
4437
4437
  function _n(n, t, e, o) {
4438
4438
  const i = [];
4439
4439
  for (let s = 0; s < n.length; s++)
4440
- i.push(new x.Vector3(
4440
+ i.push(new y.Vector3(
4441
4441
  n[s][0],
4442
4442
  n[s][1],
4443
4443
  0
@@ -4450,196 +4450,196 @@ function _n(n, t, e, o) {
4450
4450
  const Mi = (n) => {
4451
4451
  if (n.length == 0) return [];
4452
4452
  const t = [], e = /* @__PURE__ */ new Map();
4453
- for (let i = 0; i < n.length; i++) {
4454
- let r = n[i].points.map((y) => [y.x, y.y]), s = n[i].obj_id;
4455
- s = s.replace(/calcony railing/g, "balcony railing").replace(/glass balcony railing/g, "balcony railing").replace(/metal balcony railing/g, "balcony railing").replace(/temporary construction guardrail/g, "balcony railing").replace(/the floor of the house/g, "floor").replace(/the outdoor floor/g, "floor"), s.split("_").slice(1, 3).join("_").split(".")[0].split("_")[0];
4456
- const a = s.indexOf("_") + 1, l = s.lastIndexOf("_"), c = s.substring(a, l);
4457
- if (c === "wall")
4453
+ for (let r = 0; r < n.length; r++) {
4454
+ let s = n[r].points.map((P) => [P.x, P.y]), a = n[r].obj_id;
4455
+ a = a.replace(/calcony railing/g, "balcony railing").replace(/glass balcony railing/g, "balcony railing").replace(/metal balcony railing/g, "balcony railing").replace(/temporary construction guardrail/g, "balcony railing").replace(/the floor of the house/g, "floor").replace(/the outdoor floor/g, "floor"), a.split("_").slice(1, 3).join("_").split(".")[0].split("_")[0];
4456
+ const l = a.indexOf("_") + 1, u = a.lastIndexOf("_"), h = a.substring(l, u);
4457
+ if (h === "wall")
4458
4458
  continue;
4459
- let h = [];
4460
- for (let y = 0; y < n[i].points.length; y++)
4461
- h.push(new x.Vector3(
4462
- n[i].points[y].x,
4463
- n[i].points[y].y,
4464
- n[i].points[y].z
4459
+ let d = [];
4460
+ for (let P = 0; P < n[r].points.length; P++)
4461
+ d.push(new y.Vector3(
4462
+ n[r].points[P].x,
4463
+ n[r].points[P].y,
4464
+ n[r].points[P].z
4465
4465
  ));
4466
- let d = -99999;
4467
- if (c === "floor") {
4468
- let y = /* @__PURE__ */ new Map();
4469
- for (let P = 0; P < n[i].points.length; P++) {
4470
- let g = n[i].points[P].z;
4471
- if (g = Math.floor(g * 10) / 10, y.has(g)) {
4472
- const m = y.get(g);
4473
- m.num += 1, m.points.push(n[i].points[P]), y.set(g, m);
4466
+ let c = -99999;
4467
+ if (h === "floor") {
4468
+ let P = /* @__PURE__ */ new Map();
4469
+ for (let g = 0; g < n[r].points.length; g++) {
4470
+ let m = n[r].points[g].z;
4471
+ if (m = Math.floor(m * 10) / 10, P.has(m)) {
4472
+ const p = P.get(m);
4473
+ p.num += 1, p.points.push(n[r].points[g]), P.set(m, p);
4474
4474
  } else
4475
- y.set(g, { num: 1, points: [n[i].points[P]] });
4475
+ P.set(m, { num: 1, points: [n[r].points[g]] });
4476
4476
  }
4477
- let M = [...y.entries()].reduce(
4478
- (P, g) => g[1].num > P[1].num ? g : P
4477
+ let M = [...P.entries()].reduce(
4478
+ (g, m) => m[1].num > g[1].num ? m : g
4479
4479
  );
4480
- r = [], r = M[1].points.map((P) => [P.x, P.y]), h = [], h = M[1].points.map((P) => new x.Vector3(P.x, P.y, P.z)), d = M[0];
4480
+ s = [], s = M[1].points.map((g) => [g.x, g.y]), d = [], d = M[1].points.map((g) => new y.Vector3(g.x, g.y, g.z)), c = M[0];
4481
4481
  }
4482
- const u = Dn(h), f = {
4483
- points: h,
4484
- path: cn(r),
4485
- h: u.h,
4486
- minz: u.minz,
4487
- maxz: u.maxz,
4488
- center: { x: u.x, y: u.y, z: u.z },
4489
- obj_id: n[i].obj_id,
4490
- type: c,
4491
- averagePz: n[i].averagePz,
4482
+ const f = Dn(d), w = {
4483
+ points: d,
4484
+ path: cn(s),
4485
+ h: f.h,
4486
+ minz: f.minz,
4487
+ maxz: f.maxz,
4488
+ center: { x: f.x, y: f.y, z: f.z },
4489
+ obj_id: n[r].obj_id,
4490
+ type: h,
4491
+ averagePz: n[r].averagePz,
4492
4492
  obb: null,
4493
4493
  isDel: !1,
4494
- obj_id: s,
4495
- positionArr: [n[i].position]
4494
+ obj_id: a,
4495
+ positionArr: [n[r].position]
4496
4496
  };
4497
- if (f.obb = _n(f.path, f.center, f.h, (f.maxz + f.minz) / 2), f.obb == null) continue;
4498
- let w = -1;
4499
- for (let y = 0; y < t.length; y++)
4500
- if (t[y].type == c) {
4501
- w = y;
4497
+ if (w.obb = _n(w.path, w.center, w.h, (w.maxz + w.minz) / 2), w.obb == null) continue;
4498
+ let x = -1;
4499
+ for (let P = 0; P < t.length; P++)
4500
+ if (t[P].type == h) {
4501
+ x = P;
4502
4502
  break;
4503
4503
  }
4504
- if (w != -1 ? t[w].array.push(f) : t.push({
4505
- type: c,
4506
- array: [f]
4507
- }), c == "floor" && d != -99999)
4508
- if (e.has(d)) {
4509
- const y = e.get(d);
4510
- y.num += f.points.length, y.datas.push(f), e.set(d, y);
4504
+ if (x != -1 ? t[x].array.push(w) : t.push({
4505
+ type: h,
4506
+ array: [w]
4507
+ }), h == "floor" && c != -99999)
4508
+ if (e.has(c)) {
4509
+ const P = e.get(c);
4510
+ P.num += w.points.length, P.datas.push(w), e.set(c, P);
4511
4511
  } else
4512
- e.set(d, { num: f.points.length, datas: [f] });
4512
+ e.set(c, { num: w.points.length, datas: [w] });
4513
4513
  }
4514
4514
  let o = -1 / 0;
4515
4515
  if (e.size > 0) {
4516
- let i = [];
4517
- for (const [r, s] of e.entries()) {
4518
- const { num: a, datas: l } = s;
4519
- a > 3e3 && (r > o && (o = r), i.push(...l));
4516
+ let r = [];
4517
+ for (const [s, a] of e.entries()) {
4518
+ const { num: l, datas: u } = a;
4519
+ l > 3e3 && (s > o && (o = s), r.push(...u));
4520
4520
  }
4521
- for (let r = 0; r < t.length; r++)
4522
- if (t[r].type == "floor") {
4523
- t[r].array = i;
4521
+ for (let s = 0; s < t.length; s++)
4522
+ if (t[s].type == "floor") {
4523
+ t[s].array = r;
4524
4524
  break;
4525
4525
  }
4526
4526
  }
4527
- for (let i = 0; i < t.length; i++) {
4528
- const r = t[i].array, s = [], a = [];
4529
- for (let c = 0; c < r.length; c++) {
4530
- if (r[c].obb == null || s.includes(c))
4527
+ for (let r = 0; r < t.length; r++) {
4528
+ const s = t[r].array, a = [], l = [];
4529
+ for (let h = 0; h < s.length; h++) {
4530
+ if (s[h].obb == null || a.includes(h))
4531
4531
  continue;
4532
- const h = {
4533
- ...r[c],
4534
- obb: r[c].obb.clone()
4532
+ const d = {
4533
+ ...s[h],
4534
+ obb: s[h].obb.clone()
4535
4535
  };
4536
- for (let d = c + 1; d < r.length; d++) {
4537
- if (r[d].obb == null || s.includes(d))
4536
+ for (let c = h + 1; c < s.length; c++) {
4537
+ if (s[c].obb == null || a.includes(c))
4538
4538
  continue;
4539
- if (h.obb.intersectsOBB(r[d].obb)) {
4540
- s.push(d);
4541
- for (let y = 0; y < r[d].points.length; y++)
4542
- (r[d].points[y].z > o && r[d].points[y].z - o > 0.1 || h.type == "floor") && h.points.push(r[d].points[y]);
4543
- const f = h.points.map((y) => [y.x, y.y]);
4544
- h.path = cn(f);
4545
- const w = Dn(h.points);
4546
- h.h = w.h, h.minz = w.minz, h.maxz = w.maxz, h.center = { x: w.x, y: w.y, z: w.z }, h.obb = _n(h.path, h.center, h.h, (h.maxz + h.minz) / 2), h.positionArr.push(...r[d].positionArr), d = c;
4539
+ if (d.obb.intersectsOBB(s[c].obb)) {
4540
+ a.push(c);
4541
+ for (let P = 0; P < s[c].points.length; P++)
4542
+ (s[c].points[P].z > o && s[c].points[P].z - o > 0.1 || d.type == "floor") && d.points.push(s[c].points[P]);
4543
+ const w = d.points.map((P) => [P.x, P.y]);
4544
+ d.path = cn(w);
4545
+ const x = Dn(d.points);
4546
+ d.h = x.h, d.minz = x.minz, d.maxz = x.maxz, d.center = { x: x.x, y: x.y, z: x.z }, d.obb = _n(d.path, d.center, d.h, (d.maxz + d.minz) / 2), d.positionArr.push(...s[c].positionArr), c = h;
4547
4547
  }
4548
4548
  }
4549
- h.path.length > r[c].path.length && (s.push(c), a.push(h));
4549
+ d.path.length > s[h].path.length && (a.push(h), l.push(d));
4550
4550
  }
4551
- const l = [];
4552
- for (let c = 0; c < r.length; c++)
4553
- s.includes(c) || l.push(r[c]);
4554
- l.push(...a), t[i].array = l;
4555
- }
4556
- for (let i = 0; i < t.length; i++) {
4557
- const r = t[i].type;
4558
- if (r === "people" || r === "floor")
4551
+ const u = [];
4552
+ for (let h = 0; h < s.length; h++)
4553
+ a.includes(h) || u.push(s[h]);
4554
+ u.push(...l), t[r].array = u;
4555
+ }
4556
+ for (let r = 0; r < t.length; r++) {
4557
+ const s = t[r].type;
4558
+ if (s === "people" || s === "floor")
4559
4559
  continue;
4560
- const s = t[i].array;
4561
- for (let a = 0; a < s.length; a++) {
4562
- const l = s[a].obb, c = s[a].minz;
4563
- s[a].maxz;
4564
- const h = s[a].averagePz;
4565
- if (r === "window" || r === "door" || r === "tv" || r === "chair" || r === "cabinet" || r === "table") {
4566
- const d = new x.Vector3();
4567
- l.getSize(d);
4568
- const u = [d.x, d.y, d.z];
4569
- let f = 0;
4570
- for (const w of u)
4571
- if (w < 0.2 && (f++, f === 2)) {
4572
- s[a].isDel = !0;
4560
+ const a = t[r].array;
4561
+ for (let l = 0; l < a.length; l++) {
4562
+ const u = a[l].obb, h = a[l].minz;
4563
+ a[l].maxz;
4564
+ const d = a[l].averagePz;
4565
+ if (s === "window" || s === "door" || s === "tv" || s === "chair" || s === "cabinet" || s === "table") {
4566
+ const c = new y.Vector3();
4567
+ u.getSize(c);
4568
+ const f = [c.x, c.y, c.z];
4569
+ let w = 0;
4570
+ for (const x of f)
4571
+ if (x < 0.2 && (w++, w === 2)) {
4572
+ a[l].isDel = !0;
4573
4573
  break;
4574
4574
  }
4575
4575
  }
4576
- if (!s[a].isDel)
4577
- for (let d = i + 1; d < t.length; d++) {
4578
- const u = t[d].type;
4579
- if (u === "people" || u === "floor")
4576
+ if (!a[l].isDel)
4577
+ for (let c = r + 1; c < t.length; c++) {
4578
+ const f = t[c].type;
4579
+ if (f === "people" || f === "floor")
4580
4580
  continue;
4581
- const f = t[d].array;
4582
- for (let w = 0; w < f.length; w++) {
4583
- if (f[w].isDel) continue;
4584
- const y = f[w].obb, M = f[w].minz;
4585
- if (f[w].maxz, l.intersectsOBB(y)) {
4586
- pe(f[w].points, l);
4587
- const P = pe(s[a].points, y), g = vn(l, y);
4588
- if (P >= 0.3 && g == -1) {
4589
- s[a].isDel = !0;
4581
+ const w = t[c].array;
4582
+ for (let x = 0; x < w.length; x++) {
4583
+ if (w[x].isDel) continue;
4584
+ const P = w[x].obb, M = w[x].minz;
4585
+ if (w[x].maxz, u.intersectsOBB(P)) {
4586
+ pe(w[x].points, u);
4587
+ const g = pe(a[l].points, P), m = vn(u, P);
4588
+ if (g >= 0.3 && m == -1) {
4589
+ a[l].isDel = !0;
4590
4590
  break;
4591
4591
  }
4592
- if (r !== "wall" && r !== "floor" && r !== "roof") {
4593
- if (r === "window") {
4594
- if (u === "balcony railing" && we(l, f[w].points)) {
4595
- f[w].isDel = !0;
4592
+ if (s !== "wall" && s !== "floor" && s !== "roof") {
4593
+ if (s === "window") {
4594
+ if (f === "balcony railing" && we(u, w[x].points)) {
4595
+ w[x].isDel = !0;
4596
4596
  continue;
4597
4597
  }
4598
- if (u === "balcony railing" && we(y, s[a].points)) {
4599
- s[a].isDel = !0;
4598
+ if (f === "balcony railing" && we(P, a[l].points)) {
4599
+ a[l].isDel = !0;
4600
4600
  break;
4601
4601
  }
4602
- if (u === "balcony railing" && Ge(l, y, s[a].points, f[w].points) && (Math.abs(c - M) < 0.1 || Math.abs(M - h) > 0.3)) {
4603
- f[w].isDel = !0;
4602
+ if (f === "balcony railing" && Ge(u, P, a[l].points, w[x].points) && (Math.abs(h - M) < 0.1 || Math.abs(M - d) > 0.3)) {
4603
+ w[x].isDel = !0;
4604
4604
  continue;
4605
4605
  }
4606
- } else if (r === "balcony railing") {
4607
- if (u === "window" && we(l, f[w].points)) {
4608
- f[w].isDel = !0;
4606
+ } else if (s === "balcony railing") {
4607
+ if (f === "window" && we(u, w[x].points)) {
4608
+ w[x].isDel = !0;
4609
4609
  continue;
4610
4610
  }
4611
- if (u === "window" && we(y, s[a].points)) {
4612
- s[a].isDel = !0;
4611
+ if (f === "window" && we(P, a[l].points)) {
4612
+ a[l].isDel = !0;
4613
4613
  break;
4614
4614
  }
4615
- if (u === "window" && Ge(l, y, s[a].points, f[w].points) && (Math.abs(c - M) < 0.1 || Math.abs(c - h) > 0.3)) {
4616
- s[a].isDel = !0;
4615
+ if (f === "window" && Ge(u, P, a[l].points, w[x].points) && (Math.abs(h - M) < 0.1 || Math.abs(h - d) > 0.3)) {
4616
+ a[l].isDel = !0;
4617
4617
  break;
4618
4618
  }
4619
4619
  }
4620
- let m = !1, p = [], b = [];
4621
- const V = s[a].points, v = f[w].points;
4622
- if (V.length > v.length ? (m = !0, p = V, b = v) : (p = v, b = V), $r(b, p, 0.03, 0.5) > 0.5)
4623
- if (m)
4624
- f[w].isDel = !0;
4620
+ let p = !1, b = [], z = [];
4621
+ const v = a[l].points, S = w[x].points;
4622
+ if (v.length > S.length ? (p = !0, b = v, z = S) : (b = S, z = v), $r(z, b, 0.03, 0.5) > 0.5)
4623
+ if (p)
4624
+ w[x].isDel = !0;
4625
4625
  else {
4626
- s[a].isDel = !0;
4626
+ a[l].isDel = !0;
4627
4627
  break;
4628
4628
  }
4629
- else if (Ge(l, y)) {
4630
- const z = vn(l, y);
4631
- if (z === 1 || z === 0) {
4632
- if (u === "switch") continue;
4633
- V.length > v.length ? pe(b, l) >= 0.5 && (f[w].isDel = !0) : pe(p, l) >= 0.5 && (f[w].isDel = !0);
4629
+ else if (Ge(u, P)) {
4630
+ const D = vn(u, P);
4631
+ if (D === 1 || D === 0) {
4632
+ if (f === "switch") continue;
4633
+ v.length > S.length ? pe(z, u) >= 0.5 && (w[x].isDel = !0) : pe(b, u) >= 0.5 && (w[x].isDel = !0);
4634
4634
  } else {
4635
- if (r === "switch") continue;
4636
- if (V.length > v.length) {
4637
- if (pe(p, y) >= 0.5) {
4638
- s[a].isDel = !0;
4635
+ if (s === "switch") continue;
4636
+ if (v.length > S.length) {
4637
+ if (pe(b, P) >= 0.5) {
4638
+ a[l].isDel = !0;
4639
4639
  break;
4640
4640
  }
4641
- } else if (pe(b, y) >= 0.5) {
4642
- s[a].isDel = !0;
4641
+ } else if (pe(z, P) >= 0.5) {
4642
+ a[l].isDel = !0;
4643
4643
  break;
4644
4644
  }
4645
4645
  }
@@ -4647,33 +4647,48 @@ const Mi = (n) => {
4647
4647
  }
4648
4648
  }
4649
4649
  }
4650
- if (s[a].isDel) break;
4650
+ if (a[l].isDel) break;
4651
4651
  }
4652
4652
  }
4653
4653
  }
4654
- for (let i = 0; i < t.length; i++) {
4655
- const r = t[i].type, s = t[i].array;
4656
- for (let a = 0; a < s.length; a++) {
4657
- let l = s[a].maxz, c = s[a].minz, h = r === "switch" ? 0.1 : 0.3;
4658
- const d = s[a].averagePz;
4659
- if (Math.abs(l - d) < h) {
4660
- s[a].isDel = !0;
4654
+ for (let r = 0; r < t.length; r++) {
4655
+ const s = t[r].type, a = t[r].array;
4656
+ for (let l = 0; l < a.length; l++) {
4657
+ let u = a[l].maxz, h = a[l].minz, d = s === "switch" ? 0.1 : 0.3;
4658
+ const c = a[l].averagePz;
4659
+ if (Math.abs(u - c) < d) {
4660
+ a[l].isDel = !0;
4661
4661
  continue;
4662
4662
  }
4663
- if (r === "window" || r === "door" || r === "tv") {
4664
- const u = Math.abs(l - d), f = Math.abs(c - d);
4665
- (r === "tv" && f < 1.6 || r !== "window" && u < 1.6) && (s[a].isDel = !0), r === "window" && u < 1 && (s[a].isDel = !0);
4663
+ if (s === "window" || s === "door" || s === "tv") {
4664
+ const f = Math.abs(u - c), w = Math.abs(h - c);
4665
+ (s === "tv" && w < 1.6 || s !== "window" && f < 1.6) && (a[l].isDel = !0), s === "window" && f < 1 && (a[l].isDel = !0);
4666
4666
  }
4667
- if (r === "chair") {
4668
- const u = new x.Vector3();
4669
- s[a].obb.getSize(u), (u.x < 0.1 || u.y < 0.1 || u.z < 0.2) && (s[a].isDel = !0);
4667
+ if (s === "chair") {
4668
+ const f = new y.Vector3();
4669
+ a[l].obb.getSize(f), (f.x < 0.1 || f.y < 0.1 || f.z < 0.2) && (a[l].isDel = !0);
4670
4670
  }
4671
- r === "balcony railing" && (Math.abs(l - c) < 0.4 && (s[a].isDel = !0), (c < d && Math.abs(c - d) > 1 || c > d && Math.abs(c - d) > 1) && (s[a].isDel = !0), l < d && (s[a].isDel = !0)), r === "people" && (Math.abs(l - c) < 1 && (s[a].isDel = !0), c > d && c - d > 0.3 && (s[a].isDel = !0), l < d && (s[a].isDel = !0)), r === "floor" && s[a].points.length < 500 && (s[a].isDel = !0);
4671
+ s === "balcony railing" && (Math.abs(u - h) < 0.4 && (a[l].isDel = !0), (h < c && Math.abs(h - c) > 1 || h > c && Math.abs(h - c) > 1) && (a[l].isDel = !0), u < c && (a[l].isDel = !0)), s === "people" && (Math.abs(u - h) < 1 && (a[l].isDel = !0), h > c && h - c > 0.3 && (a[l].isDel = !0), u < c && (a[l].isDel = !0)), s === "floor" && a[l].points.length < 500 && (a[l].isDel = !0);
4672
4672
  }
4673
4673
  }
4674
- for (let i = 0; i < t.length; i++)
4675
- t[i].array = t[i].array.filter((r) => !r.isDel);
4676
- return t;
4674
+ for (let r = 0; r < t.length; r++)
4675
+ t[r].array = t[r].array.filter((s) => !s.isDel);
4676
+ const i = [];
4677
+ for (let r = 0; r < t.length; r++) {
4678
+ const s = t[r].array;
4679
+ for (let a = 0; a < s.length; a++)
4680
+ i.push({
4681
+ obbBox: s[a].obb,
4682
+ box: new y.Box3().setFromPoints(s[a].points),
4683
+ category: s[a].type,
4684
+ center: { x: s[a].center.x, y: s[a].center.y, z: (s[a].minz + s[a].maxz) / 2 },
4685
+ name: s[a].obj_id,
4686
+ obj_id: s[a].obj_id,
4687
+ pcdPoints: s[a].points,
4688
+ positionArr: s[a].positionArr
4689
+ });
4690
+ }
4691
+ return i;
4677
4692
  };
4678
4693
  function Hr(n, t, e, o) {
4679
4694
  return 1 + (n[t][0] === 0 || n[e][0] === 0 || n[o][0] === 0 ? 1 : 0);
@@ -4684,31 +4699,31 @@ function Yr(n) {
4684
4699
  return t.length % 2 ? t[e] : (t[e - 1] + t[e]) / 2;
4685
4700
  }
4686
4701
  function Gr(n, t, e, o, i, r) {
4687
- const s = Math.hypot(e - i, o - r), a = Math.hypot(n - i, t - r), l = Math.hypot(n - e, t - o), c = Math.abs(
4702
+ const s = Math.hypot(e - i, o - r), a = Math.hypot(n - i, t - r), l = Math.hypot(n - e, t - o), u = Math.abs(
4688
4703
  (e - n) * (r - t) - (i - n) * (o - t)
4689
4704
  ) / 2, h = Math.max(s, a, l);
4690
- return c === 0 ? {
4705
+ return u === 0 ? {
4691
4706
  radius: 1 / 0,
4692
4707
  maxEdge: h
4693
4708
  } : {
4694
- radius: s * a * l / (4 * c),
4709
+ radius: s * a * l / (4 * u),
4695
4710
  maxEdge: h
4696
4711
  };
4697
4712
  }
4698
4713
  function jr(n, t) {
4699
4714
  const e = [], o = /* @__PURE__ */ new Set(), i = (r, s) => r < s ? `${r}_${s}` : `${s}_${r}`;
4700
4715
  for (let r = 0; r < t.length; r += 3) {
4701
- const s = t[r], a = t[r + 1], l = t[r + 2], c = [
4716
+ const s = t[r], a = t[r + 1], l = t[r + 2], u = [
4702
4717
  [s, a],
4703
4718
  [a, l],
4704
4719
  [l, s]
4705
4720
  ];
4706
- for (const [h, d] of c) {
4707
- const u = i(h, d);
4708
- if (o.has(u)) continue;
4709
- o.add(u);
4710
- const [f, w] = n[h], [y, M] = n[d], P = Math.hypot(y - f, M - w);
4711
- Number.isFinite(P) && P > 0 && e.push(P);
4721
+ for (const [h, d] of u) {
4722
+ const c = i(h, d);
4723
+ if (o.has(c)) continue;
4724
+ o.add(c);
4725
+ const [f, w] = n[h], [x, P] = n[d], M = Math.hypot(x - f, P - w);
4726
+ Number.isFinite(M) && M > 0 && e.push(M);
4712
4727
  }
4713
4728
  }
4714
4729
  return Yr(e);
@@ -4737,10 +4752,10 @@ function Kr(n, t) {
4737
4752
  do {
4738
4753
  i.push(n[s]), r.add(s);
4739
4754
  const l = e.get(s) || [];
4740
- let c = l.find((h) => h !== a && !r.has(h));
4741
- if (c === void 0 && (c = l.find((h) => h !== a)), c === void 0)
4755
+ let u = l.find((h) => h !== a && !r.has(h));
4756
+ if (u === void 0 && (u = l.find((h) => h !== a)), u === void 0)
4742
4757
  break;
4743
- a = s, s = c;
4758
+ a = s, s = u;
4744
4759
  } while (s !== o && i.length <= t.length + 1);
4745
4760
  return i;
4746
4761
  }
@@ -4757,30 +4772,30 @@ function zi(n, t = {}) {
4757
4772
  const a = jr(i, s);
4758
4773
  if (!Number.isFinite(a) || a <= 0)
4759
4774
  return [];
4760
- const l = a * e, c = /* @__PURE__ */ new Map(), h = (f, w) => f < w ? `${f}_${w}` : `${w}_${f}`;
4775
+ const l = a * e, u = /* @__PURE__ */ new Map(), h = (f, w) => f < w ? `${f}_${w}` : `${w}_${f}`;
4761
4776
  for (let f = 0; f < s.length; f += 3) {
4762
- const w = s[f], y = s[f + 1], M = s[f + 2], [P, g] = i[w], [m, p] = i[y], [b, V] = i[M], { radius: v, maxEdge: S } = Gr(
4763
- P,
4777
+ const w = s[f], x = s[f + 1], P = s[f + 2], [M, g] = i[w], [m, p] = i[x], [b, z] = i[P], { radius: v, maxEdge: S } = Gr(
4778
+ M,
4764
4779
  g,
4765
4780
  m,
4766
4781
  p,
4767
4782
  b,
4768
- V
4769
- ), z = Hr(i, w, y, M) * o;
4770
- if (v <= 1 / z && S <= l) {
4783
+ z
4784
+ ), V = Hr(i, w, x, P) * o;
4785
+ if (v <= 1 / V && S <= l) {
4771
4786
  const D = [
4772
- [w, y],
4773
- [y, M],
4774
- [M, w]
4787
+ [w, x],
4788
+ [x, P],
4789
+ [P, w]
4775
4790
  ];
4776
4791
  for (const [_, E] of D) {
4777
4792
  const T = h(_, E);
4778
- c.set(T, (c.get(T) || 0) + 1);
4793
+ u.set(T, (u.get(T) || 0) + 1);
4779
4794
  }
4780
4795
  }
4781
4796
  }
4782
4797
  const d = [];
4783
- for (const [f, w] of c)
4798
+ for (const [f, w] of u)
4784
4799
  w === 1 && d.push(f.split("_").map(Number));
4785
4800
  return d.length ? Kr(i, d) : [];
4786
4801
  }
@@ -4791,16 +4806,16 @@ function be(n, t) {
4791
4806
  function Qr(n) {
4792
4807
  let t = 0, e = 0, o = 0;
4793
4808
  for (let i = 0; i < 4; i++) {
4794
- const r = n[i], s = n[(i + 1) % 4], a = s.x - r.x, l = s.y - r.y, c = Math.sqrt(a * a + l * l);
4795
- c > t && (t = c, e = a / c, o = l / c);
4809
+ const r = n[i], s = n[(i + 1) % 4], a = s.x - r.x, l = s.y - r.y, u = Math.sqrt(a * a + l * l);
4810
+ u > t && (t = u, e = a / u, o = l / u);
4796
4811
  }
4797
4812
  return { longSide: t, dirX: e, dirY: o };
4798
4813
  }
4799
4814
  function jn(n, t, e) {
4800
4815
  const i = [];
4801
4816
  for (const r of n) {
4802
- const s = (r.start.x + r.end.x) / 2, a = (r.start.y + r.end.y) / 2, l = s - t, c = a - e;
4803
- l * l + c * c <= 3 * 3 && i.push(r.start.z, r.end.z);
4817
+ const s = (r.start.x + r.end.x) / 2, a = (r.start.y + r.end.y) / 2, l = s - t, u = a - e;
4818
+ l * l + u * u <= 3 * 3 && i.push(r.start.z, r.end.z);
4804
4819
  }
4805
4820
  if (i.length === 0) {
4806
4821
  const r = [];
@@ -4813,8 +4828,8 @@ function Un(n, t, e, o, i, r) {
4813
4828
  const s = i - e, a = r - o, l = s * s + a * a;
4814
4829
  if (l < 1e-12)
4815
4830
  return { dist: Math.sqrt((n - e) ** 2 + (t - o) ** 2), t: 0 };
4816
- const c = n - e, h = t - o, d = (c * s + h * a) / l, u = e + d * s, f = o + d * a;
4817
- return { dist: Math.sqrt((n - u) ** 2 + (t - f) ** 2), t: d };
4831
+ const u = n - e, h = t - o, d = (u * s + h * a) / l, c = e + d * s, f = o + d * a;
4832
+ return { dist: Math.sqrt((n - c) ** 2 + (t - f) ** 2), t: d };
4818
4833
  }
4819
4834
  function Jr(n, t, e = 0.15) {
4820
4835
  let o = 0, i = 0;
@@ -4837,21 +4852,21 @@ function ei(n, t, e = 0.15) {
4837
4852
  if (r < 1e-12) return 0;
4838
4853
  const s = -i / r, a = o / r, l = [[], []];
4839
4854
  for (let d = 0; d < 2; d++) {
4840
- const u = d === 0 ? n.start : n.end;
4855
+ const c = d === 0 ? n.start : n.end;
4841
4856
  for (const f of t) {
4842
4857
  if (f === n) continue;
4843
- const w = be(u, f.start), y = be(u, f.end);
4844
- let M = null;
4845
- if (w <= e ? M = f.end : y <= e && (M = f.start), !M) continue;
4846
- const P = f.end.x - f.start.x, g = f.end.y - f.start.y, m = Math.sqrt(P * P + g * g);
4847
- if (m < 1e-12 || Math.abs(o * P + i * g) / (r * m) >= 0.342) continue;
4848
- const b = (M.x - u.x) * s + (M.y - u.y) * a;
4858
+ const w = be(c, f.start), x = be(c, f.end);
4859
+ let P = null;
4860
+ if (w <= e ? P = f.end : x <= e && (P = f.start), !P) continue;
4861
+ const M = f.end.x - f.start.x, g = f.end.y - f.start.y, m = Math.sqrt(M * M + g * g);
4862
+ if (m < 1e-12 || Math.abs(o * M + i * g) / (r * m) >= 0.342) continue;
4863
+ const b = (P.x - c.x) * s + (P.y - c.y) * a;
4849
4864
  l[d].push(b > 0 ? 1 : -1);
4850
4865
  }
4851
4866
  }
4852
4867
  if (l[0].length === 0 || l[1].length === 0) return 0;
4853
- const c = [...l[0], ...l[1]];
4854
- return c.every((d) => d === c[0]) ? 2 : 1;
4868
+ const u = [...l[0], ...l[1]];
4869
+ return u.every((d) => d === u[0]) ? 2 : 1;
4855
4870
  }
4856
4871
  function ni(n, t, e) {
4857
4872
  const o = Jr(n, e), i = ti(n, t), r = ei(n, e);
@@ -4893,18 +4908,18 @@ function ii(n, t = 0.05) {
4893
4908
  function si(n, t, e, o, i) {
4894
4909
  const r = [];
4895
4910
  for (const a of n) {
4896
- const l = a.seg, c = (l.start.x - t.start.x) * e + (l.start.y - t.start.y) * o, h = (l.end.x - t.start.x) * e + (l.end.y - t.start.y) * o;
4897
- r.push({ l: Math.min(c, h), r: Math.max(c, h), idx: a.idx });
4911
+ const l = a.seg, u = (l.start.x - t.start.x) * e + (l.start.y - t.start.y) * o, h = (l.end.x - t.start.x) * e + (l.end.y - t.start.y) * o;
4912
+ r.push({ l: Math.min(u, h), r: Math.max(u, h), idx: a.idx });
4898
4913
  }
4899
4914
  r.sort((a, l) => a.l - l.l);
4900
4915
  const s = [];
4901
- for (const { l: a, r: l, idx: c } of r) {
4916
+ for (const { l: a, r: l, idx: u } of r) {
4902
4917
  if (s.length === 0) {
4903
- s.push({ l: a, r: l, srcIdxs: [c] });
4918
+ s.push({ l: a, r: l, srcIdxs: [u] });
4904
4919
  continue;
4905
4920
  }
4906
4921
  const h = s[s.length - 1];
4907
- a <= h.r + i ? (h.r = Math.max(h.r, l), h.srcIdxs.includes(c) || h.srcIdxs.push(c)) : s.push({ l: a, r: l, srcIdxs: [c] });
4922
+ a <= h.r + i ? (h.r = Math.max(h.r, l), h.srcIdxs.includes(u) || h.srcIdxs.push(u)) : s.push({ l: a, r: l, srcIdxs: [u] });
4908
4923
  }
4909
4924
  return s;
4910
4925
  }
@@ -4921,43 +4936,43 @@ function li(n, t) {
4921
4936
  const r = n[o], s = n[i];
4922
4937
  if (r.rooftopPz !== void 0 && s.rooftopPz !== void 0 && Math.abs(r.rooftopPz - s.rooftopPz) > 0.05)
4923
4938
  continue;
4924
- const a = Math.abs(r.end.x - s.start.x) < 1e-3 && Math.abs(r.end.y - s.start.y) < 1e-3, l = Math.abs(r.start.x - s.end.x) < 1e-3 && Math.abs(r.start.y - s.end.y) < 1e-3, c = Math.abs(r.end.x - s.end.x) < 1e-3 && Math.abs(r.end.y - s.end.y) < 1e-3, h = Math.abs(r.start.x - s.start.x) < 1e-3 && Math.abs(r.start.y - s.start.y) < 1e-3;
4925
- if (!(a || l || c || h) || r.direction.x * s.direction.x + r.direction.y * s.direction.y < 0.98) continue;
4926
- let u = r.start, f = r.end;
4927
- a ? f = s.end : l ? u = s.start : c ? f = s.start : h && (u = s.end);
4928
- const w = Math.hypot(f.x - u.x, f.y - u.y), y = { ...r };
4929
- y.start = u, y.end = f, y.length = w, y.direction = { x: (f.x - u.x) / w, y: (f.y - u.y) / w, z: 0 }, y.rooftopPz = r.rooftopPz !== void 0 ? r.rooftopPz : s.rooftopPz, y.buildRosource = r.buildRosource || s.buildRosource, y.isRebuild = !1, y.doorAndBeamData || (y.doorAndBeamData = []), y.insetionArr || (y.insetionArr = []), n[o] = y, t[o] = [.../* @__PURE__ */ new Set([...t[o], ...t[i]])], n.splice(i, 1), t.splice(i, 1), i--, e = !0;
4939
+ const a = Math.abs(r.end.x - s.start.x) < 1e-3 && Math.abs(r.end.y - s.start.y) < 1e-3, l = Math.abs(r.start.x - s.end.x) < 1e-3 && Math.abs(r.start.y - s.end.y) < 1e-3, u = Math.abs(r.end.x - s.end.x) < 1e-3 && Math.abs(r.end.y - s.end.y) < 1e-3, h = Math.abs(r.start.x - s.start.x) < 1e-3 && Math.abs(r.start.y - s.start.y) < 1e-3;
4940
+ if (!(a || l || u || h) || r.direction.x * s.direction.x + r.direction.y * s.direction.y < 0.98) continue;
4941
+ let c = r.start, f = r.end;
4942
+ a ? f = s.end : l ? c = s.start : u ? f = s.start : h && (c = s.end);
4943
+ const w = Math.hypot(f.x - c.x, f.y - c.y), x = { ...r };
4944
+ x.start = c, x.end = f, x.length = w, x.direction = { x: (f.x - c.x) / w, y: (f.y - c.y) / w, z: 0 }, x.rooftopPz = r.rooftopPz !== void 0 ? r.rooftopPz : s.rooftopPz, x.buildRosource = r.buildRosource || s.buildRosource, x.isRebuild = !1, x.doorAndBeamData || (x.doorAndBeamData = []), x.insetionArr || (x.insetionArr = []), n[o] = x, t[o] = [.../* @__PURE__ */ new Set([...t[o], ...t[i]])], n.splice(i, 1), t.splice(i, 1), i--, e = !0;
4930
4945
  }
4931
4946
  }
4932
4947
  return { segments: n, sourceMap: t };
4933
4948
  }
4934
4949
  function Zn(n, t = 5, e = 0.05) {
4935
4950
  if (n.length <= 1)
4936
- return { segments: n, sourceMap: n.map((l, c) => [c]) };
4937
- const o = n.map((l, c) => ({ seg: l, angle: oi(l), idx: c }));
4938
- o.sort((l, c) => l.angle - c.angle);
4951
+ return { segments: n, sourceMap: n.map((l, u) => [u]) };
4952
+ const o = n.map((l, u) => ({ seg: l, angle: oi(l), idx: u }));
4953
+ o.sort((l, u) => l.angle - u.angle);
4939
4954
  const i = ri(o, t), r = [], s = [], a = [];
4940
4955
  for (const l of i) {
4941
- let c = l[0].seg;
4942
- for (const P of l)
4943
- P.seg.length > c.length && (c = P.seg);
4944
- const h = c.end.x - c.start.x, d = c.end.y - c.start.y, u = Math.sqrt(h * h + d * d);
4945
- if (u < 1e-12) continue;
4946
- const f = -d / u, w = h / u, y = l.map((P) => {
4947
- const g = P.seg.start.x - c.start.x, m = P.seg.start.y - c.start.y;
4948
- return { seg: P.seg, offset: Math.abs(g * f + m * w), idx: P.idx };
4956
+ let u = l[0].seg;
4957
+ for (const M of l)
4958
+ M.seg.length > u.length && (u = M.seg);
4959
+ const h = u.end.x - u.start.x, d = u.end.y - u.start.y, c = Math.sqrt(h * h + d * d);
4960
+ if (c < 1e-12) continue;
4961
+ const f = -d / c, w = h / c, x = l.map((M) => {
4962
+ const g = M.seg.start.x - u.start.x, m = M.seg.start.y - u.start.y;
4963
+ return { seg: M.seg, offset: Math.abs(g * f + m * w), idx: M.idx };
4949
4964
  });
4950
- y.sort((P, g) => P.offset - g.offset);
4951
- const M = ii(y);
4952
- for (const P of M) {
4953
- let g = P[0].seg;
4954
- for (const E of P)
4965
+ x.sort((M, g) => M.offset - g.offset);
4966
+ const P = ii(x);
4967
+ for (const M of P) {
4968
+ let g = M[0].seg;
4969
+ for (const E of M)
4955
4970
  E.seg.length > g.length && (g = E.seg);
4956
4971
  const m = g.end.x - g.start.x, p = g.end.y - g.start.y, b = Math.sqrt(m * m + p * p);
4957
4972
  if (b < 1e-12) continue;
4958
- const V = m / b, v = p / b, S = P.map((E) => E.seg.rooftopPz ?? 0), z = Math.max(...S), D = [...new Set(S.map((E) => E.toFixed(3)))];
4973
+ const z = m / b, v = p / b, S = M.map((E) => E.seg.rooftopPz ?? 0), V = Math.max(...S), D = [...new Set(S.map((E) => E.toFixed(3)))];
4959
4974
  if (D.length > 1) {
4960
- const E = P.map((T) => ({
4975
+ const E = M.map((T) => ({
4961
4976
  idx: T.idx,
4962
4977
  start: { x: T.seg.start.x, y: T.seg.start.y, z: T.seg.start.z },
4963
4978
  end: { x: T.seg.end.x, y: T.seg.end.y, z: T.seg.end.z },
@@ -4966,11 +4981,11 @@ function Zn(n, t = 5, e = 0.05) {
4966
4981
  }));
4967
4982
  a.push({ values: [...D], segments: E });
4968
4983
  }
4969
- [...new Set(P.map((E) => String(E.seg.buildRosource)))];
4970
- const _ = si(P, g, V, v, e);
4984
+ [...new Set(M.map((E) => String(E.seg.buildRosource)))];
4985
+ const _ = si(M, g, z, v, e);
4971
4986
  for (const { l: E, r: T, srcIdxs: A } of _) {
4972
4987
  if (T - E < 0.01) continue;
4973
- const O = ai(g, E, T, V, v, z, g.buildRosource);
4988
+ const O = ai(g, E, T, z, v, V, g.buildRosource);
4974
4989
  r.push(O), s.push(A);
4975
4990
  }
4976
4991
  }
@@ -5005,42 +5020,42 @@ function hi(n, t, e, o, i, r, s) {
5005
5020
  { margin: 0.4, maxDist: 0.65, label: "宽松" }
5006
5021
  ];
5007
5022
  let l = [];
5008
- for (const c of a) {
5023
+ for (const u of a) {
5009
5024
  if (l.length > 0) break;
5010
5025
  for (const h of n) {
5011
5026
  const d = t * r.minLengthRatio;
5012
5027
  if (h.length < d)
5013
5028
  continue;
5014
- const { start: u, end: f } = h;
5015
- let w = !1, y = 1 / 0;
5029
+ const { start: c, end: f } = h;
5030
+ let w = !1, x = 1 / 0;
5016
5031
  for (const S of i) {
5017
- const { dist: z, t: D } = Un(S.x, S.y, u.x, u.y, f.x, f.y);
5018
- D >= -c.margin && D <= 1 + c.margin && z <= c.maxDist && (w = !0, y = Math.min(y, z));
5032
+ const { dist: V, t: D } = Un(S.x, S.y, c.x, c.y, f.x, f.y);
5033
+ D >= -u.margin && D <= 1 + u.margin && V <= u.maxDist && (w = !0, x = Math.min(x, V));
5019
5034
  }
5020
5035
  if (!w) {
5021
- `${c.maxDist}${(-c.margin).toFixed(1)}${(1 + c.margin).toFixed(1)}`;
5036
+ `${u.maxDist}${(-u.margin).toFixed(1)}${(1 + u.margin).toFixed(1)}`;
5022
5037
  continue;
5023
5038
  }
5024
- const M = Math.sqrt((f.x - u.x) ** 2 + (f.y - u.y) ** 2);
5025
- if (M < 1e-12) continue;
5026
- const P = (f.x - u.x) / M, g = (f.y - u.y) / M, m = Math.abs(e * P + o * g), p = Math.abs(-o * P + e * g), b = Math.max(m, p), V = Math.acos(Math.min(b, 1)) * (180 / Math.PI);
5027
- if (V > r.angleThreshold) {
5028
- `${V.toFixed(1)}${r.angleThreshold}`;
5039
+ const P = Math.sqrt((f.x - c.x) ** 2 + (f.y - c.y) ** 2);
5040
+ if (P < 1e-12) continue;
5041
+ const M = (f.x - c.x) / P, g = (f.y - c.y) / P, m = Math.abs(e * M + o * g), p = Math.abs(-o * M + e * g), b = Math.max(m, p), z = Math.acos(Math.min(b, 1)) * (180 / Math.PI);
5042
+ if (z > r.angleThreshold) {
5043
+ `${z.toFixed(1)}${r.angleThreshold}`;
5029
5044
  continue;
5030
5045
  }
5031
5046
  let v = 0;
5032
- if (M > 0.01) {
5047
+ if (P > 0.01) {
5033
5048
  const S = [];
5034
5049
  for (let _ = 1; _ <= 4; _++) {
5035
- const E = i[_], T = E.x - u.x, A = E.y - u.y, O = (T * P + A * g) / M;
5050
+ const E = i[_], T = E.x - c.x, A = E.y - c.y, O = (T * M + A * g) / P;
5036
5051
  S.push(O);
5037
5052
  }
5038
- const z = Math.min(...S), D = Math.max(...S);
5039
- D > z && (v = Math.max(0, Math.min(1, D) - Math.max(0, z)) / (D - z));
5053
+ const V = Math.min(...S), D = Math.max(...S);
5054
+ D > V && (v = Math.max(0, Math.min(1, D) - Math.max(0, V)) / (D - V));
5040
5055
  }
5041
5056
  l.push({
5042
5057
  seg: h,
5043
- minDist: y,
5058
+ minDist: x,
5044
5059
  embedRatio: v,
5045
5060
  ratio: h.length / t,
5046
5061
  score: 0,
@@ -5060,73 +5075,73 @@ function fi(n, t, e, o) {
5060
5075
  return n.sort((i, r) => r.embedRatio - i.embedRatio || r.score - i.score || i.minDist - r.minDist), n;
5061
5076
  }
5062
5077
  function di(n, t, e, o) {
5063
- const i = n.end.x - n.start.x, r = n.end.y - n.start.y, s = Math.sqrt(i * i + r * r), a = i / s, l = r / s, c = t.map((v) => {
5064
- const S = v.x - n.start.x, z = v.y - n.start.y;
5065
- return (S * a + z * l) / s;
5066
- }), h = Math.min(...c), d = Math.max(...c), u = (d - h) * s, f = (h + d) / 2, w = n.start.x + f * i, y = n.start.y + f * r, M = e.box.min.z, P = e.box.max.z, g = Math.abs(P - M), m = jn(o, n.start.x, n.start.y), p = Math.max(0, M - m), b = h <= 0 && d >= 1, V = n.start.z + f * (n.end.z - n.start.z);
5078
+ const i = n.end.x - n.start.x, r = n.end.y - n.start.y, s = Math.sqrt(i * i + r * r), a = i / s, l = r / s, u = t.map((v) => {
5079
+ const S = v.x - n.start.x, V = v.y - n.start.y;
5080
+ return (S * a + V * l) / s;
5081
+ }), h = Math.min(...u), d = Math.max(...u), c = (d - h) * s, f = (h + d) / 2, w = n.start.x + f * i, x = n.start.y + f * r, P = e.box.min.z, M = e.box.max.z, g = Math.abs(M - P), m = jn(o, n.start.x, n.start.y), p = Math.max(0, P - m), b = h <= 0 && d >= 1, z = n.start.z + f * (n.end.z - n.start.z);
5067
5082
  return {
5068
- p: { x: w, y, z: V },
5069
- width: u,
5083
+ p: { x: w, y: x, z },
5084
+ width: c,
5070
5085
  full: b,
5071
5086
  height: g,
5072
5087
  groundClearance: p
5073
5088
  };
5074
5089
  }
5075
5090
  function Kn(n, t, e) {
5076
- var h, d, u, f, w;
5077
- const o = t.map((y) => e[y]), i = [], r = [], s = [], a = [], l = [];
5078
- let c;
5079
- for (const y of o) {
5080
- if ((h = y.points) != null && h.length) for (const M of y.points) i.push(M);
5081
- if ((d = y.originalPoints) != null && d.length) for (const M of y.originalPoints) r.push(M);
5082
- if ((u = y.doorAndBeamData) != null && u.length) for (const M of y.doorAndBeamData) s.push(M);
5083
- if ((f = y.insetionArr) != null && f.length) for (const M of y.insetionArr) a.push(M);
5084
- if ((w = y.drawWindow) != null && w.length) for (const M of y.drawWindow) l.push(M);
5085
- y.boxData && !c && (c = y.boxData);
5086
- }
5087
- i.length && (n.points = i), r.length && (n.originalPoints = r), s.length && (n.doorAndBeamData = s), a.length && (n.insetionArr = a), l.length && (n.drawWindow = l), c && (n.boxData = c);
5091
+ var h, d, c, f, w;
5092
+ const o = t.map((x) => e[x]), i = [], r = [], s = [], a = [], l = [];
5093
+ let u;
5094
+ for (const x of o) {
5095
+ if ((h = x.points) != null && h.length) for (const P of x.points) i.push(P);
5096
+ if ((d = x.originalPoints) != null && d.length) for (const P of x.originalPoints) r.push(P);
5097
+ if ((c = x.doorAndBeamData) != null && c.length) for (const P of x.doorAndBeamData) s.push(P);
5098
+ if ((f = x.insetionArr) != null && f.length) for (const P of x.insetionArr) a.push(P);
5099
+ if ((w = x.drawWindow) != null && w.length) for (const P of x.drawWindow) l.push(P);
5100
+ x.boxData && !u && (u = x.boxData);
5101
+ }
5102
+ i.length && (n.points = i), r.length && (n.originalPoints = r), s.length && (n.doorAndBeamData = s), a.length && (n.insetionArr = a), l.length && (n.drawWindow = l), u && (n.boxData = u);
5088
5103
  }
5089
5104
  function mi(n, t, e, o) {
5090
- var c;
5105
+ var u;
5091
5106
  const i = ci(e), r = [], { segments: s, sourceMap: a } = o ?? Zn(t), l = s;
5092
5107
  for (const h of n) {
5093
- const d = (c = h.coordinatesByArea) == null ? void 0 : c.coordinates;
5108
+ const d = (u = h.coordinatesByArea) == null ? void 0 : u.coordinates;
5094
5109
  if (!d || d.length < 4)
5095
5110
  continue;
5096
- const u = d.slice(0, 4), f = u.reduce((D, _) => D + _.x, 0) / 4, w = u.reduce((D, _) => D + _.y, 0) / 4, { longSide: y, dirX: M, dirY: P } = Qr(u);
5097
- if (y < 0.01)
5111
+ const c = d.slice(0, 4), f = c.reduce((D, _) => D + _.x, 0) / 4, w = c.reduce((D, _) => D + _.y, 0) / 4, { longSide: x, dirX: P, dirY: M } = Qr(c);
5112
+ if (x < 0.01)
5098
5113
  continue;
5099
- const g = u.reduce((D, _) => D + _.z, 0) / 4, m = jn(t, f, w);
5114
+ const g = c.reduce((D, _) => D + _.z, 0) / 4, m = jn(t, f, w);
5100
5115
  if (g < m - 0.3)
5101
5116
  continue;
5102
- const p = ui(u, f, w);
5117
+ const p = ui(c, f, w);
5103
5118
  h.name;
5104
- let b = hi(l, y, M, P, p, i, h.name);
5119
+ let b = hi(l, x, P, M, p, i, h.name);
5105
5120
  b = fi(b, p, t, h.name);
5106
- let V = null, v = 1 / 0, S = 0;
5121
+ let z = null, v = 1 / 0, S = 0;
5107
5122
  if (b.length > 0) {
5108
5123
  const D = b[0];
5109
- V = D.seg, v = D.minDist, S = D.ratio;
5124
+ z = D.seg, v = D.minDist, S = D.ratio;
5110
5125
  }
5111
- let z;
5112
- if (V && (z = di(V, u, h, s), !i.printOnly)) {
5113
- const D = V;
5114
- D.drawWindow || (D.drawWindow = []), D.drawWindow.push(z);
5126
+ let V;
5127
+ if (z && (V = di(z, c, h, s), !i.printOnly)) {
5128
+ const D = z;
5129
+ D.drawWindow || (D.drawWindow = []), D.drawWindow.push(V);
5115
5130
  }
5116
- V && r.push({
5131
+ z && r.push({
5117
5132
  windowName: h.name,
5118
5133
  windowCategory: h.category,
5119
5134
  windowCenter: h.center,
5120
- wallSegment: V,
5135
+ wallSegment: z,
5121
5136
  distance: v,
5122
5137
  wallLengthRatio: S,
5123
- drawWindow: z
5138
+ drawWindow: V
5124
5139
  });
5125
5140
  }
5126
5141
  for (const h of r) {
5127
- const d = h.wallSegment, u = s.indexOf(d);
5128
- if (u === -1) continue;
5129
- const f = a[u];
5142
+ const d = h.wallSegment, c = s.indexOf(d);
5143
+ if (c === -1) continue;
5144
+ const f = a[c];
5130
5145
  !f || f.length <= 1 || Kn(d, f, t);
5131
5146
  }
5132
5147
  return r;
@@ -5135,28 +5150,28 @@ function Vi(n, t, e) {
5135
5150
  const o = {
5136
5151
  printOnly: !1,
5137
5152
  ...e
5138
- }, i = Array.isArray(t) ? t.filter((u) => u && u.category === "window" && !u.isBayWindowObj) : [], { segments: r, sourceMap: s } = Zn(n), a = mi(i, n, o, { segments: r, sourceMap: s }), l = /* @__PURE__ */ new Set();
5139
- for (const u of a) {
5140
- const f = r.indexOf(u.wallSegment);
5153
+ }, i = Array.isArray(t) ? t.filter((c) => c && c.category === "window" && !c.isBayWindowObj) : [], { segments: r, sourceMap: s } = Zn(n), a = mi(i, n, o, { segments: r, sourceMap: s }), l = /* @__PURE__ */ new Set();
5154
+ for (const c of a) {
5155
+ const f = r.indexOf(c.wallSegment);
5141
5156
  f >= 0 && l.add(f);
5142
5157
  }
5143
- const c = [], h = /* @__PURE__ */ new Set();
5144
- for (const u of l) {
5145
- const f = s[u];
5158
+ const u = [], h = /* @__PURE__ */ new Set();
5159
+ for (const c of l) {
5160
+ const f = s[c];
5146
5161
  if (f) {
5147
- Kn(r[u], f, n);
5162
+ Kn(r[c], f, n);
5148
5163
  for (const w of f) h.add(w);
5149
5164
  }
5150
- c.push(r[u]);
5151
- }
5152
- for (let u = 0; u < n.length; u++)
5153
- h.has(u) || c.push(n[u]);
5154
- const d = new Set(a.map((u) => u.windowName));
5155
- for (const u of t)
5156
- u && u.category === "window" && !u.isBayWindowObj && (d.has(u.name) ? delete u.AbnormalWindow : u.AbnormalWindow = !0);
5157
- for (const u of a)
5158
- u.drawWindow && u.wallSegment && (u.wallSegment.drawWindow || (u.wallSegment.drawWindow = []), u.wallSegment.drawWindow.push(u.drawWindow));
5159
- return { segments: c, matches: a };
5165
+ u.push(r[c]);
5166
+ }
5167
+ for (let c = 0; c < n.length; c++)
5168
+ h.has(c) || u.push(n[c]);
5169
+ const d = new Set(a.map((c) => c.windowName));
5170
+ for (const c of t)
5171
+ c && c.category === "window" && !c.isBayWindowObj && (d.has(c.name) ? delete c.AbnormalWindow : c.AbnormalWindow = !0);
5172
+ for (const c of a)
5173
+ c.drawWindow && c.wallSegment && (c.wallSegment.drawWindow || (c.wallSegment.drawWindow = []), c.wallSegment.drawWindow.push(c.drawWindow));
5174
+ return { segments: u, matches: a };
5160
5175
  }
5161
5176
  export {
5162
5177
  cn as computeContour,