At the bottom level of 3D-triangulations (see Sections 39.4 and 40.2), 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 rebind-like 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 40.2.
template <typename TDS2> | |
TriangulationDSVertexBase_3:: struct Rebind_TDS | |
This nested template class has to define a type Other which is the
rebound vertex, that is, the one whose Triangulation_data_structure
will be the actually used one. The Other type will be the real base
class of Triangulation_data_structure_3::Vertex.
|
typedef TriangulationDataStructure_3 | ||
Triangulation_data_structure; | ||
typedef TriangulationDataStructure_3::Vertex_handle | ||
Vertex_handle; | ||
typedef TriangulationDataStructure_3::Cell_handle | ||
Cell_handle; |
TriangulationDSVertexBase_3 v; | |
Default constructor.
| |
TriangulationDSVertexBase_3 v ( Cell_handle c); | |
Constructs a vertex pointing to cell c.
|
Cell_handle | v.cell () const | Returns the pointer to an incident cell |
void | v.set_cell ( Cell_handle c) | Sets the incident cell. |
bool | v.is_valid ( bool verbose=false, int level=0) const | |
Performs any desired test on a vertex. Checks that the pointer to an incident cell is not the default constructed handle. |
void * | v.for_compact_container () const | |
void * & | v.for_compact_container () |
istream& | istream& is >> & v | Inputs the non-combinatorial information given by the vertex. |
ostream& | ostream& os << v | Outputs the non-combinatorial information given by the vertex. |
CGAL::Triangulation_ds_vertex_base_3
CGAL::Triangulation_vertex_base_3
CGAL::Triangulation_vertex_base_with_info_3
CGAL::Triangulation_hierarchy_vertex_base_3
TriangulationVertexBase_3
TriangulationHierarchyVertexBase_3
TriangulationDSCellBase_3
TriangulationCellBase_3