From 324693a38fa9ba0096df9412f7fa9b74578eff2b Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sat, 4 Dec 2021 10:16:45 +0800 Subject: [PATCH] dot notation indexing --- src/maze/_impl/_mz_hamiltonian_impl.scad | 2 +- src/maze/mz_square_cells.scad | 2 +- src/maze/mz_theta_cells.scad | 2 +- src/ptf/_impl/_ptf_rotate_impl.scad | 26 ++++++++++++------------ src/ptf/ptf_bend.scad | 6 ++---- src/ptf/ptf_circle.scad | 6 +++--- src/ptf/ptf_ring.scad | 3 +-- src/ptf/ptf_sphere.scad | 12 ++++------- src/voronoi/vrn2_from.scad | 6 +++--- src/voronoi/vrn2_space.scad | 2 +- src/voronoi/vrn3_from.scad | 6 +++--- 11 files changed, 33 insertions(+), 40 deletions(-) diff --git a/src/maze/_impl/_mz_hamiltonian_impl.scad b/src/maze/_impl/_mz_hamiltonian_impl.scad index 110d4a62..c12e0724 100644 --- a/src/maze/_impl/_mz_hamiltonian_impl.scad +++ b/src/maze/_impl/_mz_hamiltonian_impl.scad @@ -48,7 +48,7 @@ _mz_hamiltonian_nxt_offset = [ function _mz_hamiltonian_travel(dot_pts, p, leng, i = 0) = i == leng ? [] : let( - dir_i = _mz_hamiltonian_dir(_mz_hamiltonian_corner_value(dot_pts, p[0], p[1])), + dir_i = _mz_hamiltonian_dir(_mz_hamiltonian_corner_value(dot_pts, p.x, p.y)), nxt_p = p + _mz_hamiltonian_nxt_offset[dir_i] ) concat( diff --git a/src/maze/mz_square_cells.scad b/src/maze/mz_square_cells.scad index ed2e5289..ec984412 100644 --- a/src/maze/mz_square_cells.scad +++ b/src/maze/mz_square_cells.scad @@ -13,7 +13,7 @@ use ; function mz_square_cells(rows, columns, start = [0, 0], init_cells, x_wrapping = false, y_wrapping = false, seed) = go_maze( - start[0], start[1], + start.x, start.y, is_undef(init_cells) ? mz_square_initialize(rows, columns) : init_cells, rows, columns, x_wrapping, y_wrapping, seed ); diff --git a/src/maze/mz_theta_cells.scad b/src/maze/mz_theta_cells.scad index afae6f6d..6f12e388 100644 --- a/src/maze/mz_theta_cells.scad +++ b/src/maze/mz_theta_cells.scad @@ -14,7 +14,7 @@ function mz_theta_cells(rows, beginning_number, start = [0, 0], seed) = let( divided_ratio = 1.5, before_traveled = config_nbrs(init_theta_maze(rows, beginning_number, divided_ratio)), - s = set_visited(before_traveled[start[0]][start[1]]) + s = set_visited(before_traveled[start.x][start.y]) ) backtracker( update_maze(before_traveled, s), start, rows, seed); diff --git a/src/ptf/_impl/_ptf_rotate_impl.scad b/src/ptf/_impl/_ptf_rotate_impl.scad index ea789bc3..d4ada998 100644 --- a/src/ptf/_impl/_ptf_rotate_impl.scad +++ b/src/ptf/_impl/_ptf_rotate_impl.scad @@ -7,9 +7,9 @@ function _q_rotate_p_3d(p, a, v) = half_a = a / 2, axis = v / norm(v), s = sin(half_a), - x = s * axis[0], - y = s * axis[1], - z = s * axis[2], + x = s * axis.x, + y = s * axis.y, + z = s * axis.z, w = cos(half_a), x2 = x + x, @@ -36,31 +36,31 @@ function _rotx(pt, a) = a == 0 ? pt : let(cosa = cos(a), sina = sin(a)) [ - pt[0], - pt[1] * cosa - pt[2] * sina, - pt[1] * sina + pt[2] * cosa + pt.x, + pt.y * cosa - pt[2] * sina, + pt.y * sina + pt[2] * cosa ]; function _roty(pt, a) = a == 0 ? pt : let(cosa = cos(a), sina = sin(a)) [ - pt[0] * cosa + pt[2] * sina, - pt[1], - -pt[0] * sina + pt[2] * cosa, + pt.x * cosa + pt.z * sina, + pt.y, + -pt.x * sina + pt.z * cosa, ]; function _rotz(pt, a) = a == 0 ? pt : let(cosa = cos(a), sina = sin(a)) [ - pt[0] * cosa - pt[1] * sina, - pt[0] * sina + pt[1] * cosa, - pt[2] + pt.x * cosa - pt.y * sina, + pt.x * sina + pt.y * cosa, + pt.z ]; function _rotate_p_3d(point, a) = - _rotz(_roty(_rotx(point, a[0]), a[1]), a[2]); + _rotz(_roty(_rotx(point, a.x), a.y), a.z); function _rotate_p(p, a) = let(angle = __to_ang_vect(a)) diff --git a/src/ptf/ptf_bend.scad b/src/ptf/ptf_bend.scad index 07a26fc2..68a9d842 100644 --- a/src/ptf/ptf_bend.scad +++ b/src/ptf/ptf_bend.scad @@ -10,13 +10,11 @@ function ptf_bend(size, point, radius, angle) = let( - xlen = size[0], - // ignored - // ylen = size[1], + // ignored: size.y, y = point[0], z = point[1], x = is_undef(point[2]) ? 0 : point[2], - a_step = angle / xlen, + a_step = angle / size.x, a = a_step * y, r = radius + x ) diff --git a/src/ptf/ptf_circle.scad b/src/ptf/ptf_circle.scad index 74c89231..7ccfde22 100644 --- a/src/ptf/ptf_circle.scad +++ b/src/ptf/ptf_circle.scad @@ -11,9 +11,9 @@ function ptf_circle(size, point) = let( p_offset = -size / 2, - p = [point[0] + p_offset[1], point[1] + p_offset[0]], - n = max(abs(p[0]), abs(p[1])), + p = [point.x + p_offset.y, point.y + p_offset.x], + n = max(abs(p.x), abs(p.y)), r = n * 1.414, - a = atan2(p[0], p[1]) + a = atan2(p.x, p.y) ) [r * cos(a), r * sin(a)]; \ No newline at end of file diff --git a/src/ptf/ptf_ring.scad b/src/ptf/ptf_ring.scad index dec2d93b..fb9eea5f 100644 --- a/src/ptf/ptf_ring.scad +++ b/src/ptf/ptf_ring.scad @@ -13,8 +13,7 @@ use ; function ptf_ring(size, point, radius, angle = 360, twist = 0) = let( - yleng = size[1], - a_step = angle / yleng, + a_step = angle / size.y, twisted = ptf_y_twist(size, point, twist) ) ptf_rotate([radius + twisted[0], 0, twisted[2]], a_step * twisted[1]); \ No newline at end of file diff --git a/src/ptf/ptf_sphere.scad b/src/ptf/ptf_sphere.scad index 0a4930de..a9dd1226 100644 --- a/src/ptf/ptf_sphere.scad +++ b/src/ptf/ptf_sphere.scad @@ -12,16 +12,12 @@ use ; function ptf_sphere(size, point, radius, angle = [180, 360]) = let( - x = point[0], - y = point[1], - z = is_undef(point[2]) ? 0 : point[2], + z = is_undef(point.z) ? 0 : point.z, za = angle[0], xa = angle[1], - xlen = size[0], - ylen = size[1], - za_step = za / ylen, - rza = za_step * y, + za_step = za / size.y, + rza = za_step * point.y, rzpt = [(radius + z) * cos(rza), (radius + z) * sin(rza), 0], - rxpt = ptf_rotate(rzpt, [90 - xa / xlen * x, 90, 0]) + rxpt = ptf_rotate(rzpt, [90 - xa / size.x * point.x, 90, 0]) ) rxpt; \ No newline at end of file diff --git a/src/voronoi/vrn2_from.scad b/src/voronoi/vrn2_from.scad index 0c8ba800..cad54b47 100644 --- a/src/voronoi/vrn2_from.scad +++ b/src/voronoi/vrn2_from.scad @@ -9,8 +9,8 @@ **/ module vrn2_from(points, spacing = 1, r = 0, delta = 0, chamfer = false, region_type = "square") { - xs = [for(p = points) p[0]]; - ys = [for(p = points) abs(p[1])]; + xs = [for(p = points) p.x]; + ys = [for(p = points) abs(p.y)]; region_size = max([(max(xs) - min(xs) / 2), (max(ys) - min(ys)) / 2]); half_region_size = 0.5 * region_size; @@ -22,7 +22,7 @@ module vrn2_from(points, spacing = 1, r = 0, delta = 0, chamfer = false, region_ intersection_for(p = [for(p = points) if(pt != p) p]) { v = p - pt; translate((pt + p) / 2 - normalize(v) * offset_leng) - rotate(atan2(v[1], v[0])) + rotate(atan2(v.y, v.x)) children(); } } diff --git a/src/voronoi/vrn2_space.scad b/src/voronoi/vrn2_space.scad index f53a0b08..c1cf5d4c 100644 --- a/src/voronoi/vrn2_space.scad +++ b/src/voronoi/vrn2_space.scad @@ -51,7 +51,7 @@ module vrn2_space(size, grid_w, seed, spacing = 1, r = 0, delta = 0, chamfer = f intersection_for(p = points) { v = p - pt; translate((pt + p) / 2 - normalize(v) * offset_leng) - rotate(atan2(v[1], v[0])) + rotate(atan2(v.y, v.x)) children(); } } diff --git a/src/voronoi/vrn3_from.scad b/src/voronoi/vrn3_from.scad index 0fe9be00..643187b0 100644 --- a/src/voronoi/vrn3_from.scad +++ b/src/voronoi/vrn3_from.scad @@ -13,9 +13,9 @@ use <__comm__/__angy_angz.scad>; // slow but workable module vrn3_from(points, spacing = 1) { - xs = [for(p = points) p[0]]; - ys = [for(p = points) abs(p[1])]; - zs = [for(p = points) abs(p[2])]; + xs = [for(p = points) p.x]; + ys = [for(p = points) abs(p.y)]; + zs = [for(p = points) abs(p.z)]; space_size = max([max(xs) - min(xs), max(ys) - min(ys), max(zs) - min(zs)]); half_space_size = 0.5 * space_size;