Generic triangulations

## 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::FaceEmbedding< dim, subdim >::FaceEmbedding ()
| Default constructor. More...
| regina::FaceEmbedding< dim, subdim >::FaceEmbedding (Simplex< dim > *simplex, int face)
| Creates a new object containing the given data. More...
| regina::FaceEmbedding< dim, subdim >::FaceEmbedding (const FaceEmbedding &cloneMe)
| Creates a new copy of the given object. More...
| regina::Face< dim, subdim >::Face (Component< dim > *component)
| Creates a new face. More...
| regina::FacetPairing< dim >::FacetPairing (const FacetPairing &cloneMe)
| Creates a new clone of the given facet pairing. More...
| regina::FacetPairing< dim >::FacetPairing (const Triangulation< dim > &tri)
| Creates the dual graph of the given triangulation. More...
| regina::Isomorphism< dim >::Isomorphism (unsigned nSimplices)
| Creates a new isomorphism with no initialisation. More...
| regina::Isomorphism< dim >::Isomorphism (const Isomorphism &copy)
| Creates a copy of the given isomorphism. More...
| regina::Face< dim, dim >::Face (Triangulation< dim > *tri)
| Creates a new simplex with no description and no facets joined to anything. More...
| regina::Face< dim, dim >::Face (const std::string &desc, Triangulation< dim > *tri)
| Creates a new simplex with the given description and no facets joined to anything. More...
| 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...
static std::string | regina::Triangulation< dim >::PacketTypeInfo::name ()
| regina::DegreeLessThan< dim, subdim >::DegreeLessThan (const Triangulation< dim > &tri)
| Constructions a function object for working with faces of the given triangulation. More...
bool | regina::DegreeLessThan< dim, subdim >::operator() (unsigned a, unsigned b) const
| Compares the degrees of the subdim-dimensional faces at the given indices within the working triangulation. More...
| regina::DegreeGreaterThan< dim, subdim >::DegreeGreaterThan (const Triangulation< dim > &tri)
| Constructions a function object for working with faces of the given triangulation. More...
bool | regina::DegreeGreaterThan< dim, subdim >::operator() (unsigned a, unsigned b) const
| Compares the degrees of the subdim-dimensional faces at the given indices within the working triangulation. More...

## Variables

static constexpr const PacketType | regina::Triangulation< dim >::PacketTypeInfo::typeID = PacketType(100 + dim)

## Friends

class | regina::BoundaryComponent< dim >::Triangulation< dim >
class | regina::BoundaryComponent< dim >::detail::TriangulationBase< dim >
class | regina::Component< dim >::detail::TriangulationBase< dim >
class | regina::Face< dim, subdim >::Triangulation< dim >
class | regina::Face< dim, subdim >::detail::TriangulationBase< dim >
class | regina::FacetPairing< dim >::detail::FacetPairingBase< dim >
class | regina::Face< dim, dim >::Triangulation< dim >
class | regina::Face< dim, dim >::detail::TriangulationBase< dim >

## Constructors and Destructors

| regina::Triangulation< dim >::Triangulation ()
| Default constructor. More...
| regina::Triangulation< dim >::Triangulation (const Triangulation &copy)
| Creates a new copy of the given triangulation. More...
| regina::Triangulation< dim >::Triangulation (const Triangulation &copy, bool cloneProps)
| Creates a new copy of the given triangulation, with the option of whether or not to clone its computed properties also. More...
virtual | regina::Triangulation< dim >::~Triangulation ()
| Destroys this triangulation. More...

## Packet Administration

class | regina::Triangulation< dim >::detail::SimplexBase< dim >
class | regina::Triangulation< dim >::detail::TriangulationBase< dim >
virtual void | regina::Triangulation< dim >::writeTextShort (std::ostream &out) const
| Writes a short text representation of this object to the given output stream. More...
virtual void | regina::Triangulation< dim >::writeTextLong (std::ostream &out) const
| Writes a detailed text representation of this object to the given output stream. More...
virtual bool | regina::Triangulation< dim >::dependsOnParent () const
| Determines if this packet depends upon its parent. More...
static XMLPacketReader * | regina::Triangulation< dim >::xmlReader (Packet *parent, XMLTreeResolver &resolver)
virtual Packet * | regina::Triangulation< dim >::internalClonePacket (Packet *parent) const
| Makes a newly allocated copy of this packet. More...
virtual void | regina::Triangulation< dim >::writeXMLPacketData (std::ostream &out) const
| Writes a chunk of XML containing the data for this packet only. 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:\n 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:\n 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:\n 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:\n 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:\n 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:\n 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:\n 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:\n 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:\n 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:\n 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.

