def composed_triangular_mesh(triangular_mesh_dict):
start_time = time()
print "--> Composing triangular mesh..."
mesh = TriangularMesh()
triangle_cell_matching = {}
mesh_points = np.concatenate([triangular_mesh_dict[c].points.keys() for c in triangular_mesh_dict.keys()])
mesh_point_positions = np.concatenate([triangular_mesh_dict[c].points.values() for c in triangular_mesh_dict.keys()])
mesh.points = dict(zip(mesh_points,mesh_point_positions))
mesh_triangles = np.concatenate([triangular_mesh_dict[c].triangles.values() for c in triangular_mesh_dict.keys()])
mesh.triangles = dict(zip(np.arange(len(mesh_triangles)),mesh_triangles))
mesh_cells = np.concatenate([c*np.ones_like(triangular_mesh_dict[c].triangles.keys()) for c in triangular_mesh_dict.keys()])
triangle_cell_matching = dict(zip(np.arange(len(mesh_triangles)),mesh_cells))
# for c in triangular_mesh_dict.keys():
# cell_start_time = time()
# cell_mesh = triangular_mesh_dict[c]
# # mesh_point_max_id = np.max(mesh.points.keys()) if len(mesh.points)>0 else 0
# mesh.points.update(cell_mesh.points)
# if len(cell_mesh.triangles)>0:
# mesh_triangle_max_id = np.max(mesh.triangles.keys()) if len(mesh.triangles)>0 else 0
# mesh.triangles.update(dict(zip(list(np.array(cell_mesh.triangles.keys())+mesh_triangle_max_id),cell_mesh.triangles.values())))
# triangle_cell_matching.update(dict(zip(list(np.array(cell_mesh.triangles.keys())+mesh_triangle_max_id),[c for f in cell_mesh.triangles])))
# cell_end_time = time()
# print " --> Adding cell ",c," (",len(cell_mesh.triangles)," triangles ) [",cell_end_time-cell_start_time,"s]"
end_time = time()
print "<-- Composing triangular mesh [",end_time-start_time,"]"
return mesh, triangle_cell_matching
sia_to_triangular_mesh.py 文件源码
python
阅读 31
收藏 0
点赞 0
评论 0
评论列表
文章目录