\( \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.12 - 3D Triangulation Data Structure
CGAL::Triangulation_data_structure_3< TriangulationDSVertexBase_3, TriangulationDSCellBase_3, Concurrency_tag > 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.

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

Operations

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_range

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.

◆ Vertex_range

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.