Regina Calculation Engine
|
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::FaceEmbedding< dim, subdim >::FaceEmbedding ()=default | |
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)=default | |
Creates a new copy of the given object. More... | |
FaceEmbedding & | regina::FaceEmbedding< dim, subdim >::operator= (const FaceEmbedding &cloneMe)=default |
Sets this to be a 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 &src)=default | |
Creates a copy of the given isomorphism. More... | |
regina::Isomorphism< dim >::Isomorphism (Isomorphism &&src) noexcept=default | |
Moves the given isomorphism into this new 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... | |
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 (const FaceList &)=delete | |
FaceList & | regina::FaceList< dim, subdim >::operator= (const FaceList &)=delete |
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... | |
regina::DegreeLessThan< dim, subdim >::DegreeLessThan (const DegreeLessThan &)=default | |
Creates a new clone of the given function object. 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... | |
DegreeLessThan & | regina::DegreeLessThan< dim, subdim >::operator= (const DegreeLessThan &)=delete |
regina::DegreeGreaterThan< dim, subdim >::DegreeGreaterThan (const Triangulation< dim > &tri) | |
Constructions a function object for working with faces of the given triangulation. More... | |
regina::DegreeGreaterThan< dim, subdim >::DegreeGreaterThan (const DegreeGreaterThan &)=default | |
Creates a new clone of the given function object. 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... | |
DegreeGreaterThan & | regina::DegreeGreaterThan< dim, subdim >::operator= (const DegreeGreaterThan &)=delete |
Variables | |
static constexpr const PacketType | regina::Triangulation< dim >::PacketTypeInfo::typeID = PacketType(100 + dim) |
Constructors and Destructors | |
regina::Triangulation< dim >::Triangulation () | |
Default constructor. More... | |
regina::Triangulation< dim >::Triangulation (const Triangulation ©) | |
Creates a new copy of the given triangulation. More... | |
regina::Triangulation< dim >::Triangulation (const Triangulation ©, 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 override |
virtual void | regina::Triangulation< dim >::writeTextLong (std::ostream &out) const override |
virtual bool | regina::Triangulation< dim >::dependsOnParent () const override |
static XMLPacketReader * | regina::Triangulation< dim >::xmlReader (Packet *parent, XMLTreeResolver &resolver) |
virtual Packet * | regina::Triangulation< dim >::internalClonePacket (Packet *parent) const override |
virtual void | regina::Triangulation< dim >::writeXMLPacketData (std::ostream &out) const override |
Details for implementing triangulations in arbitrary dimensions.
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>).
Edge5
).dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
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>).
EdgeEmbedding5
).dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
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>*
.
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>).
Pentachoron9
).dim | the dimension of the underlying triangulation. This must be between 4 and 15 inclusive. |
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>).
PentachoronEmbedding14
).dim | the dimension of the underlying triangulation. This must be between 5 and 15 inclusive. |
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>).
dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
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>).
Tetrahedron7
).dim | the dimension of the underlying triangulation. This must be between 3 and 15 inclusive. |
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>).
TetrahedronEmbedding7
).dim | the dimension of the underlying triangulation. This must be between 4 and 15 inclusive. |
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>).
Triangle4
).dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
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>).
TriangleEmbedding12
).dim | the dimension of the underlying triangulation. This must be between 3 and 15 inclusive. |
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>).
Vertex8
).dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
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>).
VertexEmbedding3
).dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
|
inline |
Returns an iterator pointing to the first subdim-face.
|
default |
Creates a new clone of the given function object.
|
inline |
Constructions a function object for working with faces of the given triangulation.
tri | the triangulation with which we are working. |
|
default |
Creates a new clone of the given function object.
|
inline |
Constructions a function object for working with faces of the given triangulation.
tri | the triangulation with which we are working. |
|
inlineprotected |
Destroys all faces in this list, and clears the list itself.
|
inline |
Returns an iterator pointing beyond the last subdim-face.
|
inlineprotected |
Creates a new face.
component | the component of the underlying triangulation to which the new face belongs. |
|
inlineprotected |
Creates a new simplex with the given description and no facets joined to anything.
desc | the description to give the new simplex. |
tri | the triangulation to which the new simplex belongs. |
|
inlineprotected |
Creates a new simplex with no description and no facets joined to anything.
tri | the triangulation to which the new simplex belongs. |
|
default |
Default constructor.
This object is unusable until it has some data assigned to it using operator =
.
|
default |
Creates a new copy of the given object.
cloneMe | the object to copy. |
|
inline |
Creates a new object containing the given data.
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. |
|
protecteddefault |
Creates an empty list of subdim-faces.
|
inline |
Creates a new clone of the given facet pairing.
cloneMe | the facet pairing to clone. |
|
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.
tri | the triangulation whose facet pairing should be constructed. |
|
default |
Creates a copy of the given isomorphism.
src | the isomorphism to copy. |
|
defaultnoexcept |
Moves the given isomorphism into this new isomorphism.
This is a fast (constant time) operation.
The isomorphism that is passed (src) will no longer be usable.
src | the isomorphism to move. |
|
inline |
Creates a new isomorphism with no initialisation.
The images of the simplices and their vertices must be explicitly set using simpImage() and facetPerm().
nSimplices | the number of simplices in the source triangulation associated with this isomorphism. This is allowed to be zero. |
|
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.
a | the index of the first subdim-dimensional face within the triangulation. |
b | the index of the second subdim-dimensional face within the triangulation. |
true
if and only if face a has smaller degree than face b within the given triangulation.
|
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.
a | the index of the first subdim-dimensional face within the triangulation. |
b | the index of the second subdim-dimensional face within the triangulation. |
true
if and only if face a has greater degree than face b within the given triangulation.
|
default |
Sets this to be a copy of the given object.
cloneMe | the object to copy. |
|
inline |
|
inlineprotected |
Pushes the given face onto the end of this list.
This object will take ownership of the given face.
face | the face to push. |
|
inlineprotected |
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.
Iterator | an input iterator type, whose dereference operator returns a pointer of type Face<dim, subdim>* . |
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. |
|
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.
other | the triangulation to compare against this. |
true
if and only if the degree sequences are equal.
|
inline |
Returns the number of subdim-faces in the triangulation.
|
inlineprotected |
Swaps all faces in this list with those in the given list.
other | the list of faces to swap with this. |
|
inline |
Default constructor.
Creates an empty triangulation.
|
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.
copy | the triangulation to copy. |
|
inline |
Creates a new copy of the given triangulation, with the option of whether or not to clone its computed properties also.
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. |
|
inlinevirtual |
Destroys this triangulation.
The constituent simplices, the cellular structure and all other properties will also be destroyed.