CGAL 6.3 - 3D Mesh Volume Smoothing
Loading...
Searching...
No Matches

Functions

template<typename C3t3, typename CTS, typename NamedParameters = parameters::Default_named_parameters>
void CGAL::boundary_aware_mesh_smoothing (C3t3 &c3t3, CTS const &cts, NamedParameters const &np=parameters::default_values())
 Smooth a tetrahedral mesh while preserving the boundary and curve features.

Function Documentation

◆ boundary_aware_mesh_smoothing()

template<typename C3t3, typename CTS, typename NamedParameters = parameters::Default_named_parameters>
void CGAL::boundary_aware_mesh_smoothing ( C3t3 & c3t3,
CTS const & cts,
NamedParameters const & np = parameters::default_values() )

#include <CGAL/Mesh_smoothing_3/boundary_aware_mesh_smoothing.h>

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.
Template Parameters
C3t3model of MeshComplex_3InTriangulation_3
CTSmodel of ConstructTangentSpace
NamedParametersa sequence of Named Parameters
Parameters
c3t3tetrahedral mesh to smooth.
ctssupport to re-project faces and edges on their respective patches and curves.
npoptional 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
  • 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.
Examples
Mesh_smoothing_3/c3t3_smooth.cpp.