CGAL 6.1 - 3D Mesh Generation

Loading...
Searching...
No Matches
List of all members | Public Member Functions
CGAL::Mesh_criteria_3< Tr, EdgeCriteria, FacetCriteria, CellCriteria > Class Template Reference
Reference Manual » Mesh Classes

`#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

  Tr | has 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`
  `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));
CGAL::Mesh_criteria_3
The class gathers the refinement criteria for mesh tetrahedra and surface facets where surface facets...
Definition: Mesh_criteria_3.h:186

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_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_image_initialization.cpp, Mesh_3/mesh_3D_image_with_initial_points.cpp, Mesh_3/mesh_3D_image_with_input_features.cpp, Mesh_3/mesh_3D_weighted_image.cpp, Mesh_3/mesh_3D_weighted_image_with_detection_of_features.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_complex_sm.cpp, Mesh_3/mesh_polyhedral_domain.cpp, Mesh_3/mesh_polyhedral_domain_sm.cpp, Mesh_3/mesh_polyhedral_domain_with_edge_distance.cpp, Mesh_3/mesh_polyhedral_domain_with_features.cpp, Mesh_3/mesh_polyhedral_domain_with_features_sizing.cpp, Mesh_3/mesh_polyhedral_domain_with_features_sm.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.

## 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

  NamedParameters | a sequence of Named Parameters

Parameters

  np | an 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 scalar field (resp. a constant) describing a space varying (resp. a uniform) upper bound for the distance between the edge and its corresponding 1D feature. |
  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. |