CGAL 4.13  3D Triangulation Data Structure

At the bottom level of 3Dtriangulations (see Sections Software Design and Software Design), a vertex provides access to one of its incident cells through a handle.
Note that when you use the triangulation data structure as parameter of a geometric triangulation, the vertex base class has additional geometric requirements : it has to match the TriangulationVertexBase_3
concept.
Since the 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 it is itself 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 vertex and cell which are given as arguments for the Triangulation data structure use void
as Triangulation data structure parameter, and the Triangulation data structure then uses a rebindlike mechanism (similar to the one specified in std::allocator
) in order to put itself as parameter to the vertex and cell classes. The rebound base classes so obtained are the classes which are used as base classes for the final vertex and cell classes. More information can be found in Section Software Design.
TriangulationVertexBase_3
TriangulationHierarchyVertexBase_3
TriangulationDSCellBase_3
TriangulationCellBase_3
Types  
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, that is, the one whose Triangulation_data_structure will be the actually used one. More...  
typedef TriangulationDataStructure_3  Triangulation_data_structure 
typedef TriangulationDataStructure_3::Vertex_handle  Vertex_handle 
typedef TriangulationDataStructure_3::Cell_handle  Cell_handle 
Creation  
TriangulationVertexBase_3 ()  
Default constructor.  
TriangulationVertexBase_3 (Cell_handle c)  
Constructs a vertex pointing to cell c .  
Access Functions  
Cell_handle  cell () const 
Returns the pointer to an incident cell.  
Setting  
void  set_cell (Cell_handle c) 
Sets the incident cell.  
Checking  
bool  is_valid (bool verbose=false, int level=0) const 
This is a function for debugging purpose. More...  
Members for Compact_container  
Advanced
These member functions are required by See the documentation of  
void *  for_compact_container () const 
void *&  for_compact_container () 
istream &  operator>> (istream &is, TriangulationDSVertexBase_3 &v) 
Inputs the noncombinatorial information given by the vertex.  
ostream &  operator<< (ostream &os, const TriangulationDSVertexBase_3 &v) 
Outputs the noncombinatorial information given by the vertex.  
using TriangulationDSVertexBase_3::Rebind_TDS = unspecified_type 
This template class has to define a type Rebind_TDS<TDS2>::Other
which is the rebound vertex, that is, the one whose Triangulation_data_structure
will be the actually used one.
Rebind_TDS<TDS2>::Other
will be the real base class of Triangulation_data_structure_3::Vertex
.
bool TriangulationDSVertexBase_3::is_valid  (  bool  verbose = false , 
int  level = 0 

)  const 
This is a function for debugging purpose.
Performs any desired test on a vertex. Checks that the pointer to an incident cell is not the default constructed handle.