Skip to content

Commit 08164dc

Browse files
authored
Update BuildingShapeUtils.js
1 parent 0ab5e7a commit 08164dc

File tree

1 file changed

+15
-24
lines changed

1 file changed

+15
-24
lines changed

src/extras/BuildingShapeUtils.js

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -289,38 +289,29 @@ class BuildingShapeUtils extends ShapeUtils {
289289
var p0;
290290
var p1;
291291
var p2;
292+
293+
function calcAngle(p0, p1, p2) {
294+
let angle = Math.atan2(p2.y - p1.y, p2.x - p1.x) - Math.atan2(p0.y - p1.y, p0.x - p1.x);
295+
if (angle >= Math.PI) {
296+
angle -= Math.PI;
297+
} else if (angle < -Math.PI) {
298+
angle += Math.PI;
299+
}
300+
return angle;
301+
}
302+
292303
p0 = points[points.length - 1];
293304
p1 = points[0];
294305
p2 = points[1];
295-
let angle = Math.atan2(p2.y - p1.y, p2.x - p1.x) - Math.atan2(p0.y - p1.y, p0.x - p1.x);
296-
if (angle >= Math.PI) {
297-
angle -= Math.PI;
298-
} else if (angle < -Math.PI) {
299-
angle += Math.PI;
300-
}
301-
angles.push(angle);
306+
307+
angles.push(calcAngle(p0, p1, p2));
302308
for (let i = 1; i < points.length - 1; i++) {
303309
p0 = points[i - 1];
304310
p1 = points[i];
305311
p2 = points[i + 1];
306-
angle = Math.atan2(p2.y - p1.y, p2.x - p1.x) - Math.atan2(p0.y - p1.y, p0.x - p1.x);
307-
if (angle >= Math.PI) {
308-
angle -= Math.PI;
309-
} else if (angle < -Math.PI) {
310-
angle += Math.PI;
311-
}
312-
angles.push(angle);
313-
}
314-
p0 = points[points.length - 2];
315-
p1 = points[points.length - 1];
316-
p2 = points[0];
317-
angle = Math.atan2(p2.y - p1.y, p2.x - p1.x) - Math.atan2(p0.y - p1.y, p0.x - p1.x);
318-
if (angle >= Math.PI) {
319-
angle -= Math.PI;
320-
} else if (angle < -Math.PI) {
321-
angle += Math.PI;
312+
angles.push(calcAngle(p0, p1, p2));
322313
}
323-
angles.push(angle);
314+
angles.push(calcAngle(p0, p1, p2));
324315
return angles;
325316
}
326317

0 commit comments

Comments
 (0)