From a7eded5156fe9423454f5827015657817ec88560 Mon Sep 17 00:00:00 2001 From: thingsapart Date: Mon, 15 Jul 2024 17:06:13 -0700 Subject: [PATCH] Simplify the code, remove intermediate segments --- src/geo/polygon.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/geo/polygon.js b/src/geo/polygon.js index 27e0a134..3c743529 100644 --- a/src/geo/polygon.js +++ b/src/geo/polygon.js @@ -1162,21 +1162,13 @@ class Polygon { // When "in Ease-Down" (ie. while target Z not yet reached) - follow path while slowly decreasing Z. let deltaZ = fromZ - next.z; dist2next = last.distTo2D(next); + next = next.clone().setZ(fromZ - dist2next * slope); - if (dist2next > maxDist2d) { - // long move: synth intermediate - neccessary? - last = next = last.followTo(next, maxDist2d).setZ(last.z - maxDist2d * slope) - fromZ = next.z; - fn(next, offset++); - continue; - } else { - // too short: clone n move z - next = next.clone().setZ(fromZ - maxDist2d * slope); - } fromZ = next.z; } else if (offset === 0 && next.z < fromZ) { // First point, move to rampZ height above next. let deltaZ = fromZ - next.z; + fromZ = next.z + Math.min(deltaZ, rampZ) next = next.clone().setZ(fromZ); }