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 { } } }