CGAL 4.12 - 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.
Parameters
It is parameterized by base classes for vertices and cells which have to match the requirements for the concepts TriangulationDSCellBase_3
and TriangulationDSVertexBase_3
respectively.
They have the default values Triangulation_ds_vertex_base_3<TDS>
and Triangulation_ds_cell_base_3<TDS>
respectively.
The Concurrency_tag
parameter allows to enable 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
, 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.
CGAL::Triangulation_ds_vertex_base_3
CGAL::Triangulation_ds_cell_base_3
CGAL::Triangulation_vertex_base_with_info_3
CGAL::Triangulation_cell_base_with_info_3
Types | |
typedef Compact_container< Vertex, Default > | Vertex_range |
Vertex container type. More... | |
typedef Compact_container< Cell, Default > | Cell_range |
Cell container type. More... | |
Operations | |
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 Compact_container<Cell, Default> CGAL::Triangulation_data_structure_3< TriangulationDSVertexBase_3, TriangulationDSCellBase_3, Concurrency_tag >::Cell_range |
Cell container type.
If Concurrency_tag is Parallel_tag, a Concurrent_compact_container
is used instead of a Compact_container
.
typedef Compact_container<Vertex, Default> CGAL::Triangulation_data_structure_3< TriangulationDSVertexBase_3, TriangulationDSCellBase_3, Concurrency_tag >::Vertex_range |
Vertex container type.
If Concurrency_tag is Parallel_tag, a Concurrent_compact_container
is used instead of a Compact_container
.