CGAL 6.0  2D Triangulation Data Structure

The concept TriangulationDSVertexBase_2
describes the requirements for the vertex base class of a CGAL::Triangulation_data_structure_2<Vb,Fb>
.
Note that if the CGAL::Triangulation_data_structure_2
is plugged into a triangulation class, the vertex base class may have additional geometric requirements depending on the triangulation class.
At the base level, provides access to one of its incident faces through a Face_handle
.
Since the CGAL::Triangulation_data_structure_2
is the class which defines the handle types, the vertex base class has to be somehow parameterized by the triangulation data structure. But since the CGAL::Triangulation_data_structure_2
itself is parameterized by the face and vertex base classes, there is a cycle in the definition of these classes. In order to break the cycle, the base classes for faces and vertices which are plugged in to instantiate a Triangulation_data_structure_2
use void
as triangulation data structure parameter. Then, the CGAL::Triangulation_data_structure_2
uses a rebind mechanism (similar to the one specified in std::allocator
) in order to plug itself as parameter in the face and vertex base classes. This mechanism requires that the base class provides a templated nested class Rebind_TDS
that itself provides the subtype Rebind_TDS::Other
which is the rebound version of the base class. This rebound base class is the class that the CGAL::Triangulation_data_structure_2
actually uses as a base class for the class of CGAL::Triangulation_data_structure_2::Vertex
.
CGAL::Triangulation_ds_vertex_base_2<Tds>
TriangulationDSFaceBase_2
CGAL::Triangulation_data_structure_2<Vb,Fb>
Types  
The concept  
template<typename TDS2 >  
using  Rebind_TDS = unspecified_type 
This template class has to define a type Rebind_TDS<TDS2>::Other which is the rebound vertex base , where the actual CGAL::Triangulation_data_structure_2 is plugged in.  
typedef TriangulationDataStructure_2  Triangulation_data_structure 
typedef TriangulationDataStructure_2::Vertex_handle  Vertex_handle 
typedef TriangulationDataStructure_2::Face_handle  Face_handle 
Creation  
TriangulationDSVertexBase_2 ()  
default constructor.  
TriangulationDSVertexBase_2 (Face_handle f)  
Constructs a vertex pointing to face f .  
Various  
These member functions are required by See the documentation of  
void *  for_compact_container () const 
void  for_compact_container (void *p) 
using TriangulationDSVertexBase_2::Rebind_TDS = unspecified_type 
This template class has to define a type Rebind_TDS<TDS2>::Other
which is the rebound vertex base , where the actual CGAL::Triangulation_data_structure_2
is plugged in.
This type Other
will be the actual base of the class CGAL::Triangulation_data_structure_2::Vertex
.