The Delaunay refinement process involved in the function template make_surface_mesh is guided by a set of refinement criteria. The concept SurfaceMeshFacetsCriteria_3 describes the type which handles those criteria. It corresponds to the requirements for the template parameter FacetsCriteria of the surface mesher function make_surface_mesh<SurfaceMeshC2T3,Surface,FacetsCriteria,Tag> .
Typically the meshing criteria are a set of elementary criteria, each of which has to be met by the facets of the final mesh. The meshing algorithm eliminates in turn bad facets, i.e., facets that do not meet all the criteria.
The size and quality of the final mesh depends on the order according to which bad facets are handled. Therefore, the meshing algorithm needs to be able to quantify the facet qualities and to compare the qualities of different faces. The concept SurfaceMeshFacetsCriteria_3 defines a type Quality designed to measure the quality of a mesh facet. Typically this quality is a multicomponent variable. Each component corresponds to one criterion and measures how much the facet deviates from meeting this criterion. Then, the comparison operator on qualities is just a lexicographical comparison. The meshing algorithm handles facets with lowest quality first. The qualities are computed by a function is_bad(Facet f, Quality& q).
SurfaceMeshFacetsCriteria_3::Facet | |
The type of facets. This type has to match
the Facet type in the triangulation type used by
the mesher function. (This triangulation type
is the type SurfaceMeshC2T3::Triangulation
provided by the model of
SurfaceMeshComplex_2InTriangulation_3 plugged
as first template parameter of
make_surface_mesh).
| |
SurfaceMeshFacetsCriteria_3::Quality | |
Default constructible, copy constructible,
assignable, and less-than comparable type.
|
bool | criteria.is_bad ( Facet f, Quality& q) | |
Assigns the quality of the facet f to q, and returns true is f does not meet the criteria. |
Surface_mesh_default_criteria_3<Tr>