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

Classes

struct  CGAL::Mesh_smoothing_3::Smoothing_status
 Status of the mesh smoothing process. More...

Enumerations

enum class  CGAL::Mesh_smoothing_3::Smoothing_return_code {
  Smoothing_return_code::ALL_VERTICES_FROZEN , Smoothing_return_code::CONVERGENCE_REACHED , Smoothing_return_code::MAX_ITERATIONS_REACHED , Smoothing_return_code::MAX_NUMBER_OF_METRIC_EVALUATIONS_REACHED ,
  Smoothing_return_code::TIME_LIMIT_REACHED , Smoothing_return_code::USER_ABORT
}
 Return code of the mesh smoothing. More...

Functions

template<typename C3t3, typename CTS, typename NamedParameters = parameters::Default_named_parameters>
Mesh_smoothing_3::Smoothing_status 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.

Enumeration Type Documentation

◆ Smoothing_return_code

#include <CGAL/Mesh_smoothing_3/Smoothing_status.h>

Return code of the mesh smoothing.

Enumerator
ALL_VERTICES_FROZEN 

All vertices are frozen.

CONVERGENCE_REACHED 

Convergence reached.

MAX_ITERATIONS_REACHED 

Maximum number of iterations reached.

MAX_NUMBER_OF_METRIC_EVALUATIONS_REACHED 

Maximum number of metric evaluations reached.

TIME_LIMIT_REACHED 

Time limit reached.

USER_ABORT 

Smoothing was aborted by the user.

Function Documentation

◆ boundary_aware_mesh_smoothing()

template<typename C3t3, typename CTS, typename NamedParameters = parameters::Default_named_parameters>
Mesh_smoothing_3::Smoothing_status 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
  • 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.
Returns
a Mesh_smoothing_3::Smoothing_status object containing information about the smoothing process and convergence.
Examples
Mesh_smoothing_3/c3t3_smooth.cpp.