CGAL 5.6.3 - dD Triangulations

Loading...
Searching...
No Matches
List of all members
CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex_, TriangulationDSFullCell_ > Class Template Reference
dD Triangulations Reference » Triangulation Classes

`#include <CGAL/Triangulation_data_structure.h>`

## Definition

template<typename Dimensionality, typename TriangulationDSVertex_, typename TriangulationDSFullCell_>
class CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex_, TriangulationDSFullCell_ >

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

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

## Types
template<typename Vb2 >
using | Rebind_vertex = unspecified_type
| This is an advanced type.
template<typename Fcb2 >
using | Rebind_full_cell = unspecified_type
| This is an advanced type.

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

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

## Vertex insertion
template<OutputIterator >
Full_cell_handle | insert_in_tagged_hole (Vertex_handle v, Facet f, OutputIterator new_full_cells)
| This is an advanced function.

## Member Typedef Documentation

## ◆ Rebind_full_cell

template<typename Dimensionality , typename TriangulationDSVertex_ , typename TriangulationDSFullCell_ >
template<typename Fcb2 >

using CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex_, TriangulationDSFullCell_ >::Rebind_full_cell = unspecified_type

This is an advanced 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.

## ◆ Rebind_vertex

template<typename Dimensionality , typename TriangulationDSVertex_ , typename TriangulationDSFullCell_ >
template<typename Vb2 >

using CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex_, TriangulationDSFullCell_ >::Rebind_vertex = unspecified_type

This is an advanced 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

## ◆ Triangulation_data_structure()

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

## ◆ insert_in_tagged_hole()

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

This is an advanced function.

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()`

## ◆ is_valid()

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