diff --git a/src/triangle/_impl/_tri_delaunay_impl.scad b/src/triangle/_impl/_tri_delaunay_impl.scad index 10d3a1dd..fc56939a 100644 --- a/src/triangle/_impl/_tri_delaunay_impl.scad +++ b/src/triangle/_impl/_tri_delaunay_impl.scad @@ -4,7 +4,6 @@ use <../../util/map/hashmap_get.scad>; use <../../util/map/hashmap_del.scad>; use <../../util/map/hashmap_keys.scad>; use <../../util/map/hashmap_put.scad>; -use <../../util/some.scad>; use <../../util/has.scad>; use <../../util/find_index.scad>; @@ -199,7 +198,7 @@ function _delaunayBoundaries(d, badTriangles, boundaries, t, vi, _indices_hash) triangles = delaunay_triangles(d), opTri = hashmap_get(triangles, t, hash = _indices_hash)[vi] ) - some(badTriangles, function(tri) tri == opTri) ? + has(badTriangles, opTri) ? let( i = search([t], hashmap_get(triangles, opTri, hash = _indices_hash))[0], nvi = (i + 1) % 3, diff --git a/src/util/_impl/_dedup_impl.scad b/src/util/_impl/_dedup_impl.scad index 438204f9..3f697553 100644 --- a/src/util/_impl/_dedup_impl.scad +++ b/src/util/_impl/_dedup_impl.scad @@ -12,14 +12,17 @@ function _dedup(elems, leng, buckets, eq, hash, bucket_numbers) = ) _dedup_add(n_buckets_lt[end - 1], [end, elems[end]], eq, hash, bucket_numbers); - function _dedup_add(buckets, i_elem, eq, hash, bucket_numbers) = let( elem = i_elem[1], b_idx = hash(elem) % bucket_numbers, bucket = buckets[b_idx] ) - some(bucket, function(i_e) eq(i_e[1], elem)) ? buckets : _add(buckets, bucket, i_elem, b_idx); + ( + is_undef(eq) ? + search([elem], bucket, num_returns_per_match = 1, index_col_num = 1) != [[]] : + some(bucket, function(i_e) eq(i_e[1], elem)) + ) ? buckets : _add(buckets, bucket, i_elem, b_idx); function _add(buckets, bucket, i_elem, b_idx) = let(leng = len(buckets)) diff --git a/src/util/dedup.scad b/src/util/dedup.scad index 56d3236f..80dfe60e 100644 --- a/src/util/dedup.scad +++ b/src/util/dedup.scad @@ -12,7 +12,7 @@ use <../__comm__/_str_hash.scad>; use <_impl/_dedup_impl.scad>; use ; -function dedup(lt, eq = function(e1, e2) e1 == e2, hash = function(e) _str_hash(e), number_of_buckets) = +function dedup(lt, eq = undef, hash = function(e) _str_hash(e), number_of_buckets) = let(leng_lt = len(lt)) leng_lt < 2 ? lt : let(