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

Method collapse

python/pymesh/meshutils/collapse_short_edges.py:59–75  ·  view source on GitHub ↗

Note this method remove all edges with length less than threshold. This could result in a non-manifold mesh.

(self, abs_threshold, rel_threshold)

Source from the content-addressed store, hash-verified

57
58 @timethis
59 def collapse(self, abs_threshold, rel_threshold):
60 """ Note this method remove all edges with length less than threshold.
61 This could result in a non-manifold mesh.
62 """
63 min_edge_length = abs_threshold
64 if rel_threshold is not None:
65 ave_edge_len = self.__get_ave_edge_length()
66 min_edge_length = rel_threshold * ave_edge_len
67 self.logger.info("Minimum edge threshold: {:.3}".format(min_edge_length))
68
69 num_collapsed = self.__collapse_C(min_edge_length)
70 self.logger.info("{} edges collapsed".format(num_collapsed))
71
72 self.__remove_fin_faces()
73 self.__remove_isolated_vertices()
74
75 return num_collapsed
76
77 def __get_ave_edge_length(self):
78 if not self.input_mesh.has_attribute("edge_length"):

Callers 1

collapse_short_edges_rawFunction · 0.45

Calls 4

__get_ave_edge_lengthMethod · 0.95
__collapse_CMethod · 0.95
__remove_fin_facesMethod · 0.95

Tested by

no test coverage detected