1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-23 14:54:12 +02:00

add maze_walls

This commit is contained in:
Justin Lin
2020-02-16 12:12:29 +08:00
parent d09dccd7d5
commit b9e357069b
2 changed files with 24 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
use <experimental/__impl__/_maze_comm.scad>;
function block_walls(block, block_width) =
let(
loc = [get_x(block) - 1, get_y(block) - 1] * block_width,
upper = upper_wall(block) || upper_right_wall(block) ? [[0, block_width] + loc, [block_width, block_width] + loc] : [],
right = right_wall(block) || upper_right_wall(block) ? [[block_width, block_width] + loc, [block_width, 0] + loc] : []
)
concat(upper, right);

View File

@@ -0,0 +1,15 @@
use <experimental/__impl__/_maze_walls_impl.scad>;
function maze_walls(blocks, rows, columns, block_width, left_border = true, bottom_border = true) =
let(
left_walls = left_border ? [for(y = [0:rows - 1]) [[0, block_width * (y + 1)], [0, block_width * y]]] : [],
buttom_walls = bottom_border ? [for(x = [0:columns - 1]) [[block_width * x, 0], [block_width * (x + 1), 0]]] : []
)
concat(
[
for(block = blocks)
let(pts = block_walls(block, block_width))
if(pts != []) pts
]
, left_walls, buttom_walls
);