diff --git a/src/noise/_impl/_nz_worley2_impl.scad b/src/noise/_impl/_nz_worley2_impl.scad index 4e42d435..cfec6aff 100644 --- a/src/noise/_impl/_nz_worley2_impl.scad +++ b/src/noise/_impl/_nz_worley2_impl.scad @@ -19,8 +19,8 @@ function _neighbors(fcord, seed, grid_w) = function _nz_worley2_classic(p, nbrs, dist) = let( cells = [ - for(nbr = nbrs) - [nbr[0], nbr[1], _distance(nbr, p, dist)] + for(nbr = nbrs) + [each nbr, _distance(nbr, p, dist)] ], sorted = sort(cells, by = "idx", idx = 2) ) @@ -30,18 +30,17 @@ function _nz_worley2_border(p, nbrs) = let( cells = [ for(nbr = nbrs) - [nbr[0], nbr[1], norm(nbr - p)] + [each nbr, norm(nbr - p)] ], sorted = sort(cells, by = "z"), - a = [sorted[0][0], sorted[0][1]], - b = [sorted[1][0], sorted[1][1]], - m = (a + b) / 2 + a = [sorted[0].x, sorted[0].y], + m = (a + [sorted[1].x, sorted[1].y]) / 2 ) [a[0], a[1], (p - m) * (a - m)]; function _nz_worley2(p, seed, grid_w, dist) = let( - fcord = [floor(p[0] / grid_w), floor(p[1] / grid_w)], + fcord = [floor(p.x / grid_w), floor(p.y / grid_w)], nbrs = _neighbors(fcord, seed, grid_w) ) dist == "border" ? _nz_worley2_border(p, nbrs) : diff --git a/src/noise/_impl/_nz_worley3_impl.scad b/src/noise/_impl/_nz_worley3_impl.scad index 1f9101d4..b29b0570 100644 --- a/src/noise/_impl/_nz_worley3_impl.scad +++ b/src/noise/_impl/_nz_worley3_impl.scad @@ -22,7 +22,7 @@ function _nz_worley3_classic(p, nbrs, dist) = let( cells = [ for(nbr = nbrs) - [nbr[0], nbr[1], nbr[2], _distance(nbr, p, dist)] + [each nbr, _distance(nbr, p, dist)] ], sorted = sort(cells, by = "idx", idx = 3) ) @@ -32,18 +32,17 @@ function _nz_worley3_border(p, nbrs) = let( cells = [ for(nbr = nbrs) - [nbr[0], nbr[1], nbr[2], norm(nbr - p)] + [each nbr, norm(nbr - p)] ], sorted = sort(cells, by = "idx", idx = 3), - a = [sorted[0][0], sorted[0][1], sorted[0][2]], - b = [sorted[1][0], sorted[1][1], sorted[1][2]], - m = (a + b) / 2 + a = [sorted[0].x, sorted[0].y, sorted[0].z], + m = (a + [sorted[1].x, sorted[1].y, sorted[1].z]) / 2 ) [a[0], a[1], a[2], (p - m) * (a - m)]; function _nz_worley3(p, seed, grid_w, dist) = let( - fcord = [floor(p[0] / grid_w), floor(p[1] / grid_w), floor(p[2] / grid_w)], + fcord = [floor(p.x / grid_w), floor(p.y / grid_w), floor(p.z / grid_w)], nbrs = _neighbors(fcord, seed, grid_w) ) dist == "border" ? _nz_worley3_border(p, nbrs) :