CGAL 5.4 - 3D Surface Mesh Generation
SurfaceMeshCellBase_3 Concept Reference

## Definition

The concept SurfaceMeshCellBase_3 describes the cell base type of the three dimensional triangulation used to embed the surface mesh.

More precisely, the first template parameter SurfaceMeshC2T3 of the function template CGAL::make_surface_mesh() is a model of the concept SurfaceMeshComplex_2InTriangulation_3 which describes a data structure to store a pure two dimensional complex embedded in a three dimensional triangulation. In particular, the type SurfaceMeshC2T3 is required to provide a three dimensional triangulation type SurfaceMeshC2T3::Triangulation_3. The concept SurfaceMeshCellBase_3 describes the cell base type required in this triangulation type.

Refines:
DelaunayTriangulationCellBase_3

The concept SurfaceMeshCellBase_3 adds four markers to mark the facets of the triangulation that belong to the two dimensional complex, and four markers that are helpers used in some operations to mark for instance the facets that have been visited.
This concept also provides storage for the center of a Delaunay surface ball. Given a surface and a 3D Delaunay triangulation, a Delaunay surface ball is a ball circumscribed to a facet of the triangulation and centered on the surface and empty of triangulation vertices. Such a ball does exist when the facet is part of the restriction to the surface of a three dimensional triangulation. In the following we call surface center of a facet, the center of its biggest Delaunay surface ball.

Has Models:

CGAL::Surface_mesh_cell_base_3<Gt,Vb>

CGAL::Surface_mesh_default_triangulation_3::Cell

SurfaceMeshTriangulation_3
SurfaceMeshComplex_2InTriangulation_3
CGAL::Surface_mesh_complex_2_in_triangulation_3<Tr>
CGAL::Surface_mesh_default_triangulation_3
CGAL::make_surface_mesh()

## Types

typedef unspecified_type Point
The point type, required to match the point type of the three dimensional triangulation in which the surface mesh is embedded.

## Operations

bool is_facet_on_surface (int i)
returns true, if facet(i) is in the 2D complex.

void set_facet_on_surface (int i, bool b)
Sets facet(i) as part of the 2D complex, if b is true, and NOT_IN_COMPLEX, otherwise.

bool is_facet_visited (int i)
Returns true, if facet(i) has been visited, false otherwise.

void set_facet_visited (int i, bool b)
Marks facet(i) as visited, if b is true, and non visited otherwise.

const Pointget_facet_surface_center (int i)
Returns a const reference to the surface center of facet(i).

void set_facet_surface_center (int i, Point p)
Sets point p as the surface center of facet(i).