## DegreeGreaterThan()

template<int dim, int subdim>

regina::DegreeGreaterThan< dim, subdim >::DegreeGreaterThan | ( | const Triangulation< dim > & | tri | ) |

inline

Constructions a function object for working with faces of the given triangulation.

Parameters

  tri | the triangulation with which we are working.

## DegreeLessThan()

template<int dim, int subdim>

regina::DegreeLessThan< dim, subdim >::DegreeLessThan | ( | const Triangulation< dim > & | tri | ) |

inline

Constructions a function object for working with faces of the given triangulation.

Parameters

  tri | the triangulation with which we are working.

## dependsOnParent()

template<int dim>

bool regina::Triangulation< dim >::dependsOnParent | ( |  | ) | const

inline virtual

Determines if this packet depends upon its parent.

This is true if the parent cannot be altered without invalidating or otherwise upsetting this packet.

Returns
  `true` if and only if this packet depends on its parent.

Implements regina::Packet.

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

## Face() [1/3]

template<int dim, int subdim>

regina::Face< dim, subdim >::Face | ( | Component< dim > * | component | ) |

inline protected

Creates a new face.

Parameters

  component | the component of the underlying triangulation to which the new face belongs.

## Face() [2/3]

template<int dim>

regina::Face< dim, dim >::Face | ( | const std::string & | desc,
|  | Triangulation< dim > * | tri
| ) |  |

inline protected

Creates a new simplex with the given description and no facets joined to anything.

Parameters

  desc | the description to give the new simplex.
  tri | the triangulation to which the new simplex belongs.

## Face() [3/3]

template<int dim>

regina::Face< dim, dim >::Face | ( | Triangulation< dim > * | tri | ) |

inline protected

Creates a new simplex with no description and no facets joined to anything.

Parameters

  tri | the triangulation to which the new simplex belongs.

## FaceEmbedding() [1/3]

template<int dim, int subdim>

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

inline

Default constructor.

This object is unusable until it has some data assigned to it using `operator =`.

Python:\n Not present.

## FaceEmbedding() [2/3]

template<int dim, int subdim>

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

inline

Creates a new copy of the given object.

Parameters

  cloneMe | the object to copy.

## FaceEmbedding() [3/3]

template<int dim, int subdim>

regina::FaceEmbedding< dim, subdim >::FaceEmbedding | ( | Simplex< dim > * | simplex,
|  | int | face
| ) |  |

inline

Creates a new object containing the given data.

Parameters

  simplex | the top-dimensional simplex in which the underlying subdim-face of the triangulation is contained.
  face | the corresponding face number of simplex. This must be between 0 and (dim+1 choose subdim+1)-1 inclusive.

## FaceList() [1/2]

template<int dim, int subdim>

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

protected default

Creates an empty list of subdim-faces.

## FaceList() [2/2]

template<int dim, int subdim>

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

delete

Explicitly disable the copy constructor.

## FacetPairing() [1/2]

template<int dim>

regina::FacetPairing< dim >::FacetPairing | ( | const FacetPairing< dim > & | cloneMe | ) |

inline

Creates a new clone of the given facet pairing.

Parameters

  cloneMe | the facet pairing to clone.

## FacetPairing() [2/2]

template<int dim>

regina::FacetPairing< dim >::FacetPairing | ( | const Triangulation< dim > & | tri | ) |

inline

Creates the dual graph of the given triangulation.

This is the facet pairing that describes how the facets of simplices in the given triangulation are joined together, as described in the class notes.

Precondition
  The given triangulation is not empty.

Parameters

  tri | the triangulation whose facet pairing should be constructed.

## internalClonePacket()

template<int dim>

Packet * regina::Triangulation< dim >::internalClonePacket | ( | Packet * | parent | ) | const

inline protected virtual

Makes a newly allocated copy of this packet.

This routine should not insert the new packet into the tree structure, clone the packet's associated tags or give the packet a label. It should also not clone any descendants of this packet.

You may assume that the new packet will eventually be inserted into the tree beneath either the same parent as this packet or a clone of that parent.

Parameters

  parent | the parent beneath which the new packet will eventually be inserted.

Returns
  the newly allocated packet.

Implements regina::Packet.

## Isomorphism() [1/2]

template<int dim>

regina::Isomorphism< dim >::Isomorphism | ( | const Isomorphism< dim > & | copy | ) |

inline

