From 99f260b37233f42a305db51afa5be51cc99fc32a Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sat, 17 Apr 2021 18:07:05 +0800 Subject: [PATCH] refactor --- src/experimental/_impl/_tri_delaunay_impl.scad | 16 +--------------- src/experimental/tri_delaunay.scad | 4 +++- src/experimental/tri_delaunay_indices.scad | 8 ++++++++ src/experimental/tri_delaunay_shapes.scad | 10 ++++++++++ 4 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 src/experimental/tri_delaunay_indices.scad create mode 100644 src/experimental/tri_delaunay_shapes.scad diff --git a/src/experimental/_impl/_tri_delaunay_impl.scad b/src/experimental/_impl/_tri_delaunay_impl.scad index c7ef7029..e2d7c7c9 100644 --- a/src/experimental/_impl/_tri_delaunay_impl.scad +++ b/src/experimental/_impl/_tri_delaunay_impl.scad @@ -198,18 +198,4 @@ function delBadTriangles(d, badTriangles) = function _tri_delaunay(d, points, leng, i = 0) = i == leng ? d : - _tri_delaunay(delaunay_addpoint(d, points[i]), points, leng, i + 1); - -function tri_delaunay_shapes(d) = - let(coords = delaunay_coords(d)) - [ - for(tri = hashmap_keys(delaunay_triangles(d))) - if(tri[0] > 3 && tri[1] > 3 && tri[2] > 3) - [coords[tri[0]], coords[tri[1]], coords[tri[2]]] - ]; - -function tri_delaunay_indices(d) = [ - for(tri = hashmap_keys(delaunay_triangles(d))) - if(tri[0] > 3 && tri[1] > 3 && tri[2] > 3) - [tri[0] - 4, tri[1] - 4, tri[2] - 4] -]; \ No newline at end of file + _tri_delaunay(delaunay_addpoint(d, points[i]), points, leng, i + 1); \ No newline at end of file diff --git a/src/experimental/tri_delaunay.scad b/src/experimental/tri_delaunay.scad index 4a71dde1..25ab32cb 100644 --- a/src/experimental/tri_delaunay.scad +++ b/src/experimental/tri_delaunay.scad @@ -1,4 +1,6 @@ -use ; +use <_impl/_tri_delaunay_impl.scad>; +use ; +use ; // ret: "TRI_SHAPES", "TRI_INDICES", "DELAUNAY" function tri_delaunay(points, ret = "TRI_SHAPES") = diff --git a/src/experimental/tri_delaunay_indices.scad b/src/experimental/tri_delaunay_indices.scad new file mode 100644 index 00000000..5d425065 --- /dev/null +++ b/src/experimental/tri_delaunay_indices.scad @@ -0,0 +1,8 @@ +use <_impl/_tri_delaunay_comm_impl.scad>; +use ; + +function tri_delaunay_indices(d) = [ + for(tri = hashmap_keys(delaunay_triangles(d))) + if(tri[0] > 3 && tri[1] > 3 && tri[2] > 3) + [tri[0] - 4, tri[1] - 4, tri[2] - 4] +]; \ No newline at end of file diff --git a/src/experimental/tri_delaunay_shapes.scad b/src/experimental/tri_delaunay_shapes.scad new file mode 100644 index 00000000..b02cc5e4 --- /dev/null +++ b/src/experimental/tri_delaunay_shapes.scad @@ -0,0 +1,10 @@ +use <_impl/_tri_delaunay_comm_impl.scad>; +use ; + +function tri_delaunay_shapes(d) = + let(coords = delaunay_coords(d)) + [ + for(tri = hashmap_keys(delaunay_triangles(d))) + if(tri[0] > 3 && tri[1] > 3 && tri[2] > 3) + [coords[tri[0]], coords[tri[1]], coords[tri[2]]] + ]; \ No newline at end of file