cellcomplex.property_topomesh.optimization.property_topomesh_isotropic_remeshing

cellcomplex.property_topomesh.optimization.property_topomesh_isotropic_remeshing(initial_topomesh, maximal_length=None, minimal_length=None, collapse=False, iterations=1, verbose=False, debug=False, loglevel=0)[source]

Perform a global optimization of a triangular PropertyTopomesh

The topomesh is remeshed iteratively by applying only local topological operations and vertex deformation. Based on target minimal and maximal edge lengths, the mesh undergoes a split and collapse optimization, then a pass of edge flip optimization regularizes its topology and a Taubin smoothing its geometry. The process is repeated to perform a global isotropic remeshing of the initial mesh.

Parameters
  • input_topomesh (cellcomplex.property_topomesh.PropertyTopomesh) – The initial structure on which to perform the remeshing

  • maximal_length (float, optional:) – The edge length above which the edges will be splitted

  • minimal_length (float, optional) – The edge length under which the edges will be collapsed

  • collapse (bool) – Whether to use or not the edge collapse optimization

  • iterations (int) – Number of optimization passes to perform

Note

If no edge length is set, the target edge length l is set to the 8th decile of initial edge length and the heuristic setting minimal_length to 3/4 l and maximal_length to 4/3 l is used.

Returns

topomesh – The remeshed structure

Return type

cellcomplex.property_topomesh.PropertyTopomesh

Warning

The PropertyTopomesh must be a triangular topomesh (cellcomplex.property_topomesh.analysis.is_triangular())