Regina Calculation Engine
Public Member Functions | Static Public Member Functions | List of all members
regina::LayeredChain Class Reference

Represents a layered chain in a triangulation. More...

#include <subcomplex/layeredchain.h>

Inheritance diagram for regina::LayeredChain:
regina::StandardTriangulation regina::Output< StandardTriangulation >

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...
 
Manifoldmanifold () const override
 Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More...
 
AbelianGrouphomology () 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...
 
AbelianGrouphomologyH1 () 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 StandardTriangulationisStandardTriangulation (Component< 3 > *component)
 Determines whether the given component represents one of the standard triangulations understood by Regina. More...
 
static StandardTriangulationisStandardTriangulation (Triangulation< 3 > *tri)
 Determines whether the given triangulation represents one of the standard triangulations understood by Regina. More...
 

Detailed Description

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.

Member Function Documentation

◆ detail()

std::string regina::Output< StandardTriangulation , false >::detail ( ) const
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.

Returns
a detailed text representation of this object.

◆ str()

std::string regina::Output< StandardTriangulation , false >::str ( ) const
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.

Python:\n In addition to str(), this is also used as the
Python "stringification" function str().
Returns
a short text representation of this object.

◆ utf8()

std::string regina::Output< StandardTriangulation , false >::utf8 ( ) const
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.

Returns
a short text representation of this object.

The documentation for this class was generated from the following file:

Copyright © 1999-2020, 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).