CGAL 6.1 - 3D Triangulation Data Structure

Loading...
Searching...
No Matches
List of all members
CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag > Class Template Reference
Reference Manual » Classes

`#include <CGAL/Triangulation_data_structure_3.h>`

## Inherits from

CGAL::Triangulation_utils_3.

## Definition

template<typename VertexBase, typename CellBase, typename ConcurrencyTag>
class CGAL::Triangulation_data_structure_3< VertexBase, CellBase, ConcurrencyTag >

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

  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.

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.
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.

## 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`.