CGAL 4.7 - 2D Triangulation Data Structure: TriangulationDataStructure_2::Face Concept Reference

\( \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.7 - 2D Triangulation Data Structure

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

## Definition

The concept `TriangulationDataStructure_2::Face` describes the types used to store the faces face class of a `TriangulationDataStructure_2`. A `TriangulationDataStructure_2::Face` stores three handles to its three vertices and three handles to its three neighbors. The vertices are indexed 0,1, and 2 in counterclockwise order. The neighbor indexed `i` lies opposite to vertex `i`.

In degenerate cases, when the triangulation data structure stores a simplicial complex of dimension `0` and `1`, the type `TriangulationDataStructure_2::Face` is used to store the faces of maximal dimension of the complex, i.e., a vertex in dimension `0`, an edge in dimension `1`. Only vertices and neighbors with index `0` are set in the first case, only vertices and neighbors with index `0` or `1` are set in the second case.

Types

The class `TriangulationDataStructure_2::Face` defines the same types as the triangulation data structure except the iterators and the circulators.

Creation

The methods `create_face()` and `delete_face()` have to be used to define new faces and to delete no longer used faces.

Has Models:
  `CGAL::Triangulation_ds_face_base_2<Tds>`

See Also
  `TriangulationDataStructure_2`
  `TriangulationDataStructure_2::Vertex`
  `TriangulationFaceBase_2`

## Vertex Access Functions

Vertex_handle | vertex (int i) const
| returns the vertex `i` of the face. More...
int | index (Vertex_handle v) const
| returns the index of vertex `v` in the face. More...
bool | has_vertex (Vertex_handle v) const
| returns `true` if `v` is a vertex of the face.
bool | has_vertex (Vertex_handle v, int &i) const
| returns `true` if `v` is a vertex of the face, and computes the index `i` of `v` in the face.

## Neighbor Access Functions

The neighbor with index `i` is the neighbor which is opposite to the vertex with index `i`.
Face_handle | neighbor (int i) const
| returns the neighbor `i` of the face. More...
int | index (Face_handle n) const
| returns the index of face `n`. More...
bool | has_neighbor (Face_handle n) const
| returns `true` if `n` is a neighbor of the face.
bool | has_neighbor (Face_handle n, int &i) const
| returns `true` if `n` is a neighbor of the face, and compute the index `i` of `n`.

## Setting

void | set_vertex (int i, Vertex_handle v)
| sets vertex `i` to be `v`. More...
void | set_neighbor (int i, Face_handle n)
| sets neighbor `i` to be `n`. More...
void | set_vertices ()
| sets the vertex handles to `Vertex_handle()`.
void | set_vertices (Vertex_handle v0, Vertex_handle v1, Vertex_handle v2)
| sets the vertex handles.
void | set_neighbors ()
| sets the neighbors handles to `Face_handle()`.
void | set_neighbors (Face_handle n0, Face_handle n1, Face_handle n2)
| sets the neighbors handles.

## Checking

bool | is_valid () const

returns `true` if the function `is_valid()` of the base class returns `true` and if, for each index \( i\), \( 0 \le i < 3\), the face is a neighbor of its neighboring face `neighbor(i)` and shares with this neighbor the vertices `cw(i)` and `ccw(i)` in correct reverse order.

## Miscellaneous

int | ccw (int i) const
| Returns \( i+1\) modulo 3, with \( 0\leq i \leq2\).
int | cw (int i) const
| Returns \( i+2\) modulo 3, with \( 0\leq i \leq2\).
std::istream & | operator>> (std::istream &is, TriangulationDataStructure_2::Face &f)
| Inputs any non combinatorial information possibly stored in the face.
std::ostream & | operator<< (std::ostream &os, const TriangulationDataStructure_2::Face &f)
| Outputs any non combinatorial information possibly stored in the face.

## Member Function Documentation

int TriangulationDataStructure_2::Face::index | ( | Vertex_handle | v) |  | const

returns the index of vertex `v` in the face.

Precondition
  `v` is a vertex of the face.

int TriangulationDataStructure_2::Face::index | ( | Face_handle | n) |  | const

returns the index of face `n`.

Precondition
  `n` is a neighbor of the face.

Face_handle TriangulationDataStructure_2::Face::neighbor | ( | int | i) |  | const

returns the neighbor `i` of the face.

Precondition
  \( 0\leq i \leq2\).

void TriangulationDataStructure_2::Face::set_neighbor | ( | int | i,
|  | Face_handle | n
| ) |  |

sets neighbor `i` to be `n`.

Precondition
  \( 0\leq i \leq2\).

void TriangulationDataStructure_2::Face::set_vertex | ( | int | i,
|  | Vertex_handle | v
| ) |  |

sets vertex `i` to be `v`.

Precondition
  \( 0\leq i \leq2\).

Vertex_handle TriangulationDataStructure_2::Face::vertex | ( | int | i) |  | const

returns the vertex `i` of the face.

Precondition
  \( 0\leq i \leq2\).