\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 3D Triangulation Data Structure

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Triangulation_data_structure_3< TriangulationDSVertexBase_3, TriangulationDSCellBase_3, Concurrency_tag > Class Template Reference
Classes

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

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.

Is Model Of:
  `TriangulationDataStructure_3`

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

Attention
  All members listed here are additional to the interface specified by the concept.

See Also
  `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`

Examples:
  TDS_3/linking_2d_and_3d.cpp, and TDS_3/tds.cpp.

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

## Member Typedef Documentation

template<typename TriangulationDSVertexBase_3 , typename TriangulationDSCellBase_3 , typename Concurrency_tag >

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

template<typename TriangulationDSVertexBase_3 , typename TriangulationDSCellBase_3 , typename Concurrency_tag >

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