CGAL 5.6.1 - 3D Mesh Generation
Parameter Functions

Functions

unspecified_type CGAL::parameters::manifold ()
 The function parameters::manifold() is used to drive the meshing algorithm for surfaces. More...
 
unspecified_type CGAL::parameters::non_manifold ()
 The function parameters::non_manifold() is used to drive the meshing algorithm for surfaces. More...
 
unspecified_type CGAL::parameters::manifold_with_boundary ()
 The function parameters::manifold_with_boundary() is used to drive the meshing algorithm for surfaces. More...
 
template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::exude (const Named_function_parameters &np=parameters::default_values())
 The function parameters::exude() allows the user to trigger a call to exude_mesh_3() in the make_mesh_3() and refine_mesh_3() mesh generation functions. More...
 
unspecified_type CGAL::parameters::features ()
 Provides an option indicating that 0 and 1-dimensional features have to be taken into account (the domain must be a model of MeshDomainWithFeatures_3). More...
 
template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::lloyd (const Named_function_parameters &np=parameters::default_values())
 The function parameters::lloyd() allows the user to trigger a call of lloyd_optimize_mesh_3() in the mesh generation functions make_mesh_3() and refine_mesh_3(). More...
 
unspecified_type CGAL::parameters::no_exude ()
 The function parameters::no_exude() allows the user to tell the mesh generation functions make_mesh_3() and refine_mesh_3() that no exudation must be done. More...
 
unspecified_type CGAL::parameters::no_features ()
 Provides an option indicating no special treatment should be done with 0 and 1-dimensional features. More...
 
unspecified_type CGAL::parameters::no_lloyd ()
 The function parameters::no_lloyd() allows the user to tell the mesh generation functions make_mesh_3() and refine_mesh_3() that no lloyd optimization must be done. More...
 
unspecified_type CGAL::parameters::no_odt ()
 The function parameters::no_odt() allows the user to tell the mesh generation functions make_mesh_3() and refine_mesh_3() that no ODT optimization must be done. More...
 
unspecified_type CGAL::parameters::no_perturb ()
 The function parameters::no_perturb() allows the user to tell mesh generation global functions make_mesh_3() and refine_mesh_3() that no perturbation must be done. More...
 
template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::odt (const Named_function_parameters &np=parameters::default_values())
 The function parameters::odt() allows the user to trigger a call to CGAL::odt_optimize_mesh_3() in CGAL::make_mesh_3() and CGAL::refine_mesh_3() mesh optimization functions. More...
 
template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::perturb (const Named_function_parameters &np=parameters::default_values())
 The function parameters::perturb() allows the user to trigger a call to perturb_mesh_3() in make_mesh_3() and refine_mesh_3() mesh generation functions. More...
 

Function Documentation

◆ exude()

template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::exude ( const Named_function_parameters &  np = parameters::default_values())

#include <CGAL/Mesh_3/parameters.h>

The function parameters::exude() allows the user to trigger a call to exude_mesh_3() in the make_mesh_3() and refine_mesh_3() mesh generation functions.

It also allows the user to pass parameters to the optimization function exude_mesh_3() through these mesh generation functions.

Template Parameters
NamedParametersa sequence of Named Parameters
Parameters
npan optional sequence of Named Parameters among the ones listed below:
Optional Named Parameters
  • is used to set up, in seconds, a CPU time limit after which the optimization process is stopped. This time is measured using the Real_timer class. The default value is 0 and means that there is no time limit.
  • Type: double
  • Precondition: time_limit >= 0
  • Default: 0
  • is designed to give, in degrees, a targeted lower bound on dihedral angles of mesh cells. The exudation process considers in turn all the mesh cells that have a smallest dihedral angle less than sliver_bound and tries to make them disappear by weighting their vertices. The optimization process stops when every cell in the mesh achieves this quality. The default value is 0 and means that there is no targeted bound: the exuder then runs as long as it can improve the smallest dihedral angles of the set of cells incident to some vertices.
  • Type: double
  • Precondition: 0 <= sliver_bound <= 180
  • Default: 0

Example

// Mesh generation with an exudation step
C3t3 c3t3 = make_mesh_3<c3t3>(domain,
criteria,
domain,
criteria,
parameters::exude(parameters::time_limit(10)));
See also
CGAL::parameters::no_exude()
CGAL::exude_mesh_3()
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
Examples:
Mesh_3/mesh_optimization_lloyd_example.cpp.

◆ features()

unspecified_type CGAL::parameters::features ( )

#include <CGAL/Mesh_3/parameters.h>

Provides an option indicating that 0 and 1-dimensional features have to be taken into account (the domain must be a model of MeshDomainWithFeatures_3).

This is the default behavior when the domain is a model of MeshDomainWithFeatures_3.

See also
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
CGAL::parameters::no_features()

◆ lloyd()

