diff --git a/src/maze/_impl/_mz_hex_walls.scad b/src/maze/_impl/_mz_hex_walls.scad index 7920855d..0ad241db 100644 --- a/src/maze/_impl/_mz_hex_walls.scad +++ b/src/maze/_impl/_mz_hex_walls.scad @@ -36,14 +36,14 @@ function _build_cell(cell_radius, cell) = let( x = _get_x(cell), y = _get_y(cell), - walls = concat( - _is_mask(cell) ? [] : _row_wall(cell_radius, x, y), - [_is_top_wall(cell) || _is_top_right_wall(cell) ? _top(cell_radius) : []], - [_is_right_wall(cell) || _is_top_right_wall(cell) ? _right_wall(cell_radius, x) : []] - ), + walls = [ + if(!_is_mask(cell)) each _row_wall(cell_radius, x, y), + if(_is_top_wall(cell) || _is_top_right_wall(cell)) _top(cell_radius), + if(_is_right_wall(cell) || _is_top_right_wall(cell)) _right_wall(cell_radius, x) + ], cell_p = _cell_position(cell_radius, x, y) ) [ - for(wall = walls) - if(wall != []) [for(p = wall) cell_p + p] + for(wall = walls) + [for(p = wall) cell_p + p] ]; diff --git a/src/maze/_impl/_mz_square_walls_impl.scad b/src/maze/_impl/_mz_square_walls_impl.scad index e79e08ba..7095f02d 100644 --- a/src/maze/_impl/_mz_square_walls_impl.scad +++ b/src/maze/_impl/_mz_square_walls_impl.scad @@ -1,9 +1,8 @@ use <_mz_square_comm.scad>; function _square_walls(cell, cell_width) = - let( - loc = [get_x(cell), get_y(cell)] * cell_width, - top = top_wall(cell) || top_right_wall(cell) ? [[0, cell_width] + loc, [cell_width, cell_width] + loc] : [], - right = right_wall(cell) || top_right_wall(cell) ? [[cell_width, cell_width] + loc, [cell_width, 0] + loc] : [] - ) - concat(top, right); + let(loc = [get_x(cell), get_y(cell)] * cell_width) + [ + if(top_wall(cell) || top_right_wall(cell)) each [[0, cell_width] + loc, [cell_width, cell_width] + loc], + if(right_wall(cell) || top_right_wall(cell)) each [[cell_width, cell_width] + loc, [cell_width, 0] + loc] + ];