/ examples / maze / maze3d_sphere.scad
maze3d_sphere.scad
 1  use <maze/mz_cube.scad>
 2  use <maze/mz_cube_initialize.scad>
 3  use <maze3d.scad>
 4  
 5  radius = 6;  
 6  cell_width = 15;
 7  road_width = 6;
 8  $fn = 4;  // [4, 8, 12]
 9  
10  maze3d_sphere();
11  
12  module maze3d_sphere() {
13      function mask_sphere(radius) = 
14          let(range = [-radius: radius - 1])
15          [
16              for(z = range)
17              [
18                  for(y = range)
19                  [
20                      for(x = range)
21                      let(v = [x, y, z])
22                      if(v * v < radius ^ 2) 1
23                      else 0
24                  ]
25              ]
26              
27          ];
28          
29      mz = mz_cube_initialize(mask = mask_sphere(radius));
30      cells = mz_cube(start = [radius, radius, radius] / 2, init_cells = mz);
31      draw_3dmaze(cells, cell_width, road_width);
32  }