Generic triangulations

Details for implementing triangulations in arbitrary dimensions. More...

## Classes

class | regina::BoundaryComponent< dim >
| A component of the boundary of a dim-manifold triangulation. More...
class | regina::Component< dim >
| A connected component of a dim-manifold triangulation. More...
class | regina::FaceEmbedding< dim, subdim >
| Details how a subdim-face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
class | regina::Face< dim, subdim >
| Represents a subdim-face in the skeleton of a dim-dimensional triangulation. More...
class | regina::FacetPairing< dim >
| Represents the dual graph of a dim-manifold triangulation; that is, the pairwise matching of facets of dim-dimensional simplices. More...
class | regina::Isomorphism< dim >
| Represents a combinatorial isomorphism from one dim-manifold triangulation into another. More...
class | regina::Face< dim, dim >
| Represents a top-dimensional simplex in a dim-manifold triangulation. More...
class | regina::FaceList< dim, subdim >
| Stores the list of all subdim-faces of a dim-dimensional triangulation. More...
class | regina::Triangulation< dim >
| A dim-dimensional triangulation, built by gluing together dim-dimensional simplices along their (dim-1)-dimensional facets. More...
class | regina::DegreeLessThan< dim, subdim >
| A function object used for sorting faces of triangulations by increasing degree. More...
class | regina::DegreeGreaterThan< dim, subdim >
| A function object used for sorting faces of triangulations by decreasing degree. More...

## Typedefs

template<int dim>
using | regina::VertexEmbedding = FaceEmbedding< dim, 0 >
| Details how a vertex of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
template<int dim>
using | regina::EdgeEmbedding = FaceEmbedding< dim, 1 >
| Details how a edge of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
template<int dim>
using | regina::TriangleEmbedding = FaceEmbedding< dim, 2 >
| Details how a triangular face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
template<int dim>
using | regina::TetrahedronEmbedding = FaceEmbedding< dim, 3 >
| Details how a tetrahedral face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
template<int dim>
using | regina::PentachoronEmbedding = FaceEmbedding< dim, 4 >
| Details how a pentachoron face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
template<int dim>
using | regina::Vertex = Face< dim, 0 >
| Refers to a vertex of a dim-dimensional triangulation. More...
template<int dim>
using | regina::Edge = Face< dim, 1 >
| Refers to an edge of a dim-dimensional triangulation. More...
template<int dim>
using | regina::Triangle = Face< dim, 2 >
| Refers to a triangular face of a dim-dimensional triangulation. More...
template<int dim>
using | regina::Tetrahedron = Face< dim, 3 >
| Refers to a tetrahedral face of a dim-dimensional triangulation. More...
template<int dim>
using | regina::Pentachoron = Face< dim, 4 >
| Refers to a pentachoron face of a dim-dimensional triangulation. More...
template<int dim>
using | regina::Simplex = Face< dim, dim >
| Refers to a top-dimensional simplex in a dim-dimensional triangulation. More...
typedef std::vector< Face< dim, subdim > * >::const_iterator | regina::FaceList< dim, subdim >::Iterator
| An iterator type for iterating through this list of faces. More...

## Functions

| regina::FaceList< dim, subdim >::FaceList (const FaceList &)=delete
| Explicitly disable the copy constructor. More...
FaceList & | regina::FaceList< dim, subdim >::operator= (const FaceList &)=delete
| Explicitly disable the assignment operator. More...
size_t | regina::FaceList< dim, subdim >::size () const
| Returns the number of subdim-faces in the triangulation. More...
Face< dim, subdim > * | regina::FaceList< dim, subdim >::operator[] (size_t index) const
| Returns the requested subdim-face. More...
Iterator | regina::FaceList< dim, subdim >::begin () const
| Returns an iterator pointing to the first subdim-face. More...
Iterator | regina::FaceList< dim, subdim >::end () const
| Returns an iterator pointing beyond the last subdim-face. More...
| regina::FaceList< dim, subdim >::FaceList ()=default
| Creates an empty list of subdim-faces. More...
void | regina::FaceList< dim, subdim >::push_back (Face< dim, subdim > *face)
| Pushes the given face onto the end of this list. More...
void | regina::FaceList< dim, subdim >::destroy ()
| Destroys all faces in this list, and clears the list itself. More...
void | regina::FaceList< dim, subdim >::swap (FaceList< dim, subdim > &other)
| Swaps all faces in this list with those in the given list. More...
bool | regina::FaceList< dim, subdim >::sameDegrees (const FaceList< dim, subdim > &other) const
| Tests whether this and the given triangulation have the same subdim-face degree sequences. More...
template<typename Iterator >
void | regina::FaceList< dim, subdim >::reorderFaces (Iterator begin, Iterator end)
| Reorders this list of faces. More...

