CGAL 5.2.2 - 3D Triangulation Data Structure
|
#include <CGAL/Triangulation_data_structure_3.h>
The class Triangulation_data_structure_3
stores a 3D-triangulation data structure and provides the optional geometric functionalities to be used as a parameter for a 3D-geometric triangulation (see Chapter 3D Triangulations).
The vertices and cells are stored in two nested containers, which are implemented using Compact_container
(or Concurrent_compact_container
, see below). The class may offer some flexibility for the choice of container in the future, in the form of additional template parameters.
VertexBase | must be a model of TriangulationDSVertexBase_3 . The default is Triangulation_ds_vertex_base_3<TDS> . |
CellBase | must be a model of TriangulationDSCellBase_3 . The default is Triangulation_ds_cell_base_3<TDS> . |
ConcurrencyTag | enables the use of a concurrent container to store vertices and cells. It can be Sequential_tag (use of a Compact_container to store vertices and cells) or Parallel_tag (use of a Concurrent_compact_container ). If it is Parallel_tag , the following functions can be called concurrently: create_vertex() , create_cell() , delete_vertex() , and delete_cell() . Sequential_tag is the default value. |
The base class Triangulation_utils_3
defines basic computations on indices of vertices and neighbors of cells.
Types | |
typedef Triangulation_data_structure_2< VertexBase, FaceBase > | Tds |
typedef VertexBase::template Rebind_TDS< Tds >::Other | Vertex |
The vertex type. More... | |
typedef CellBase::template Rebind_TDS< Tds >::Other | Cell |
The face type. More... | |
typedef Compact_container< Vertex, Default > | Vertex_range |
Vertex container type. More... | |
typedef Compact_container< Cell, Default > | Cell_range |
Cell container type. More... | |
Operations | |
In addition to the interface documented in the concept, the class offers the following functions. | |
Cell_range & | cells () const |
Returns a reference to the container of cells. | |
Cell_range & | cells () |
Returns a reference to the container of cells. | |
Vertex_range & | vertices () const |
Returns a reference to the container of vertices. | |
Vertex_range & | vertices () |
Returns a reference to the container of vertices. | |
Additional Inherited Members | |
Static Public Member Functions inherited from CGAL::Triangulation_utils_3 | |
static unsigned int | next_around_edge (unsigned int i, unsigned int j) |
In dimension 3, index of the neighbor n that is next to the current cell, when turning positively around an oriented edge whose endpoints are indexed i and j . More... | |
static int | vertex_triple_index (const int i, const int j) |
In dimension 3, index of the j 'th vertex in counterclockwise order on the face opposite to vertex with i of the cell. More... | |
static unsigned int | ccw (unsigned int i) |
Has a meaning only in dimension 2. More... | |
static unsigned int | cw (unsigned int i) |
Same for clockwise. | |
typedef CellBase::template Rebind_TDS<Tds>::Other CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >::Cell |
The face type.
typedef Compact_container<Cell, Default> CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >::Cell_range |
Cell container type.
If ConcurrencyTag
is Parallel_tag
, a Concurrent_compact_container
is used instead of a Compact_container
.
typedef VertexBase::template Rebind_TDS<Tds>::Other CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >::Vertex |
The vertex type.
typedef Compact_container<Vertex, Default> CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >::Vertex_range |
Vertex container type.
If ConcurrencyTag
is Parallel_tag
, a Concurrent_compact_container
is used instead of a Compact_container
.