CGAL 6.0.1 - dD Triangulations
Loading...
Searching...
No Matches
CGAL::Triangulation_data_structure< Dimensionality, TriangulationDSVertex_, TriangulationDSFullCell_ > Class Template Reference

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

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