CGAL 4.8.2 - 3D Triangulation Data Structure
TriangulationDataStructure_3::Cell Concept Reference

## Definition

The concept TriangulationDataStructure_3::Cell stores four Vertex_handles to its four vertices and four Cell_handles to its four neighbors. The vertices are indexed 0, 1, 2, and 3 in consistent order. The neighbor indexed $$i$$ lies opposite to vertex i.

In degenerate dimensions, cells are used to store faces of maximal dimension: in dimension 2, each cell represents only one facet of index 3, and 3 edges $$(0,1)$$, $$(1,2)$$ and $$(2,0)$$; in dimension 1, each cell represents one edge $$(0,1)$$. (See also Section Representation.)

Creation

In order to obtain new cells or destruct unused cells, the user must call the create_cell() and delete_cell() methods of the triangulation data structure.

TriangulationDataStructure_3::Vertex

## Types

typedef
TriangulationDataStructure_3
Triangulation_data_structure

typedef
TriangulationDataStructure_3::Vertex_handle
Vertex_handle

typedef
TriangulationDataStructure_3::Cell_handle
Cell_handle

## Access Functions

Vertex_handle vertex (int i) const
Returns the vertex i of c. More...

int index (Vertex_handle v) const
Returns the index of vertex v in c. More...

bool has_vertex (Vertex_handle v) const
Returns true if v is a vertex of c.

bool has_vertex (Vertex_handle v, int &i) const
Returns true if v is a vertex of c, and computes its index i in c.

Cell_handle neighbor (int i) const
Returns the neighbor i of c. More...

int index (Cell_handle n) const
Returns the index corresponding to neighboring cell n. More...

bool has_neighbor (Cell_handle n) const
Returns true if n is a neighbor of c.

bool has_neighbor (Cell_handle n, int &i) const
Returns true if n is a neighbor of c, and computes its index i in c.

## Setting

void set_vertex (int i, Vertex_handle v)
Sets vertex i to v. More...

void set_vertices (Vertex_handle v0, Vertex_handle v1, Vertex_handle v2, Vertex_handle v3)
Sets the vertex pointers.

void set_neighbor (int i, Cell_handle n)
Sets neighbor i to n. More...

void set_neighbors (Cell_handle n0, Cell_handle n1, Cell_handle n2, Cell_handle n3)
Sets the neighbors pointers.

## Checking

bool is_valid (bool verbose=false, int level=0) const
This is a function for debugging purpose. More...

## Member Function Documentation

 int TriangulationDataStructure_3::Cell::index ( Vertex_handle v) const

Returns the index of vertex v in c.

Precondition
v is a vertex of c.
 int TriangulationDataStructure_3::Cell::index ( Cell_handle n) const

Returns the index corresponding to neighboring cell n.

Precondition
n is a neighbor of c.
 bool TriangulationDataStructure_3::Cell::is_valid ( bool verbose = false, int level = 0 ) const

This is a function for debugging purpose.

Debugging Support

User defined local validity checking function.

 Cell_handle TriangulationDataStructure_3::Cell::neighbor ( int i) const

Returns the neighbor i of c.

Precondition
$$i \in\{0, 1, 2, 3\}$$.
 void TriangulationDataStructure_3::Cell::set_neighbor ( int i, Cell_handle n )

Sets neighbor i to n.

Precondition
$$i \in\{0, 1, 2, 3\}$$.
 void TriangulationDataStructure_3::Cell::set_vertex ( int i, Vertex_handle v )

Sets vertex i to v.

Precondition
$$i \in\{0, 1, 2, 3\}$$.
 Vertex_handle TriangulationDataStructure_3::Cell::vertex ( int i) const

Returns the vertex i of c.

Precondition
$$i \in\{0, 1, 2, 3\}$$.