CGAL 4.11.3 - dD Triangulations
|
The concept TriangulationDSVertex
describes the requirements for the vertex base class of a CGAL::Triangulation_data_structure
. It refines the concept TriangulationDataStructure::Vertex
.
Since the CGAL::Triangulation_data_structure
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
itself is parameterized by the cell and vertex base classes, there is a cycle in the definition of these classes. In order to break the cycle, the base classes for cells and vertices which are plugged in to instantiate a Triangulation_data_structure
use a void
as triangulation data structure parameter. Then, the CGAL::Triangulation_data_structure
uses a rebind mechanism (similar to the one specified in std::allocator
) in order to plug itself as parameter in the full cell 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
actually uses as a base class for the class of CGAL::Triangulation_data_structure::Vertex
.
CGAL::Triangulation_ds_vertex<TriangulationDataStructure_>
CGAL::Triangulation_vertex<TriangulationTraits_, Data, TriangulationDSVertex_>
Types | |
typedef unspecified_type | Triangulation_data_structure |
The Triangulation_data_structure in which the vertex is defined/used. More... | |
template<typename TDS2 > | |
using | Rebind_TDS = unspecified_type |
This nested template class has to define a type Rebind_TDS<TDS2>::Other which is the rebound vertex, that is, the one that will be actually used by Triangulation_data_structure . More... | |
Creation | |
TriangulationDSVertex () | |
The default constructor (no incident full cell is set). | |
TriangulationDSVertex (Full_cell_handle c) | |
Sets the incident full cell to c . More... | |
Memory Management | |
These member functions are required by See the documentation of | |
void * | for_compact_container () const |
void *& | for_compact_container () |
using TriangulationDSVertex::Rebind_TDS = unspecified_type |
This nested template class has to define a type Rebind_TDS<TDS2>::Other
which is the rebound vertex, that is, the one that will be actually used by Triangulation_data_structure
.
The Rebind_TDS<TDS2>::Other
type will be the real base class of Triangulation_data_structure::Vertex
.
The Triangulation_data_structure
in which the vertex is defined/used.
Must be a model of the TriangulationDataStructure
concept.
TriangulationDSVertex::TriangulationDSVertex | ( | Full_cell_handle | c) |
Sets the incident full cell to c
.
c
must not be the default-constructed Full_cell_handle
.