CGAL 5.6.1 - 3D Triangulation Data Structure
CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag > Class Template Reference

#include <CGAL/Triangulation_data_structure_3.h>

Inherits from

CGAL::Triangulation_utils_3.

Definition

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.

Template Parameters
VertexBasemust be a model of TriangulationDSVertexBase_3. The default is Triangulation_ds_vertex_base_3<TDS>.
CellBasemust be a model of TriangulationDSCellBase_3. The default is Triangulation_ds_cell_base_3<TDS>.
ConcurrencyTagenables 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.
Is Model Of:
TriangulationDataStructure_3

The base class Triangulation_utils_3 defines basic computations on indices of vertices and neighbors of cells.

See also
CGAL::Triangulation_ds_vertex_base_3
CGAL::Triangulation_ds_cell_base_3
Examples:
TDS_3/linking_2d_and_3d.cpp, and TDS_3/tds.cpp.

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, DefaultVertex_range
 Vertex container type. More...
 
typedef Compact_container< Cell, DefaultCell_range
 Cell container type. More...
 

Operations

In addition to the interface documented in the concept, the class offers the following functions.

Cell_rangecells () const
 Returns a reference to the container of cells.
 
Cell_rangecells ()
 Returns a reference to the container of cells.
 
Vertex_rangevertices () const
 Returns a reference to the container of vertices.
 
Vertex_rangevertices ()
 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.
 

Member Typedef Documentation

◆ Cell

template<typename VertexBase , typename CellBase , typename ConcurrencyTag >
typedef CellBase::template Rebind_TDS<Tds>::Other CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >::Cell

The face type.

See also
Section Cyclic Dependency

◆ Cell_range

template<typename VertexBase , typename CellBase , typename ConcurrencyTag >
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.

◆ Vertex

template<typename VertexBase , typename CellBase , typename ConcurrencyTag >
typedef VertexBase::template Rebind_TDS<Tds>::Other CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >::Vertex

The vertex type.

See also
Section Cyclic Dependency

◆ Vertex_range

template<typename VertexBase , typename CellBase , typename ConcurrencyTag >
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.