|
CGAL 6.0 - 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. |
TriangulationDataStructure_3 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. | |
| typedef CellBase::template Rebind_TDS< Tds >::Other | Cell |
| The face type. | |
| typedef Compact_container< Vertex, Default > | Vertex_range |
| Vertex container type. | |
| typedef Compact_container< Cell, Default > | Cell_range |
| Cell container type. | |
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. | |
| 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. | |
| static unsigned int | ccw (unsigned int i) |
| Has a meaning only in dimension 2. | |
| 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.