Smooth a tetrahedral mesh while preserving the boundary and curve features.
This function takes as input a Mesh_complex_3_in_triangulation_3 and will iteratively move its vertices to improve the quality of the tetrahedra while preserving (softly) the boundary and curve features through projection queries. Vertices will stay close to their original entity (surface patch or curve). Corners are locked on their original position. The algorithm will recover curvature discontinuities (sharp features) in a patch, and is capable of recovering inverted tetrahedra in the mesh. An input mesh with only positively oriented elements is guaranteed to remain so during the smoothing procedure.
Warning
This function updates vertex positions without modifying connectivity, and therefore does not preserve Delaunay properties.
support to re-project faces and edges on their respective patches and curves.
np
optional sequence of Named Parameters among the ones listed below
Optional Named Parameters
Maximum nb of iterations of the smoothing algorithm . Algorithm will stop before if it reaches convergence. Untangling usually requires more iterations (up to thousands) for hard cases.
Type: unsigned int
Default: 100
If true, the function prints information about the smoothing process to the standard output.
Type: bool
Default: false
Maximum allowed time for the smoothing process in seconds.
Type: double
Default: 0.
Extra: Pre-processing will not be stopped.
Maximum number of quality metric evaluations for smoothing.
Type: unsigned int
Default: 0
Extra: Strongly correlated to running time but will scale linearly with mesh size.
a property map containing the constrained-or-not status of each vertex of the triangulation in the c3t3.
Type: a class model of ReadablePropertyMap with C3t3::Vertex_handle as key type and bool as value type. It must be default constructible.
Default: a default property map where no vertex is constrained
Extra: A constrained vertex will not be moved by smoothing.
a property map containing the constrained-or-not status of each edge of the triangulation in the c3t3.
Type: a class model of ReadablePropertyMap with std::pair<C3t3::Vertex_handle, C3t3::Vertex_handle> as key type and bool as value type. It must be default constructible.
Default: a default property map where no edge is constrained
Extra: Vertices of a constrained edge will not be moved by the smoothing.
a property map containing the constrained-or-not status of each facet of the triangulation in the c3t3.
Type: a class model of ReadablePropertyMap with C3t3::Facet as key type and bool as value type. It must be default constructible.
Default: a default property map where no facet is constrained
Extra: Vertices of a constrained facet will not be moved by smoothing.