\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 3D Triangulation Data Structure

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
TriangulationDSVertexBase_3 Concept Reference
Concepts

## Definition

At the bottom level of 3D-triangulations (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 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 Software Design.

Has Models:

  CGAL::Triangulation_ds_vertex_base_3

  CGAL::Triangulation_vertex_base_3

  CGAL::Triangulation_vertex_base_with_info_3

See Also
  `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 `CGAL::Triangulation_data_structure_3` because it uses `CGAL::Compact_container` to store its cells. See the documentation of `CGAL::Compact_container` for the exact requirements.
void * | for_compact_container () const
void *& | for_compact_container ()
istream & | operator>> (istream &is, TriangulationDSVertexBase_3 &v)
| Inputs the non-combinatorial information given by the vertex.
ostream & | operator<< (ostream &os, const TriangulationDSVertexBase_3 &v)
| Outputs the non-combinatorial information given by the vertex.

## Member Typedef Documentation

template<typename TDS2 >

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`.

Note
  It can be implemented using a nested template class.

## Member Function Documentation

bool TriangulationDSVertexBase_3::is_valid | ( | bool | verbose = `false`,
|  | int | level = `0`
| ) |  | const

This is a function for debugging purpose.

Debugging Support

Performs any desired test on a vertex. Checks that the pointer to an incident cell is not the default constructed handle.