CGAL::perturb_mesh_3

Definition

The function perturb_mesh_3 is a mesh optimizer that improves the quality of a Delaunay mesh by changing the mesh vertices positions.

The perturber tries to improve the dihedral angles of the worst cells in the mesh degree by degree: the step number n is considered as successfull if after this step the worst tetrahedron of the mesh has a minimal dihedral angle larger than n degrees. The perturber exits if this is not the case.

#include <CGAL/perturb_mesh_3.h>

template<typename C3T3, typename MeshDomain>
Mesh_optimization_return_code
perturb_mesh_3 ( C3T3& c3t3,
MeshDomain domain,
double parameters::time_limit=0,
double parameters::sliver_bound=0)

Precondition

time_limit 0 and 0 sliver_bound 180

Parameters

Parameter C3T3 is required to be a model of the concept MeshComplex_3InTriangulation_3. The argument c3t3, passed by reference, provides the initial mesh and is modified by the algorithm to represent the final optimized mesh.

Parameter MeshDomain is required to be a model of the concept MeshDomain_3. The argument domain must be the MeshDomain object used to create c3t3 parameter.

The function has two optional parameters which are named parameters (we use the Boost.Parameters library). Therefore, when calling the function, the parameters can be provided in any order provided that the names of the parameters are used (see example at the bottom of this page).

Return Values

The function perturb_mesh_3 returns a value of type Mesh_optimization_return_code which is:

See Also

Mesh_optimization_return_code
make_mesh_3
refine_mesh_3
exude_mesh_3
lloyd_optimize_mesh_3
odt_optimize_mesh_3

Example

// Perturb until every dihedral angle of the mesh is >= 10 degrees
// No time bound is set
perturb_mesh_3(c3t3, domain, parameters::sliver_bound=10);