rm-graphical-computing 1.0.28 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -146,16 +146,16 @@ var m = (e, t, n = .01) => {
146
146
  angle: c
147
147
  };
148
148
  };
149
- function h(t, n) {
150
- let r = new e.BufferGeometry(), i = [], a = [];
151
- t.forEach((e) => i.push(e.x, e.y, e.z)), n.forEach((e) => i.push(e.x, e.y, e.z)), a.push(0, 2, 1, 0, 3, 2), a.push(4, 5, 6, 4, 6, 7), a.push(0, 1, 5, 0, 5, 4), a.push(1, 2, 6, 1, 6, 5), a.push(2, 3, 7, 2, 7, 6), a.push(3, 0, 4, 3, 4, 7), r.setAttribute("position", new e.Float32BufferAttribute(i, 3)), r.setIndex(a), r.computeVertexNormals();
152
- let o = new e.MeshBasicMaterial({
153
- color: "green",
149
+ function h(t, n, r) {
150
+ let i = new e.BufferGeometry(), a = [], o = [];
151
+ t.forEach((e) => a.push(e.x, e.y, e.z)), n.forEach((e) => a.push(e.x, e.y, e.z)), o.push(0, 2, 1, 0, 3, 2), o.push(4, 5, 6, 4, 6, 7), o.push(0, 1, 5, 0, 5, 4), o.push(1, 2, 6, 1, 6, 5), o.push(2, 3, 7, 2, 7, 6), o.push(3, 0, 4, 3, 4, 7), i.setAttribute("position", new e.Float32BufferAttribute(a, 3)), i.setIndex(o), i.computeVertexNormals();
152
+ let s = new e.MeshBasicMaterial({
153
+ color: r == "door" ? "green" : "#a7cc00",
154
154
  transparent: !0,
155
155
  opacity: .5,
156
156
  side: e.DoubleSide
157
157
  });
158
- return new e.Mesh(r, o);
158
+ return new e.Mesh(i, s);
159
159
  }
160
160
  var g = class {
161
161
  constructor(t = {}) {
@@ -200,87 +200,87 @@ var g = class {
200
200
  this.labelElement && this.labelElement.parentNode && this.labelElement.parentNode.removeChild(this.labelElement), this.label = null, this.labelElement = null;
201
201
  }
202
202
  }, _ = (t) => {
203
- let n = new e.Group();
203
+ let n = new e.Group(), r = new e.Group();
204
204
  if (t && t.length) {
205
- let r = /* @__PURE__ */ "green.red.pink.white.azure.yellow.bisque.grey.blanchedalmond.blue.blueviolet.brown.burlywood.cadetblue.chartreuse.chocolate.coral.cornflowerblue.cornsilk.crimson.cyan.darkblue.darkcyan.darkgoldenrod.darkgray.darkgreen.darkgrey.darkkhaki.darkmagenta.darkolivegreen.darkorange.darkorchid.darkred.darksalmon.darkseagreen.darkslateblue.darkslategray.darkslategrey.darkturquoise.darkviolet.deeppink.deepskyblue.dimgray.dimgrey.dodgerblue.firebrick.floralwhite.forestgreen.fuchsia.gainsboro.ghostwhite.gold.goldenrod.gray.aliceblue.greenyellow.black.honeydew.hotpink.indianred.indigo.ivory.khaki.lavender.lavenderblush.lawngreen.lemonchiffon.lightblue.lightcoral.lightcyan.lightgoldenrodyellow.lightgray.lightgreen.lightgrey.lightpink.lightsalmon.lightseagreen.lightskyblue.lightslategray.lightslategrey.lightsteelblue.lightyellow.lime.limegreen.linen.magenta.maroon.mediumaquamarine.mediumblue.mediumorchid.mediumpurple.mediumseagreen.mediumslateblue.mediumspringgreen.mediumturquoise.mediumvioletred.midnightblue.mintcream.mistyrose.moccasin.navajowhite.navy.oldlace.olive.olivedrab.orange.orangered.orchid.palegoldenrod.palegreen.paleturquoise.palevioletred.papayawhip.peachpuff.peru.pink.plum.powderblue.purple.rebeccapurple.yellow.rosybrown.royalblue.saddlebrown.salmon.sandybrown.seagreen.seashell.sienna.silver.skyblue.slateblue.slategray.slategrey.snow.springgreen.steelblue.tan.teal.thistle.tomato.turquoise.violet.wheat.white.whitesmoke.yellow.yellowgreen".split(".");
206
- t.forEach((t, i) => {
207
- let a = r[i], o = new e.Group(), { pcdPoints: s, category: c, name: l, center: u, box: d, obbBox: f, contour: p, nline: m, coordinatesByWidth: _, coordinatesByArea: v } = t, y = s.length;
208
- if (c != "door") return;
209
- c === "balcony railing" && console.log("pcdObj", t);
210
- let b = new e.Box3(new e.Vector3(d.min.x, d.min.y, d.min.z), new e.Vector3(d.max.x, d.max.y, d.max.z)), x = new e.Box3Helper(b, a);
211
- o.add(x);
212
- let S = new g({
213
- value: l,
214
- position: new e.Vector3(u.x, u.y, u.z)
205
+ let i = /* @__PURE__ */ "green.red.pink.white.azure.yellow.bisque.grey.blanchedalmond.blue.blueviolet.brown.burlywood.cadetblue.chartreuse.chocolate.coral.cornflowerblue.cornsilk.crimson.cyan.darkblue.darkcyan.darkgoldenrod.darkgray.darkgreen.darkgrey.darkkhaki.darkmagenta.darkolivegreen.darkorange.darkorchid.darkred.darksalmon.darkseagreen.darkslateblue.darkslategray.darkslategrey.darkturquoise.darkviolet.deeppink.deepskyblue.dimgray.dimgrey.dodgerblue.firebrick.floralwhite.forestgreen.fuchsia.gainsboro.ghostwhite.gold.goldenrod.gray.aliceblue.greenyellow.black.honeydew.hotpink.indianred.indigo.ivory.khaki.lavender.lavenderblush.lawngreen.lemonchiffon.lightblue.lightcoral.lightcyan.lightgoldenrodyellow.lightgray.lightgreen.lightgrey.lightpink.lightsalmon.lightseagreen.lightskyblue.lightslategray.lightslategrey.lightsteelblue.lightyellow.lime.limegreen.linen.magenta.maroon.mediumaquamarine.mediumblue.mediumorchid.mediumpurple.mediumseagreen.mediumslateblue.mediumspringgreen.mediumturquoise.mediumvioletred.midnightblue.mintcream.mistyrose.moccasin.navajowhite.navy.oldlace.olive.olivedrab.orange.orangered.orchid.palegoldenrod.palegreen.paleturquoise.palevioletred.papayawhip.peachpuff.peru.pink.plum.powderblue.purple.rebeccapurple.yellow.rosybrown.royalblue.saddlebrown.salmon.sandybrown.seagreen.seashell.sienna.silver.skyblue.slateblue.slategray.slategrey.snow.springgreen.steelblue.tan.teal.thistle.tomato.turquoise.violet.wheat.white.whitesmoke.yellow.yellowgreen".split(".");
206
+ t.forEach((t, a) => {
207
+ let o = i[a], s = new e.Group(), { pcdPoints: c, category: l, name: u, center: d, box: f, obbBox: p, contour: m, nline: _, coordinatesByWidth: v, coordinatesByArea: y } = t, b = c.length, x = new e.Box3(new e.Vector3(f.min.x, f.min.y, f.min.z), new e.Vector3(f.max.x, f.max.y, f.max.z)), S = new e.Box3Helper(x, o);
208
+ s.add(S);
209
+ let C = new g({
210
+ value: u,
211
+ position: new e.Vector3(d.x, d.y, d.z)
215
212
  }).getLabel();
216
- o.add(S);
217
- let C = new e.InstancedMesh(new e.SphereGeometry(.007, 8, 8), new e.MeshBasicMaterial({ color: a }), y);
218
- o.add(C);
219
- let w = new e.Matrix4(), T = 0;
220
- if (s.forEach((e) => {
221
- w.setPosition(e.x, e.y, e.z), C.setMatrixAt(T, w), T++;
222
- }), C.instanceMatrix.needsUpdate = !0, m) {
213
+ s.add(C);
214
+ let w = new e.InstancedMesh(new e.SphereGeometry(.007, 8, 8), new e.MeshBasicMaterial({ color: o }), b);
215
+ s.add(w);
216
+ let T = new e.Matrix4(), E = 0;
217
+ if (c.forEach((e) => {
218
+ T.setPosition(e.x, e.y, e.z), w.setMatrixAt(E, T), E++;
219
+ }), w.instanceMatrix.needsUpdate = !0, _) {
223
220
  let t = new e.BufferGeometry();
224
- t.setFromPoints([new e.Vector3(m.start.x, m.start.y, m.start.z), new e.Vector3(m.end.x, m.end.y, m.end.z)]);
221
+ t.setFromPoints([new e.Vector3(_.start.x, _.start.y, _.start.z), new e.Vector3(_.end.x, _.end.y, _.end.z)]);
225
222
  let n = new e.LineBasicMaterial({
226
223
  color: "red",
227
224
  depthTest: !1,
228
225
  depthWrite: !1
229
226
  });
230
227
  new e.Line(t, n);
231
- let r = new e.Vector3().copy(new e.Vector3(m.start.x, m.start.y, m.start.z)).add(new e.Vector3(m.end.x, m.end.y, m.end.z)).multiplyScalar(.5), i = new e.Vector3(m.centerDir.x, m.centerDir.y, m.centerDir.z);
228
+ let r = new e.Vector3().copy(new e.Vector3(_.start.x, _.start.y, _.start.z)).add(new e.Vector3(_.end.x, _.end.y, _.end.z)).multiplyScalar(.5), i = new e.Vector3(_.centerDir.x, _.centerDir.y, _.centerDir.z);
232
229
  new e.ArrowHelper(i, r, 1, "red");
233
230
  }
234
- if (p) {
231
+ if (m) {
235
232
  let t = [];
236
- p.forEach((n, r) => {
233
+ m.forEach((n, r) => {
237
234
  t.push(new e.Vector3(n.x, n.y, n.z));
238
235
  });
239
- let r = new e.BufferGeometry();
240
- r.setFromPoints(t);
241
- let i = new e.LineBasicMaterial({
236
+ let i = new e.BufferGeometry();
237
+ i.setFromPoints(t);
238
+ let a = new e.LineBasicMaterial({
242
239
  color: "yellow",
243
240
  depthTest: !1,
244
241
  depthWrite: !1
245
- }), a = new e.Line(r, i);
246
- n.add(a);
242
+ }), o = new e.Line(i, a);
243
+ l == "door" ? n.add(o) : r.add(o);
247
244
  }
248
- if (v) {
249
- let t = [], r = [];
250
- v.coordinates.forEach((n, i) => {
251
- t.push(new e.Vector3(n.x, n.y, n.z)), r.length < 4 && r.push(new e.Vector3(n.x, n.y, n.z));
245
+ if (y) {
246
+ let t = [], i = [];
247
+ y.coordinates.forEach((n, r) => {
248
+ t.push(new e.Vector3(n.x, n.y, n.z)), i.length < 4 && i.push(new e.Vector3(n.x, n.y, n.z));
252
249
  });
253
- let i = new e.BufferGeometry();
254
- i.setFromPoints(t);
255
- let a = new e.LineBasicMaterial({
250
+ let a = new e.BufferGeometry();
251
+ a.setFromPoints(t);
252
+ let o = new e.LineBasicMaterial({
256
253
  color: "green",
257
254
  depthTest: !1,
258
255
  depthWrite: !1
259
- }), o = new e.Line(i, a);
260
- n.add(o);
261
- let s = h(r.map((t) => new e.Vector3(t.x, t.y, v.heightData.minZ)), r.map((t) => new e.Vector3(t.x, t.y, t.z)));
262
- n.add(s);
263
- let [c, l, u] = t, d = c.distanceTo(l), f = new e.Vector3().copy(c).add(l).multiplyScalar(.5);
264
- new g({
265
- value: String(d.toFixed(3)),
266
- position: f
267
- }).getLabel();
268
- let p = l.distanceTo(u), m = new e.Vector3().copy(l).add(u).multiplyScalar(.5);
256
+ }), s = new e.Line(a, o);
257
+ l == "door" ? n.add(s) : r.add(s);
258
+ let c = h(i.map((t) => new e.Vector3(t.x, t.y, y.heightData.minZ)), i.map((t) => new e.Vector3(t.x, t.y, t.z)), l);
259
+ l == "door" ? n.add(c) : r.add(c);
260
+ let [u, d, f] = t, p = u.distanceTo(d), m = new e.Vector3().copy(u).add(d).multiplyScalar(.5);
269
261
  new g({
270
262
  value: String(p.toFixed(3)),
271
263
  position: m
272
264
  }).getLabel();
265
+ let _ = d.distanceTo(f), v = new e.Vector3().copy(d).add(f).multiplyScalar(.5);
266
+ new g({
267
+ value: String(_.toFixed(3)),
268
+ position: v
269
+ }).getLabel();
273
270
  }
274
- if (f) {
275
- let t = new e.BoxGeometry(f.size.x, f.size.y, f.size.z), r = new e.LineBasicMaterial({
276
- color: a,
271
+ if (p) {
272
+ let t = new e.BoxGeometry(p.size.x, p.size.y, p.size.z), i = new e.LineBasicMaterial({
273
+ color: o,
277
274
  linewidth: 2
278
- }), i = new e.EdgesGeometry(t), o = new e.LineSegments(i, r), s = new Vector3(f.center.x, f.center.y, f.center.z), c = new Quaternion(f.rotation.x, f.rotation.y, f.rotation.z, f.rotation.w);
279
- o.position.copy(s), o.quaternion.copy(c), n.add(o);
275
+ }), a = new e.EdgesGeometry(t), s = new e.LineSegments(a, i), c = new Vector3(p.center.x, p.center.y, p.center.z), u = new Quaternion(p.rotation.x, p.rotation.y, p.rotation.z, p.rotation.w);
276
+ s.position.copy(c), s.quaternion.copy(u), l == "door" ? n.add(s) : r.add(s);
280
277
  }
281
278
  });
282
279
  }
283
- return n;
280
+ return {
281
+ AiProjectionGroup: n,
282
+ AiProjectionGroup2: r
283
+ };
284
284
  }, v = (t, n, r, i) => {
285
285
  let a = t, o = [];
286
286
  if (i && i.length && (o = i.map((e) => e.clone())), !a || a.length < 4) return {};
@@ -538,29 +538,32 @@ var T = (t, n, r, i = .05, a = .02) => {
538
538
  let { newOriginalPoints: S } = O(p, h, i.originalPoints);
539
539
  i.originalPoints = S;
540
540
  }
541
- }, A = (t, n) => new e.Vector3(t.x, t.y, 0).distanceTo(new e.Vector3(n.x, n.y, 0)), j = (e) => {
541
+ }, A = (t, n) => new e.Vector3(t.x, t.y, 0).distanceTo(new e.Vector3(n.x, n.y, 0)), j = (t, n, r = 1e-6) => {
542
+ let i = new e.Vector3();
543
+ return t.closestPointToPoint(n, !0, i), i.distanceTo(n) < r;
544
+ }, M = (e) => {
542
545
  let t = 0, n = [];
543
546
  for (let r = 0; r < e.length; r++) for (let i = r + 1; i < e.length; i++) {
544
547
  let a = e[r].distanceTo(e[i]);
545
548
  a > t && (t = a, n = [e[r], e[i]]);
546
549
  }
547
550
  return n;
548
- }, M = (e, t, n = .03) => Math.abs(e.x - t.x) < n && Math.abs(e.y - t.y) < n && Math.abs(e.z - t.z) < n, N = (e) => {
551
+ }, N = (e, t, n = .03) => Math.abs(e.x - t.x) < n && Math.abs(e.y - t.y) < n && Math.abs(e.z - t.z) < n, P = (e) => {
549
552
  let t = [];
550
553
  e.children.forEach((e) => {
551
554
  e.type == "GridHelper" || e.type == "DirectionalLight" || e.type == "AmbientLight" || t.push(e);
552
555
  }), t.forEach((t) => {
553
- e.remove(t), P(t);
556
+ e.remove(t), F(t);
554
557
  });
555
558
  };
556
- function P(e) {
559
+ function F(e) {
557
560
  for (; e.children && e.children.length > 0;) {
558
561
  let t = e.children[0];
559
- e.remove(t), P(t);
562
+ e.remove(t), F(t);
560
563
  }
561
- e.geometry && e.geometry.dispose(), e.material && (Array.isArray(e.material) ? e.material.forEach((e) => F(e)) : F(e.material));
564
+ e.geometry && e.geometry.dispose(), e.material && (Array.isArray(e.material) ? e.material.forEach((e) => I(e)) : I(e.material));
562
565
  }
563
- function F(e) {
566
+ function I(e) {
564
567
  for (let t of Object.keys(e)) {
565
568
  let n = e[t];
566
569
  n && typeof n == "object" && typeof n.dispose == "function" && n.dispose();
@@ -569,7 +572,7 @@ function F(e) {
569
572
  }
570
573
  //#endregion
571
574
  //#region src/geometry/handleWallSegment.mjs
572
- var I = class {
575
+ var L = class {
573
576
  results;
574
577
  clusterResults;
575
578
  constructor() {
@@ -1001,12 +1004,12 @@ var I = class {
1001
1004
  return console.error("合并网格时出错:", e), null;
1002
1005
  }
1003
1006
  }
1004
- }, L = (e) => {
1007
+ }, R = (e) => {
1005
1008
  let t = {}, n = [], r = [], i = [];
1006
1009
  return e[0].width, e[0].height, e.forEach((e) => {
1007
1010
  r.push(...e.vertices), i.push(e.center), n.push(e.vertices);
1008
1011
  }), t.originalVertices = n, t.allCenterPoints = i, t;
1009
- }, R = (e) => {
1012
+ }, z = (e) => {
1010
1013
  let t = new s().copy(e.start).add(e.end).multiplyScalar(.5), n = new s().subVectors(new s(t.x, t.y, t.z + 1), t).normalize(), r = new s(e.direction.x, e.direction.y, 0);
1011
1014
  r.applyAxisAngle(n, Math.PI / 2);
1012
1015
  let i = new s().copy(t).add(r.clone().multiplyScalar(e.length)), a = new s().copy(t).sub(r.clone().multiplyScalar(e.length));
@@ -1016,7 +1019,7 @@ var I = class {
1016
1019
  center: t,
1017
1020
  direction: r
1018
1021
  };
1019
- }, z = (t, n, r = !0) => {
1022
+ }, B = (t, n, r = !0) => {
1020
1023
  let i = [];
1021
1024
  if (!t) return [];
1022
1025
  for (let o = 0; o < t.length; o++) {
@@ -1037,7 +1040,7 @@ var I = class {
1037
1040
  wireframe: !1,
1038
1041
  transparent: !0,
1039
1042
  opacity: .5
1040
- }), _ = new e.Group(), v = new I(), { horizontalSubdivisions: y, verticalSubdivisions: b } = v.initLimits4(m, h), x = v.createSubdividedWallPlane(c, b, y, g, _);
1043
+ }), _ = new e.Group(), v = new L(), { horizontalSubdivisions: y, verticalSubdivisions: b } = v.initLimits4(m, h), x = v.createSubdividedWallPlane(c, b, y, g, _);
1041
1044
  v.analyzePointDistribution(x, p, .01);
1042
1045
  let S = new e.MeshBasicMaterial({
1043
1046
  color: "black",
@@ -1046,63 +1049,63 @@ var I = class {
1046
1049
  side: e.DoubleSide
1047
1050
  }), C = v.highlightEmptySegments(x, S, _), w = [];
1048
1051
  for (let e of C.clusters) {
1049
- let t = L(e);
1052
+ let t = R(e);
1050
1053
  t && w.push(t);
1051
1054
  }
1052
- let T = R(c).direction;
1055
+ let T = z(c).direction;
1053
1056
  c.checkResults = w, c.verticalDirection = T, c.originaIndex = o, i.push(c);
1054
1057
  }
1055
1058
  return i;
1056
- }, B = async (t, n, r, i) => {
1057
- N(i);
1059
+ }, V = () => `#${Math.floor(Math.random() * 75 + 180).toString(16).padStart(2, "0")}${Math.floor(Math.random() * 75 + 180).toString(16).padStart(2, "0")}${Math.floor(Math.random() * 75 + 180).toString(16).padStart(2, "0")}`, H = async (t, n, r, i) => {
1060
+ P(i);
1058
1061
  let a = await fetch(t);
1059
1062
  if (!a) return;
1060
- let o = await a.json(), s = new e.Group(), l = new e.Group(), u = new e.Group(), d = new e.Group(), p = new e.Group(), m = new e.Group(), h = new e.Group();
1063
+ let o = await a.json(), s = new e.Group(), l = new e.Group(), u = new e.Group(), d = new e.Group(), p = new e.Group(), m = new e.Group(), h = new e.Group(), g = new e.Group();
1061
1064
  for (let t = 0; t < o.length; t++) {
1062
1065
  let n = o[t];
1063
1066
  if (!n) continue;
1064
1067
  let r = new e.Vector3(n.start.x, n.start.y, n.start.z);
1065
1068
  r.applyEuler(new e.Euler(-Math.PI / 2, 0, 0));
1066
1069
  let i = new e.Vector3(n.end.x, n.end.y, n.end.z);
1067
- i.applyEuler(new e.Euler(-Math.PI / 2, 0, 0)), h.add(f(String(t), new e.Vector3((r.x + i.x) / 2, (r.y + i.y) / 2, (r.z + i.z) / 2)));
1070
+ i.applyEuler(new e.Euler(-Math.PI / 2, 0, 0)), g.add(f(String(t), new e.Vector3((r.x + i.x) / 2, (r.y + i.y) / 2, (r.z + i.z) / 2)));
1068
1071
  }
1069
1072
  o.sort((e, t) => e.originalIndex - t.originalIndex), console.log("lins", o);
1070
- let g = await fetch(n);
1071
- if (!g) return;
1072
- let v = await g.json(), y = Array.isArray(v) ? v : Object.values(v), b = await fetch(r);
1073
- if (console.log("respcd", b), !b) return;
1074
- let x = await b.json(), S = 0;
1075
- for (let t = 0; t < x.length; t++) {
1076
- let n = x[t];
1073
+ let v = await fetch(n);
1074
+ if (!v) return;
1075
+ let y = await v.json(), b = Array.isArray(y) ? y : Object.values(y), x = await fetch(r);
1076
+ if (console.log("respcd", x), !x) return;
1077
+ let S = await x.json(), C = 0;
1078
+ for (let t = 0; t < S.length; t++) {
1079
+ let n = S[t];
1077
1080
  if (n.isFindBeam = !1, n.category == "door") {
1078
1081
  let t = new e.Vector3(n.center.x, n.center.y, n.center.z);
1079
- t.applyEuler(new e.Euler(-Math.PI / 2, 0, 0)), h.add(f(`door:${S}`, t)), S++;
1082
+ t.applyEuler(new e.Euler(-Math.PI / 2, 0, 0)), g.add(f(`door:${C}`, t)), C++;
1080
1083
  }
1081
1084
  }
1082
- i.add(h), console.time();
1083
- let { beamGroup: C } = await V(o, y, x, i);
1084
- console.timeEnd(), console.log("beamGroup", C);
1085
- let w = new e.MeshBasicMaterial({
1085
+ i.add(g), console.time();
1086
+ let { beamGroup: w } = await U(o, b, S, i);
1087
+ console.timeEnd(), console.log("beamGroup", w);
1088
+ let T = new e.MeshBasicMaterial({
1086
1089
  color: "#cffd00",
1087
1090
  transparent: !0,
1088
1091
  opacity: .4,
1089
1092
  side: e.DoubleSide
1090
- }), T = new e.MeshBasicMaterial({
1093
+ }), E = new e.MeshBasicMaterial({
1091
1094
  color: "#ff0000",
1092
1095
  transparent: !0,
1093
1096
  opacity: .4,
1094
1097
  side: e.DoubleSide
1095
- }), E = new e.MeshBasicMaterial({
1098
+ }), D = new e.MeshBasicMaterial({
1096
1099
  color: "#e100ff",
1097
1100
  transparent: !0,
1098
1101
  opacity: .4,
1099
1102
  side: e.DoubleSide
1100
- }), D = new e.MeshBasicMaterial({
1103
+ }), O = new e.MeshBasicMaterial({
1101
1104
  color: "#0400ff",
1102
1105
  transparent: !0,
1103
1106
  opacity: .4,
1104
1107
  side: e.DoubleSide
1105
- }), O = new e.LineBasicMaterial({ color: "#cffd00" }), k = [];
1108
+ }), k = new e.LineBasicMaterial({ color: "#cffd00" }), A = [];
1106
1109
  for (let t = 0; t < o.length; t++) {
1107
1110
  let n = o[t];
1108
1111
  if (n.checkResults) for (let t of n.checkResults) for (let n of t.originalVertices) {
@@ -1129,17 +1132,17 @@ var I = class {
1129
1132
  3
1130
1133
  ]), o.computeVertexNormals();
1131
1134
  let c = new e.EdgesGeometry(o, 1);
1132
- k.push(c);
1135
+ A.push(c);
1133
1136
  }
1134
1137
  }
1135
- if (k.length > 0) {
1136
- let t = c(k, !1);
1137
- t.rotateX(-Math.PI / 2), s.add(new e.LineSegments(t, O)), s.visible = !1, i.add(s), k.forEach((e) => e.dispose());
1138
+ if (A.length > 0) {
1139
+ let t = c(A, !1);
1140
+ t.rotateX(-Math.PI / 2), s.add(new e.LineSegments(t, k)), s.visible = !1, i.add(s), A.forEach((e) => e.dispose());
1138
1141
  }
1139
- let A = new e.PointsMaterial({
1142
+ new e.PointsMaterial({
1140
1143
  color: 65535,
1141
1144
  size: .01
1142
- }), j = [];
1145
+ });
1143
1146
  for (let t of o) {
1144
1147
  if (!t.originalPoints || t.originalPoints.length === 0) continue;
1145
1148
  let n = new Float32Array(t.originalPoints.length * 3);
@@ -1147,35 +1150,36 @@ var I = class {
1147
1150
  n[t * 3] = e.x, n[t * 3 + 1] = e.y, n[t * 3 + 2] = e.z;
1148
1151
  });
1149
1152
  let r = new e.BufferGeometry();
1150
- r.setAttribute("position", new e.BufferAttribute(n, 3)), j.push(r);
1153
+ r.setAttribute("position", new e.BufferAttribute(n, 3)), r.rotateX(-Math.PI / 2), l.add(new e.Points(r, new e.PointsMaterial({
1154
+ color: V(),
1155
+ size: .02
1156
+ })));
1151
1157
  let i = [];
1152
1158
  i.push(new e.Vector3(t.start.x, t.start.y, t.start.z)), i.push(new e.Vector3(t.end.x, t.end.y, t.end.z));
1153
1159
  let a = new e.BufferGeometry();
1154
- a.setFromPoints(i), a.rotateX(-Math.PI / 2), p.add(new e.Line(a, O));
1155
- }
1156
- if (j.length > 0) {
1157
- let t = c(j, !1);
1158
- t.rotateX(-Math.PI / 2), l.add(new e.Points(t, A)), i.add(l), j.forEach((e) => e.dispose());
1160
+ a.setFromPoints(i), a.rotateX(-Math.PI / 2), m.add(new e.Line(a, k));
1159
1161
  }
1160
- p.visible = !1, i.add(p);
1161
- let M = [], P = [], F = new e.LineBasicMaterial({ color: "#f30606" }), I = new e.MeshBasicMaterial({ color: "#071ac4" });
1162
- for (let t = 0; t < y.length; t++) {
1162
+ m.visible = !1, i.add(l), i.add(m);
1163
+ let j = [], M = [], N = new e.LineBasicMaterial({ color: "#f30606" }), F = new e.MeshBasicMaterial({ color: "#071ac4" });
1164
+ for (let t = 0; t < b.length; t++) {
1163
1165
  let n = new e.SphereGeometry(.05);
1164
- n.translate(y[t].x, y[t].y, y[t].z);
1165
- let r = [], i = new e.Vector3(y[t].x, y[t].y, y[t].z), a = new e.Quaternion(y[t].qx, y[t].qy, y[t].qz, y[t].qw), o = new e.Vector3(0, 0, -1).applyQuaternion(a), s = i.clone().addScaledVector(o, .001);
1166
+ n.translate(b[t].x, b[t].y, b[t].z);
1167
+ let r = [], i = new e.Vector3(b[t].x, b[t].y, b[t].z), a = new e.Quaternion(b[t].qx, b[t].qy, b[t].qz, b[t].qw), o = new e.Vector3(0, 0, -1).applyQuaternion(a), s = i.clone().addScaledVector(o, .001);
1166
1168
  r.push(i), r.push(s);
1167
1169
  let c = new e.BufferGeometry();
1168
- c.setFromPoints(r), P.push(c), M.push(n);
1170
+ c.setFromPoints(r), M.push(c), j.push(n);
1171
+ }
1172
+ if (j.length > 0) {
1173
+ let t = c(j, !1);
1174
+ t.rotateX(-Math.PI / 2), u.add(new e.Mesh(t, F)), j.forEach((e) => e.dispose());
1169
1175
  }
1170
1176
  if (M.length > 0) {
1171
1177
  let t = c(M, !1);
1172
- t.rotateX(-Math.PI / 2), u.add(new e.Mesh(t, I)), M.forEach((e) => e.dispose());
1178
+ t.rotateX(-Math.PI / 2), u.add(new e.Line(t, N)), M.forEach((e) => e.dispose());
1173
1179
  }
1174
- if (P.length > 0) {
1175
- let t = c(P, !1);
1176
- t.rotateX(-Math.PI / 2), u.add(new e.Line(t, F)), P.forEach((e) => e.dispose());
1177
- }
1178
- return i.add(u), d.add(_(x)), d.rotateX(-Math.PI / 2), i.add(d), console.log("jsonpcdData", x), o.forEach((t) => {
1180
+ i.add(u);
1181
+ let { AiProjectionGroup: I, AiProjectionGroup2: L } = _(S);
1182
+ return d.add(I), d.rotateX(-Math.PI / 2), i.add(d), p.add(L), p.visible = !1, p.rotateX(-Math.PI / 2), i.add(p), console.log("jsonpcdData", S), o.forEach((t) => {
1179
1183
  t.doorAndBeamData && t.doorAndBeamData.length > 0 && (t.doorAndBeamData.forEach((t) => {
1180
1184
  if (t.beamStart) {
1181
1185
  let n = new e.BufferGeometry(), r = new Float32Array([
@@ -1199,7 +1203,7 @@ var I = class {
1199
1203
  0,
1200
1204
  2,
1201
1205
  3
1202
- ]), n.computeVertexNormals(), n.rotateX(-Math.PI / 2), m.add(new e.Mesh(n, w));
1206
+ ]), n.computeVertexNormals(), n.rotateX(-Math.PI / 2), h.add(new e.Mesh(n, T));
1203
1207
  }
1204
1208
  let n = new e.BufferGeometry(), r = new Float32Array([
1205
1209
  t.doorStart.x,
@@ -1222,20 +1226,21 @@ var I = class {
1222
1226
  0,
1223
1227
  2,
1224
1228
  3
1225
- ]), n.computeVertexNormals(), n.rotateX(-Math.PI / 2), t.isDoor ? m.add(new e.Mesh(n, D)) : t.type == "beam" ? m.add(new e.Mesh(n, E)) : m.add(new e.Mesh(n, T));
1229
+ ]), n.computeVertexNormals(), n.rotateX(-Math.PI / 2), t.isDoor ? h.add(new e.Mesh(n, O)) : t.type == "beam" ? h.add(new e.Mesh(n, D)) : h.add(new e.Mesh(n, E));
1226
1230
  let i = `id:${t.id},Nid:${t.nearId}`, a = new e.Vector3((t.doorStart.x + t.doorEnd.x) / 2, (t.doorStart.y + t.doorEnd.y) / 2, t.doorStart.z + t.doorHeight);
1227
- a.applyEuler(new e.Euler(-Math.PI / 2, 0, 0)), m.add(f(i, a));
1228
- }), i.add(m));
1231
+ a.applyEuler(new e.Euler(-Math.PI / 2, 0, 0)), h.add(f(i, a));
1232
+ }), i.add(h));
1229
1233
  }), {
1230
1234
  checkResultGroup: s,
1231
1235
  pointCloudGroup: l,
1232
1236
  runData: u,
1233
1237
  pcdGroup: d,
1234
- pointLineGroup: p,
1235
- beamDoorGroup: m,
1236
- lineIndexGroup: h
1238
+ pcdGroup2: p,
1239
+ pointLineGroup: m,
1240
+ beamDoorGroup: h,
1241
+ lineIndexGroup: g
1237
1242
  };
1238
- }, V = async (t, n, r, i) => {
1243
+ }, U = async (t, n, r, i) => {
1239
1244
  if (k(t, i), t.length <= 0 || n.length <= 0) return t;
1240
1245
  r ||= [];
1241
1246
  for (let n of t) {
@@ -1371,80 +1376,80 @@ var I = class {
1371
1376
  if (E < s - .5 || E > s + 2) continue;
1372
1377
  let D = 0;
1373
1378
  for (let o of a.mergeCheckRegion) {
1374
- let { facePoints: s, boxArea: k, totalInPlaneNum: M } = v(o.points, o.gridWidth, o.gridHeight, o.centerPts);
1379
+ let { facePoints: s, boxArea: k, totalInPlaneNum: N } = v(o.points, o.gridWidth, o.gridHeight, o.centerPts);
1375
1380
  if (!s || s.length <= 0) continue;
1376
1381
  s[0].distanceTo(s[1]);
1377
- let N = s[0].distanceTo(s[3]), P = o.gridHeight * (N / o.gridHeight / 3 * 2) + o.gridHeight / 2, F = new e.Vector3(s[0].x, s[0].y, s[0].z + P), I = new e.Vector3(s[1].x, s[1].y, s[1].z + P), L = new e.Line3(F, I), R = [], z = new e.Vector3();
1382
+ let P = s[0].distanceTo(s[3]), F = o.gridHeight * (P / o.gridHeight / 3 * 2) + o.gridHeight / 2, I = new e.Vector3(s[0].x, s[0].y, s[0].z + F), L = new e.Vector3(s[1].x, s[1].y, s[1].z + F), R = new e.Line3(I, L), z = [], B = new e.Vector3();
1378
1383
  o.points.forEach((e) => {
1379
- L.closestPointToPoint(e, !0, z).distanceTo(e) < o.gridHeight + .01 && R.push(e);
1384
+ R.closestPointToPoint(e, !0, B).distanceTo(e) < o.gridHeight + .01 && z.push(e);
1380
1385
  });
1381
- let B = [], V = [];
1386
+ let V = [], H = [];
1382
1387
  for (;;) {
1383
1388
  let e = [];
1384
- for (let t = 0; t < R.length; t++) V.includes(t) || e.length == 0 && (e.push(R[t]), V.push(t));
1385
- for (let t = 0; t < R.length; t++) if (!V.includes(t)) {
1386
- for (let n = 0; n < e.length; n++) if (R[t].distanceTo(e[n]) < o.gridWidth + .01) {
1387
- e.push(R[t]), V.push(t), t = -1;
1389
+ for (let t = 0; t < z.length; t++) H.includes(t) || e.length == 0 && (e.push(z[t]), H.push(t));
1390
+ for (let t = 0; t < z.length; t++) if (!H.includes(t)) {
1391
+ for (let n = 0; n < e.length; n++) if (z[t].distanceTo(e[n]) < o.gridWidth + .01) {
1392
+ e.push(z[t]), H.push(t), t = -1;
1388
1393
  break;
1389
1394
  }
1390
1395
  }
1391
1396
  if (e.length == 0) break;
1392
- B.push(e);
1397
+ V.push(e);
1393
1398
  }
1394
- let H = [];
1395
- for (let t = 0; t < B.length; t++) {
1399
+ let U = [];
1400
+ for (let t = 0; t < V.length; t++) {
1396
1401
  let n = {
1397
1402
  lineSt: new e.Vector3(),
1398
1403
  lineEd: new e.Vector3(),
1399
1404
  facePoints: []
1400
- }, r = j(B[t]);
1401
- Array.isArray(r) && r.length == 2 && (n.lineSt = r[0], n.lineEd = r[1], n.facePoints.push(new e.Vector3(r[0].x, r[0].y, s[0].z)), n.facePoints.push(new e.Vector3(r[1].x, r[1].y, s[0].z)), n.facePoints.push(new e.Vector3(r[1].x, r[1].y, s[2].z)), n.facePoints.push(new e.Vector3(r[0].x, r[0].y, s[2].z)), H.push(n));
1405
+ }, r = M(V[t]);
1406
+ Array.isArray(r) && r.length == 2 && (n.lineSt = r[0], n.lineEd = r[1], n.facePoints.push(new e.Vector3(r[0].x, r[0].y, s[0].z)), n.facePoints.push(new e.Vector3(r[1].x, r[1].y, s[0].z)), n.facePoints.push(new e.Vector3(r[1].x, r[1].y, s[2].z)), n.facePoints.push(new e.Vector3(r[0].x, r[0].y, s[2].z)), U.push(n));
1402
1407
  }
1403
1408
  D += o.area;
1404
- let U = 0;
1405
- if (M != 0 && (U = o.gridHeight * o.gridWidth * M), (o.area - U) / k * 100 > 70 && H.length == 1 || H.length > 1) for (let s = 0; s < H.length; s++) {
1406
- let v = H[s], D = v.facePoints[0].distanceTo(v.facePoints[1]), k = v.facePoints[0].distanceTo(v.facePoints[3]), M = D / a.length * 100, N = a.rooftopPz - v.facePoints[2].z;
1407
- if (k < 1.5 || _ < v.facePoints[2].z || N > E / 3 * 2) continue;
1408
- let P = !1, F = !1, I = !1, L = [], R = v.facePoints[2].clone(), z = v.facePoints[3].clone(), B = v.facePoints[0].clone(), V = v.facePoints[1].clone(), U = !1, W = -1;
1409
+ let W = 0;
1410
+ if (N != 0 && (W = o.gridHeight * o.gridWidth * N), (o.area - W) / k * 100 > 70 && U.length == 1 || U.length > 1) for (let s = 0; s < U.length; s++) {
1411
+ let v = U[s], D = v.facePoints[0].distanceTo(v.facePoints[1]), k = v.facePoints[0].distanceTo(v.facePoints[3]), N = D / a.length * 100, P = a.rooftopPz - v.facePoints[2].z;
1412
+ if (k < 1.5 || _ < v.facePoints[2].z || P > E / 3 * 2) continue;
1413
+ let F = !1, I = !1, L = !1, R = [], z = v.facePoints[2].clone(), B = v.facePoints[3].clone(), V = v.facePoints[0].clone(), H = v.facePoints[1].clone(), W = !1, G = -1;
1409
1414
  if (Math.abs(v.facePoints[0].z - a.start.z) < .25) {
1410
- if (D > .25 && a.length > .5) {
1411
- let n = A(w, B), r = A(w, V), o = A(T, B), s = A(T, V), c = .1;
1415
+ if (D > .17 && a.length > .5) {
1416
+ let n = A(w, V), r = A(w, H), o = A(T, V), s = A(T, H), c = .1;
1412
1417
  if (n < c || r < c) {
1413
- let { newOriginalPoints: r } = O(B, V, a.originalPoints), o = [], s = [];
1418
+ let { newOriginalPoints: r } = O(V, H, a.originalPoints), o = [], s = [];
1414
1419
  if (r.forEach((e) => {
1415
- e.z >= R.z ? o.push(e) : e.z <= B.z && s.push(e);
1420
+ e.z >= z.z ? o.push(e) : e.z <= V.z && s.push(e);
1416
1421
  }), o.length > 10) {
1417
- let r = new e.Vector3(a.start.x, a.start.y, 0), o = new e.Vector3(a.end.x, a.end.y, 0), s = new e.Vector3().subVectors(r, o).normalize(), l = new e.Vector3(), u = Infinity, f = -1;
1422
+ let r = new e.Vector3(a.start.x, a.start.y, 0), o = new e.Vector3(a.end.x, a.end.y, 0), s = new e.Vector3().subVectors(r, o).normalize(), l = new e.Vector3(), u = Infinity, f = -1, p = !1;
1418
1423
  for (let n = 0; n < t.length; n++) {
1419
1424
  if (n == i) continue;
1420
- let a = new e.Vector3(t[n].start.x, t[n].start.y, 0), c = new e.Vector3(t[n].end.x, t[n].end.y, 0), p = d(r, o, a, c), m = b(r, o, a, c);
1421
- if (p != null) {
1422
- if (m && m.angle > 85) {
1423
- let e = p.point.distanceTo(r);
1424
- if (p.point.distanceTo(o), e < .1) {
1425
+ let a = new e.Vector3(t[n].start.x, t[n].start.y, 0), c = new e.Vector3(t[n].end.x, t[n].end.y, 0), m = d(r, o, a, c), h = b(r, o, a, c);
1426
+ if (m != null) {
1427
+ if (h && h.angle > 85) {
1428
+ let e = m.point.distanceTo(r);
1429
+ if (m.point.distanceTo(o), e < .1) {
1425
1430
  u = Infinity, f = -1;
1426
1431
  break;
1427
1432
  }
1428
1433
  }
1429
1434
  continue;
1430
1435
  }
1431
- if (m && m.angle > 85) {
1436
+ if (h && h.angle > 85) {
1432
1437
  let t = y(r, o, new e.Line3(a, c).closestPointToPoint(r, !0, l), r);
1433
1438
  if (!t || t.direction != "same") continue;
1434
1439
  let i = r.clone().addScaledVector(s, 10), p = o.clone().addScaledVector(s.clone().negate(), 10), m = new e.Vector3().subVectors(c, a).normalize(), h = d(i, p, a.clone().addScaledVector(m.clone().negate(), .03), c.clone().addScaledVector(m, .03));
1435
1440
  if (h == null) continue;
1436
1441
  let g = r.distanceTo(h.point);
1437
1442
  g < u && (u = g, f = n);
1438
- } else if (m && m.angle < 5) {
1443
+ } else if (h && h.angle < 5) {
1439
1444
  let e = A(r, a), t = A(r, c), n = A(o, a), i = A(o, c);
1440
1445
  if (e < .08 || t < .08 || n < .08 || i < .08) {
1441
- u = Infinity, f = -1;
1446
+ p = !0, u = Infinity, f = -1;
1442
1447
  break;
1443
1448
  }
1444
1449
  }
1445
1450
  }
1446
- if (u != Infinity && u < 2) t[f].length > .3 && D + u > .5 && (U = !0, n < c ? (z = z.addScaledVector(s, u), B = B.addScaledVector(s, u)) : (R = R.addScaledVector(s, u), V = V.addScaledVector(s, u)));
1447
- else {
1451
+ if (u != Infinity && u < 2) t[f].length > .3 && D + u > .5 && (W = !0, n < c ? (B = B.addScaledVector(s, u), V = V.addScaledVector(s, u)) : (z = z.addScaledVector(s, u), H = H.addScaledVector(s, u)));
1452
+ else if (!p) {
1448
1453
  let r = .05, a = w.clone().addScaledVector(s, r), o = w.clone().addScaledVector(s.clone().negate(), r);
1449
1454
  a.z = o.z = 0;
1450
1455
  let l = !1;
@@ -1460,44 +1465,44 @@ var I = class {
1460
1465
  u > e && (u = e), l = !0;
1461
1466
  }
1462
1467
  if (l) break;
1463
- u != Infinity && u < 2 && (n < c ? (z = z.addScaledVector(s.clone().negate(), u), B = B.addScaledVector(s.clone().negate(), u)) : (R = R.addScaledVector(s.clone().negate(), u), V = V.addScaledVector(s.clone().negate(), u)));
1468
+ u != Infinity && u < 2 && (n < c ? (B = B.addScaledVector(s.clone().negate(), u), V = V.addScaledVector(s.clone().negate(), u)) : (z = z.addScaledVector(s.clone().negate(), u), H = H.addScaledVector(s.clone().negate(), u)));
1464
1469
  }
1465
1470
  if (!l) continue;
1466
1471
  }
1467
1472
  } else continue;
1468
1473
  } else if (o < c || s < c) {
1469
- let { newOriginalPoints: n } = O(B, V, a.originalPoints), r = [], s = [];
1474
+ let { newOriginalPoints: n } = O(V, H, a.originalPoints), r = [], s = [];
1470
1475
  if (n.forEach((e) => {
1471
- e.z >= R.z ? r.push(e) : e.z <= B.z && s.push(e);
1476
+ e.z >= z.z ? r.push(e) : e.z <= V.z && s.push(e);
1472
1477
  }), r.length > 10) {
1473
- let n = new e.Vector3(a.start.x, a.start.y, 0), r = new e.Vector3(a.end.x, a.end.y, 0), s = new e.Vector3().subVectors(r, n).normalize(), l = new e.Vector3(), u = Infinity, f = -1;
1478
+ let n = new e.Vector3(a.start.x, a.start.y, 0), r = new e.Vector3(a.end.x, a.end.y, 0), s = new e.Vector3().subVectors(r, n).normalize(), l = new e.Vector3(), u = Infinity, f = -1, p = !1;
1474
1479
  for (let a = 0; a < t.length; a++) {
1475
1480
  if (a == i) continue;
1476
- let o = new e.Vector3(t[a].start.x, t[a].start.y, 0), c = new e.Vector3(t[a].end.x, t[a].end.y, 0), p = d(n, r, o, c), m = b(n, r, o, c);
1477
- if (p != null) {
1478
- if (m && m.angle > 85 && (p.point.distanceTo(n), p.point.distanceTo(r) < .1)) {
1481
+ let o = new e.Vector3(t[a].start.x, t[a].start.y, 0), c = new e.Vector3(t[a].end.x, t[a].end.y, 0), m = d(n, r, o, c), h = b(n, r, o, c);
1482
+ if (m != null) {
1483
+ if (h && h.angle > 85 && (m.point.distanceTo(n), m.point.distanceTo(r) < .1)) {
1479
1484
  u = Infinity, f = -1;
1480
1485
  break;
1481
1486
  }
1482
1487
  continue;
1483
1488
  }
1484
- if (m && m.angle > 85) {
1489
+ if (h && h.angle > 85) {
1485
1490
  let t = y(r, n, new e.Line3(o, c).closestPointToPoint(r, !0, l), r);
1486
1491
  if (!t || t.direction != "same") continue;
1487
1492
  let i = n.clone().addScaledVector(s.clone().negate(), 10), p = r.clone().addScaledVector(s, 10), m = new e.Vector3().subVectors(c, o).normalize(), h = d(i, p, o.clone().addScaledVector(m.clone().negate(), .03), c.clone().addScaledVector(m, .03));
1488
1493
  if (h == null) continue;
1489
1494
  let g = r.distanceTo(h.point);
1490
1495
  g < u && (u = g, f = a);
1491
- } else if (m && m.angle < 5) {
1496
+ } else if (h && h.angle < 5) {
1492
1497
  let e = A(n, o), t = A(n, c), i = A(r, o), a = A(r, c);
1493
1498
  if (e < .08 || t < .08 || i < .08 || a < .08) {
1494
- u = Infinity, f = -1;
1499
+ p = !0, u = Infinity, f = -1;
1495
1500
  break;
1496
1501
  }
1497
1502
  }
1498
1503
  }
1499
- if (u != Infinity && u < 2) t[f].length > .3 && D + u > .5 && (U = !0, o < c ? (z = z.addScaledVector(s, u), B = B.addScaledVector(s, u)) : (R = R.addScaledVector(s, u), V = V.addScaledVector(s, u)));
1500
- else {
1504
+ if (u != Infinity && u < 2) t[f].length > .3 && D + u > .5 && (W = !0, o < c ? (B = B.addScaledVector(s, u), V = V.addScaledVector(s, u)) : (z = z.addScaledVector(s, u), H = H.addScaledVector(s, u)));
1505
+ else if (!p) {
1501
1506
  let n = .05, r = T.clone().addScaledVector(s, n), a = w.clone();
1502
1507
  r.z = a.z = 0;
1503
1508
  let l = !1;
@@ -1514,13 +1519,13 @@ var I = class {
1514
1519
  }
1515
1520
  }
1516
1521
  if (!l) continue;
1517
- u != Infinity && u < 2 && (o < c ? (z = z.addScaledVector(s.clone().negate(), u), B = B.addScaledVector(s.clone().negate(), u)) : (R = R.addScaledVector(s.clone().negate(), u), V = V.addScaledVector(s.clone().negate(), u)));
1522
+ u != Infinity && u < 2 && (o < c ? (B = B.addScaledVector(s.clone().negate(), u), V = V.addScaledVector(s.clone().negate(), u)) : (z = z.addScaledVector(s.clone().negate(), u), H = H.addScaledVector(s.clone().negate(), u)));
1518
1523
  }
1519
1524
  } else continue;
1520
1525
  }
1521
- D = z.distanceTo(R);
1526
+ D = B.distanceTo(z);
1522
1527
  }
1523
- if (M < 85 && D > .4 || D > .7 && k > E - E / 3) {
1528
+ if (N < 85 && D > .4 || D > .7 && k > E - E / 3) {
1524
1529
  let t = !1;
1525
1530
  for (let r = 0; r < n.length; r++) {
1526
1531
  let i = r + 1;
@@ -1543,122 +1548,127 @@ var I = class {
1543
1548
  let e = o.distanceTo(i), t = s.distanceTo(i);
1544
1549
  if (e > .2 && t > .2) continue;
1545
1550
  }
1546
- F = !0, I = !0, L.push(c[t].index), c[t].isFind = !0, W = t, r[c[t].index].isFindBeam = !0;
1551
+ I = !0, L = !0, R.push(c[t].index), c[t].isFind = !0, G = t, r[c[t].index].isFindBeam = !0;
1547
1552
  let d = new e.Vector3().subVectors(o, s).normalize(), f = n.distanceTo(i) - l.overlap;
1548
- u < a && d.negate(), a > u ? (R = v.facePoints[2].clone().addScaledVector(d, f), z = v.facePoints[3].clone(), B = z.clone(), V = R.clone(), B.z = V.z = v.facePoints[0].z) : (R = v.facePoints[2].clone(), z = v.facePoints[3].clone().addScaledVector(d, f), B = z.clone(), V = R.clone(), B.z = V.z = v.facePoints[0].z);
1553
+ u < a && d.negate(), a > u ? (z = v.facePoints[2].clone().addScaledVector(d, f), B = v.facePoints[3].clone(), V = B.clone(), H = z.clone(), V.z = H.z = v.facePoints[0].z) : (z = v.facePoints[2].clone(), B = v.facePoints[3].clone().addScaledVector(d, f), V = B.clone(), H = z.clone(), V.z = H.z = v.facePoints[0].z);
1549
1554
  }
1550
1555
  } else if (l && l.type == "collinear_overlap" && l.maxPerpendicularDistance < .35) {
1551
1556
  let a = o.distanceTo(s), u = i.distanceTo(n);
1552
1557
  if (Math.abs(a - l.overlap) < .25 || Math.abs(u - l.overlap) < .25) {
1553
1558
  if (u > a && Math.abs(u - l.overlap) > 1) {
1554
1559
  let t = o.distanceTo(n), r = o.distanceTo(i), a = s.distanceTo(n), c = s.distanceTo(i), d = t < r ? t : r, f = a < c ? a : c, p = new e.Vector3().subVectors(o, s).normalize(), m = u - l.overlap;
1555
- d < f ? (p.negate(), R = v.facePoints[2].clone().addScaledVector(p, m), z = v.facePoints[3].clone(), B = z.clone(), V = R.clone(), B.z = V.z = v.facePoints[0].z) : (R = v.facePoints[2].clone(), z = v.facePoints[3].clone().addScaledVector(p, m), B = z.clone(), V = R.clone(), B.z = V.z = v.facePoints[0].z);
1560
+ d < f ? (p.negate(), z = v.facePoints[2].clone().addScaledVector(p, m), B = v.facePoints[3].clone(), V = B.clone(), H = z.clone(), V.z = H.z = v.facePoints[0].z) : (z = v.facePoints[2].clone(), B = v.facePoints[3].clone().addScaledVector(p, m), V = B.clone(), H = z.clone(), V.z = H.z = v.facePoints[0].z);
1556
1561
  }
1557
- F = !0, I = !0, L.push(c[t].index), c[t].isFind = !0, r[c[t].index].isFindBeam = !0, W = t;
1562
+ I = !0, L = !0, R.push(c[t].index), c[t].isFind = !0, r[c[t].index].isFindBeam = !0, G = t;
1558
1563
  }
1559
1564
  }
1560
1565
  }
1561
1566
  }
1562
- if (!I) for (let t = 0; t < c.length; t++) {
1567
+ if (!L) for (let t = 0; t < c.length; t++) {
1563
1568
  if (c[t].inWall) continue;
1564
1569
  let n = new e.Vector3(c[t].doorStartPt.x, c[t].doorStartPt.y, 0), i = new e.Vector3(c[t].doorEndPt.x, c[t].doorEndPt.y, 0), a = new e.Vector3(v.facePoints[0].x, v.facePoints[0].y, 0), o = new e.Vector3(v.facePoints[1].x, v.facePoints[1].y, 0), s = new e.Vector3().subVectors(n, i).normalize(), l = new e.Vector3().subVectors(a, o).normalize(), u = .2, f = d(n.clone().addScaledVector(s, u), i.clone().addScaledVector(s.clone().negate(), u), a.clone().addScaledVector(l, u), o.clone().addScaledVector(l.clone().negate(), u)), p = v.facePoints[2].z < c[t].maxZ || Math.abs(v.facePoints[2].z - c[t].maxZ) < .3, m = n.distanceTo(a), h = n.distanceTo(o), _ = i.distanceTo(a), y = i.distanceTo(o);
1565
- (m < g || h < g || _ < g || y < g || f) && p && (r[c[t].index].isFindBeam = !0, F = !0, c[t].isFind = !0, W = t);
1570
+ (m < g || h < g || _ < g || y < g || f) && p && (r[c[t].index].isFindBeam = !0, I = !0, c[t].isFind = !0, G = t);
1566
1571
  }
1567
- (F || t || Math.abs(k - E) > .1 && k > E / 2 && D > .4 && Math.abs(C - a.start.z) < .4) && (P = !0);
1572
+ (I || t || Math.abs(k - E) > .1 && k > E / 2 && D > .4 && Math.abs(C - a.start.z) < .4) && (F = !0);
1568
1573
  }
1569
1574
  }
1570
- if (P) {
1575
+ if (F) {
1571
1576
  let n = !1;
1572
1577
  for (let e = 0; e < p.length; e++) {
1573
- let t = S(p[e].start, p[e].end, B, V);
1578
+ let t = S(p[e].start, p[e].end, V, H);
1574
1579
  if (t && t.type == "collinear_overlap" && t.maxPerpendicularDistance < .01) {
1575
1580
  n = !0;
1576
1581
  break;
1577
1582
  }
1578
1583
  }
1579
1584
  if (n) {
1580
- W != -1 && (r[c[W].index].isFindBeam = !1, c[W].isFind = !1);
1585
+ G != -1 && (r[c[G].index].isFindBeam = !1, c[G].isFind = !1);
1581
1586
  continue;
1582
1587
  }
1583
1588
  p.push({
1584
- start: B,
1585
- end: V
1589
+ start: V,
1590
+ end: H
1586
1591
  });
1587
1592
  {
1588
- let t = new e.Vector3().subVectors(B, V), n = new e.Vector3().subVectors(V, B), r = Infinity, i = Infinity, o = B.clone(), s = V.clone(), c = [];
1593
+ let t = new e.Vector3().subVectors(V, H), n = new e.Vector3().subVectors(H, V), r = Infinity, i = Infinity, o = V.clone(), s = H.clone(), c = [];
1589
1594
  if (a.originalPoints.forEach((e) => {
1590
- e.z - B.z < k / 2 + .1 && e.z - B.z > k / 2 - .1 && c.push(e);
1595
+ e.z - V.z < k / 2 + .1 && e.z - V.z > k / 2 - .1 && c.push(e);
1591
1596
  }), c.length > 0) {
1592
- let { newProjectPoints: a } = O(B, V, c);
1593
- for (let e of a) e.z = B.z;
1597
+ let { newProjectPoints: a } = O(V, H, c);
1598
+ for (let e of a) e.z = V.z;
1594
1599
  a.forEach((a) => {
1595
- let c = new e.Vector3(a.x, a.y, B.z), l = new e.Vector3().subVectors(c, V), u = m(t, new e.Vector3().subVectors(c, B)), d = m(n, l);
1600
+ let c = new e.Vector3(a.x, a.y, V.z), l = new e.Vector3().subVectors(c, H), u = m(t, new e.Vector3().subVectors(c, V)), d = m(n, l);
1596
1601
  if (u && u.parallel && u.sameDirection) {
1597
- let e = c.distanceTo(B);
1602
+ let e = c.distanceTo(V);
1598
1603
  e < r && (r = e, o = c);
1599
1604
  } else if (d && d.parallel && d.sameDirection) {
1600
- let e = c.distanceTo(V);
1605
+ let e = c.distanceTo(H);
1601
1606
  e < i && (i = e, s = c);
1602
1607
  }
1603
1608
  });
1604
1609
  }
1605
- o.equals(B) || (B = o, z = new e.Vector3(B.x, B.y, z.z)), s.equals(V) || (V = s, R = new e.Vector3(V.x, V.y, R.z));
1610
+ o.equals(V) || (V = o, B = new e.Vector3(V.x, V.y, B.z)), s.equals(H) || (H = s, z = new e.Vector3(H.x, H.y, z.z));
1606
1611
  }
1607
1612
  f.includes(i) || f.push(i), a.checkResults[o.index].isDoor = !0;
1608
1613
  let s = "", g = {
1609
1614
  id: l,
1610
- beamStart: R,
1611
- beamEnd: z,
1615
+ beamStart: z,
1616
+ beamEnd: B,
1612
1617
  beamHeight: a.rooftopPz - v.facePoints[2].z,
1613
- doorStart: B,
1614
- doorEnd: V,
1618
+ doorStart: V,
1619
+ doorEnd: H,
1615
1620
  doorHeight: k,
1616
1621
  nearId: -1,
1617
1622
  type: s,
1618
- isExtend: U,
1619
- isDoor: F,
1620
- isPullOutDoor: I,
1621
- pcbDoorIndexs: L
1623
+ isExtend: W,
1624
+ isDoor: I,
1625
+ isPullOutDoor: L,
1626
+ pcbDoorIndexs: R
1622
1627
  }, _ = !1, b = new e.Vector3(), C = new e.Vector3(), w = -1;
1623
1628
  for (let n = 0; n < u.length; n++) {
1624
1629
  let r = t[u[n].linesIndex].doorAndBeamData[u[n].doorIndex];
1625
1630
  if (r.nearId != -1) continue;
1626
- let i = y(R.clone(), z.clone(), r.beamStart.clone(), r.beamEnd.clone());
1631
+ let i = y(z.clone(), B.clone(), r.beamStart.clone(), r.beamEnd.clone());
1627
1632
  if (i && i.isParallel) {
1628
- let t = R.distanceTo(z), n = r.beamStart.distanceTo(r.beamEnd), i = new e.Line3(R.clone(), z.clone());
1633
+ let t = z.distanceTo(B), n = r.beamStart.distanceTo(r.beamEnd), i = new e.Line3(z.clone(), B.clone());
1629
1634
  i.start.z = 0, i.end.z = 0;
1630
1635
  let a = x(r.beamStart, r.beamEnd, !0);
1631
- n > t && (i.start = new e.Vector3(r.beamStart.x, r.beamStart.y, 0), i.end = new e.Vector3(r.beamEnd.x, r.beamEnd.y, 0), a = x(R, z, !0));
1632
- let o = new e.Vector3(), s = i.closestPointToPoint(a, !0, o), c = s.distanceTo(a), u = new e.Vector3().subVectors(a, s).normalize(), f = u.clone().negate(), p = a.clone().addScaledVector(f, c + .1), m = d(i.start, i.end, a, p), h = !F && !r.isDoor && (t > n * 2 || n > t * 2);
1636
+ n > t && (i.start = new e.Vector3(r.beamStart.x, r.beamStart.y, 0), i.end = new e.Vector3(r.beamEnd.x, r.beamEnd.y, 0), a = x(z, B, !0));
1637
+ let o = new e.Vector3(), s = i.closestPointToPoint(a, !0, o), c = s.distanceTo(a), u = new e.Vector3().subVectors(a, s).normalize(), f = u.clone().negate(), p = a.clone().addScaledVector(f, c + .1), m = d(i.start, i.end, a, p), h = !I && !r.isDoor && (t > n * 2 || n > t * 2);
1633
1638
  if (c < .4 && m != null && !h) {
1634
1639
  r.nearId = l, g.nearId = r.id;
1635
1640
  let e = .8;
1636
1641
  (r.isDoor || g.isDoor) && (r.isDoor = !0, g.isDoor = !0);
1637
- let i = L.some((e) => r.pcbDoorIndexs.includes(e));
1638
- t < n ? t > e && !r.isPullOutDoor ? (r.beamStart = R.clone().addScaledVector(f, c), r.beamEnd = z.clone().addScaledVector(f, c), r.doorStart = B.clone().addScaledVector(f, c), r.doorEnd = V.clone().addScaledVector(f, c), r.doorHeight = g.doorHeight, r.beamStart.z = r.beamEnd.z = r.doorStart.z + r.doorHeight) : !I || I && r.isPullOutDoor && i ? (g.beamStart = r.beamStart.clone().addScaledVector(u, c), g.beamEnd = r.beamEnd.clone().addScaledVector(u, c), g.doorStart = r.doorStart.clone().addScaledVector(u, c), g.doorEnd = r.doorEnd.clone().addScaledVector(u, c), g.doorHeight = r.doorHeight, g.beamStart.z = g.beamEnd.z = g.doorStart.z + g.doorHeight) : (r.beamStart = R.clone().addScaledVector(f, c), r.beamEnd = z.clone().addScaledVector(f, c), r.doorStart = B.clone().addScaledVector(f, c), r.doorEnd = V.clone().addScaledVector(f, c), r.doorHeight = g.doorHeight, r.beamStart.z = r.beamEnd.z = r.doorStart.z + r.doorHeight) : t > n && (n > e && !I ? (g.beamStart = r.beamStart.clone().addScaledVector(f, c), g.beamEnd = r.beamEnd.clone().addScaledVector(f, c), g.doorStart = r.doorStart.clone().addScaledVector(f, c), g.doorEnd = r.doorEnd.clone().addScaledVector(f, c), g.doorHeight = r.doorHeight, g.beamStart.z = g.beamEnd.z = g.doorStart.z + g.doorHeight) : !r.isPullOutDoor || I && r.isPullOutDoor && i ? (r.beamStart = R.clone().addScaledVector(u, c), r.beamEnd = z.clone().addScaledVector(u, c), r.doorStart = B.clone().addScaledVector(u, c), r.doorEnd = V.clone().addScaledVector(u, c), r.doorHeight = g.doorHeight, r.beamStart.z = r.beamEnd.z = r.doorStart.z + r.doorHeight) : (g.beamStart = r.beamStart.clone().addScaledVector(f, c), g.beamEnd = r.beamEnd.clone().addScaledVector(f, c), g.doorStart = r.doorStart.clone().addScaledVector(f, c), g.doorEnd = r.doorEnd.clone().addScaledVector(f, c), g.doorHeight = r.doorHeight, g.beamStart.z = g.beamEnd.z = g.doorStart.z + g.doorHeight)), w = g.nearId, b = r.beamStart.clone(), C = r.beamEnd.clone(), _ = !0;
1642
+ let i = R.some((e) => r.pcbDoorIndexs.includes(e));
1643
+ t < n ? t > e && !r.isPullOutDoor ? (r.beamStart = z.clone().addScaledVector(f, c), r.beamEnd = B.clone().addScaledVector(f, c), r.doorStart = V.clone().addScaledVector(f, c), r.doorEnd = H.clone().addScaledVector(f, c), r.doorHeight = g.doorHeight, r.beamStart.z = r.beamEnd.z = r.doorStart.z + r.doorHeight) : !L || L && r.isPullOutDoor && i ? (g.beamStart = r.beamStart.clone().addScaledVector(u, c), g.beamEnd = r.beamEnd.clone().addScaledVector(u, c), g.doorStart = r.doorStart.clone().addScaledVector(u, c), g.doorEnd = r.doorEnd.clone().addScaledVector(u, c), g.doorHeight = r.doorHeight, g.beamStart.z = g.beamEnd.z = g.doorStart.z + g.doorHeight) : (r.beamStart = z.clone().addScaledVector(f, c), r.beamEnd = B.clone().addScaledVector(f, c), r.doorStart = V.clone().addScaledVector(f, c), r.doorEnd = H.clone().addScaledVector(f, c), r.doorHeight = g.doorHeight, r.beamStart.z = r.beamEnd.z = r.doorStart.z + r.doorHeight) : t > n && (n > e && !L ? (g.beamStart = r.beamStart.clone().addScaledVector(f, c), g.beamEnd = r.beamEnd.clone().addScaledVector(f, c), g.doorStart = r.doorStart.clone().addScaledVector(f, c), g.doorEnd = r.doorEnd.clone().addScaledVector(f, c), g.doorHeight = r.doorHeight, g.beamStart.z = g.beamEnd.z = g.doorStart.z + g.doorHeight) : !r.isPullOutDoor || L && r.isPullOutDoor && i ? (r.beamStart = z.clone().addScaledVector(u, c), r.beamEnd = B.clone().addScaledVector(u, c), r.doorStart = V.clone().addScaledVector(u, c), r.doorEnd = H.clone().addScaledVector(u, c), r.doorHeight = g.doorHeight, r.beamStart.z = r.beamEnd.z = r.doorStart.z + r.doorHeight) : (g.beamStart = r.beamStart.clone().addScaledVector(f, c), g.beamEnd = r.beamEnd.clone().addScaledVector(f, c), g.doorStart = r.doorStart.clone().addScaledVector(f, c), g.doorEnd = r.doorEnd.clone().addScaledVector(f, c), g.doorHeight = r.doorHeight, g.beamStart.z = g.beamEnd.z = g.doorStart.z + g.doorHeight)), w = g.nearId, b = r.beamStart.clone(), C = r.beamEnd.clone(), _ = !0;
1639
1644
  break;
1640
1645
  }
1641
1646
  }
1642
1647
  }
1643
1648
  let T = !1;
1644
1649
  if (!_) {
1645
- let a = new e.Line3(B.clone(), V.clone());
1650
+ let a = new e.Line3(V.clone(), H.clone());
1646
1651
  for (let o = 0; o < t.length; o++) {
1647
1652
  if (t[o].length < .5 || o == i) continue;
1648
- let s = S(new e.Vector3(t[o].start.x, t[o].start.y, t[o].start.z), new e.Vector3(t[o].end.x, t[o].end.y, t[o].end.z), B, V);
1653
+ let s = S(new e.Vector3(t[o].start.x, t[o].start.y, t[o].start.z), new e.Vector3(t[o].end.x, t[o].end.y, t[o].end.z), V, H);
1649
1654
  if (s && s.maxPerpendicularDistance < .3) {
1650
1655
  for (let i = 0; i < t[o].checkResults.length; i++) {
1651
1656
  let i = [];
1652
1657
  t[o].originalPoints.forEach((t) => {
1653
- t.z > B.z && t.z < B.z + k / 2 && i.push(new e.Vector3(t.x, t.y, B.z));
1658
+ t.z > V.z && t.z < V.z + k / 2 && i.push(new e.Vector3(t.x, t.y, V.z));
1654
1659
  });
1655
- let s = new e.Vector3(), l = [];
1656
- for (let e = 0; e < i.length; e++) a.closestPointToPoint(i[e], !0, s).distanceTo(i[e]) < .15 && l.push(i[e]);
1657
- let u = j(l);
1658
- if (u.length == 2) {
1659
- let e = u[0].distanceTo(u[1]);
1660
+ let s = new e.Vector3(), l = [], u = [];
1661
+ for (let e = 0; e < i.length; e++) {
1662
+ let t = a.closestPointToPoint(i[e], !0, s);
1663
+ t.distanceTo(i[e]) < .15 && (l.push(i[e]), u.push(t.clone()));
1664
+ }
1665
+ for (let e = 0; e < u.length; e++) j(a, u[e]) && l.push(u[e]);
1666
+ if (l = u, l.length < 500) continue;
1667
+ let d = M(l);
1668
+ if (d.length == 2) {
1669
+ let e = d[0].distanceTo(d[1]);
1660
1670
  if (Math.abs(e - a.distance()) < .3) {
1661
- n = !0, W != -1 && (r[c[W].index].isFindBeam = !1, c[W].isFind = !1);
1671
+ n = !0, G != -1 && (r[c[G].index].isFindBeam = !1, c[G].isFind = !1);
1662
1672
  break;
1663
1673
  }
1664
1674
  }
@@ -1675,16 +1685,16 @@ var I = class {
1675
1685
  beamEnd: C
1676
1686
  }), E = !0) : h[e][0].id == w && (h[e].push({
1677
1687
  id: l,
1678
- beamStart: R,
1679
- beamEnd: z
1688
+ beamStart: z,
1689
+ beamEnd: B
1680
1690
  }), E = !0), E)); e++);
1681
1691
  E || h.push([{
1682
1692
  id: l,
1683
- beamStart: R,
1684
- beamEnd: z
1693
+ beamStart: z,
1694
+ beamEnd: B
1685
1695
  }]);
1686
1696
  let A = g.doorStart.distanceTo(g.doorEnd);
1687
- if (console.log("id:", l, i, A), s = F ? "door" : A > 1.8 || T && A > 1 ? "beam" : "hole", g.type = s, g.nearId != -1 && s == "hole") {
1697
+ if (s = I ? "door" : A > 1.8 || T && A > 1 ? "beam" : "hole", g.type = s, g.nearId != -1 && s == "hole") {
1688
1698
  let e = !1;
1689
1699
  for (let n = 0; n < t.length; n++) if (t[n].doorAndBeamData) {
1690
1700
  for (let r = 0; r < t[n].doorAndBeamData.length; r++) if (t[n].doorAndBeamData[r].nearId == l && t[n].doorAndBeamData[r].type == "beam") {
@@ -1697,7 +1707,7 @@ var I = class {
1697
1707
  if (a.doorAndBeamData.push(g), u.push({
1698
1708
  linesIndex: i,
1699
1709
  doorIndex: a.doorAndBeamData.length - 1
1700
- }), l++, I && D < 2) break;
1710
+ }), l++, L && D < 2) break;
1701
1711
  }
1702
1712
  }
1703
1713
  }
@@ -1821,7 +1831,7 @@ var I = class {
1821
1831
  lines: t,
1822
1832
  beamGroup: h
1823
1833
  };
1824
- }, H = (t, n) => {
1834
+ }, W = (t, n) => {
1825
1835
  if (t.length <= 0) return t;
1826
1836
  for (let n of t) {
1827
1837
  let t = [];
@@ -1912,7 +1922,7 @@ var I = class {
1912
1922
  }
1913
1923
  }
1914
1924
  return t;
1915
- }, U = (t, n) => {
1925
+ }, G = (t, n) => {
1916
1926
  let r = {
1917
1927
  rectangles: [],
1918
1928
  threeEdgeRect: []
@@ -1927,7 +1937,7 @@ var I = class {
1927
1937
  if (r == n || i < a || i > o) continue;
1928
1938
  let _ = new e.Vector3(t[r].start.x, t[r].start.y, t[r].start.z), v = new e.Vector3(t[r].end.x, t[r].end.y, t[r].end.z), y = b(u, d, _, v);
1929
1939
  if (!y || y.angle < 85) continue;
1930
- let x = M(_, u), S = M(_, d), C = M(v, u), w = M(v, d);
1940
+ let x = N(_, u), S = N(_, d), C = N(v, u), w = N(v, d);
1931
1941
  if (!(!x && !S && !C && !w)) {
1932
1942
  x || S ? (p = _.clone(), h = v.clone()) : (p = v.clone(), h = _.clone()), g = new e.Vector3().subVectors(h, p).normalize(), g.clone().negate();
1933
1943
  for (let p = 0; p < t.length; p++) {
@@ -1935,7 +1945,7 @@ var I = class {
1935
1945
  if (p == n || p == r || g < a || g > o) continue;
1936
1946
  let y = new e.Vector3(t[p].start.x, t[p].start.y, t[p].start.z), x = new e.Vector3(t[p].end.x, t[p].end.y, t[p].end.z), S = b(_, v, y, x);
1937
1947
  if (!S || S.angle < 85) continue;
1938
- let C = M(y, h), w = M(x, h);
1948
+ let C = N(y, h), w = N(x, h);
1939
1949
  if (!C && !w) continue;
1940
1950
  new e.Vector3();
1941
1951
  let T = new e.Vector3(), E = new e.Vector3();
@@ -1947,12 +1957,12 @@ var I = class {
1947
1957
  if (f == n || f == r || f == p || m < a || m > o) continue;
1948
1958
  let h = new e.Vector3(t[f].start.x, t[f].start.y, t[f].start.z), g = new e.Vector3(t[f].end.x, t[f].end.y, t[f].end.z), _ = b(h, g, y, x);
1949
1959
  if (!_ || _.angle < 85) continue;
1950
- let v = M(h, T), S = M(g, T);
1960
+ let v = N(h, T), S = N(g, T);
1951
1961
  if (!v && !S) continue;
1952
1962
  new e.Vector3();
1953
1963
  let C = new e.Vector3();
1954
1964
  v ? (h.clone(), C = g.clone()) : (g.clone(), C = h.clone());
1955
- let w = M(C, u), E = M(C, d);
1965
+ let w = N(C, u), E = N(C, d);
1956
1966
  if (!w && !E) continue;
1957
1967
  let D = c * i;
1958
1968
  if (!(D < s || D > 2)) {
@@ -1985,7 +1995,7 @@ var I = class {
1985
1995
  }, u = new e.Vector3(t[n].start.x, t[n].start.y, t[n].start.z), d = new e.Vector3(t[n].end.x, t[n].end.y, t[n].end.z), f = !0, p = !0;
1986
1996
  for (let r = 0; r < t.length; r++) {
1987
1997
  if (r == n) continue;
1988
- let i = new e.Vector3(t[r].start.x, t[r].start.y, t[r].start.z), a = new e.Vector3(t[r].end.x, t[r].end.y, t[r].end.z), o = M(i, u), s = M(a, u), c = M(i, d), l = M(a, d);
1998
+ let i = new e.Vector3(t[r].start.x, t[r].start.y, t[r].start.z), a = new e.Vector3(t[r].end.x, t[r].end.y, t[r].end.z), o = N(i, u), s = N(a, u), c = N(i, d), l = N(a, d);
1989
1999
  if (o || s ? f = !1 : (c || l) && (p = !1), !f && !p) break;
1990
2000
  }
1991
2001
  if (!f && !p) continue;
@@ -1997,7 +2007,7 @@ var I = class {
1997
2007
  if (r == n || i.has(r) || f < a || f > o) continue;
1998
2008
  let p = new e.Vector3(t[r].start.x, t[r].start.y, t[r].start.z), h = new e.Vector3(t[r].end.x, t[r].end.y, t[r].end.z), _ = b(u, d, p, h);
1999
2009
  if (!_ || _.angle < 85) continue;
2000
- let v = M(p, d), y = M(h, d);
2010
+ let v = N(p, d), y = N(h, d);
2001
2011
  if (!v && !y) continue;
2002
2012
  new e.Vector3();
2003
2013
  let x = new e.Vector3();
@@ -2007,7 +2017,7 @@ var I = class {
2007
2017
  if (d == n || d == r || i.has(d) || _ < a || _ > o) continue;
2008
2018
  let v = new e.Vector3(t[d].start.x, t[d].start.y, t[d].start.z), y = new e.Vector3(t[d].end.x, t[d].end.y, t[d].end.z), S = b(p, h, v, y);
2009
2019
  if (!S || S.angle < 85) continue;
2010
- let C = M(v, x), w = M(y, x);
2020
+ let C = N(v, x), w = N(y, x);
2011
2021
  if (!C && !w) continue;
2012
2022
  let T = new e.Vector3(), E = new e.Vector3();
2013
2023
  C ? (T = v.clone(), E = y.clone()) : (T = y.clone(), E = v.clone());
@@ -2016,7 +2026,7 @@ var I = class {
2016
2026
  let O = !0, k = !0;
2017
2027
  for (let n = 0; n < t.length; n++) {
2018
2028
  if (n == d) continue;
2019
- let r = new e.Vector3(t[n].start.x, t[n].start.y, t[n].start.z), i = new e.Vector3(t[n].end.x, t[n].end.y, t[n].end.z), a = M(r, v), o = M(i, v), s = M(r, y), c = M(i, y);
2029
+ let r = new e.Vector3(t[n].start.x, t[n].start.y, t[n].start.z), i = new e.Vector3(t[n].end.x, t[n].end.y, t[n].end.z), a = N(r, v), o = N(i, v), s = N(r, y), c = N(i, y);
2020
2030
  if (a || o ? O = !1 : (s || c) && (k = !1), !O && !k) break;
2021
2031
  }
2022
2032
  if (!O && !k) continue;
@@ -2037,4 +2047,4 @@ var I = class {
2037
2047
  return r;
2038
2048
  };
2039
2049
  //#endregion
2040
- export { S as classifySegments, z as getAllGeometry, V as getBeamLine, U as getColLine, H as getMainBeamLine, y as getParallelism, D as getPointCloudMinMax, T as getPointCoverageOnQuad, m as isParallel, b as perpendicularInfo, k as removeNoisePoints, d as segmentsIntersect2D, B as usegetBeamLine };
2050
+ export { S as classifySegments, B as getAllGeometry, U as getBeamLine, G as getColLine, W as getMainBeamLine, y as getParallelism, D as getPointCloudMinMax, T as getPointCoverageOnQuad, m as isParallel, b as perpendicularInfo, k as removeNoisePoints, d as segmentsIntersect2D, H as usegetBeamLine };