diff --git a/src/midpt_smooth.scad b/src/midpt_smooth.scad index ac816c12..ffefd922 100644 --- a/src/midpt_smooth.scad +++ b/src/midpt_smooth.scad @@ -8,14 +8,17 @@ * **/ -function _midpt_smooth_sub(points, iend, i, closed = false) = - i == iend ? ( - closed ? [(points[i] + points[0]) / 2] - : [] - ) : concat([(points[i] + points[i + 1]) / 2], _midpt_smooth_sub(points, iend, i + 1, closed)); +function _midpt_smooth_sub(points, iend, closed = false) = + concat( + [ + for(i = 0; i < iend; i = i + 1) + (points[i] + points[i + 1]) / 2 + ], + closed ? [(points[iend] + points[0]) / 2] : [] + ); function midpt_smooth(points, n, closed = false) = let( - smoothed = _midpt_smooth_sub(points, len(points) - 1, 0, closed) + smoothed = _midpt_smooth_sub(points, len(points) - 1, closed) ) n == 1 ? smoothed : midpt_smooth(smoothed, n - 1, closed); \ No newline at end of file