template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::lloyd ( const Named_function_parameters &  np = parameters::default_values())

#include <CGAL/Mesh_3/parameters.h>

The function parameters::lloyd() allows the user to trigger a call of lloyd_optimize_mesh_3() in the mesh generation functions make_mesh_3() and refine_mesh_3().

It also allows the user to pass parameters to the optimization function lloyd_optimize_mesh_3() through these mesh generation functions.

Template Parameters
NamedParametersa sequence of Named Parameters
Parameters
npan optional sequence of Named Parameters among the ones listed below:
Optional Named Parameters
  • to set up, in seconds, a CPU time limit after which the optimization process is stopped. This time is measured using CGAL::Real_timer. 0 means that there is no time limit.
  • Type: double
  • Precondition: time_limit >= 0
  • Default: 0
  • limit on the number of performed iterations. 0 means that there is no limit on the number of performed iterations.
  • Precondition: max_iteration_number >=0
  • Type: int
  • Default: 0
  • designed to reduce running time of each optimization iteration. Any vertex that has a displacement less than a given fraction of the length of its shortest incident edge, is frozen (i.e. is not relocated). The parameter freeze_bound gives the threshold ratio. If it is set to 0, freezing of vertices is disabled.
  • Precondition: 0<= freeze_bound <=1
  • Type: double
  • Default: 0.01
  • threshold ratio of stopping criterion based on convergence: the optimization process is stopped when at the last iteration the displacement of any vertex is less than a given fraction of the length of the shortest edge incident to that vertex.
  • Precondition: 0 <=convergence <= 1
  • Type: double
  • Default: 0.02
  • completes the freeze_bound parameter. If it is set to true (default value), frozen vertices will not move anymore in next iterations. Otherwise, at each iteration, any vertex that moves, unfreezes all its incident vertices.
  • Type: bool
  • Default: true

Example

// Mesh generation with lloyd optimization step
C3t3 c3t3 = make_mesh_3<c3t3>(domain,
criteria,
domain,
criteria,
parameters::lloyd(parameters::time_limit(10)));
See also
CGAL::parameters::no_lloyd()
CGAL::lloyd_optimize_mesh_3()
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
Examples:
Mesh_3/mesh_optimization_lloyd_example.cpp.

◆ manifold()

unspecified_type CGAL::parameters::manifold ( )

#include <CGAL/Mesh_3/parameters.h>

The function parameters::manifold() is used to drive the meshing algorithm for surfaces.

It ensures that the surface of the output mesh is a manifold surface without boundaries. The manifold property of the output mesh can be achieved only if the input surface is a manifold. Note that the meshing algorithm provably terminates only if the input sharp edges have been protected, using the feature protection (see Protection of 0 and 1-dimensional Exposed Features).

See also
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
CGAL::parameters::manifold_with_boundary()
CGAL::parameters::non_manifold()
Examples:
Mesh_3/mesh_polyhedral_domain.cpp.

◆ manifold_with_boundary()

unspecified_type CGAL::parameters::manifold_with_boundary ( )

#include <CGAL/Mesh_3/parameters.h>

The function parameters::manifold_with_boundary() is used to drive the meshing algorithm for surfaces.

It ensures that the surface of the output mesh is a manifold surface which may have boundaries. The manifold property of the output mesh can be achieved only if the input surface is a manifold. Note that the meshing algorithm provably terminates only if the input sharp edges have been protected, using the feature protection (see Protection of 0 and 1-dimensional Exposed Features).

See also
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
CGAL::parameters::non_manifold()
CGAL::parameters::manifold()

◆ no_exude()

unspecified_type CGAL::parameters::no_exude ( )

◆ no_features()

unspecified_type CGAL::parameters::no_features ( )

#include <CGAL/Mesh_3/parameters.h>

Provides an option indicating no special treatment should be done with 0 and 1-dimensional features.

See also
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
CGAL::parameters::features()
Examples:
Mesh_3/mesh_two_implicit_spheres_with_balls.cpp.

◆ no_lloyd()

unspecified_type CGAL::parameters::no_lloyd ( )

#include <CGAL/Mesh_3/parameters.h>

The function parameters::no_lloyd() allows the user to tell the mesh generation functions make_mesh_3() and refine_mesh_3() that no lloyd optimization must be done.

Example

