CGAL 5.6 - 3D Mesh Generation
CGAL::Mesh_criteria_3< Tr, EdgeCriteria, FacetCriteria, CellCriteria > Class Template Reference

#include <CGAL/Mesh_criteria_3.h>

Definition

template<typename Tr, typename EdgeCriteria = Mesh_edge_criteria_3<Tr>, typename FacetCriteria = Mesh_facet_criteria_3<Tr>, typename CellCriteria = Mesh_cell_criteria_3<Tr>>
class CGAL::Mesh_criteria_3< Tr, EdgeCriteria, FacetCriteria, CellCriteria >

The class gathers the refinement criteria for mesh tetrahedra and surface facets where surface facets are facets in the mesh approximating the domain surface patches.

In addition, for domains with exposed 1-dimensional features, the class Mesh_criteria_3 handles the definition of a sizing field to guide the discretization of 1-dimensional features.

Template Parameters
Trhas to be instantiated with the type used for C3T3::Triangulation, where C3T3 is the model of MeshComplex_3InTriangulation_3 used in the mesh generation process, and C3T3::Triangulation its nested triangulation type.
Is Model Of:
MeshCriteria_3 and MeshCriteriaWithFeatures_3

Example

// Create a Mesh_criteria_3<Tr> object with all cell and facet parameters set
Mesh_criteria_3<Tr> criteria (parameters::facet_angle(30).
parameters::facet_size(1).
parameters::facet_distance(0.1).
parameters::cell_radius_edge_ratio(2).
parameters::cell_size(1.5));
// Create a Mesh_criteria_3<Tr> object with size ignored (note that the order changed)
Mesh_criteria_3<Tr> criteria (parameters::cell_radius_edge_ratio(2).
parameters::facet_angle(30).
parameters::facet_distance(0.1));
See also
MeshCriteria_3
MeshCriteriaWithFeatures_3
MeshCellCriteria_3
MeshEdgeCriteria_3
MeshFacetCriteria_3
MeshDomainField_3
CGAL::Mesh_cell_criteria_3<Tr>
CGAL::Mesh_edge_criteria_3<Tr>
CGAL::Mesh_facet_criteria_3<Tr>
CGAL::Mesh_facet_topology
Examples:
Mesh_3/mesh_3D_gray_image.cpp, Mesh_3/mesh_3D_gray_image_with_custom_initialization.cpp, Mesh_3/mesh_3D_gray_vtk_image.cpp, Mesh_3/mesh_3D_image.cpp, Mesh_3/mesh_3D_image_variable_size.cpp, Mesh_3/mesh_3D_image_with_custom_initialization.cpp, Mesh_3/mesh_3D_image_with_detection_of_features.cpp, Mesh_3/mesh_3D_image_with_features.cpp, Mesh_3/mesh_3D_image_with_input_features.cpp, Mesh_3/mesh_3D_weighted_image.cpp, Mesh_3/mesh_hybrid_mesh_domain.cpp, Mesh_3/mesh_implicit_domains.cpp, Mesh_3/mesh_implicit_domains_2.cpp, Mesh_3/mesh_implicit_ellipsoid.cpp, Mesh_3/mesh_implicit_sphere.cpp, Mesh_3/mesh_implicit_sphere_variable_size.cpp, Mesh_3/mesh_optimization_example.cpp, Mesh_3/mesh_optimization_lloyd_example.cpp, Mesh_3/mesh_polyhedral_complex.cpp, Mesh_3/mesh_polyhedral_domain.cpp, Mesh_3/mesh_polyhedral_domain_with_features.cpp, Mesh_3/mesh_polyhedral_domain_with_features_sizing.cpp, Mesh_3/mesh_polyhedral_domain_with_lipschitz_sizing.cpp, Mesh_3/mesh_polyhedral_domain_with_surface_inside.cpp, Mesh_3/mesh_two_implicit_spheres_with_balls.cpp, and Mesh_3/remesh_polyhedral_surface.cpp.