## Detailed Description

Details for implementing triangulations in arbitrary dimensions.

## Typedef Documentation

## Edge

template<int dim>

using regina::Edge = typedef Face<dim, 1>

Refers to an edge of a dim-dimensional triangulation.

This is the preferred way to refer to an edge of a triangulation (as opposed to the more clumsy notation Face<dim, 1>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `Edge5`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## EdgeEmbedding

template<int dim>

using regina::EdgeEmbedding = typedef FaceEmbedding<dim, 1>

Details how a edge of a dim-dimensional triangulation appears within each top-dimensional simplex.

This is the preferred way to refer to this class (as opposed to the more clumsy notation FaceEmbedding<dim, 1>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `EdgeEmbedding5`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## Iterator

template<int dim, int subdim>

typedef std::vector<Face<dim, subdim>*>::const_iterator regina::FaceList< dim, subdim >::Iterator

An iterator type for iterating through this list of faces.

Dereferencing such an iterator will return a pointer of type `Face<dim, subdim>*`.

## Pentachoron

template<int dim>

using regina::Pentachoron = typedef Face<dim, 4>

Refers to a pentachoron face of a dim-dimensional triangulation.

This alias is also valid for the case dim = 4, where it refers to a top-dimensional simplex of a 4-dimensional triangulation.

This is the preferred way to refer to a 4-face of a triangulation (as opposed to the more clumsy notation Face<dim, 4>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `Pentachoron9`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 4 and 15 inclusive.

## PentachoronEmbedding

template<int dim>

using regina::PentachoronEmbedding = typedef FaceEmbedding<dim, 4>

Details how a pentachoron face of a dim-dimensional triangulation appears within each top-dimensional simplex.

This is the preferred way to refer to this class (as opposed to the more clumsy notation FaceEmbedding<dim, 4>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `PentachoronEmbedding14`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 5 and 15 inclusive.

## Simplex

template<int dim>

using regina::Simplex = typedef Face<dim, dim>

Refers to a top-dimensional simplex in a dim-dimensional triangulation.

This is the preferred way to refer to a top-dimensional simplex (as opposed to the more clumsy notation Face<dim, dim>).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## Tetrahedron

template<int dim>

using regina::Tetrahedron = typedef Face<dim, 3>

Refers to a tetrahedral face of a dim-dimensional triangulation.

This alias is also valid for the case dim = 3, where it refers to a top-dimensional simplex of a 3-dimensional triangulation.

This is the preferred way to refer to a 3-face of a triangulation (as opposed to the more clumsy notation Face<dim, 3>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `Tetrahedron7`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 3 and 15 inclusive.

## TetrahedronEmbedding

template<int dim>

using regina::TetrahedronEmbedding = typedef FaceEmbedding<dim, 3>

Details how a tetrahedral face of a dim-dimensional triangulation appears within each top-dimensional simplex.

This is the preferred way to refer to this class (as opposed to the more clumsy notation FaceEmbedding<dim, 3>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `TetrahedronEmbedding7`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 4 and 15 inclusive.

## Triangle

template<int dim>

using regina::Triangle = typedef Face<dim, 2>

Refers to a triangular face of a dim-dimensional triangulation.

This alias is also valid for the case dim = 2, where it refers to a top-dimensional simplex of a 2-dimensional triangulation.

This is the preferred way to refer to a 2-face of a triangulation (as opposed to the more clumsy notation Face<dim, 2>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `Triangle4`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## TriangleEmbedding

template<int dim>

using regina::TriangleEmbedding = typedef FaceEmbedding<dim, 2>

Details how a triangular face of a dim-dimensional triangulation appears within each top-dimensional simplex.

This is the preferred way to refer to this class (as opposed to the more clumsy notation FaceEmbedding<dim, 2>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `TriangleEmbedding12`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 3 and 15 inclusive.

## Vertex

template<int dim>

using regina::Vertex = typedef Face<dim, 0>

Refers to a vertex of a dim-dimensional triangulation.

This is the preferred way to refer to a vertex of a triangulation (as opposed to the more clumsy notation Face<dim, 0>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `Vertex8`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## VertexEmbedding

template<int dim>

using regina::VertexEmbedding = typedef FaceEmbedding<dim, 0>

Details how a vertex of a dim-dimensional triangulation appears within each top-dimensional simplex.

This is the preferred way to refer to this class (as opposed to the more clumsy notation FaceEmbedding<dim, 0>).

Python:
  Python does not support templates. Instead this alias can be used by appending the dimension dim as a suffix (e.g., `VertexEmbedding3`).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## Function Documentation

## begin()

template<int dim, int subdim>

FaceList< dim, subdim >::Iterator regina::FaceList< dim, subdim >::begin | ( |  | ) | const

inline

Returns an iterator pointing to the first subdim-face.

Returns
  an iterator at the beginning of this list.

## destroy()

template<int dim, int subdim>

void regina::FaceList< dim, subdim >::destroy | ( |  | ) |

inline protected

Destroys all faces in this list, and clears the list itself.

## end()

template<int dim, int subdim>

FaceList< dim, subdim >::Iterator regina::FaceList< dim, subdim >::end | ( |  | ) | const

inline

Returns an iterator pointing beyond the last subdim-face.

Returns
  an iterator beyond the end of this list.

## FaceList() [1/2]

template<int dim, int subdim>

regina::FaceList< dim, subdim >::FaceList | ( | const FaceList< dim, subdim > & |  | ) |

delete

Explicitly disable the copy constructor.

## FaceList() [2/2]

template<int dim, int subdim>

regina::FaceList< dim, subdim >::FaceList | ( |  | ) |

protected default

Creates an empty list of subdim-faces.

## operator=()

template<int dim, int subdim>

FaceList& regina::FaceList< dim, subdim >::operator= | ( | const FaceList< dim, subdim > & |  | ) |

delete

Explicitly disable the assignment operator.

## operator[]()

template<int dim, int subdim>

Face< dim, subdim > * regina::FaceList< dim, subdim >::operator[] | ( | size_t | index | ) | const

inline

Returns the requested subdim-face.

Parameters

  index | indicates which face to return; this must be between 0 and size()-1 inclusive.

Returns
  the (index)th subdim-face.

## push_back()

template<int dim, int subdim>

void regina::FaceList< dim, subdim >::push_back | ( | Face< dim, subdim > * | face | ) |

inline protected

Pushes the given face onto the end of this list.

This object will take ownership of the given face.

Parameters

  face | the face to push.

## reorderFaces()

template<int dim, int subdim>
template<typename Iterator >

void regina::FaceList< dim, subdim >::reorderFaces | ( | Iterator | begin,
|  | Iterator | end
| ) |  |

inline protected

Reorders this list of faces.

The given range should contain exactly the faces in this list but in a (possibly) different order. This routine will then replace the items in this list with the given range, which will therefore just reorder them.

Note that the indices returned by Face<dim, subdim>::index() will change as a result.

Precondition
  The range of faces defined by begin and end contains exactly the faces in this list, but possibly in a different order.

Template Parameters

  Iterator | an input iterator type, whose dereference operator returns a pointer of type `Face<dim, subdim>*`.

Parameters

  begin | an iterator that points to the beginning of the range of reordered faces.
  end | an iterator that points past the end of the range of reordered faces.

## sameDegrees()

template<int dim, int subdim>

bool regina::FaceList< dim, subdim >::sameDegrees | ( | const FaceList< dim, subdim > & | other | ) | const

protected

Tests whether this and the given triangulation have the same subdim-face degree sequences.

For the purposes of this routine, degree sequences are considered to be unordered.

Precondition
  This and the given triangulation are known to have the same number of subdim-faces as each other.

Parameters

  other | the triangulation to compare against this.

Returns
  `true` if and only if the degree sequences are equal.

## size()

template<int dim, int subdim>

size_t regina::FaceList< dim, subdim >::size | ( |  | ) | const

inline

Returns the number of subdim-faces in the triangulation.

Returns
  the number of subdim-faces.

## swap()

template<int dim, int subdim>

void regina::FaceList< dim, subdim >::swap | ( | FaceList< dim, subdim > & | other | ) |

inline protected

Swaps all faces in this list with those in the given list.

Parameters

  other | the list of faces to swap with this.

Copyright © 1999-2016, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).