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.cjs +1 -1
- package/dist/index.js +240 -230
- package/package.json +1 -1
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
|
|
151
|
-
t.forEach((e) =>
|
|
152
|
-
let
|
|
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(
|
|
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
|
|
206
|
-
t.forEach((t,
|
|
207
|
-
let
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
217
|
-
let
|
|
218
|
-
|
|
219
|
-
let
|
|
220
|
-
if (
|
|
221
|
-
|
|
222
|
-
}),
|
|
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(
|
|
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(
|
|
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 (
|
|
231
|
+
if (m) {
|
|
235
232
|
let t = [];
|
|
236
|
-
|
|
233
|
+
m.forEach((n, r) => {
|
|
237
234
|
t.push(new e.Vector3(n.x, n.y, n.z));
|
|
238
235
|
});
|
|
239
|
-
let
|
|
240
|
-
|
|
241
|
-
let
|
|
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
|
-
}),
|
|
246
|
-
n.add(
|
|
242
|
+
}), o = new e.Line(i, a);
|
|
243
|
+
l == "door" ? n.add(o) : r.add(o);
|
|
247
244
|
}
|
|
248
|
-
if (
|
|
249
|
-
let t = [],
|
|
250
|
-
|
|
251
|
-
t.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
|
|
254
|
-
|
|
255
|
-
let
|
|
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
|
-
}),
|
|
260
|
-
n.add(
|
|
261
|
-
let
|
|
262
|
-
n.add(
|
|
263
|
-
let [
|
|
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 (
|
|
275
|
-
let t = new e.BoxGeometry(
|
|
276
|
-
color:
|
|
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
|
-
}),
|
|
279
|
-
|
|
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
|
|
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 = (
|
|
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
|
-
},
|
|
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),
|
|
556
|
+
e.remove(t), F(t);
|
|
554
557
|
});
|
|
555
558
|
};
|
|
556
|
-
function
|
|
559
|
+
function F(e) {
|
|
557
560
|
for (; e.children && e.children.length > 0;) {
|
|
558
561
|
let t = e.children[0];
|
|
559
|
-
e.remove(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) =>
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
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 =
|
|
1052
|
+
let t = R(e);
|
|
1050
1053
|
t && w.push(t);
|
|
1051
1054
|
}
|
|
1052
|
-
let T =
|
|
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
|
-
},
|
|
1057
|
-
|
|
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)),
|
|
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
|
|
1071
|
-
if (!
|
|
1072
|
-
let
|
|
1073
|
-
if (console.log("respcd",
|
|
1074
|
-
let
|
|
1075
|
-
for (let t = 0; t <
|
|
1076
|
-
let n =
|
|
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)),
|
|
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(
|
|
1083
|
-
let { beamGroup:
|
|
1084
|
-
console.timeEnd(), console.log("beamGroup",
|
|
1085
|
-
let
|
|
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
|
-
}),
|
|
1093
|
+
}), E = new e.MeshBasicMaterial({
|
|
1091
1094
|
color: "#ff0000",
|
|
1092
1095
|
transparent: !0,
|
|
1093
1096
|
opacity: .4,
|
|
1094
1097
|
side: e.DoubleSide
|
|
1095
|
-
}),
|
|
1098
|
+
}), D = new e.MeshBasicMaterial({
|
|
1096
1099
|
color: "#e100ff",
|
|
1097
1100
|
transparent: !0,
|
|
1098
1101
|
opacity: .4,
|
|
1099
1102
|
side: e.DoubleSide
|
|
1100
|
-
}),
|
|
1103
|
+
}), O = new e.MeshBasicMaterial({
|
|
1101
1104
|
color: "#0400ff",
|
|
1102
1105
|
transparent: !0,
|
|
1103
1106
|
opacity: .4,
|
|
1104
1107
|
side: e.DoubleSide
|
|
1105
|
-
}),
|
|
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
|
-
|
|
1135
|
+
A.push(c);
|
|
1133
1136
|
}
|
|
1134
1137
|
}
|
|
1135
|
-
if (
|
|
1136
|
-
let t = c(
|
|
1137
|
-
t.rotateX(-Math.PI / 2), s.add(new e.LineSegments(t,
|
|
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
|
-
|
|
1142
|
+
new e.PointsMaterial({
|
|
1140
1143
|
color: 65535,
|
|
1141
1144
|
size: .01
|
|
1142
|
-
})
|
|
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)),
|
|
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),
|
|
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
|
-
|
|
1161
|
-
let
|
|
1162
|
-
for (let t = 0; 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(
|
|
1165
|
-
let r = [], i = new e.Vector3(
|
|
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),
|
|
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.
|
|
1178
|
+
t.rotateX(-Math.PI / 2), u.add(new e.Line(t, N)), M.forEach((e) => e.dispose());
|
|
1173
1179
|
}
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
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),
|
|
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 ?
|
|
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)),
|
|
1228
|
-
}), i.add(
|
|
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
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1238
|
+
pcdGroup2: p,
|
|
1239
|
+
pointLineGroup: m,
|
|
1240
|
+
beamDoorGroup: h,
|
|
1241
|
+
lineIndexGroup: g
|
|
1237
1242
|
};
|
|
1238
|
-
},
|
|
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:
|
|
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
|
|
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
|
-
|
|
1384
|
+
R.closestPointToPoint(e, !0, B).distanceTo(e) < o.gridHeight + .01 && z.push(e);
|
|
1380
1385
|
});
|
|
1381
|
-
let
|
|
1386
|
+
let V = [], H = [];
|
|
1382
1387
|
for (;;) {
|
|
1383
1388
|
let e = [];
|
|
1384
|
-
for (let t = 0; t <
|
|
1385
|
-
for (let t = 0; t <
|
|
1386
|
-
for (let n = 0; n < e.length; n++) if (
|
|
1387
|
-
e.push(
|
|
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
|
-
|
|
1397
|
+
V.push(e);
|
|
1393
1398
|
}
|
|
1394
|
-
let
|
|
1395
|
-
for (let t = 0; 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 =
|
|
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)),
|
|
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
|
|
1405
|
-
if (
|
|
1406
|
-
let v =
|
|
1407
|
-
if (k < 1.5 || _ < v.facePoints[2].z ||
|
|
1408
|
-
let
|
|
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 > .
|
|
1411
|
-
let n = A(w,
|
|
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(
|
|
1418
|
+
let { newOriginalPoints: r } = O(V, H, a.originalPoints), o = [], s = [];
|
|
1414
1419
|
if (r.forEach((e) => {
|
|
1415
|
-
e.z >=
|
|
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),
|
|
1421
|
-
if (
|
|
1422
|
-
if (
|
|
1423
|
-
let e =
|
|
1424
|
-
if (
|
|
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 (
|
|
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 (
|
|
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 && (
|
|
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 ? (
|
|
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(
|
|
1474
|
+
let { newOriginalPoints: n } = O(V, H, a.originalPoints), r = [], s = [];
|
|
1470
1475
|
if (n.forEach((e) => {
|
|
1471
|
-
e.z >=
|
|
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),
|
|
1477
|
-
if (
|
|
1478
|
-
if (
|
|
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 (
|
|
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 (
|
|
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 && (
|
|
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 ? (
|
|
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 =
|
|
1526
|
+
D = B.distanceTo(z);
|
|
1522
1527
|
}
|
|
1523
|
-
if (
|
|
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
|
-
|
|
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 ? (
|
|
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(),
|
|
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
|
-
|
|
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 (!
|
|
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,
|
|
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
|
-
(
|
|
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 (
|
|
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,
|
|
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
|
-
|
|
1585
|
+
G != -1 && (r[c[G].index].isFindBeam = !1, c[G].isFind = !1);
|
|
1581
1586
|
continue;
|
|
1582
1587
|
}
|
|
1583
1588
|
p.push({
|
|
1584
|
-
start:
|
|
1585
|
-
end:
|
|
1589
|
+
start: V,
|
|
1590
|
+
end: H
|
|
1586
1591
|
});
|
|
1587
1592
|
{
|
|
1588
|
-
let t = new e.Vector3().subVectors(
|
|
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 -
|
|
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(
|
|
1593
|
-
for (let e of a) e.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,
|
|
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(
|
|
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(
|
|
1605
|
+
let e = c.distanceTo(H);
|
|
1601
1606
|
e < i && (i = e, s = c);
|
|
1602
1607
|
}
|
|
1603
1608
|
});
|
|
1604
1609
|
}
|
|
1605
|
-
o.equals(
|
|
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:
|
|
1611
|
-
beamEnd:
|
|
1615
|
+
beamStart: z,
|
|
1616
|
+
beamEnd: B,
|
|
1612
1617
|
beamHeight: a.rooftopPz - v.facePoints[2].z,
|
|
1613
|
-
doorStart:
|
|
1614
|
-
doorEnd:
|
|
1618
|
+
doorStart: V,
|
|
1619
|
+
doorEnd: H,
|
|
1615
1620
|
doorHeight: k,
|
|
1616
1621
|
nearId: -1,
|
|
1617
1622
|
type: s,
|
|
1618
|
-
isExtend:
|
|
1619
|
-
isDoor:
|
|
1620
|
-
isPullOutDoor:
|
|
1621
|
-
pcbDoorIndexs:
|
|
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(
|
|
1631
|
+
let i = y(z.clone(), B.clone(), r.beamStart.clone(), r.beamEnd.clone());
|
|
1627
1632
|
if (i && i.isParallel) {
|
|
1628
|
-
let t =
|
|
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(
|
|
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 = !
|
|
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 =
|
|
1638
|
-
t < n ? t > e && !r.isPullOutDoor ? (r.beamStart =
|
|
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(
|
|
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),
|
|
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 >
|
|
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++)
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
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,
|
|
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:
|
|
1679
|
-
beamEnd:
|
|
1688
|
+
beamStart: z,
|
|
1689
|
+
beamEnd: B
|
|
1680
1690
|
}), E = !0), E)); e++);
|
|
1681
1691
|
E || h.push([{
|
|
1682
1692
|
id: l,
|
|
1683
|
-
beamStart:
|
|
1684
|
-
beamEnd:
|
|
1693
|
+
beamStart: z,
|
|
1694
|
+
beamEnd: B
|
|
1685
1695
|
}]);
|
|
1686
1696
|
let A = g.doorStart.distanceTo(g.doorEnd);
|
|
1687
|
-
if (
|
|
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++,
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,
|
|
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 };
|