Creates a copy of the given isomorphism.

Parameters

  copy | the isomorphism to copy.

## Isomorphism() [2/2]

template<int dim>

regina::Isomorphism< dim >::Isomorphism | ( | unsigned | nSimplices | ) |

inline

Creates a new isomorphism with no initialisation.

The images of the simplices and their vertices must be explicitly set using simpImage() and facetPerm().

Python:\n Not present.

Parameters

  nSimplices | the number of simplices in the source triangulation associated with this isomorphism. This is allowed to be zero.

## operator()() [1/2]

template<int dim, int subdim>

bool regina::DegreeLessThan< dim, subdim >::operator() | ( | unsigned | a,
|  | unsigned | b
| ) |  | const

inline

Compares the degrees of the subdim-dimensional faces at the given indices within the working triangulation.

The triangulation that is used will be the one that was passed to the class constructor.

Precondition
  Both a and b are non-negative, and are strictly less than the total number of subdim-dimensional faces in the triangulation.

Parameters

  a | the index of the first subdim-dimensional face within the triangulation.
  b | the index of the second subdim-dimensional face within the triangulation.

Returns
  `true` if and only if face a has smaller degree than face b within the given triangulation.

## operator()() [2/2]

template<int dim, int subdim>

bool regina::DegreeGreaterThan< dim, subdim >::operator() | ( | unsigned | a,
|  | unsigned | b
| ) |  | const

inline

Compares the degrees of the subdim-dimensional faces at the given indices within the working triangulation.

The triangulation that is used will be the one that was passed to the class constructor.

Precondition
  Both a and b are non-negative, and are strictly less than the total number of subdim-dimensional faces in the triangulation.

Parameters

  a | the index of the first subdim-dimensional face within the triangulation.
  b | the index of the second subdim-dimensional face within the triangulation.

Returns
  `true` if and only if face a has greater degree than face b within the given triangulation.

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

## Triangulation() [1/3]

template<int dim>

regina::Triangulation< dim >::Triangulation | ( |  | ) |

inline

Default constructor.

Creates an empty triangulation.

## Triangulation() [2/3]

template<int dim>

regina::Triangulation< dim >::Triangulation | ( | const Triangulation< dim > & | copy | ) |

inline

Creates a new copy of the given triangulation.

The packet tree structure and packet label are not copied.

This will clone any computed properties (such as homology, fundamental group, and so on) of the given triangulation also. If you want a "clean" copy that resets all properties to unknown, you can use the two-argument copy constructor instead.

Parameters

  copy | the triangulation to copy.

## Triangulation() [3/3]

template<int dim>

regina::Triangulation< dim >::Triangulation | ( | const Triangulation< dim > & | copy,
|  | bool | cloneProps
| ) |  |

inline

Creates a new copy of the given triangulation, with the option of whether or not to clone its computed properties also.

Parameters

  copy | the triangulation to copy.
  cloneProps | `true` if this should also clone any computed properties of the given triangulation (such as homology, fundamental group, and so on), or `false` if the new triangulation should have all properties marked as unknown.

## writeTextLong()

template<int dim>

void regina::Triangulation< dim >::writeTextLong | ( | std::ostream & | out | ) | const

virtual

Writes a detailed text representation of this object to the given output stream.

This may be reimplemented by subclasses, but the parent Packet class offers a reasonable default implementation.

Python:\n Not present.

Parameters

  out | the output stream to which to write.

Reimplemented from regina::Packet.

## writeTextShort()

template<int dim>

void regina::Triangulation< dim >::writeTextShort | ( | std::ostream & | out | ) | const

inline virtual

Writes a short text representation of this object to the given output stream.

This must be reimplemented by subclasses.

Python:\n Not present.

Parameters

  out | the output stream to which to write.

Implements regina::Packet.

## writeXMLPacketData()

template<int dim>

void regina::Triangulation< dim >::writeXMLPacketData | ( | std::ostream & | out | ) | const

protected virtual

Writes a chunk of XML containing the data for this packet only.

You may assume that the packet opening tag (including the packet type and label) has already been written, and that all child packets followed by the corresponding packet closing tag will be written immediately after this routine is called. This routine need only write the internal data stored in this specific packet.

Parameters

  out | the output stream to which the XML should be written.

Implements regina::Packet.

## ~Triangulation()

template<int dim>

regina::Triangulation< dim >::~Triangulation | ( |  | ) |

inline virtual

Destroys this triangulation.

The constituent simplices, the cellular structure and all other properties will also be destroyed.

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