\( \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.4 - High-dimension Triangulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
TriangulationDSVertex Concept Reference

Inherited by CGAL::Triangulation_vertex< TriangulationTraits, Data, TriangulationDSVertex >.

Definition

The concept TriangulationDSVertex describes what a vertex is in a model of the concept TriangulationDataStructure. It sets requirements of combinatorial nature only, as geometry is not concerned here. In particular, we only require that the vertex holds a handle to a full cell incident to it in the triangulation.

Has Models:

CGAL::Triangulation_ds_vertex<TriangulationDataStructure>

CGAL::Triangulation_vertex<TriangulationTraits, Data, TriangulationDSVertex>

Input/Output

These operators can be used directly and are called by the I/O operator of class TriangulationDataStructure.

See Also
TriangulationDSFullCell
TriangulationDSFace
TriangulationDataStructure
Triangulation

Types

typedef Hidden_type Triangulation_data_structure
 
 
typedef Hidden_type Full_cell_handle
 A handle to a cell. 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). More...
 
 TriangulationDSVertex (Full_cell_handle c)
 Sets the incident full cell to c. More...
 

Operations

void set_full_cell (Full_cell_handle c)
 Set c as the vertex's incident full cell. More...
 
Full_cell_handle full_cell () const
 Returns a handle to a full cell incident to the vertex. More...
 

Validity check

bool is_valid (bool verbose=false) const
 Performs some validity checks on the vertex v. More...
 

Memory management

These member functions are required by Triangulation_data_structure 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 ()
 
template<class TriangulationDataStructure >
std::ostream & operator<< (std::ostream &os, const Triangulation_ds_vertex< TriangulationDataStructure > &v)
 
 
template<class TriangulationDataStructure >
std::istream & operator>> (std::istream &is, Triangulation_ds_vertex< TriangulationDataStructure > &v)
 
 

Member Typedef Documentation

A handle to a cell.

It must be the same as the nested type TriangulationDataStructure::Full_cell_handle.

template<typename TDS2 >
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.

Note
It can be implemented using a nested template class.

Modifications:
The Triangulation_data_structure in which the TriangulationDSVertex is defined/used.

Must be a model of the TriangulationDataStructure concept.

Constructor & Destructor Documentation

TriangulationDSVertex::TriangulationDSVertex ( )

The default constructor (no incident full cell is set).

TriangulationDSVertex::TriangulationDSVertex ( Full_cell_handle  c)

Sets the incident full cell to c.

Precondition
c must not be the default-constructed Full_cell_handle.

Member Function Documentation

void* TriangulationDSVertex::for_compact_container ( ) const
void* & TriangulationDSVertex::for_compact_container ( )
Full_cell_handle TriangulationDSVertex::full_cell ( ) const

Returns a handle to a full cell incident to the vertex.

bool TriangulationDSVertex::is_valid ( bool  verbose = false) const

Performs some validity checks on the vertex v.

It must at least check that v has an incident full cell, which in turn must contain v as one of its vertices.

Returns true if all the tests pass, false if any test fails. See the documentation for the models of this concept to see the additionnal (if any) validity checks that they implement.

template<class TriangulationDataStructure >
std::ostream& TriangulationDSVertex::operator<< ( std::ostream &  os,
const Triangulation_ds_vertex< TriangulationDataStructure > &  v 
)

Modifications:
Writes (possibly) non-combinatorial information about vertex v to the stream os.
template<class TriangulationDataStructure >
std::istream& TriangulationDSVertex::operator>> ( std::istream &  is,
Triangulation_ds_vertex< TriangulationDataStructure > &  v 
)

Modifications:
Reads from stream is the vertex information written by operator<<.
void TriangulationDSVertex::set_full_cell ( Full_cell_handle  c)

Set c as the vertex's incident full cell.

Precondition
c must not be the default-constructed Full_cell_handle.