def generate_maze(bm, maze_params):
"""
generate the maze on the bm bmesh
"""
bm.verts.ensure_lookup_table()
bm.edges.ensure_lookup_table()
sel_geom, inner_edges = get_inner_edges(bm, maze_params['boundary_type'])
if maze_params['maze_update']:
all_edges = sorted(bm.edges, key=lambda edge: edge.index)
full_mesh = inner_edges == all_edges
random.seed(maze_params['rseed'])
maze_path, maze_verts = recursive_back_tracker_maze(inner_edges, full_mesh)
if maze_params['braid'] > 0.0:
maze_path = do_braid(maze_path, maze_verts, maze_params['braid'])
link_centers, vert_centers = get_maze_centers(maze_path, maze_verts)
else:
link_centers = maze_params['link_centers']
vert_centers = maze_params['vert_centers']
bevel_extrude(bm, sel_geom, maze_params, link_centers, vert_centers)
return bm, link_centers, vert_centers
评论列表
文章目录