Regina Calculation Engine
|
Represents a layered chain in a triangulation. More...
#include <subcomplex/layeredchain.h>
Public Member Functions | |
LayeredChain (Tetrahedron< 3 > *tet, Perm< 4 > vertexRoles) | |
Creates a new layered chain containing only the given tetrahedron. More... | |
LayeredChain (const LayeredChain &cloneMe)=default | |
Creates a new layered chain that is a clone of the given structure. More... | |
virtual | ~LayeredChain () |
Destroys this layered chain. More... | |
Tetrahedron< 3 > * | bottom () const |
Returns the bottom tetrahedron of this layered chain. More... | |
Tetrahedron< 3 > * | top () const |
Returns the top tetrahedron of this layered chain. More... | |
unsigned long | index () const |
Returns the number of tetrahedra in this layered chain. More... | |
Perm< 4 > | bottomVertexRoles () const |
Returns a permutation represeting the role that each vertex of the bottom tetrahedron plays in the layered chain. More... | |
Perm< 4 > | topVertexRoles () const |
Returns a permutation represeting the role that each vertex of the top tetrahedron plays in the layered chain. More... | |
bool | extendAbove () |
Checks to see whether this layered chain can be extended to include the tetrahedron above the top tetrahedron (and still remain a layered chain). More... | |
bool | extendBelow () |
Checks to see whether this layered chain can be extended to include the tetrahedron below the bottom tetrahedron (and still remain a layered chain). More... | |
bool | extendMaximal () |
Extends this layered chain to a maximal length layered chain. More... | |
void | reverse () |
Reverses this layered chain so the top tetrahedron becomes the bottom and vice versa. More... | |
void | invert () |
Inverts this layered chain so the upper hinge becomes the lower and vice versa. More... | |
Manifold * | manifold () const override |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | homology () const override |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | writeName (std::ostream &out) const override |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | writeTeXName (std::ostream &out) const override |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | writeTextLong (std::ostream &out) const override |
Writes a detailed text representation of this object to the given output stream. More... | |
std::string | name () const |
Returns the name of this specific triangulation as a human-readable string. More... | |
std::string | TeXName () const |
Returns the name of this specific triangulation in TeX format. More... | |
AbelianGroup * | homologyH1 () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
virtual void | writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
std::string | str () const |
Returns a short text representation of this object. More... | |
std::string | utf8 () const |
Returns a short text representation of this object using unicode characters. More... | |
std::string | detail () const |
Returns a detailed text representation of this object. More... | |
Static Public Member Functions | |
static StandardTriangulation * | isStandardTriangulation (Component< 3 > *component) |
Determines whether the given component represents one of the standard triangulations understood by Regina. More... | |
static StandardTriangulation * | isStandardTriangulation (Triangulation< 3 > *tri) |
Determines whether the given triangulation represents one of the standard triangulations understood by Regina. More... | |
Represents a layered chain in a triangulation.
A layered chain is a set of n tetrahedra glued to each other by layerings. For each tetrahedron, select two top faces, two bottom faces and two hinge edges, so that the top faces are adjacent, the bottom faces are adjacent, the hinge edges are opposite and each hinge meets both a top and a bottom face. The tetrahedron can thus be thought of as a fattened square with the top and bottom faces above and below the square respectively, and the hinges as the top and bottom edges of the square. The left and right edges of the square are identified to form an annulus.
For each i, the top faces of tetrahedron i are glued to the bottom faces of tetrahedron i+1. This is done by layering the upper tetrahedron upon the annulus formed by the top faces of the lower tetrahedron. The layering should be done over the left or right edge of the lower square (note that these two edges are actually identified). The top hinges of each tetrahedron should be identified, as should the bottom hinges.
The bottom faces of the first tetrahedron and the top faces of the last tetrahedron form the boundary of the layered chain. If there is more than one tetrahedron, the layered chain forms a solid torus with two vertices whose axis is parallel to each hinge edge.
The index of the layered chain is the number of tetrahedra it contains. A layered chain must contain at least one tetrahedron.
Note that for the purposes of manifold() and homology(), a layered chain containing only one tetrahedron will be considered as a standalone tetrahedron that forms a 3-ball (and not a solid torus).
All optional StandardTriangulation routines are implemented for this class.
|
inherited |
Returns a detailed text representation of this object.
This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.
|
inherited |
Returns a short text representation of this object.
This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.
str()
.
|
inherited |
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.