\( \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 - dD Triangulations

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell > Class Template Reference
Triangulation Classes

`#include <CGAL/Triangulation_data_structure.h>`

## Definition

This class is a data structure used for storing a triangulation of dimension \( d\leq D\) (`D` is the maximal dimension).

## Parameters

`Dimensionality` can be either

- CGAL::`Dimension_tag<D>` for some integer `D`. This indicates that the triangulation data structure can store simplices (full cells) of dimension at most `D`. The maximal dimension `D` is known by the compiler, which triggers some optimizations. Or

- CGAL::`Dynamic_dimension_tag`. In this case, the maximum dimension of the simplices (full cells) is passed as an integer argument to an instance constructor (see `TriangulationDataStructure`).

The template parameter `TriangulationDSVertex` stands for a class to be used as the base `Vertex` type in the triangulation data structure. It must be a model of the concept `TriangulationDSVertex`. The class template `Triangulation_data_structure` can be defined by specifying only the first parameter. It also accepts the tag `CGAL::Default` as second parameter. In both cases, `TriangulationDSVertex` defaults to `CGAL::Triangulation_ds_vertex<>`.

The template parameter `TriangulationDSFullCell` stands for a class to be used as the base `Full_cell` type in the triangulation data structure. It must be a model of the concept `TriangulationDSFullCell`. The class template `Triangulation_data_structure` accepts that no third parameter be specified. It also accepts the tag `CGAL::Default` as third parameter. In both cases, `TriangulationDSFullCell` defaults to `CGAL::Triangulation_ds_full_cell<>`.

Is Model Of:
  `TriangulationDataStructure`. In addition, the class `Triangulation_data_structure` provides the following types and methods.

See Also
  `Triangulation_ds_vertex`
  `Triangulation_ds_full_cell`

Examples:
  barycentric_subdivision.cpp, triangulation_data_structure_dynamic.cpp, and triangulation_data_structure_static.cpp.

## Creation
| Triangulation_data_structure (const Triangulation_data_structure &t2)
| The copy constructor. More...

## Validity check
bool | is_valid (bool verbose=true) const
| Implements the validity checks required by the concept `TriangulationDataStructure`. More...

## Types
template<typename Vb2 >
using | Rebind_vertex = unspecified_type
| Advanced This template class allows to get the type of a triangulation data structure that only changes the vertex type. More...
template<typename Fcb2 >
using | Rebind_full_cell = unspecified_type
| Advanced This template class allows to get the type of a triangulation data structure that only changes the full cell type. More...

## Vertex insertion
template<OutputIterator >
Full_cell_handle | insert_in_tagged_hole (Vertex_handle v, Facet f, OutputIterator new_full_cells)
| Advanced A set `C` of full cells satisfying the same condition as in method `Triangulation_data_structure::insert_in_hole()` is assumed to be marked. More...

## Member Typedef Documentation

template<typename Dimensionality , typename TriangulationDSVertex , typename TriangulationDSFullCell >
template<typename Fcb2 >

using CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell >::Rebind_full_cell = unspecified_type

Advanced
This template class allows to get the type of a triangulation data structure that only changes the full cell type.

It has to define a type `Other` which is a rebound triangulation data structure with `Fcb2` as full cell type.

Note
  It can be implemented using a nested template class.

template<typename Dimensionality , typename TriangulationDSVertex , typename TriangulationDSFullCell >
template<typename Vb2 >

using CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell >::Rebind_vertex = unspecified_type

Advanced
This template class allows to get the type of a triangulation data structure that only changes the vertex type.

It has to define a type `Other` which is a rebound triangulation data structure with `Vb2` as vertex type.

Note
  It can be implemented using a nested template class.

## Constructor & Destructor Documentation

template<typename Dimensionality , typename TriangulationDSVertex , typename TriangulationDSFullCell >

CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell >::Triangulation_data_structure | ( | const Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell > & | t2) |  |

The copy constructor.

Creates a copy of the `Triangulation_data_structure` `t2` passed as argument. All vertices and full cells are duplicated.

## Member Function Documentation

template<typename Dimensionality , typename TriangulationDSVertex , typename TriangulationDSFullCell >
template<OutputIterator >

Full_cell_handle CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell >::insert_in_tagged_hole | ( | Vertex_handle | v,
|  | Facet | f,
|  | OutputIterator | new_full_cells
| ) |  |

Advanced
A set `C` of full cells satisfying the same condition as in method `Triangulation_data_structure::insert_in_hole()` is assumed to be marked.

This method creates new full cells from vertex `v` to the boundary of `C`. The boundary is recognized by checking the mark of the full cells. This method is used by `Triangulation_data_structure::insert_in_hole()`. s

Precondition
  same as `TriangulationDataStructure::insert_in_hole()`

template<typename Dimensionality , typename TriangulationDSVertex , typename TriangulationDSFullCell >

bool CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell >::is_valid | ( | bool | verbose = `true`) |  | const

Implements the validity checks required by the concept `TriangulationDataStructure`.

Note that passing all these tests does not guarantee that we have a triangulation (abstract pure simplicial complex).