\( \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.7 - dD Triangulations
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex, TriangulationDSFullCell > Class Template Reference

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