diff --git a/src/noise/_impl/_nz_cell_impl.scad b/src/noise/_impl/_nz_cell_impl.scad index 84a91dda..6a4c0c4d 100644 --- a/src/noise/_impl/_nz_cell_impl.scad +++ b/src/noise/_impl/_nz_cell_impl.scad @@ -29,7 +29,6 @@ function _nz_cell_border(cells, p) = sorted0 = sorted[0], sorted1 = sorted[1], a = [for(i = [0:idx - 1]) sorted0[i]], - b = [for(i = [0:idx - 1]) sorted1[i]], - m = (a + b) / 2 + m = (a + [for(i = [0:idx - 1]) sorted1[i]]) / 2 ) (p - m) * (a - m); \ No newline at end of file diff --git a/src/ptf/ptf_circle.scad b/src/ptf/ptf_circle.scad index 7ccfde22..21a66f26 100644 --- a/src/ptf/ptf_circle.scad +++ b/src/ptf/ptf_circle.scad @@ -11,7 +11,7 @@ function ptf_circle(size, point) = let( p_offset = -size / 2, - p = [point.x + p_offset.y, point.y + p_offset.x], + p = point + p_offset, n = max(abs(p.x), abs(p.y)), r = n * 1.414, a = atan2(p.x, p.y) diff --git a/src/ptf/ptf_sphere.scad b/src/ptf/ptf_sphere.scad index a9dd1226..ffb82f5b 100644 --- a/src/ptf/ptf_sphere.scad +++ b/src/ptf/ptf_sphere.scad @@ -17,7 +17,7 @@ function ptf_sphere(size, point, radius, angle = [180, 360]) = xa = angle[1], za_step = za / size.y, rza = za_step * point.y, - rzpt = [(radius + z) * cos(rza), (radius + z) * sin(rza), 0], + rzpt = (radius + z) * [cos(rza), sin(rza), 0], rxpt = ptf_rotate(rzpt, [90 - xa / size.x * point.x, 90, 0]) ) rxpt; \ No newline at end of file diff --git a/src/surface/sf_solidifyT.scad b/src/surface/sf_solidifyT.scad index 8acc986f..d6b7cd07 100644 --- a/src/surface/sf_solidifyT.scad +++ b/src/surface/sf_solidifyT.scad @@ -8,12 +8,6 @@ * **/ -use <../util/set/hashset.scad>; -use <../util/set/hashset_has.scad>; -use <../util/set/hashset_add.scad>; -use <../util/set/hashset_del.scad>; -use <../util/set/hashset_elems.scad>; - module sf_solidifyT(points1, points2, triangles, convexity = 1) { // triangles : counter-clockwise leng = len(points1); @@ -26,16 +20,19 @@ module sf_solidifyT(points1, points2, triangles, convexity = 1) { function de_pairs(tri_edges) = let( leng = len(tri_edges), - edges = hashset([tri_edges[0], tri_edges[1], tri_edges[2]], hash = hash, number_of_buckets = round(sqrt(leng))) + edges = [tri_edges[0], tri_edges[1], tri_edges[2]] ) _de_pairs(tri_edges, leng, edges); function _de_pairs(tri_edges, leng, edges, i = 3) = - i == leng ? hashset_elems(edges) : - let(edge = tri_edges[i], pair = [edge[1], edge[0]]) - hashset_has(edges, pair, hash = hash) ? - _de_pairs(tri_edges, leng, hashset_del(edges, pair, hash = hash), i + 1) : - _de_pairs(tri_edges, leng, hashset_add(edges, edge, hash = hash), i + 1); + i == leng ? edges : + let( + edge = tri_edges[i], + pair = [edge[1], edge[0]], + idx = search([pair], edges)[0], + nx_edges = idx == [] ? [each edges, edge] : [for(i = [0:len(edges) - 1]) if(i != idx) edges[i]] + ) + _de_pairs(tri_edges, leng, nx_edges, i + 1); tri_edges = [ for(tri = tris)