From 223d791a8a09d63c87e543ce4144251b517d1014 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sun, 26 Apr 2020 13:19:13 -0400 Subject: [PATCH] fix invalid point offset calculations --- js/kiri-driver-sla.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/js/kiri-driver-sla.js b/js/kiri-driver-sla.js index 91b7ae1a..cf54669b 100644 --- a/js/kiri-driver-sla.js +++ b/js/kiri-driver-sla.js @@ -322,7 +322,7 @@ let gs_kiri_sla = exports; polys.forEach(p => p.forEachSegment((p1, p2) => { let rec = {dist: p1.distTo2D(p2), p1, p2}; - if (rec.dist >= spacing) crit++; + if (rec.dist >= spacing || slice.ord_first) crit++; seg.push(rec); })); @@ -350,6 +350,7 @@ let gs_kiri_sla = exports; } // drop points too close to other pillars + if (!slice.ord_first) drop: for (let i=0; i prec.size) { + break; + } } } return; @@ -435,7 +439,9 @@ let gs_kiri_sla = exports; safe.forEach(p => { x += p.x; y += p.y }); x /= safe.length; y /= safe.length; - point = point.offsetPointTo({x, y, z:slice.z}, inc / 2); + if (x !== point.x || y !== point.y) { + point = point.offsetPointTo({x, y, z:slice.z}, inc); + } } // once max'ed out, can only shrink in size if (track.max) { @@ -456,6 +462,7 @@ let gs_kiri_sla = exports; track.push({slice, point, pillar, size}); if (slice.down) { projectPillar(process, slice.down, point, Math.min(size, max), track); + } else { } } }