MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / old_fix_mesh

Function old_fix_mesh

scripts/fix_mesh.py:52–85  ·  view source on GitHub ↗
(vertices, faces, detail="normal")

Source from the content-addressed store, hash-verified

50
51
52def old_fix_mesh(vertices, faces, detail="normal"):
53 bbox_min = np.amin(vertices, axis=0)
54 bbox_max = np.amax(vertices, axis=0)
55 diag_len = norm(bbox_max - bbox_min)
56 if detail == "normal":
57 target_len = diag_len * 5e-3
58 elif detail == "high":
59 target_len = diag_len * 2.5e-3
60 elif detail == "low":
61 target_len = diag_len * 1e-2
62 print("Target resolution: {} mm".format(target_len))
63
64 count = 0
65 vertices, faces = pymesh.split_long_edges(vertices, faces, target_len)
66 num_vertices = len(vertices)
67 while True:
68 vertices, faces = pymesh.collapse_short_edges(vertices, faces, 1e-6)
69 vertices, faces = pymesh.collapse_short_edges(vertices, faces,
70 target_len, preserve_feature=True)
71 vertices, faces = pymesh.remove_obtuse_triangles(vertices, faces, 150.0, 100)
72 if num_vertices == len(vertices):
73 break
74 num_vertices = len(vertices)
75 print("#v: {}".format(num_vertices))
76 count += 1
77 if count > 10: break
78
79 vertices, faces = pymesh.resolve_self_intersection(vertices, faces)
80 vertices, faces = pymesh.remove_duplicated_faces(vertices, faces)
81 vertices, faces, _ = pymesh.compute_outer_hull(vertices, faces, False)
82 vertices, faces = pymesh.remove_duplicated_faces(vertices, faces)
83 vertices, faces = pymesh.remove_obtuse_triangles(vertices, faces, 179.0, 5)
84 vertices, faces, voxels = pymesh.remove_isolated_vertices(vertices, faces)
85 return vertices, faces
86
87
88def parse_args():

Callers

nothing calls this directly

Calls 3

split_long_edgesMethod · 0.80

Tested by

no test coverage detected