// Mesh generation without lloyd optimization
C3t3 c3t3 = make_mesh_3<c3t3>(domain,
criteria,
See also
CGAL::parameters::lloyd()
CGAL::lloyd_optimize_mesh_3()
CGAL::make_mesh_3()
CGAL::refine_mesh_3()

◆ no_odt()

unspecified_type CGAL::parameters::no_odt ( )

#include <CGAL/Mesh_3/parameters.h>

The function parameters::no_odt() allows the user to tell the mesh generation functions make_mesh_3() and refine_mesh_3() that no ODT optimization must be done.

Example

// Mesh generation without odt optimization
C3t3 c3t3 = make_mesh_3<c3t3>(domain,
criteria,
See also
CGAL::parameters::odt()
CGAL::odt_optimize_mesh_3()
CGAL::make_mesh_3()
CGAL::refine_mesh_3()

◆ no_perturb()

◆ non_manifold()

unspecified_type CGAL::parameters::non_manifold ( )

#include <CGAL/Mesh_3/parameters.h>

The function parameters::non_manifold() is used to drive the meshing algorithm for surfaces.

It does not ensure that the surface of the output mesh is a manifold surface. The manifold property of the output mesh might nevertheless result from an appropriate choice of meshing criteria.

See also
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
CGAL::parameters::manifold_with_boundary()
CGAL::parameters::manifold()

◆ odt()

template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::odt ( const Named_function_parameters &  np = parameters::default_values())

#include <CGAL/Mesh_3/parameters.h>

The function parameters::odt() allows the user to trigger a call to CGAL::odt_optimize_mesh_3() in CGAL::make_mesh_3() and CGAL::refine_mesh_3() mesh optimization functions.

It also allows the user to pass parameters to the optimization function odt_optimize_mesh_3() through these mesh generation functions.

Template Parameters
NamedParametersa sequence of Named Parameters
Parameters
npan optional sequence of Named Parameters among the ones listed below:
Optional Named Parameters
  • is used to set up, in seconds, a CPU time limit after which the optimization process is stopped. This time is measured using Real_timer. The default value is 0 and means that there is no time limit.
  • Type: double
  • Precondition: time_limit >= 0
  • Default: 0
  • sets a limit on the number of performed iterations. The default value of 0 means that there is no limit on the number of performed iterations.
  • Type: std::size_t
  • Default: 0
  • is a stopping criterion based on convergence: the optimization process is stopped, when at the last iteration, the displacement of any vertex is less than a given percentage of the length the shortest edge incident to that vertex. The parameter convergence gives the threshold ratio.
  • Type: double
  • Precondition: 0 <= convergence <= 1
  • Default: 0.02
  • is designed to reduce running time of each optimization iteration. Any vertex that has a displacement less than a given percentage of the length of its shortest incident edge, is frozen (i.e. is not relocated). The parameter freeze_bound gives the threshold ratio.
  • Type: double
  • Precondition: 0 <= freeze_bound <= 1
  • Default: 0.01
  • completes the freeze_bound parameter. If it is set to true, frozen vertices will not move anymore in next iterations. Otherwise, at each iteration, any vertex that moves, unfreezes all its incident vertices.
  • Type: bool
  • Default: true

Example

// Mesh generation with odt optimization step
C3t3 c3t3 = make_mesh_3<c3t3>(domain,
criteria,
domain,
criteria,
parameters::odt(parameters::time_limit(10)));
See also
CGAL::parameters::no_odt()
CGAL::odt_optimize_mesh_3()
CGAL::make_mesh_3()
CGAL::refine_mesh_3()

◆ perturb()

template<class NamedParameters = parameters::Default_named_parameters>
unspecified_type CGAL::parameters::perturb ( const Named_function_parameters &  np = parameters::default_values())

#include <CGAL/Mesh_3/parameters.h>

The function parameters::perturb() allows the user to trigger a call to perturb_mesh_3() in make_mesh_3() and refine_mesh_3() mesh generation functions.

It also allows the user to pass parameters to the optimization function perturb_mesh_3() through these mesh generation functions.

Template Parameters
NamedParametersa sequence of Named Parameters
Parameters
npan optional sequence of Named Parameters among the ones listed below:
Optional Named Parameters
  • is used to set up, in seconds, a CPU time limit after which the optimization process is stopped. This time is measured using the Real_timer class. The default value is 0 and means that there is no time limit.
  • Type: double
  • Precondition: time_limit >= 0
  • Default: 0
  • is designed to give, in degrees, a targeted lower bound on dihedral angles of mesh cells. The exudation process considers in turn all the mesh cells that have a smallest dihedral angle less than sliver_bound and tries to make them disappear by weighting their vertices. The optimization process stops when every cell in the mesh achieves this quality. The default value is 0 and means that there is no targeted bound: the exuder then runs as long as it can improve the smallest dihedral angles of the set of cells incident to some vertices.
  • Type: double
  • Precondition: 0 <= sliver_bound <= 180
  • Default: 0

Example

// Mesh generation with a perturbation step
C3t3 c3t3 = make_mesh_3<c3t3>(domain,
criteria,
domain,
criteria,
parameters::perturb(parameters::time_limit(10)));
See also
CGAL::parameters::no_perturb()
CGAL::perturb_mesh_3()
CGAL::make_mesh_3()
CGAL::refine_mesh_3()
Examples:
Mesh_3/mesh_optimization_example.cpp.