Public Member Functions

 Mesh_criteria_3 (Facet_criteria facet_criteria, Cell_criteria cell_criteria)
 Construction from facet and cell criteria, the edge criteria are ignored in this case.
 
 Mesh_criteria_3 (Edge_criteria edge_criteria, Facet_criteria facet_criteria, Cell_criteria cell_criteria)
 Constructor from edge, face, and cell criteria.
 
template<typename NamedParameters = CGAL::parameters::Default_named_parameters>
 Mesh_criteria_3 (const NamedParameters &np=parameters::default_values())
 Construction from criteria parameters. More...
 
template<typename CGAL_NP_TEMPLATE_PARAMETERS_NO_DEFAULT_1 , typename CGAL_NP_TEMPLATE_PARAMETERS_NO_DEFAULT_2 , typename ... NP>
 Mesh_criteria_3 (const NamedParameters1 &np1, const NamedParameters2 &np2, const NP &... nps)
 

Types

typedef Mesh_edge_criteria_3< Tr > Edge_criteria
 The criteria for edges.
 
typedef Mesh_facet_criteria_3< Tr > Facet_criteria
 The criteria for facets.
 
typedef Mesh_cell_criteria_3< Tr > Cell_criteria
 The criteria for cells.
 

Constructor & Destructor Documentation

◆ Mesh_criteria_3()

template<typename Tr , typename EdgeCriteria = Mesh_edge_criteria_3<Tr>, typename FacetCriteria = Mesh_facet_criteria_3<Tr>, typename CellCriteria = Mesh_cell_criteria_3<Tr>>
template<typename NamedParameters = CGAL::parameters::Default_named_parameters>
CGAL::Mesh_criteria_3< Tr, EdgeCriteria, FacetCriteria, CellCriteria >::Mesh_criteria_3 ( const NamedParameters &  np = parameters::default_values())

Construction from criteria parameters.

Note that each size or distance parameter can be specified using two ways: either as a scalar field or as a numerical value when the field is uniform.

If not specified, each parameter has a default value such that the corresponding criterion will be ignored. Numerical sizing or distance values, as well as scalar fields should be given in the unit used for coordinates of points in the mesh domain class of the mesh generation process.

Template Parameters
NamedParametersa sequence of Named Parameters
Parameters
npan optional sequence of Named Parameters among the ones listed below:
Optional Named Parameters
  • a scalar field (resp. a constant) providing a space varying (resp. a uniform) upper bound for the lengths of curve edges. This parameter has to be set to a positive value when 1-dimensional features protection is used.
  • a desired uniform lower-bound for the lengths of curve edges. Only feature edges with a length larger than this bound will be refined. If a feature edge is too small with respect to this criterion, it will not be refined whether the other criteria are met or not.
  • Extra: If this criterion is applied during the meshing process, the feature protection algorithm correctness is not guaranteed anymore, and the output mesh may contain incorrect polyline features, or have missing polyline features.
  • Extra: Note this lower-bound may not be respected everywhere in the output mesh, to keep the feature graph valid.
  • a lower bound for the angles (in degrees) of the surface mesh facets.
  • a scalar field (resp. a constant) describing a space varying (resp. a uniform) upper-bound or for the radii of the surface Delaunay balls.
  • a constant describing a uniform lower-bound for the radii of the surface Delaunay balls. Only facets with a radius larger than this bound will be refined. If a facet is too small with respect to this criterion, it will not be refined whether the other criteria are met or not.
  • a scalar field (resp. a constant) describing a space varying (resp. a uniform) upper bound for the distance between the facet circumcenter and the center of its surface Delaunay ball.
  • the set of topological constraints which have to be verified by each surface facet. See Mesh_facet_topology manual page to get all possible values.
  • Default: CGAL::FACET_VERTICES_ON_SURFACE
  • an upper bound for the radius-edge ratio of the mesh tetrahedra.
  • a scalar field (resp. a constant) describing a space varying (resp. a uniform) upper-bound for the circumradii of the mesh tetrahedra.
  • a constant describing a uniform lower-bound for the radii of the circumradii of the mesh tetrahedra. Only tetrahedra with a circumradius larger than this bound will be refined. If a cell is too small with respect to this criterion, it will not be refined whether the other criteria are met or not.