Regina Calculation Engine
|
Classes | |
class | regina::AugTriSolidTorus |
Represents an augmented triangular solid torus component of a triangulation. More... | |
class | regina::BlockedSFS |
Represents a blocked Seifert fibred space (possibly with boundary). More... | |
class | regina::BlockedSFSLoop |
Represents a blocked Seifert fibred space with two boundary tori that are joined together. More... | |
class | regina::BlockedSFSPair |
Represents a blocked pair of Seifert fibred spaces joined along a single connecting torus. More... | |
class | regina::BlockedSFSTriple |
Represents a blocked sequence of three Seifert fibred spaces joined along connecting tori. More... | |
class | regina::L31Pillow |
Represents a triangular pillow L(3,1) component of a triangulation. More... | |
class | regina::LayeredChain |
Represents a layered chain in a triangulation. More... | |
class | regina::LayeredChainPair |
Represents a layered chain pair component of a triangulation. More... | |
class | regina::LayeredLensSpace |
Represents a layered lens space component of a triangulation. More... | |
class | regina::LayeredLoop |
Represents a layered loop component of a triangulation. More... | |
class | regina::LayeredSolidTorus |
Represents a layered solid torus in a triangulation. More... | |
class | regina::LayeredTorusBundle |
Describes a layered torus bundle. More... | |
class | regina::Layering |
Represents a layering of zero or more tetrahedra upon a torus boundary. More... | |
class | regina::PillowTwoSphere |
Represents a 2-sphere made from two triangles glued together along their three edges. More... | |
class | regina::PluggedTorusBundle |
Describes a triangulation of a graph manifold formed by joining a bounded saturated region with a thin I-bundle over the torus, possibly with layerings in between. More... | |
class | regina::PlugTriSolidTorus |
Represents a plugged triangular solid torus component of a triangulation. More... | |
struct | regina::SatAnnulus |
Represents an annulus formed from a pair of triangles in a Seifert fibred space. More... | |
class | regina::SatBlock |
Represents a saturated block in a Seifert fibred space. More... | |
class | regina::SatBlockStarter |
Contains a triangulation of a saturated block along with the accompanying saturated block description. More... | |
class | regina::SatBlockStarterSet |
Represents a set of starter blocks that can be used for identifying triangulations of Seifert fibred spaces. More... | |
class | regina::SatBlockStarterSearcher |
A helper class for locating and using starter blocks within a triangulation. More... | |
class | regina::SatMobius |
A degenerate zero-tetrahedron saturated block that corresponds to attaching a Mobius band to a single annulus boundary. More... | |
class | regina::SatLST |
A saturated block that is a layered solid torus. More... | |
class | regina::SatTriPrism |
A saturated block that is a three-tetrahedron triangular prism. More... | |
class | regina::SatCube |
A saturated block that is a six-tetrahedron cube. More... | |
class | regina::SatReflectorStrip |
A saturated block that is a reflector strip. More... | |
class | regina::SatLayering |
A degenerate saturated block that is a single tetrahedron wrapped around so that two opposite edges touch. More... | |
struct | regina::SatBlockSpec |
Describes how a single saturated block forms a part of a larger saturated region. More... | |
class | regina::SatRegion |
A large saturated region in a Seifert fibred space formed by joining together saturated blocks. More... | |
class | regina::SnapPeaCensusTri |
Represents a 3-manifold triangulation from the SnapPea cusped census. More... | |
class | regina::SnappedBall |
Represents a snapped 3-ball in a triangulation. More... | |
class | regina::SnappedTwoSphere |
Represents a 2-sphere made from two snapped 3-balls in a triangulation. More... | |
class | regina::SpiralSolidTorus |
Represents a spiralled solid torus in a triangulation. More... | |
class | regina::StandardTriangulation |
Describes a triangulation or subcomplex of a triangulation whose structure is well-understood. More... | |
class | regina::TriSolidTorus |
Represents a three-tetrahedron triangular solid torus in a triangulation. More... | |
class | regina::TrivialTri |
Represents one of a few particular hard-coded trivial triangulations that do not belong to any of the other larger families. More... | |
class | regina::TxICore |
Provides a triangulation of the product T x I (the product of the torus and the interval). More... | |
class | regina::TxIDiagonalCore |
One of a family of thin T x I triangulations that typically appear at the centres of layered torus bundles. More... | |
class | regina::TxIParallelCore |
A specific six-tetrahedron TxICore triangulation that does not fit neatly into other families. More... | |
Typedefs | |
typedef AugTriSolidTorus | regina::NAugTriSolidTorus |
Deprecated typedef for backward compatibility. More... | |
typedef BlockedSFS | regina::NBlockedSFS |
Deprecated typedef for backward compatibility. More... | |
typedef BlockedSFSLoop | regina::NBlockedSFSLoop |
Deprecated typedef for backward compatibility. More... | |
typedef BlockedSFSPair | regina::NBlockedSFSPair |
Deprecated typedef for backward compatibility. More... | |
typedef BlockedSFSTriple | regina::NBlockedSFSTriple |
Deprecated typedef for backward compatibility. More... | |
typedef L31Pillow | regina::NL31Pillow |
Deprecated typedef for backward compatibility. More... | |
typedef LayeredChain | regina::NLayeredChain |
Deprecated typedef for backward compatibility. More... | |
typedef LayeredChainPair | regina::NLayeredChainPair |
Deprecated typedef for backward compatibility. More... | |
typedef LayeredLensSpace | regina::NLayeredLensSpace |
Deprecated typedef for backward compatibility. More... | |
typedef LayeredLoop | regina::NLayeredLoop |
Deprecated typedef for backward compatibility. More... | |
typedef LayeredSolidTorus | regina::NLayeredSolidTorus |
Deprecated typedef for backward compatibility. More... | |
typedef LayeredTorusBundle | regina::NLayeredTorusBundle |
Deprecated typedef for backward compatibility. More... | |
typedef Layering | regina::NLayering |
Deprecated typedef for backward compatibility. More... | |
typedef PillowTwoSphere | regina::NPillowTwoSphere |
Deprecated typedef for backward compatibility. More... | |
typedef PluggedTorusBundle | regina::NPluggedTorusBundle |
Deprecated typedef for backward compatibility. More... | |
typedef PlugTriSolidTorus | regina::NPlugTriSolidTorus |
Deprecated typedef for backward compatibility. More... | |
typedef SatAnnulus | regina::NSatAnnulus |
Deprecated typedef for backward compatibility. More... | |
typedef std::set< Tetrahedron< 3 > * > | regina::SatBlock::TetList |
The data structure used to store a list of tetrahedra that should not be examined by isBlock(). More... | |
typedef SatBlock | regina::NSatBlock |
Deprecated typedef for backward compatibility. More... | |
typedef SatBlockStarter | regina::NSatBlockStarter |
Deprecated typedef for backward compatibility. More... | |
typedef ListOnCall< SatBlockStarter >::iterator | regina::SatBlockStarterSet::iterator |
An iterator over the starter blocks in this list. More... | |
typedef SatBlockStarterSet | regina::NSatBlockStarterSet |
Deprecated typedef for backward compatibility. More... | |
typedef SatBlockStarterSearcher | regina::NSatBlockStarterSearcher |
Deprecated typedef for backward compatibility. More... | |
typedef SatMobius | regina::NSatMobius |
Deprecated typedef for backward compatibility. More... | |
typedef SatLST | regina::NSatLST |
Deprecated typedef for backward compatibility. More... | |
typedef SatTriPrism | regina::NSatTriPrism |
Deprecated typedef for backward compatibility. More... | |
typedef SatCube | regina::NSatCube |
Deprecated typedef for backward compatibility. More... | |
typedef SatReflectorStrip | regina::NSatReflectorStrip |
Deprecated typedef for backward compatibility. More... | |
typedef SatLayering | regina::NSatLayering |
Deprecated typedef for backward compatibility. More... | |
typedef SatBlockSpec | regina::NSatBlockSpec |
Deprecated typedef for backward compatibility. More... | |
typedef SatRegion | regina::NSatRegion |
Deprecated typedef for backward compatibility. More... | |
typedef SnapPeaCensusTri | regina::NSnapPeaCensusTri |
Deprecated typedef for backward compatibility. More... | |
typedef SnappedBall | regina::NSnappedBall |
Deprecated typedef for backward compatibility. More... | |
typedef SnappedTwoSphere | regina::NSnappedTwoSphere |
Deprecated typedef for backward compatibility. More... | |
typedef SpiralSolidTorus | regina::NSpiralSolidTorus |
Deprecated typedef for backward compatibility. More... | |
typedef StandardTriangulation | regina::NStandardTriangulation |
Deprecated typedef for backward compatibility. More... | |
typedef TriSolidTorus | regina::NTriSolidTorus |
Deprecated typedef for backward compatibility. More... | |
typedef TrivialTri | regina::NTrivialTri |
Deprecated typedef for backward compatibility. More... | |
typedef TxICore | regina::NTxICore |
Deprecated typedef for backward compatibility. More... | |
typedef TxIDiagonalCore | regina::NTxIDiagonalCore |
Deprecated typedef for backward compatibility. More... | |
typedef TxIParallelCore | regina::NTxIParallelCore |
Deprecated typedef for backward compatibility. More... | |
Functions | |
virtual | regina::AugTriSolidTorus::~AugTriSolidTorus () |
Destroys this augmented solid torus; note that the corresponding triangular and layered solid tori will also be destroyed. More... | |
AugTriSolidTorus * | regina::AugTriSolidTorus::clone () const |
Returns a newly created clone of this structure. More... | |
const TriSolidTorus & | regina::AugTriSolidTorus::core () const |
Returns the triangular solid torus at the core of this triangulation. More... | |
const LayeredSolidTorus * | regina::AugTriSolidTorus::augTorus (int annulus) const |
Returns the layered solid torus attached to the requested annulus on the boundary of the core triangular solid torus. More... | |
Perm< 4 > | regina::AugTriSolidTorus::edgeGroupRoles (int annulus) const |
Returns a permutation describing the role played by each top level edge group of the layered solid torus glued to the requested annulus of the core triangular solid torus. More... | |
unsigned long | regina::AugTriSolidTorus::chainLength () const |
Returns the number of tetrahedra in the layered chain linking two of the boundary annuli of the core triangular solid torus. More... | |
int | regina::AugTriSolidTorus::chainType () const |
Returns the way in which a layered chain links two of the boundary annuli of the core triangular solid torus. More... | |
int | regina::AugTriSolidTorus::torusAnnulus () const |
Returns the single boundary annulus of the core triangular solid torus to which a layered solid torus is attached. More... | |
bool | regina::AugTriSolidTorus::hasLayeredChain () const |
Determines whether the core triangular solid torus has two of its boundary annuli linked by a layered chain as described in the general class notes. More... | |
static AugTriSolidTorus * | regina::AugTriSolidTorus::isAugTriSolidTorus (const Component< 3 > *comp) |
Determines if the given triangulation component is an augmented triangular solid torus. More... | |
Manifold * | regina::AugTriSolidTorus::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::AugTriSolidTorus::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::AugTriSolidTorus::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::AugTriSolidTorus::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::BlockedSFS::~BlockedSFS () | |
Destroys this structure and its constituent components. More... | |
const SatRegion & | regina::BlockedSFS::region () const |
Returns details of the single saturated region that fills this triangulation. More... | |
bool | regina::BlockedSFS::isPluggedIBundle (std::string &name) const |
Determines whether this triangulation is a plugged thin I-bundle or a plugged thick I-bundle. More... | |
Manifold * | regina::BlockedSFS::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::BlockedSFS::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::BlockedSFS::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::BlockedSFS::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
static BlockedSFS * | regina::BlockedSFS::isBlockedSFS (Triangulation< 3 > *tri) |
Determines if the given triangulation is a blocked Seifert fibred space. More... | |
regina::BlockedSFSLoop::~BlockedSFSLoop () | |
Destroys this structure and its constituent components. More... | |
const SatRegion & | regina::BlockedSFSLoop::region () const |
Returns details of the saturated region from which this triangulation is formed. More... | |
const Matrix2 & | regina::BlockedSFSLoop::matchingReln () const |
Returns the matrix describing how the two torus boundaries of the saturated region are joined. More... | |
Manifold * | regina::BlockedSFSLoop::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::BlockedSFSLoop::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::BlockedSFSLoop::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::BlockedSFSLoop::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
static BlockedSFSLoop * | regina::BlockedSFSLoop::isBlockedSFSLoop (Triangulation< 3 > *tri) |
Determines if the given triangulation is a blocked Seifert fibred space with identified boundaries, as described by this class. More... | |
regina::BlockedSFSPair::~BlockedSFSPair () | |
Destroys this structure and its constituent components. More... | |
const SatRegion & | regina::BlockedSFSPair::region (int which) const |
Returns details of one of the two bounded saturated regions that form this triangulation. More... | |
const Matrix2 & | regina::BlockedSFSPair::matchingReln () const |
Returns the matrix describing how the two saturated region boundaries are joined. More... | |
Manifold * | regina::BlockedSFSPair::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::BlockedSFSPair::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::BlockedSFSPair::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::BlockedSFSPair::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
static BlockedSFSPair * | regina::BlockedSFSPair::isBlockedSFSPair (Triangulation< 3 > *tri) |
Determines if the given triangulation is a blocked pair of Seifert fibred spaces, as described by this class. More... | |
regina::BlockedSFSTriple::~BlockedSFSTriple () | |
Destroys this structure and its constituent components. More... | |
const SatRegion & | regina::BlockedSFSTriple::end (int which) const |
Returns details of the requested end region, as described in the class notes above. More... | |
const SatRegion & | regina::BlockedSFSTriple::centre () const |
Returns details of the central saturated region, as described in the class notes above. More... | |
const Matrix2 & | regina::BlockedSFSTriple::matchingReln (int which) const |
Returns the matrix describing how the given end region is joined to the central region. More... | |
Manifold * | regina::BlockedSFSTriple::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::BlockedSFSTriple::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::BlockedSFSTriple::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::BlockedSFSTriple::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
static BlockedSFSTriple * | regina::BlockedSFSTriple::isBlockedSFSTriple (Triangulation< 3 > *tri) |
Determines if the given triangulation is a blocked sequence of three Seifert fibred spaces, as described in the class notes above. More... | |
virtual | regina::L31Pillow::~L31Pillow () |
Destroys this structure. More... | |
L31Pillow * | regina::L31Pillow::clone () const |
Returns a newly created clone of this structure. More... | |
Tetrahedron< 3 > * | regina::L31Pillow::tetrahedron (int whichTet) const |
Returns one of the two tetrahedra involved in this structure. More... | |
unsigned | regina::L31Pillow::interiorVertex (int whichTet) const |
Returns the vertex number of the given tetrahedron corresponding to the degree three vertex in the interior of the triangular pillow. More... | |
static L31Pillow * | regina::L31Pillow::isL31Pillow (const Component< 3 > *comp) |
Determines if the given triangulation component is a triangular pillow L(3,1). More... | |
Manifold * | regina::L31Pillow::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::L31Pillow::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::L31Pillow::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::L31Pillow::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::L31Pillow::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::LayeredChain::LayeredChain (Tetrahedron< 3 > *tet, Perm< 4 > vertexRoles) | |
Creates a new layered chain containing only the given tetrahedron. More... | |
regina::LayeredChain::LayeredChain (const LayeredChain &cloneMe) | |
Creates a new layered chain that is a clone of the given structure. More... | |
virtual | regina::LayeredChain::~LayeredChain () |
Destroys this layered chain. More... | |
Tetrahedron< 3 > * | regina::LayeredChain::bottom () const |
Returns the bottom tetrahedron of this layered chain. More... | |
Tetrahedron< 3 > * | regina::LayeredChain::top () const |
Returns the top tetrahedron of this layered chain. More... | |
unsigned long | regina::LayeredChain::index () const |
Returns the number of tetrahedra in this layered chain. More... | |
Perm< 4 > | regina::LayeredChain::bottomVertexRoles () const |
Returns a permutation represeting the role that each vertex of the bottom tetrahedron plays in the layered chain. More... | |
Perm< 4 > | regina::LayeredChain::topVertexRoles () const |
Returns a permutation represeting the role that each vertex of the top tetrahedron plays in the layered chain. More... | |
bool | regina::LayeredChain::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 | regina::LayeredChain::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 | regina::LayeredChain::extendMaximal () |
Extends this layered chain to a maximal length layered chain. More... | |
void | regina::LayeredChain::reverse () |
Reverses this layered chain so the top tetrahedron becomes the bottom and vice versa. More... | |
void | regina::LayeredChain::invert () |
Inverts this layered chain so the upper hinge becomes the lower and vice versa. More... | |
Manifold * | regina::LayeredChain::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::LayeredChain::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::LayeredChain::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::LayeredChain::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::LayeredChain::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
virtual | regina::LayeredChainPair::~LayeredChainPair () |
Destroys this layered chain pair. More... | |
LayeredChainPair * | regina::LayeredChainPair::clone () const |
Returns a newly created clone of this structure. More... | |
const LayeredChain * | regina::LayeredChainPair::chain (int which) const |
Returns the requested layered chain used to form this structure. More... | |
static LayeredChainPair * | regina::LayeredChainPair::isLayeredChainPair (const Component< 3 > *comp) |
Determines if the given triangulation component is a layered chain pair. More... | |
Manifold * | regina::LayeredChainPair::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::LayeredChainPair::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::LayeredChainPair::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::LayeredChainPair::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::LayeredChainPair::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
virtual | regina::LayeredLensSpace::~LayeredLensSpace () |
Destroys this lens space; note that the corresponding layered solid torus will also be destroyed. More... | |
LayeredLensSpace * | regina::LayeredLensSpace::clone () const |
Returns a newly created clone of this structure. More... | |
unsigned long | regina::LayeredLensSpace::p () const |
Returns the first parameter p of this lens space L(p,q). More... | |
unsigned long | regina::LayeredLensSpace::q () const |
Returns the second parameter q of this lens space L(p,q). More... | |
const LayeredSolidTorus & | regina::LayeredLensSpace::torus () const |
Returns the layered solid torus to which the mobius strip is glued. More... | |
int | regina::LayeredLensSpace::mobiusBoundaryGroup () const |
Determines which edge of the layered solid torus is glued to the boundary of the mobius strip (i.e., the weight 2 edge of the degenerate (2,1,1) layered solid torus). More... | |
bool | regina::LayeredLensSpace::isSnapped () const |
Determines if the layered solid torus that forms the basis for this lens space is snapped shut (folded closed without a twist). More... | |
bool | regina::LayeredLensSpace::isTwisted () const |
Determines if the layered solid torus that forms the basis for this lens space is twisted shut (folded closed with a twist). More... | |
static LayeredLensSpace * | regina::LayeredLensSpace::isLayeredLensSpace (const Component< 3 > *comp) |
Determines if the given triangulation component is a layered lens space. More... | |
Manifold * | regina::LayeredLensSpace::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::LayeredLensSpace::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::LayeredLensSpace::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::LayeredLensSpace::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::LayeredLensSpace::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
virtual | regina::LayeredLoop::~LayeredLoop () |
Destroys this layered loop. More... | |
LayeredLoop * | regina::LayeredLoop::clone () const |
Returns a newly created clone of this structure. More... | |
unsigned long | regina::LayeredLoop::length () const |
Returns the length of this layered loop. More... | |
bool | regina::LayeredLoop::isTwisted () const |
Determines if this layered loop contains a twist. More... | |
Edge< 3 > * | regina::LayeredLoop::hinge (int which) const |
Returns the requested hinge edge of this layered loop. More... | |
static LayeredLoop * | regina::LayeredLoop::isLayeredLoop (const Component< 3 > *comp) |
Determines if the given triangulation component is a layered loop. More... | |
Manifold * | regina::LayeredLoop::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::LayeredLoop::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::LayeredLoop::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::LayeredLoop::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::LayeredLoop::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
LayeredSolidTorus * | regina::LayeredSolidTorus::clone () const |
Returns a newly created clone of this structure. More... | |
size_t | regina::LayeredSolidTorus::size () const |
Returns the number of tetrahedra in this layered solid torus. More... | |
Tetrahedron< 3 > * | regina::LayeredSolidTorus::base () const |
Returns the tetrahedron that is glued to itself at the base of this layered solid torus. More... | |
int | regina::LayeredSolidTorus::baseEdge (int group, int index) const |
Returns the requested edge of the base tetrahedron belonging to the given group. More... | |
int | regina::LayeredSolidTorus::baseEdgeGroup (int edge) const |
Returns the group that the given edge of the base tetrahedron belongs to. More... | |
int | regina::LayeredSolidTorus::baseFace (int index) const |
Returns one of the two faces of the base tetrahedron that are glued to each other. More... | |
Tetrahedron< 3 > * | regina::LayeredSolidTorus::topLevel () const |
Returns the top level tetrahedron in this layered solid torus. More... | |
unsigned long | regina::LayeredSolidTorus::meridinalCuts (int group) const |
Returns the number of times the meridinal disc of the torus cuts the top level tetrahedron edges in the given group. More... | |
int | regina::LayeredSolidTorus::topEdge (int group, int index) const |
Returns the requested edge of the top level tetrahedron belonging to the given group. More... | |
int | regina::LayeredSolidTorus::topEdgeGroup (int edge) const |
Returns the group that the given edge of the top level tetrahedron belongs to. More... | |
int | regina::LayeredSolidTorus::topFace (int index) const |
Returns one of the two faces of the top level tetrahedron that form the boundary of this layered solid torus. More... | |
Triangulation< 3 > * | regina::LayeredSolidTorus::flatten (const Triangulation< 3 > *original, int mobiusBandBdry) const |
Flattens this layered solid torus to a Mobius band. More... | |
void | regina::LayeredSolidTorus::transform (const Triangulation< 3 > *originalTri, const Isomorphism< 3 > *iso, Triangulation< 3 > *newTri) |
Adjusts the details of this layered solid torus according to the given isomorphism between triangulations. More... | |
static LayeredSolidTorus * | regina::LayeredSolidTorus::formsLayeredSolidTorusBase (Tetrahedron< 3 > *tet) |
Determines if the given tetrahedron forms the base of a layered solid torus within a triangulation. More... | |
static LayeredSolidTorus * | regina::LayeredSolidTorus::formsLayeredSolidTorusTop (Tetrahedron< 3 > *tet, unsigned topFace1, unsigned topFace2) |
Determines if the given tetrahedron forms the top level tetrahedron of a layered solid torus, with the two given faces of this tetrahedron representing the boundary of the layered solid torus. More... | |
static LayeredSolidTorus * | regina::LayeredSolidTorus::isLayeredSolidTorus (Component< 3 > *comp) |
Determines if the given triangulation component forms a layered solid torus in its entirity. More... | |
Manifold * | regina::LayeredSolidTorus::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::LayeredSolidTorus::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::LayeredSolidTorus::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::LayeredSolidTorus::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::LayeredSolidTorus::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
virtual | regina::LayeredTorusBundle::~LayeredTorusBundle () |
Destroys this layered torus bundle and all of its internal components. More... | |
const TxICore & | regina::LayeredTorusBundle::core () const |
Returns the T x I triangulation at the core of this layered surface bundle. More... | |
const Isomorphism< 3 > * | regina::LayeredTorusBundle::coreIso () const |
Returns the isomorphism describing how the core T x I appears as a subcomplex of this layered surface bundle. More... | |
const Matrix2 & | regina::LayeredTorusBundle::layeringReln () const |
Returns a 2-by-2 matrix describing how the layering of tetrahedra relates curves on the two torus boundaries of the core T x I . More... | |
static LayeredTorusBundle * | regina::LayeredTorusBundle::isLayeredTorusBundle (Triangulation< 3 > *tri) |
Determines if the given triangulation is a layered surface bundle. More... | |
Manifold * | regina::LayeredTorusBundle::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::LayeredTorusBundle::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::LayeredTorusBundle::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::LayeredTorusBundle::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::LayeredTorusBundle::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::Layering::Layering (Tetrahedron< 3 > *bdry0, Perm< 4 > roles0, Tetrahedron< 3 > *bdry1, Perm< 4 > roles1) | |
Creates a new trivial (zero-tetrahedron) layering upon the given boundary. More... | |
unsigned long | regina::Layering::size () const |
Returns the number of individual tetrahedra that have been layered onto the original boundary, according to the data stored in this structure. More... | |
Tetrahedron< 3 > * | regina::Layering::oldBoundaryTet (unsigned which) const |
Returns the tetrahedra that provide the old boundary triangles. More... | |
Perm< 4 > | regina::Layering::oldBoundaryRoles (unsigned which) const |
Returns the permutations that describe the old boundary triangles. More... | |
Tetrahedron< 3 > * | regina::Layering::newBoundaryTet (unsigned which) const |
Returns the tetrahedra that provide the new boundary triangles. More... | |
Perm< 4 > | regina::Layering::newBoundaryRoles (unsigned which) const |
Returns the permutations that describe the new boundary triangles. More... | |
const Matrix2 & | regina::Layering::boundaryReln () const |
Returns a 2-by-2 matrix describing the relationship between curves on the old and new boundary tori. More... | |
bool | regina::Layering::extendOne () |
Examines whether a single additional tetrahedron has been layered upon the current new boundary. More... | |
unsigned long | regina::Layering::extend () |
Examines whether one or more additional tetrahedra have been layered upon the current new boundary. More... | |
bool | regina::Layering::matchesTop (Tetrahedron< 3 > *upperBdry0, Perm< 4 > upperRoles0, Tetrahedron< 3 > *upperBdry1, Perm< 4 > upperRoles1, Matrix2 &upperReln) const |
Determines whether the new torus boundary of this structure is identified with the given torus boundary. More... | |
PillowTwoSphere * | regina::PillowTwoSphere::clone () const |
Returns a newly created clone of this structure. More... | |
Triangle< 3 > * | regina::PillowTwoSphere::triangle (int index) const |
Returns one of the two triangles whose boundaries are joined. More... | |
Perm< 4 > | regina::PillowTwoSphere::triangleMapping () const |
Returns a permutation describing how the boundaries of the two triangles are joined. More... | |
static PillowTwoSphere * | regina::PillowTwoSphere::formsPillowTwoSphere (Triangle< 3 > *tri1, Triangle< 3 > *tri2) |
Determines if the two given triangles together form a pillow 2-sphere. More... | |
void | regina::PillowTwoSphere::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
regina::PluggedTorusBundle::~PluggedTorusBundle () | |
Destroys this structure and its constituent components. More... | |
const TxICore & | regina::PluggedTorusBundle::bundle () const |
Returns an isomorphic copy of the thin I-bundle that forms part of this triangulation. More... | |
const Isomorphism< 3 > & | regina::PluggedTorusBundle::bundleIso () const |
Returns an isomorphism describing how the thin I-bundle forms a subcomplex of this triangulation. More... | |
const SatRegion & | regina::PluggedTorusBundle::region () const |
Returns the saturated region that forms part of this triangulation. More... | |
const Matrix2 & | regina::PluggedTorusBundle::matchingReln () const |
Returns the matrix describing how the two torus boundaries of the saturated region are joined by the thin I-bundle and layerings. More... | |
Manifold * | regina::PluggedTorusBundle::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::PluggedTorusBundle::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::PluggedTorusBundle::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::PluggedTorusBundle::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
static PluggedTorusBundle * | regina::PluggedTorusBundle::isPluggedTorusBundle (Triangulation< 3 > *tri) |
Determines if the given triangulation is a saturated region joined to a thin I-bundle via optional layerings, as described in the class notes above. More... | |
virtual | regina::PlugTriSolidTorus::~PlugTriSolidTorus () |
Destroys this plugged solid torus; note that the corresponding triangular solid torus and layered chains will also be destroyed. More... | |
PlugTriSolidTorus * | regina::PlugTriSolidTorus::clone () const |
Returns a newly created clone of this structure. More... | |
const TriSolidTorus & | regina::PlugTriSolidTorus::core () const |
Returns the triangular solid torus at the core of this triangulation. More... | |
const LayeredChain * | regina::PlugTriSolidTorus::chain (int annulus) const |
Returns the layered chain attached to the requested annulus on the boundary of the core triangular solid torus. More... | |
int | regina::PlugTriSolidTorus::chainType (int annulus) const |
Returns the way in which a layered chain is attached to the requested annulus on the boundary of the core triangular solid torus. More... | |
int | regina::PlugTriSolidTorus::equatorType () const |
Returns which types of edges form the equator of the plug. More... | |
static PlugTriSolidTorus * | regina::PlugTriSolidTorus::isPlugTriSolidTorus (Component< 3 > *comp) |
Determines if the given triangulation component is a plugged triangular solid torus. More... | |
Manifold * | regina::PlugTriSolidTorus::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
std::ostream & | regina::PlugTriSolidTorus::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::PlugTriSolidTorus::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::PlugTriSolidTorus::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::SatAnnulus::SatAnnulus () | |
Creates a new uninitialised structure. More... | |
regina::SatAnnulus::SatAnnulus (const SatAnnulus &cloneMe) | |
Creates a clone of the given structure. More... | |
regina::SatAnnulus::SatAnnulus (Tetrahedron< 3 > *t0, Perm< 4 > r0, Tetrahedron< 3 > *t1, Perm< 4 > r1) | |
Creates a new structure initialised to the given values. More... | |
SatAnnulus & | regina::SatAnnulus::operator= (const SatAnnulus &cloneMe) |
Makes this equal to a clone of the given structure. More... | |
bool | regina::SatAnnulus::operator== (const SatAnnulus &other) const |
Determines whether or not this and the given structure describe the same annulus with the same representation. More... | |
bool | regina::SatAnnulus::operator!= (const SatAnnulus &other) const |
Determines whether or not this and the given structure describe the same annulus with the same representation. More... | |
unsigned | regina::SatAnnulus::meetsBoundary () const |
Determines how many triangles of this annulus lie on the boundary of the triangulation. More... | |
void | regina::SatAnnulus::switchSides () |
Converts this into a representation of the same annulus from the other side. More... | |
SatAnnulus | regina::SatAnnulus::otherSide () const |
Returns a representation of the same annulus from the other side. More... | |
void | regina::SatAnnulus::reflectVertical () |
Reverses the direction of the vertical fibres in this annulus representation. More... | |
SatAnnulus | regina::SatAnnulus::verticalReflection () const |
Returns a representation of this annulus in which the vertical direction of the fibres has been reversed. More... | |
void | regina::SatAnnulus::reflectHorizontal () |
Performs a left-to-right reflection of this annulus representation. More... | |
SatAnnulus | regina::SatAnnulus::horizontalReflection () const |
Returns a left-to-right reflected representation of this annulus. More... | |
void | regina::SatAnnulus::rotateHalfTurn () |
Rotates the representation of this annulus by 180 degrees. More... | |
SatAnnulus | regina::SatAnnulus::halfTurnRotation () const |
Returns a 180 degree rotated representation of this annulus. More... | |
bool | regina::SatAnnulus::isAdjacent (const SatAnnulus &other, bool *refVert, bool *refHoriz) const |
Determines whether this and the given annulus are adjacent, possibly modulo vertical or horizontal reflections. More... | |
bool | regina::SatAnnulus::isJoined (const SatAnnulus &other, Matrix2 &matching) const |
Determines whether this and the given annulus are joined in some form, even if the fibres on each annulus are not consistent. More... | |
bool | regina::SatAnnulus::isTwoSidedTorus () const |
Determines whether this annulus has its boundaries identified to form an embedded two-sided torus within the surrounding triangulation. More... | |
void | regina::SatAnnulus::transform (const Triangulation< 3 > *originalTri, const Isomorphism< 3 > *iso, Triangulation< 3 > *newTri) |
Adjusts this annulus representation according to the given isomorphism between triangulations. More... | |
SatAnnulus | regina::SatAnnulus::image (const Triangulation< 3 > *originalTri, const Isomorphism< 3 > *iso, Triangulation< 3 > *newTri) const |
Returns the image of this annulus representation under the given isomorphism between triangulations. More... | |
void | regina::SatAnnulus::attachLST (Triangulation< 3 > *tri, long alpha, long beta) const |
Attaches a layered solid torus to the this saturated annulus. More... | |
regina::SatBlock::SatBlock (const SatBlock &cloneMe) | |
Creates a new clone of the given block. More... | |
virtual | regina::SatBlock::~SatBlock () |
Destroys all internal arrays. More... | |
virtual SatBlock * | regina::SatBlock::clone () const =0 |
Returns a newly created clone of this saturated block structure. More... | |
unsigned | regina::SatBlock::nAnnuli () const |
Returns the number of annuli on the boundary of this saturated block. More... | |
const SatAnnulus & | regina::SatBlock::annulus (unsigned which) const |
Returns details of the requested annulus on the boundary of this saturated block. More... | |
bool | regina::SatBlock::twistedBoundary () const |
Is the ring of boundary annuli twisted to form a long Mobius strip? More... | |
bool | regina::SatBlock::hasAdjacentBlock (unsigned whichAnnulus) const |
Returns whether there is another saturated block listed as being adjacent to the given boundary annulus of this block. More... | |
SatBlock * | regina::SatBlock::adjacentBlock (unsigned whichAnnulus) const |
Returns the saturated block listed as being adjacent to the given boundary annulus of this block. More... | |
unsigned | regina::SatBlock::adjacentAnnulus (unsigned whichAnnulus) const |
Returns which specific annulus of the adjacent block is listed as being adjacent to the given boundary annulus of this block. More... | |
bool | regina::SatBlock::adjacentReflected (unsigned whichAnnulus) const |
Returns whether the adjacency along the given boundary annulus of this block is reflected. More... | |
bool | regina::SatBlock::adjacentBackwards (unsigned whichAnnulus) const |
Returns whether the adjacency along the given boundary annulus of this block is backwards. More... | |
void | regina::SatBlock::setAdjacent (unsigned whichAnnulus, SatBlock *adjBlock, unsigned adjAnnulus, bool adjReflected, bool adjBackwards) |
Lists the given saturated block as being adjacent to the given boundary annulus of this block. More... | |
virtual void | regina::SatBlock::adjustSFS (SFSpace &sfs, bool reflect) const =0 |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatBlock::transform (const Triangulation< 3 > *originalTri, const Isomorphism< 3 > *iso, Triangulation< 3 > *newTri) |
Adjusts the structure of this block according to the given isomorphism between triangulations. More... | |
void | regina::SatBlock::nextBoundaryAnnulus (unsigned thisAnnulus, SatBlock *&nextBlock, unsigned &nextAnnulus, bool &refVert, bool &refHoriz, bool followPrev) |
Finds the next (or previous) boundary annulus around from this, treating all adjacent blocks as part of a single large saturated region. More... | |
std::string | regina::SatBlock::abbr (bool tex=false) const |
Returns an abbreviated name or symbol for this block. More... | |
virtual void | regina::SatBlock::writeAbbr (std::ostream &out, bool tex=false) const =0 |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
bool | regina::SatBlock::operator< (const SatBlock &compare) const |
Implements a consistent ordering of saturated blocks. More... | |
static SatBlock * | regina::SatBlock::isBlock (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is in fact a boundary annulus for a recognised type of saturated block. More... | |
virtual void | regina::SatBlock::writeTextShort (std::ostream &out) const =0 |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatBlock::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::SatBlock::SatBlock (unsigned nAnnuli, bool twistedBoundary=false) | |
Constructor for a block with the given number of annuli on the boundary. More... | |
static bool | regina::SatBlock::isBad (Tetrahedron< 3 > *t, const TetList &list) |
Determines whether the given tetrahedron is contained within the given list. More... | |
template<class List > | |
static bool | regina::SatBlock::isBad (Tetrahedron< 3 > *t, const List &list) |
Determines whether the given tetrahedron is contained within the given list. More... | |
static bool | regina::SatBlock::notUnique (Tetrahedron< 3 > *test) |
Determines whether the given tetrahedron pointer is null. More... | |
static bool | regina::SatBlock::notUnique (Tetrahedron< 3 > *test, Tetrahedron< 3 > *other1) |
Determines whether the given tetrahedron pointer is null or equal to another from the given list. More... | |
static bool | regina::SatBlock::notUnique (Tetrahedron< 3 > *test, Tetrahedron< 3 > *other1, Tetrahedron< 3 > *other2) |
Determines whether the given tetrahedron pointer is null or equal to another from the given list. More... | |
static bool | regina::SatBlock::notUnique (Tetrahedron< 3 > *test, Tetrahedron< 3 > *other1, Tetrahedron< 3 > *other2, Tetrahedron< 3 > *other3) |
Determines whether the given tetrahedron pointer is null or equal to another from the given list. More... | |
static bool | regina::SatBlock::notUnique (Tetrahedron< 3 > *test, Tetrahedron< 3 > *other1, Tetrahedron< 3 > *other2, Tetrahedron< 3 > *other3, Tetrahedron< 3 > *other4) |
Determines whether the given tetrahedron pointer is null or equal to another from the given list. More... | |
regina::SatBlockStarter::~SatBlockStarter () | |
Destroys both the internal triangulation and block structure. More... | |
const Triangulation< 3 > & | regina::SatBlockStarter::triangulation () const |
Returns a reference to the triangulation of the saturated block. More... | |
const SatBlock * | regina::SatBlockStarter::block () const |
Returns details that describe the structure of the saturated block. More... | |
static iterator | regina::SatBlockStarterSet::begin () |
Returns an iterator pointing to the first block in the hard-coded list. More... | |
static iterator | regina::SatBlockStarterSet::end () |
Returns an iterator pointing past the end of the hard-coded list (i.e., just after the last item). More... | |
void | regina::SatBlockStarterSet::initialise () |
Fills this list with items. More... | |
virtual | regina::SatBlockStarterSearcher::~SatBlockStarterSearcher () |
Destroys this object and its internal structures. More... | |
void | regina::SatBlockStarterSearcher::findStarterBlocks (Triangulation< 3 > *tri) |
Runs a search for every isomorphic embedding of every starter block from the global SatBlockStarterSet within the given triangulation. More... | |
virtual bool | regina::SatBlockStarterSearcher::useStarterBlock (SatBlock *starter)=0 |
Used by subclasses to process each starter block embedding that is found. More... | |
regina::SatMobius::SatMobius (const SatMobius &cloneMe) | |
Constructs a clone of the given block structure. More... | |
int | regina::SatMobius::position () const |
Describes how the Mobius band is attached to the boundary annulus. More... | |
virtual SatBlock * | regina::SatMobius::clone () const |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | regina::SatMobius::adjustSFS (SFSpace &sfs, bool reflect) const |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatMobius::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatMobius::writeAbbr (std::ostream &out, bool tex=false) const |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
static SatMobius * | regina::SatMobius::isBlockMobius (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is a boundary annulus for a block of this type (Mobius band). More... | |
regina::SatLST::SatLST (const SatLST &cloneMe) | |
Constructs a clone of the given block structure. More... | |
regina::SatLST::~SatLST () | |
Destroys this structure and its internal components. More... | |
const LayeredSolidTorus * | regina::SatLST::lst () const |
Returns details of the layered solid torus that this block represents. More... | |
Perm< 4 > | regina::SatLST::roles () const |
Describes how the layered solid torus is attached to the boundary annulus. More... | |
virtual SatBlock * | regina::SatLST::clone () const |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | regina::SatLST::adjustSFS (SFSpace &sfs, bool reflect) const |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatLST::transform (const Triangulation< 3 > *originalTri, const Isomorphism< 3 > *iso, Triangulation< 3 > *newTri) |
Adjusts the structure of this block according to the given isomorphism between triangulations. More... | |
virtual void | regina::SatLST::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatLST::writeAbbr (std::ostream &out, bool tex=false) const |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
static SatLST * | regina::SatLST::isBlockLST (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is a boundary annulus for a block of this type (layered solid torus). More... | |
regina::SatTriPrism::SatTriPrism (const SatTriPrism &cloneMe) | |
Constructs a clone of the given block structure. More... | |
bool | regina::SatTriPrism::isMajor () const |
Is this prism of major type or minor type? See the class notes for further details. More... | |
virtual SatBlock * | regina::SatTriPrism::clone () const |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | regina::SatTriPrism::adjustSFS (SFSpace &sfs, bool reflect) const |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatTriPrism::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatTriPrism::writeAbbr (std::ostream &out, bool tex=false) const |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
static SatTriPrism * | regina::SatTriPrism::isBlockTriPrism (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is a boundary annulus for a block of this type (triangular prism). More... | |
static SatTriPrism * | regina::SatTriPrism::insertBlock (Triangulation< 3 > &tri, bool major) |
Inserts a new copy of a triangular prism block into the given triangulation, and returns the corresponding block structure. More... | |
regina::SatTriPrism::SatTriPrism (bool major) | |
Constructs a partially initialised block. More... | |
regina::SatCube::SatCube (const SatCube &cloneMe) | |
Constructs a clone of the given block structure. More... | |
virtual SatBlock * | regina::SatCube::clone () const |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | regina::SatCube::adjustSFS (SFSpace &sfs, bool reflect) const |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatCube::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatCube::writeAbbr (std::ostream &out, bool tex=false) const |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
static SatCube * | regina::SatCube::isBlockCube (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is a boundary annulus for a block of this type (cube). More... | |
static SatCube * | regina::SatCube::insertBlock (Triangulation< 3 > &tri) |
Inserts a new copy of a cube block into the given triangulation, and returns the corresponding block structure. More... | |
regina::SatCube::SatCube () | |
Constructs an uninitialised block. More... | |
regina::SatReflectorStrip::SatReflectorStrip (const SatReflectorStrip &cloneMe) | |
Constructs a clone of the given block structure. More... | |
virtual SatBlock * | regina::SatReflectorStrip::clone () const |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | regina::SatReflectorStrip::adjustSFS (SFSpace &sfs, bool reflect) const |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatReflectorStrip::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatReflectorStrip::writeAbbr (std::ostream &out, bool tex=false) const |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
static SatReflectorStrip * | regina::SatReflectorStrip::isBlockReflectorStrip (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is a boundary annulus for a block of this type (reflector strip). More... | |
static SatReflectorStrip * | regina::SatReflectorStrip::insertBlock (Triangulation< 3 > &tri, unsigned length, bool twisted) |
Inserts a new reflector strip into the given triangulation, and returns the corresponding block structure. More... | |
regina::SatReflectorStrip::SatReflectorStrip (unsigned length, bool twisted) | |
Constructs a partially initialised block of the given length. More... | |
regina::SatLayering::SatLayering (const SatLayering &cloneMe) | |
Constructs a clone of the given block structure. More... | |
bool | regina::SatLayering::overHorizontal () const |
Does this describe a layering over the horizontal edge of the boundary annulus, or a layering over the diagonal edge? More... | |
virtual SatBlock * | regina::SatLayering::clone () const |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | regina::SatLayering::adjustSFS (SFSpace &sfs, bool reflect) const |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | regina::SatLayering::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::SatLayering::writeAbbr (std::ostream &out, bool tex=false) const |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
static SatLayering * | regina::SatLayering::isBlockLayering (const SatAnnulus &annulus, TetList &avoidTets) |
Determines whether the given annulus is a boundary annulus for a block of this type (single layering). More... | |
regina::SatLayering::SatLayering (bool overHorizontal) | |
Constructs a partially initialised block. More... | |
regina::SatBlockSpec::SatBlockSpec () | |
Creates a new structure that is completely uninitialised. More... | |
regina::SatBlockSpec::SatBlockSpec (SatBlock *useBlock, bool useRefVert, bool useRefHoriz) | |
Creates a new structure that is initialised to the given set of values. More... | |
bool | regina::SatBlockSpec::operator== (const SatBlockSpec &other) const |
Determines whether this and the given structure contain identical information. More... | |
bool | regina::SatBlockSpec::operator!= (const SatBlockSpec &other) const |
Determines whether this and the given structure contain different information. More... | |
regina::SatRegion::SatRegion (SatBlock *starter) | |
Constructs a new region containing just the given block. More... | |
regina::SatRegion::~SatRegion () | |
Destroys this structure and all of its internal data, including the individual blocks that make up this region. More... | |
unsigned long | regina::SatRegion::numberOfBlocks () const |
Returns the number of saturated blocks that come together to form this saturated region. More... | |
const SatBlockSpec & | regina::SatRegion::block (unsigned long which) const |
Returns details of the requested saturated block within this region. More... | |
long | regina::SatRegion::blockIndex (const SatBlock *block) const |
Returns the index of the given block within this region. More... | |
unsigned long | regina::SatRegion::numberOfBoundaryAnnuli () const |
Returns the number of saturated annuli that together form the boundary components of this region. More... | |
const SatAnnulus & | regina::SatRegion::boundaryAnnulus (unsigned long which, bool &blockRefVert, bool &blockRefHoriz) const |
Returns the requested saturated annulus on the boundary of this region. More... | |
void | regina::SatRegion::boundaryAnnulus (unsigned long which, SatBlock *&block, unsigned &annulus, bool &blockRefVert, bool &blockRefHoriz) const |
Returns fine details of the requested saturated annulus on the boundary of this region. More... | |
SFSpace * | regina::SatRegion::createSFS (bool reflect) const |
Returns details of the Seifert fibred space represented by this region. More... | |
bool | regina::SatRegion::expand (SatBlock::TetList &avoidTets, bool stopIfIncomplete=false) |
Expands this region as far as possible within the overall triangulation. More... | |
void | regina::SatRegion::writeBlockAbbrs (std::ostream &out, bool tex=false) const |
Writes an abbreviated list of blocks within this region to the given output stream. More... | |
void | regina::SatRegion::writeDetail (std::ostream &out, const std::string &title) const |
Writes details of the composition of this region to the given output stream. More... | |
void | regina::SatRegion::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
void | regina::SatRegion::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
SnapPeaCensusTri * | regina::SnapPeaCensusTri::clone () const |
Returns a newly created clone of this structure. More... | |
char | regina::SnapPeaCensusTri::section () const |
Returns the section of the SnapPea census to which this triangulation belongs. More... | |
unsigned long | regina::SnapPeaCensusTri::index () const |
Returns the index of this triangulation within its particular section of the SnapPea census. More... | |
bool | regina::SnapPeaCensusTri::operator== (const SnapPeaCensusTri &compare) const |
Determines whether this and the given structure represent the same triangulation from the SnapPea census. More... | |
bool | regina::SnapPeaCensusTri::operator!= (const SnapPeaCensusTri &compare) const |
Determines whether this and the given structure represent different triangulations from the SnapPea census. More... | |
static SnapPeaCensusTri * | regina::SnapPeaCensusTri::isSmallSnapPeaCensusTri (const Component< 3 > *comp) |
Determines if the given triangulation component is one of the smallest SnapPea census triangulations. More... | |
Manifold * | regina::SnapPeaCensusTri::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::SnapPeaCensusTri::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::SnapPeaCensusTri::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::SnapPeaCensusTri::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
SnappedBall * | regina::SnappedBall::clone () const |
Returns a newly created clone of this structure. More... | |
Tetrahedron< 3 > * | regina::SnappedBall::tetrahedron () const |
Returns the tetrahedron that forms this snapped ball. More... | |
int | regina::SnappedBall::boundaryFace (int index) const |
Returns one of the two tetrahedron faces that forms the boundary of this snapped ball. More... | |
int | regina::SnappedBall::internalFace (int index) const |
Returns one of the two tetrahedron faces internal to this snapped ball. More... | |
int | regina::SnappedBall::equatorEdge () const |
Returns the edge that forms the equator of the boundary sphere of this ball. More... | |
int | regina::SnappedBall::internalEdge () const |
Returns the edge internal to this snapped ball. More... | |
static SnappedBall * | regina::SnappedBall::formsSnappedBall (Tetrahedron< 3 > *tet) |
Determines if the given tetrahedron forms a snapped 3-ball within a triangulation. More... | |
Manifold * | regina::SnappedBall::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::SnappedBall::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::SnappedBall::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::SnappedBall::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::SnappedBall::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::SnappedTwoSphere::~SnappedTwoSphere () | |
Destroys this snapped 2-sphere; note that the corresponding snapped 3-balls will also be destroyed. More... | |
SnappedTwoSphere * | regina::SnappedTwoSphere::clone () const |
Returns a newly created clone of this structure. More... | |
const SnappedBall * | regina::SnappedTwoSphere::snappedBall (int index) const |
Returns one of the two snapped 3-balls whose equators are joined. More... | |
static SnappedTwoSphere * | regina::SnappedTwoSphere::formsSnappedTwoSphere (Tetrahedron< 3 > *tet1, Tetrahedron< 3 > *tet2) |
Determines if the two given tetrahedra together form a snapped 2-sphere. More... | |
static SnappedTwoSphere * | regina::SnappedTwoSphere::formsSnappedTwoSphere (SnappedBall *ball1, SnappedBall *ball2) |
Determines if the two given snapped 3-balls together form a snapped 2-sphere. More... | |
void | regina::SnappedTwoSphere::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual | regina::SpiralSolidTorus::~SpiralSolidTorus () |
Destroys this spiralled solid torus. More... | |
SpiralSolidTorus * | regina::SpiralSolidTorus::clone () const |
Returns a newly created clone of this structure. More... | |
size_t | regina::SpiralSolidTorus::size () const |
Returns the number of tetrahedra in this spiralled solid torus. More... | |
Tetrahedron< 3 > * | regina::SpiralSolidTorus::tetrahedron (size_t index) const |
Returns the requested tetrahedron in this spiralled solid torus. More... | |
Perm< 4 > | regina::SpiralSolidTorus::vertexRoles (size_t index) const |
Returns a permutation represeting the role that each vertex of the requested tetrahedron plays in the solid torus. More... | |
void | regina::SpiralSolidTorus::reverse () |
Reverses this spiralled solid torus. More... | |
void | regina::SpiralSolidTorus::cycle (size_t k) |
Cycles this spiralled solid torus by the given number of tetrahedra. More... | |
bool | regina::SpiralSolidTorus::makeCanonical (const Triangulation< 3 > *tri) |
Converts this spiralled solid torus into its canonical representation. More... | |
bool | regina::SpiralSolidTorus::isCanonical (const Triangulation< 3 > *tri) const |
Determines whether this spiralled solid torus is in canonical form. More... | |
static SpiralSolidTorus * | regina::SpiralSolidTorus::formsSpiralSolidTorus (Tetrahedron< 3 > *tet, Perm< 4 > useVertexRoles) |
Determines if the given tetrahedron forms part of a spiralled solid torus with its vertices playing the given roles in the solid torus. More... | |
Manifold * | regina::SpiralSolidTorus::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::SpiralSolidTorus::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::SpiralSolidTorus::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::SpiralSolidTorus::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::SpiralSolidTorus::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
virtual | regina::StandardTriangulation::~StandardTriangulation () |
A destructor that does nothing. More... | |
std::string | regina::StandardTriangulation::name () const |
Returns the name of this specific triangulation as a human-readable string. More... | |
std::string | regina::StandardTriangulation::TeXName () const |
Returns the name of this specific triangulation in TeX format. More... | |
virtual Manifold * | regina::StandardTriangulation::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
virtual AbelianGroup * | regina::StandardTriangulation::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
AbelianGroup * | regina::StandardTriangulation::homologyH1 () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
virtual std::ostream & | regina::StandardTriangulation::writeName (std::ostream &out) const =0 |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
virtual std::ostream & | regina::StandardTriangulation::writeTeXName (std::ostream &out) const =0 |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
virtual void | regina::StandardTriangulation::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | regina::StandardTriangulation::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
static StandardTriangulation * | regina::StandardTriangulation::isStandardTriangulation (Component< 3 > *component) |
Determines whether the given component represents one of the standard triangulations understood by Regina. More... | |
static StandardTriangulation * | regina::StandardTriangulation::isStandardTriangulation (Triangulation< 3 > *tri) |
Determines whether the given triangulation represents one of the standard triangulations understood by Regina. More... | |
virtual | regina::TriSolidTorus::~TriSolidTorus () |
Destroys this solid torus. More... | |
TriSolidTorus * | regina::TriSolidTorus::clone () const |
Returns a newly created clone of this structure. More... | |
Tetrahedron< 3 > * | regina::TriSolidTorus::tetrahedron (int index) const |
Returns the requested tetrahedron in this solid torus. More... | |
Perm< 4 > | regina::TriSolidTorus::vertexRoles (int index) const |
Returns a permutation represeting the role that each vertex of the requested tetrahedron plays in the solid torus. More... | |
bool | regina::TriSolidTorus::isAnnulusSelfIdentified (int index, Perm< 4 > *roleMap) const |
Determines whether the two triangles of the requested annulus are glued to each other. More... | |
unsigned long | regina::TriSolidTorus::areAnnuliLinkedMajor (int otherAnnulus) const |
Determines whether the two given annuli are linked in a particular fashion by a layered chain. More... | |
unsigned long | regina::TriSolidTorus::areAnnuliLinkedAxis (int otherAnnulus) const |
Determines whether the two given annuli are linked in a particular fashion by a layered chain. More... | |
static TriSolidTorus * | regina::TriSolidTorus::formsTriSolidTorus (Tetrahedron< 3 > *tet, Perm< 4 > useVertexRoles) |
Determines if the given tetrahedron forms part of a three-tetrahedron triangular solid torus with its vertices playing the given roles in the solid torus. More... | |
Manifold * | regina::TriSolidTorus::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::TriSolidTorus::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::TriSolidTorus::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::TriSolidTorus::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::TriSolidTorus::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
TrivialTri * | regina::TrivialTri::clone () const |
Returns a newly created clone of this structure. More... | |
int | regina::TrivialTri::type () const |
Returns the specific trivial triangulation being represented. More... | |
static TrivialTri * | regina::TrivialTri::isTrivialTriangulation (const Component< 3 > *comp) |
Determines if the given triangulation component is one of the trivial triangulations recognised by this class. More... | |
Manifold * | regina::TrivialTri::manifold () const |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented. More... | |
AbelianGroup * | regina::TrivialTri::homology () const |
Returns the expected first homology group of this triangulation, if such a routine has been implemented. More... | |
std::ostream & | regina::TrivialTri::writeName (std::ostream &out) const |
Writes the name of this triangulation as a human-readable string to the given output stream. More... | |
std::ostream & | regina::TrivialTri::writeTeXName (std::ostream &out) const |
Writes the name of this triangulation in TeX format to the given output stream. More... | |
void | regina::TrivialTri::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
virtual | regina::TxICore::~TxICore () |
Destroys this object. More... | |
const Triangulation< 3 > & | regina::TxICore::core () const |
Returns a full copy of the T x I triangulation that this object describes. More... | |
unsigned | regina::TxICore::bdryTet (unsigned whichBdry, unsigned whichTri) const |
Determines which tetrahedron provides the requested boundary triangle. More... | |
Perm< 4 > | regina::TxICore::bdryRoles (unsigned whichBdry, unsigned whichTri) const |
Describes which tetrahedron vertices play which roles in the upper and lower boundary triangles. More... | |
const Matrix2 & | regina::TxICore::bdryReln (unsigned whichBdry) const |
Returns a 2-by-2 matrix describing the alpha and beta curves on a torus boundary in terms of specific tetrahedron edges. More... | |
const Matrix2 & | regina::TxICore::parallelReln () const |
Returns a 2-by-2 matrix describing the parallel relationship between the upper and lower boundary curves. More... | |
std::string | regina::TxICore::name () const |
Returns the name of this specific triangulation of T x I as a human-readable string. More... | |
std::string | regina::TxICore::TeXName () const |
Returns the name of this specific triangulation of T x I in TeX format. More... | |
virtual std::ostream & | regina::TxICore::writeName (std::ostream &out) const =0 |
Writes the name of this specific triangulation of T x I to the given output stream. More... | |
virtual std::ostream & | regina::TxICore::writeTeXName (std::ostream &out) const =0 |
Writes the name of this specific triangulation of T x I in TeX format to the given output stream. More... | |
void | regina::TxICore::writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
void | regina::TxICore::writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
regina::TxICore::TxICore () | |
Default constructor that performs no initialisation. More... | |
regina::TxIDiagonalCore::TxIDiagonalCore (unsigned long newSize, unsigned long newK) | |
Creates a new T x I triangulation with the given parameters. More... | |
unsigned long | regina::TxIDiagonalCore::size () const |
Returns the total number of tetrahedra in this T x I triangulation. More... | |
unsigned long | regina::TxIDiagonalCore::k () const |
Returns the additional parameter k as described in the class notes. More... | |
std::ostream & | regina::TxIDiagonalCore::writeName (std::ostream &out) const |
Writes the name of this specific triangulation of T x I to the given output stream. More... | |
std::ostream & | regina::TxIDiagonalCore::writeTeXName (std::ostream &out) const |
Writes the name of this specific triangulation of T x I in TeX format to the given output stream. More... | |
regina::TxIParallelCore::TxIParallelCore () | |
Creates a new copy of this T x I triangulation. More... | |
std::ostream & | regina::TxIParallelCore::writeName (std::ostream &out) const |
Writes the name of this specific triangulation of T x I to the given output stream. More... | |
std::ostream & | regina::TxIParallelCore::writeTeXName (std::ostream &out) const |
Writes the name of this specific triangulation of T x I in TeX format to the given output stream. More... | |
Variables | |
static const int | regina::AugTriSolidTorus::CHAIN_NONE |
Indicates that this augmented triangular solid torus contains no layered chain. More... | |
static const int | regina::AugTriSolidTorus::CHAIN_MAJOR |
Indicates that this augmented triangular solid torus contains a layered chain attached as described by TriSolidTorus::areAnnuliLinkedMajor(). More... | |
static const int | regina::AugTriSolidTorus::CHAIN_AXIS |
Indicates that this augmented triangular solid torus contains a layered chain attached as described by TriSolidTorus::areAnnuliLinkedAxis(). More... | |
static const int | regina::PlugTriSolidTorus::CHAIN_NONE |
Indicates an annulus on the triangular solid torus boundary with no attached layered chain. More... | |
static const int | regina::PlugTriSolidTorus::CHAIN_MAJOR |
Indicates an annulus on the triangular solid torus boundary with an attached layered chain layered over the major edge of the annulus. More... | |
static const int | regina::PlugTriSolidTorus::CHAIN_MINOR |
Indicates an annulus on the triangular solid torus boundary with an attached layered chain layered over the minor edge of the annulus. More... | |
static const int | regina::PlugTriSolidTorus::EQUATOR_MAJOR |
Indicates that, if no layered chains were present, the equator of the plug would consist of major edges of the core triangular solid torus. More... | |
static const int | regina::PlugTriSolidTorus::EQUATOR_MINOR |
Indicates that, if no layered chains were present, the equator of the plug would consist of minor edges of the core triangular solid torus. More... | |
Tetrahedron< 3 > * | regina::SatAnnulus::tet [2] |
Describes which tetrahedra provide the first and second triangles. More... | |
Perm< 4 > | regina::SatAnnulus::roles [2] |
Describes how the first and second triangles match up with individual tetrahedron vertices. More... | |
unsigned | regina::SatBlock::nAnnuli_ |
The number of boundary annuli. More... | |
SatAnnulus * | regina::SatBlock::annulus_ |
Details of each boundary annulus, as seen from the inside of this saturated block. More... | |
bool | regina::SatBlock::twistedBoundary_ |
Is the ring of boundary annuli twisted to form a Mobius band? More... | |
SatBlock ** | regina::SatBlock::adjBlock_ |
The saturated block joined to each boundary annulus; this may be null if there is no adjacency or if this information is not known. More... | |
unsigned * | regina::SatBlock::adjAnnulus_ |
Describes which specific annulus of the adjacent saturated block is joined to each boundary annulus of this block. More... | |
bool * | regina::SatBlock::adjReflected_ |
Describes whether the adjacency for each boundary annulus is reflected (see the class notes above). More... | |
bool * | regina::SatBlock::adjBackwards_ |
Describes whether the adjacency for each boundary annulus is backwards (see the class notes above). More... | |
SatBlock::TetList | regina::SatBlockStarterSearcher::usedTets |
Keeps track of which tetrahedra have used by the current embedding of the current starter block. More... | |
SatBlock * | regina::SatBlockSpec::block |
Details of the saturated block structure. More... | |
bool | regina::SatBlockSpec::refVert |
Indicates whether the block is reflected vertically within the larger region. More... | |
bool | regina::SatBlockSpec::refHoriz |
Indicates whether the block is reflected horizontally within the larger region. More... | |
static const char | regina::SnapPeaCensusTri::SEC_5 |
Represents the collection of triangulations formed from five or fewer tetrahedra (both orientable and non-orientable). More... | |
static const char | regina::SnapPeaCensusTri::SEC_6_OR |
Represents the collection of orientable triangulations formed from six tetrahedra. More... | |
static const char | regina::SnapPeaCensusTri::SEC_6_NOR |
Represents the collection of non-orientable triangulations formed from six tetrahedra. More... | |
static const char | regina::SnapPeaCensusTri::SEC_7_OR |
Represents the collection of orientable triangulations formed from seven tetrahedra. More... | |
static const char | regina::SnapPeaCensusTri::SEC_7_NOR |
Represents the collection of non-orientable triangulations formed from seven tetrahedra. More... | |
static const int | regina::TrivialTri::SPHERE_4_VERTEX |
Represents the two-tetrahedron four-vertex triangulation of the 3-sphere. More... | |
static const int | regina::TrivialTri::BALL_3_VERTEX |
Represents the one-tetrahedron three-vertex triangulation of the ball. More... | |
static const int | regina::TrivialTri::BALL_4_VERTEX |
Represents the one-tetrahedron four-vertex triangulation of the ball. More... | |
static const int | regina::TrivialTri::N2 |
Represents the two-tetrahedron triangulation N(2) of the twisted 2-sphere bundle over the circle. More... | |
static const int | regina::TrivialTri::N3_1 |
Represents the three-tetrahedron triangulation N(3,1) of the projective plane bundle over the circle. More... | |
static const int | regina::TrivialTri::N3_2 |
Represents the three-tetrahedron triangulation N(3,2) of the projective plane bundle over the circle. More... | |
Triangulation< 3 > | regina::TxICore::core_ |
A full copy of the T x I triangulation that is described. More... | |
unsigned | regina::TxICore::bdryTet_ [2][2] |
The tetrahedra that provide the upper and lower boundary triangles. More... | |
Perm< 4 > | regina::TxICore::bdryRoles_ [2][2] |
Describes which tetrahedron vertices play which roles in the upper and lower boundary triangles. More... | |
Matrix2 | regina::TxICore::bdryReln_ [2] |
Expresses the alpha and beta curves for each torus boundary in terms of specific tetrahedron edges and vertices. More... | |
Matrix2 | regina::TxICore::parallelReln_ |
Expresses the lower alpha and beta curves in terms of the upper alpha and beta curves. More... | |
Friends | |
class | regina::SatBlockStarter::SatBlockStarterSet |
class | regina::SnapPeaCensusTri::SnapPeaCensusManifold |
Standard triangulations and subcomplexes of triangulations whose structures are well-understood.
An iterator over the starter blocks in this list.
This operates as a forward iterator in a manner consistent with the standard C++ library.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef BlockedSFS regina::NBlockedSFS |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef L31Pillow regina::NL31Pillow |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef LayeredChain regina::NLayeredChain |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef LayeredLoop regina::NLayeredLoop |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef Layering regina::NLayering |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatAnnulus regina::NSatAnnulus |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatBlock regina::NSatBlock |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatBlockSpec regina::NSatBlockSpec |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatCube regina::NSatCube |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatLayering regina::NSatLayering |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatLST regina::NSatLST |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatMobius regina::NSatMobius |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatRegion regina::NSatRegion |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SatTriPrism regina::NSatTriPrism |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef SnappedBall regina::NSnappedBall |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef TriSolidTorus regina::NTriSolidTorus |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef TrivialTri regina::NTrivialTri |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef TxICore regina::NTxICore |
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
Deprecated typedef for backward compatibility.
This typedef will be removed in a future release of Regina.
typedef std::set<Tetrahedron<3>*> regina::SatBlock::TetList |
The data structure used to store a list of tetrahedra that should not be examined by isBlock().
std::string regina::SatBlock::abbr | ( | bool | tex = false | ) | const |
Returns an abbreviated name or symbol for this block.
This name will reflect the particular block type, but may not provide thorough details.
The name will be no more than a handful of characters long, and will not include a newline (or surrounding dollar signs in TeX mode).
tex | true if the name should be formatted for TeX, or false if it should be in plain text format. |
|
inline |
Returns which specific annulus of the adjacent block is listed as being adjacent to the given boundary annulus of this block.
whichAnnulus | indicates which boundary annulus of this block should be examined; this must be between 0 and nAnnuli()-1 inclusive. |
|
inline |
Returns whether the adjacency along the given boundary annulus of this block is backwards.
See the class notes for a discussion of backwards adjacencies.
whichAnnulus | indicates which boundary annulus of this block should be examined; this must be between 0 and nAnnuli()-1 inclusive. |
true
if the corresponding adjacency is backwards, or false
if it is not.
|
inline |
Returns the saturated block listed as being adjacent to the given boundary annulus of this block.
whichAnnulus | indicates which boundary annulus of this block should be examined; this must be between 0 and nAnnuli()-1 inclusive. |
|
inline |
Returns whether the adjacency along the given boundary annulus of this block is reflected.
See the class notes for a discussion of reflected adjacencies.
whichAnnulus | indicates which boundary annulus of this block should be examined; this must be between 0 and nAnnuli()-1 inclusive. |
true
if the corresponding adjacency is reflected, or false
if it is not.
|
virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implements regina::SatBlock.
|
virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implements regina::SatBlock.
|
virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implements regina::SatBlock.
|
virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implements regina::SatBlock.
|
virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implements regina::SatBlock.
|
virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implements regina::SatBlock.
|
pure virtual |
Adjusts the given Seifert fibred space to insert the contents of this saturated block.
In particular, the space should be adjusted as though an ordinary solid torus (base orbifold a disc, no twists or exceptional fibres) had been replaced by this block. This description does not make sense for blocks with twisted boundary; the twisted case is discussed below.
If the argument reflect is true
, it should be assumed that this saturated block is being reflected before being inserted into the larger Seifert fibred space. That is, any twists or exceptional fibres should be negated before being added.
Regarding the signs of exceptional fibres: Consider a saturated block containing a solid torus whose meridinal curve runs p times horizontally around the boundary in order through annuli 0,1,... and follows the fibres q times from bottom to top (as depicted in the diagram in the SatBlock class notes). Then this saturated block adds a positive (p, q) fibre to the underlying Seifert fibred space.
If the ring of saturated annuli bounding this block is twisted then the situation becomes more complex. It can be proven that such a block must contain a twisted reflector boundary in the base orbifold (use Z_2 homology with fibre-reversing paths to show that the base orbifold must contain another twisted boundary component, and then recall that real boundaries are not allowed inside blocks).
In this twisted boundary case, it should be assumed that the twisted reflector boundary is already stored in the given Seifert fibred space. This routine should make any further changes that are required (there may well be none). That is, the space should be adjusted as though a trivial Seifert fibred space over the annulus with one twisted reflector boundary (and one twisted puncture corresponding to the block boundary) had been replaced by this block. In particular, this routine should not add the reflector boundary itself.
sfs | the Seifert fibred space to adjust. |
reflect | true if this block is to be reflected, or false if it should be inserted directly. |
Implemented in regina::SatLayering, regina::SatReflectorStrip, regina::SatCube, regina::SatTriPrism, regina::SatLST, and regina::SatMobius.
|
inline |
Returns details of the requested annulus on the boundary of this saturated block.
Annuli are numbered from 0 to nAnnuli()-1 as described in the class notes.
which | indicates which boundary annulus is requested; this must be between 0 and nAnnuli()-1 inclusive. |
unsigned long regina::TriSolidTorus::areAnnuliLinkedAxis | ( | int | otherAnnulus | ) | const |
Determines whether the two given annuli are linked in a particular fashion by a layered chain.
In this scenario, one of the given annuli meets both faces of the top tetrahedron and the other annulus meets both faces of the bottom tetrahedron of the layered chain.
To be identified by this routine, the layered chain (described by LayeredChain) must be attached as follows. We shall refer to the two hinge edges of the layered chain as first and second.
The two diagonals of the layered chain (between the two top faces and between the two bottom faces) should correspond to the two directed major edges of the two annuli, with the major edges both pointing from top hinge edge to bottom hinge edge. The other boundary edges of the layered chain that are not hinge edges should correspond to the two directed minor edges of the two annuli, with the minor edges both pointing from bottom hinge edge to top hinge edge. The hinge edges themselves should correspond to the axis edges of the triangular solid torus (this correspondence is determined by the previous identifications; the axis edge between the two annuli will be identified to both of the others in reverse).
otherAnnulus | the annulus on the solid torus boundary not to be examined; this must be 0, 1 or 2. |
unsigned long regina::TriSolidTorus::areAnnuliLinkedMajor | ( | int | otherAnnulus | ) | const |
Determines whether the two given annuli are linked in a particular fashion by a layered chain.
In this scenario, both of the given annuli meet one face of the top tetrahedron and one face of the bottom tetrahedron of the layered chain.
To be identified by this routine, the layered chain (described by LayeredChain) must be attached as follows. The two directed major edges of the two annuli should correspond to the two hinge edges of the layered chain (with both hinge edges pointing in the same direction around the solid torus formed by the layered chain). The two directed diagonals of the layered chain (between the two top faces and between the two bottom faces, each pointing in the opposite direction to the hinge edges around the solid torus formed by the layered chain) should be identified and must correspond to the (identified) two directed minor edges of the two annuli. The remaining boundary edges of the layered chain should correspond to the axis edges of the triangular solid torus (this correspondence is determined by the previous identifications).
otherAnnulus | the annulus on the solid torus boundary not to be examined; this must be 0, 1 or 2. |
void regina::SatAnnulus::attachLST | ( | Triangulation< 3 > * | tri, |
long | alpha, | ||
long | beta | ||
) | const |
Attaches a layered solid torus to the this saturated annulus.
The layered solid torus will be attached so that the given values alpha and beta describe how the meridinal disc cuts the vertical and horizontal edges of the annulus respectively.
The result will effectively insert an (alpha, beta) exceptional fibre into the Seifert fibred space space, where the vertical edges run parallel to the fibres and the horizontal edges represent the base orbifold. The sign of the fibre is consistent with the fibre inserted by SatLST::adjustSFS() (in particular, negating beta will negate the fibre).
In the case of a (2,1) fibre, the layered solid torus will be degenerate (i.e., the two triangles of the annulus will simply be joined together).
tri | the triangulation into which the new tetrahedra should be inserted. |
alpha | describes how the meridinal disc of the torus should cut the vertical edges. This may be positive or negative. |
beta | describes how the meridinal disc of the torus should cut the horizontal edges. Again this may be positive or negative. |
|
inline |
Returns the layered solid torus attached to the requested annulus on the boundary of the core triangular solid torus.
If the layered solid torus is a degenerate (2,1,1) mobius band (i.e., the two triangles of the corresponding annulus have simply been glued together), null
will be returned.
annulus | specifies which annulus to examine; this must be 0, 1 or 2. |
|
inline |
Returns the tetrahedron that is glued to itself at the base of this layered solid torus.
|
inline |
Returns the requested edge of the base tetrahedron belonging to the given group.
The layering identifies the six edges of the base tetrahedron into a group of three, a group of two and a single unidentified edge; these are referred to as groups 3, 2 and 1 respectively.
Note that baseEdgeGroup(baseEdge(group, index)) == group
for all values of group
and index
.
Edges baseEdge(2,0)
and baseEdge(3,0)
will both belong to face baseFace(0)
. Edges baseEdge(2,1)
and baseEdge(3,2)
will both belong to face baseFace(1)
.
group | the group that the requested edge should belong to; this must be 1, 2 or 3. |
index | the index within the given group of the requested edge; this must be between 0 and group-1 inclusive. Note that in group 3 the edge at index 1 is adjacent to both the edges at indexes 0 and 2. |
|
inline |
Returns the group that the given edge of the base tetrahedron belongs to.
See baseEdge() for further details about groups.
Note that baseEdgeGroup(baseEdge(group, index)) == group
for all values of group
and index
.
edge | the edge number in the base tetrahedron of the given edge; this must be between 0 and 5 inclusive. |
|
inline |
Returns one of the two faces of the base tetrahedron that are glued to each other.
index | specifies which of the two faces to return; this must be 0 or 1. |
|
inline |
Returns a 2-by-2 matrix describing the alpha and beta curves on a torus boundary in terms of specific tetrahedron edges.
Consider the first triangle of the given boundary. Let t be the tetrahedron returned by bdryTet(whichBdry, 0) and let p be the permutation returned by bdryRoles(whichBdry, 0).
Let edge01 be the directed edge from vertex p[0] to p[1] of tetrahedron t, and let edge02 be the directed edge from vertex p[0] to p[2] of tetrahedron t. Then the matrix returned by this routine describes how the directed edges edge01 and edge02 relate to the alpha and beta curves on the given boundary. Specifically:
[ alpha ] [ edge01 ] [ ] = bdryReln() * [ ] . [ beta ] [ edge02 ]
It is guaranteed that this matrix has determinant +1 or -1.
whichBdry | 0 if the upper boundary should be examined, or 1 if the lower boundary should be examined. |
|
inline |
Describes which tetrahedron vertices play which roles in the upper and lower boundary triangles.
Each boundary torus contains two triangles, whose vertices can be numbered 0, 1 and 2 according to the following diagram. This diagram is completely symmetric, in that edges 1-2 are no more special than edges 0-2 or 0-1. The important observations are that edges 1-2 and 2-1 of each triangle are identified, edges 0-2 and 2-0 of each triangle are identified and edges 0-1 and 1-0 of each triangle are identified.
*--->>--* |0 2 / | First | / 1| Second triangle v / v triangle |1 / | | / 2 0| *--->>--*
This routine returns a permutation that maps these integers 0,1,2 to real tetrahedron vertices. Let t be the tetrahedron returned by bdryTet(whichBdry, whichTri) and let p be the permutation returned by bdryRoles(whichBdry, whichTri). Then vertices p[0], p[1] and p[2] of tetrahedron t correspond to the markings 0, 1 and 2 respectively in the diagram above (and therefore the boundary triangle is face p[3] of the tetrahedron).
The arguments to this routine affect whether we examine the upper or lower boundary and whether we examine the first or second triangle of this boundary
whichBdry | 0 if the upper boundary should be examined, or 1 if the lower boundary should be examined. |
whichTri | 0 if the first boundary triangle should be examined, or 1 if the second boundary triangle should be examined. |
|
inline |
Determines which tetrahedron provides the requested boundary triangle.
Recall that the T x I
triangulation has two torus boundaries, each consisting of two boundary triangles. This routine returns the specific tetrahedron that provides the given triangle of the given torus boundary.
What is returned is the index number of the tetrahedron within the triangulation. To access the tetrahedron itself, you may call core().tetrahedron(bdryTet(...))
.
Note that the same tetrahedron may provide more than one boundary triangle.
whichBdry | 0 if the upper boundary should be examined, or 1 if the lower boundary should be examined. |
whichTri | 0 if the first boundary triangle should be examined, or 1 if the second boundary triangle should be examined. |
|
inlinestatic |
Returns an iterator pointing to the first block in the hard-coded list.
The very first time this routine is called, the list will be filled with items (and as such the call will be expensive). Every subsequent call will be very cheap.
|
inline |
Returns details that describe the structure of the saturated block.
|
inline |
Returns details of the requested saturated block within this region.
The information will returned will include structural information for the block, along with details of how the block is aligned (e.g., reflected vertically or horizontally) within the larger region.
which | indicates which of the constituent blocks should be returned; this must be between 0 and numberOfBlocks()-1 inclusive. |
long regina::SatRegion::blockIndex | ( | const SatBlock * | block | ) | const |
Returns the index of the given block within this region.
This index corresponds to the integer parameter that is passed to the routine block().
|
inline |
Returns the bottom tetrahedron of this layered chain.
|
inline |
Returns a permutation represeting the role that each vertex of the bottom tetrahedron plays in the layered chain.
The permutation returned (call this p
) maps 0, 1, 2 and 3 to the four vertices of the bottom tetrahedron so that the edge from p[0]
to p[1]
is the top hinge, the edge from p[2]
to p[3]
is the bottom hinge, faces p[1]
and p[2]
are the (boundary) bottom faces and faces p[0]
and p[3]
are the top faces.
See the general class notes for further details.
const SatAnnulus& regina::SatRegion::boundaryAnnulus | ( | unsigned long | which, |
bool & | blockRefVert, | ||
bool & | blockRefHoriz | ||
) | const |
Returns the requested saturated annulus on the boundary of this region.
The saturated annuli that together form the boundary components of this region are numbered from 0 to numberOfBoundaryAnnuli()-1 inclusive. The argument which specifies which one of these annuli should be returned.
Currently the annuli are numbered lexicographically by block and then by annulus number within the block, although this ordering is subject to change in future versions of Regina. In particular, the annuli are not necessarily numbered in order around the region boundaries, and each region boundary component might not even be given a consecutive range of numbers.
It is guaranteed however that, if the starter block passed to the SatRegion constructor provides any boundary annuli for the overall region, then the first such annulus in the starter block will be numbered 0 here.
The structure returned will be the annulus precisely as it appears within its particular saturated block. As discussed in the SatBlockSpec class notes, the block might be reflected horizontally and/or vertically within the overall region, which will affect how the annulus is positioned as part of the overall region boundary (e.g., the annulus might be positioned upside-down in the overall region boundary, or it might be positioned with its second triangle appearing before its first triangle as one walks around the boundary). To account for this, the two boolean arguments blockRefVert and blockRefHoriz will be modified to indicate if and how the block is reflected.
which | specifies which boundary annulus of this region to return; this must be between 0 and numberOfBoundaryAnnuli()-1 inclusive. |
blockRefVert | used to return whether the block containing the requested annulus is vertically reflected within this region (see SatBlockSpec for details). This will be set to true if the block is vertically reflected, or false if not. |
blockRefHoriz | used to return whether the block containing the requested annulus is horizontally reflected within this region (see SatBlockSpec for details). This will be set to true if the block is horizontally reflected, or false if not. |
void regina::SatRegion::boundaryAnnulus | ( | unsigned long | which, |
SatBlock *& | block, | ||
unsigned & | annulus, | ||
bool & | blockRefVert, | ||
bool & | blockRefHoriz | ||
) | const |
Returns fine details of the requested saturated annulus on the boundary of this region.
The argument which specifies which one of these annuli should be returned. See the boundaryAnnulus(unsigned long, bool&, bool&) documentation for details on how the boundary annuli are numbered.
Various details of the requested boundary annulus are returned in the various arguments, as described below.
Be aware that the block containing the requested annulus might be reflected horizontally and/or vertically within the overall region, as discussed in the SatBlockSpec class notes. This will affect how the annulus is positioned as part of the overall region boundary (e.g., the annulus might be positioned upside-down in the overall region boundary, or it might be positioned with its second triangle appearing before its first triangle as one walks around the boundary). The two boolean arguments blockRefVert and blockRefHoriz will be modified to indicate if and how the block is reflected.
which | specifies which boundary annulus of this region to return; this must be between 0 and numberOfBoundaryAnnuli()-1 inclusive. |
block | used to return the particular saturated block containing the requested annulus. |
annulus | used to return which annulus number in the returned block is the requested annulus; this will be between 0 and block->nAnnuli() inclusive. |
blockRefVert | used to return whether the block containing the requested annulus is vertically reflected within this region (see SatBlockSpec for details). This will be set to true if the block is vertically reflected, or false if not. |
blockRefHoriz | used to return whether the block containing the requested annulus is horizontally reflected within this region (see SatBlockSpec for details). This will be set to true if the block is horizontally reflected, or false if not. |
|
inline |
Returns one of the two tetrahedron faces that forms the boundary of this snapped ball.
You are guaranteed that index 0 will return a smaller face number than index 1.
index | specifies which of the two boundary faces to return; this must be either 0 or 1. |
|
inline |
Returns a 2-by-2 matrix describing the relationship between curves on the old and new boundary tori.
Note that this relationship will often be non-trivial, since one of the key reasons for layering is to modify boundary curves.
Let t and p be the first tetrahedron and permutation of the old boundary (as returned by oldBoundaryTet(0) and oldBoundaryRoles(0)), and let old_x and old_y be the directed edges p[0]-p[1] and p[0]-p[2] respectively of tetrahedron t (these are the leftmost and uppermost edges of the diagram below). Likewise, let s and q be the first tetrahedron and permutation of the new boundary (as returned by newBoundaryTet(0) and newBoundaryRoles(0)), and let new_x and new_y be the directed edges q[0]-q[1] and q[0]-q[2] respectively of tetrahedron s.
*--->>--* |0 2 / | | / 1| v / v |1 / | | / 2 0| *--->>--*
Assuming both boundaries are tori, edges old_x and old_y are generators of the old boundary torus and edges new_x and new_y are generators of the new boundary torus. Suppose that this routine returns the matrix M. This signifies that, using additive notation:
[new_x] [old_x] [ ] = M * [ ] . [new_y] [old_y]
In other words, the matrix that is returned expresses the generator curves of the new boundary in terms of the generator curves of the old boundary.
Note that the determinant of this matrix will always be 1.
|
inline |
Returns an isomorphic copy of the thin I-bundle that forms part of this triangulation.
Like all objects of class TxICore, the thin I-bundle that is returned is an external object with its own separate triangulation of the product T x I
. For information on how the thin I-bundle is embedded within this triangulation, see the routine bundleIso().
|
inline |
Returns an isomorphism describing how the thin I-bundle forms a subcomplex of this triangulation.
The thin I-bundle returned by bundle() does not directly refer to tetrahedra within this triangulation. Instead it contains its own isomorphic copy of the thin I-bundle triangulation (as is usual for objects of class TxICore).
The isomorphism returned by this routine is a mapping from the triangulation bundle().core() to this triangulation, showing how the thin I-bundle appears as a subcomplex of this structure.
|
inline |
Returns details of the central saturated region, as described in the class notes above.
This is the saturated region with two boundary annuli, each of which is joined to one of the end regions.
|
inline |
Returns the layered chain attached to the requested annulus on the boundary of the core triangular solid torus.
If there is no attached layered chain, null
will be returned.
Note that the core triangular solid torus will be attached to the bottom (as opposed to the top) of the layered chain.
annulus | specifies which annulus to examine; this must be 0, 1 or 2. |
|
inline |
Returns the requested layered chain used to form this structure.
If the two chains have different lengths, the shorter chain will be chain 0 and the longer chain will be chain 1.
which | specifies which chain to return; this must be 0 or 1. |
|
inline |
Returns the number of tetrahedra in the layered chain linking two of the boundary annuli of the core triangular solid torus.
Note that this count does not include any of the tetrahedra actually belonging to the triangular solid torus.
|
inline |
Returns the way in which a layered chain links two of the boundary annuli of the core triangular solid torus.
This will be one of the chain type constants defined in this class.
|
inline |
Returns the way in which a layered chain is attached to the requested annulus on the boundary of the core triangular solid torus.
This will be one of the chain type constants defined in this class.
annulus | specifies which annulus to examine; this must be 0, 1 or 2. |
SnappedBall* regina::SnappedBall::clone | ( | ) | const |
Returns a newly created clone of this structure.
L31Pillow* regina::L31Pillow::clone | ( | ) | const |
Returns a newly created clone of this structure.
PillowTwoSphere* regina::PillowTwoSphere::clone | ( | ) | const |
Returns a newly created clone of this structure.
SnappedTwoSphere* regina::SnappedTwoSphere::clone | ( | ) | const |
Returns a newly created clone of this structure.
LayeredLensSpace* regina::LayeredLensSpace::clone | ( | ) | const |
Returns a newly created clone of this structure.
LayeredChainPair* regina::LayeredChainPair::clone | ( | ) | const |
Returns a newly created clone of this structure.
LayeredLoop* regina::LayeredLoop::clone | ( | ) | const |
Returns a newly created clone of this structure.
|
inline |
Returns a newly created clone of this structure.
TriSolidTorus* regina::TriSolidTorus::clone | ( | ) | const |
Returns a newly created clone of this structure.
LayeredSolidTorus* regina::LayeredSolidTorus::clone | ( | ) | const |
Returns a newly created clone of this structure.
SpiralSolidTorus* regina::SpiralSolidTorus::clone | ( | ) | const |
Returns a newly created clone of this structure.
|
inlinevirtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implements regina::SatBlock.
|
inline |
Returns a newly created clone of this structure.
AugTriSolidTorus* regina::AugTriSolidTorus::clone | ( | ) | const |
Returns a newly created clone of this structure.
PlugTriSolidTorus* regina::PlugTriSolidTorus::clone | ( | ) | const |
Returns a newly created clone of this structure.
|
inlinevirtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implements regina::SatBlock.
|
inlinevirtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implements regina::SatBlock.
|
inlinevirtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implements regina::SatBlock.
|
inlinevirtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implements regina::SatBlock.
|
inlinevirtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implements regina::SatBlock.
|
pure virtual |
Returns a newly created clone of this saturated block structure.
A clone of the correct subclass of SatBlock will be returned. For this reason, each subclass of SatBlock must implement this routine.
Implemented in regina::SatLayering, regina::SatReflectorStrip, regina::SatCube, regina::SatTriPrism, regina::SatLST, and regina::SatMobius.
|
inline |
Returns the T x I
triangulation at the core of this layered surface bundle.
This is the product T x I
whose boundaries are joined (possibly via some layering of tetrahedra).
Note that the triangulation returned by TxICore::core() (that is, LayeredTorusBundle::core().core()) may well use different tetrahedron and vertex numbers. That is, an isomorphic copy of it appears within this layered surface bundle but the individual tetrahedra and vertices may have been permuted. For a precise mapping from the TxICore::core() triangulation to this triangulation, see the routine coreIso().
T x I
triangulation.
|
inline |
Returns a full copy of the T x I
triangulation that this object describes.
Successive calls to this routine will returns the same triangulation (i.e., it is not recreated each time). The triangulation that is returned may not be modified or destroyed.
|
inline |
Returns the triangular solid torus at the core of this triangulation.
|
inline |
Returns the triangular solid torus at the core of this triangulation.
|
inline |
Returns the isomorphism describing how the core T x I
appears as a subcomplex of this layered surface bundle.
As described in the core() notes, the core T x I
triangulation returned by TxICore::core() appears within this layered surface bundle, but not necessarily with the same tetrahedron or vertex numbers.
This routine returns an isomorphism that maps the tetrahedra and vertices of the core T x I
triangulation (as returned by LayeredTorusBundle::core().core()) to the tetrahedra and vertices of this overall layered surface bundle.
The isomorphism that is returned belongs to this object, and should not be modified or destroyed.
T x I
to this layered surface bundle. SFSpace* regina::SatRegion::createSFS | ( | bool | reflect | ) | const |
Returns details of the Seifert fibred space represented by this region.
Each boundary component of this region will be formed from a ring of saturated annuli, which together form a torus or a Klein bottle. For torus boundary components, the oriented curves representing the fibres and base orbifold on the boundary (see Notation for Seifert fibred spaces) will be as follows.
If the argument reflect is true
, the Seifert fibred space will be created as though the entire region had been reflected. In particular, each twist or exceptional fibre will be negated before being added to the Seifert structure.
For Klein bottle boundary components, these curves must (for now) be analysed by hand.
reflect | true if this region is to be reflected as the Seifert fibred space is created, or false if not. |
void regina::SpiralSolidTorus::cycle | ( | size_t | k | ) |
Cycles this spiralled solid torus by the given number of tetrahedra.
Tetrahedra k, k+1, k+2 and so on will become tetrahedra 0, 1, 2 and so on respectively. Note that this operation will not change the vertex roles.
The underlying triangulation is not changed; all that changes is how this spiralled solid torus is represented.
k | the number of tetrahedra through which we should cycle. |
|
inline |
Returns a permutation describing the role played by each top level edge group of the layered solid torus glued to the requested annulus of the core triangular solid torus.
See LayeredSolidTorus::topEdge() for details regarding edge groups.
If the permutation returned is p
, edge group p[0]
will be glued to an axis edge, group p[1]
will be glued to a major edge and group p[2]
will be glued to a minor edge. p[3]
will always be 3.
Even if the corresponding layered solid torus is a degenerate (2,1,1) mobius band (i.e., augTorus() returns null
), the concept of edge groups is still meaningful and this routine will return correct results.
annulus | specifies which annulus to examine; this must be 0, 1 or 2. It is the layered solid torus glued to this annulus whose edge groups will be described. |
|
inlinestatic |
|
inline |
Returns details of the requested end region, as described in the class notes above.
The end regions are the two saturated regions with one boundary annulus each, which are both joined to the central region.
which | 0 if the first end region should be returned (marked as end region 0 in the class notes), or 1 if the second end region should be returned (marked as end region 1 in the class notes). |
|
inline |
Returns the edge that forms the equator of the boundary sphere of this ball.
|
inline |
Returns which types of edges form the equator of the plug.
In the absence of layered chains these will either all be major edges or all be minor edges.
Layered chains complicate matters, but the roles that the major and minor edges play on the boundary annuli of the triangular solid torus can be carried up to the annuli at the top of each layered chain; the edges filling the corresponding major or minor roles will then form the equator of the plug.
bool regina::SatRegion::expand | ( | SatBlock::TetList & | avoidTets, |
bool | stopIfIncomplete = false |
||
) |
Expands this region as far as possible within the overall triangulation.
This routine will hunt for new saturated blocks, and will also hunt for new adjacencies between existing blocks.
The first argument to this routine is the tetrahedron list avoidTets. This is a list of tetrahedra that will not be considered when examining potential new blocks. This list will be modified by this routine; in particular, it will be expanded to include all tetrahedra for any new blocks that are found. Before calling this routine it should contain tetrahedra for blocks already in this region, as discussed in the preconditions below.
It may be that you are searching for a region that fills an entire triangulation component (i.e., every boundary annulus of the region in fact forms part of the boundary of the triangulation). In this case you may pass the optional argument stopIfIncomplete as true
. This means that if this routine ever discovers an annulus that is not part of the triangulation boundary and that it cannot match with some adjacent block, it will exit immediately and return false
. Note that the region structure will be incomplete and/or inconsistent if this happens; in this case the unfinished region should be destroyed completely and never used.
For internal purposes, it should be noted that any new blocks that are discovered will be added to the end of the internal block list (thus the indices of existing blocks will not change).
avoidTets | a list of tetrahedra that should not be considered for new blocks, as discussed above. Note that this list may be modified by this routine. |
stopIfIncomplete | true if you are filling an entire triangulation component with this region and you wish this routine to exit early if this is not possible, or false (the default) if you simply wish to expand this region as far as you can. See above for further discussion. |
false
if the optional argument stopIfIncomplete was passed as true
but expansion did not fill the entire triangulation component as described above, or true
in all other cases. unsigned long regina::Layering::extend | ( | ) |
Examines whether one or more additional tetrahedra have been layered upon the current new boundary.
Specifically, this routine calls extendOne() as many times as possible. If k additional layerings are discovered as a result, the size of this structure will have grown by k and the new boundary will be changed to describe the remaining two faces of the kth layered tetrahedron.
It is guaranteed that, once this routine is finished, the new boundary will not have any additional tetrahedron layered upon it. That is, if extendOne() were called again then it would return false
.
bool regina::LayeredChain::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).
If so, this layered chain will be modified accordingly (note that its index will be increased by one and its top tetrahedron will change).
true
if and only if this layered chain was extended. bool regina::LayeredChain::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).
If so, this layered chain will be modified accordingly (note that its index will be increased by one and its bottom tetrahedron will change).
true
if and only if this layered chain was extended. bool regina::LayeredChain::extendMaximal | ( | ) |
Extends this layered chain to a maximal length layered chain.
Both extendAbove() and extendBelow() will be used until this layered chain can be extended no further.
true
if and only if this layered chain was extended. bool regina::Layering::extendOne | ( | ) |
Examines whether a single additional tetrahedron has been layered upon the current new boundary.
The new boundary triangles are assumed to form a torus as described in the class notes (this is not verified, and there are degenerate cases where this will likely be false). This defines three possible ways in which an additional tetrahedron may be layered (over the three boundary edges respectively).
If it is found that an additional tetrahedron does exist and has been joined to the new boundary in one of these three possible ways, this structure is extended to incorporate the additional tetrahedron. The size will grow by one, and the new boundary will become the remaining two faces of this additional tetrahedron.
true
if a tetrahedron was found as described above and this structure was extended accordingly, or false
otherwise. void regina::SatBlockStarterSearcher::findStarterBlocks | ( | Triangulation< 3 > * | tri | ) |
Runs a search for every isomorphic embedding of every starter block from the global SatBlockStarterSet within the given triangulation.
Each time an embedding is discovered, the pure virtual routine useStarterBlock() will be called.
See the SatBlockStarterSearcher class notes for greater detail on what this search does and how it runs.
For subclasses that make use of the usedTets data member, it is worth noting that this routine empties the usedTets list on both entry and exit, as well as every time that useStarterBlock() returns after each new embedding is found.
tri | the triangulation in which to search for starter blocks. |
Triangulation<3>* regina::LayeredSolidTorus::flatten | ( | const Triangulation< 3 > * | original, |
int | mobiusBandBdry | ||
) | const |
Flattens this layered solid torus to a Mobius band.
A newly created modified triangulation is returned; the original triangulation is unchanged.
Note that there are three different ways in which this layered solid torus can be flattened, corresponding to the three different edges of the boundary torus that could become the boundary edge of the new Mobius band.
original | the triangulation containing this layered solid torus; this triangulation will not be changed. |
mobiusBandBdry | the edge group on the boundary of this layered solid torus that will become the boundary of the new Mobius band (the remaining edge groups will become internal edges of the new Mobius band). This must be 0, 1 or 2. See topEdge() for further details about edge groups. |
|
static |
Determines if the given tetrahedron forms the base of a layered solid torus within a triangulation.
The torus need not be the entire triangulation; the top level tetrahedron of the torus may be glued to something else (or to itself).
Note that the base tetrahedron of a layered solid torus is the tetrahedron furthest from the boundary of the torus, i.e. the tetrahedron glued to itself with a twist.
tet | the tetrahedron to examine as a potential base. |
null
if the given tetrahedron is not the base of a layered solid torus.
|
static |
Determines if the given tetrahedron forms the top level tetrahedron of a layered solid torus, with the two given faces of this tetrahedron representing the boundary of the layered solid torus.
Note that the two given faces need not be boundary triangles in the overall triangulation. That is, the layered solid torus may be a subcomplex of some larger triangulation. For example, the two given faces may be joined to some other tetrahedra outside the layered solid torus or they may be joined to each other. In fact, they may even extend this smaller layered solid torus to a larger layered solid torus.
tet | the tetrahedron to examine as a potential top level of a layered solid torus. |
topFace1 | the face number of the given tetrahedron that should represent the first boundary triangle of the layered solid torus. This should be between 0 and 3 inclusive. |
topFace2 | the face number of the given tetrahedron that should represent the second boundary triangle of the layered solid torus. This should be between 0 and 3 inclusive, and should not be equal to topFace1. |
null
if the given tetrahedron with its two faces do not form the top level of a layered solid torus.
|
static |
Determines if the two given triangles together form a pillow 2-sphere.
tri1 | the first triangle to examine. |
tri2 | the second triangle to examine. |
null
if the given triangles do not form a pillow 2-sphere.
|
static |
Determines if the given tetrahedron forms a snapped 3-ball within a triangulation.
The ball need not be the entire triangulation; the boundary triangles may be glued to something else (or to each other).
Note that the two boundary triangles of the snapped 3-ball need not be boundary triangles within the overall triangulation, i.e., they may be identified with each other or with triangles of other tetrahedra.
tet | the tetrahedron to examine as a potential 3-ball. |
null
if the given tetrahedron is not a snapped 3-ball.
|
static |
Determines if the two given snapped 3-balls together form a snapped 2-sphere.
If this is the case, the snapped 3-balls stored in the structure returned will be clones of the original 3-balls, not the original 3-balls themselves.
ball1 | the first snapped 3-ball to examine. |
ball2 | the second snapped 3-ball to examine. |
null
if the given snapped 3-balls do not form a snapped 2-sphere.
|
static |
Determines if the two given tetrahedra together form a snapped 2-sphere.
tet1 | the first tetrahedron to examine. |
tet2 | the second tetrahedron to examine. |
null
if the given tetrahedra do not form a snapped 2-sphere.
|
static |
Determines if the given tetrahedron forms part of a spiralled solid torus with its vertices playing the given roles in the solid torus.
Note that the boundary triangles of the spiralled solid torus need not be boundary triangles within the overall triangulation, i.e., they may be identified with each other or with triangles of other tetrahedra.
tet | the tetrahedron to examine. |
useVertexRoles | a permutation describing the role each tetrahedron vertex must play in the solid torus; this must be in the same format as the permutation returned by vertexRoles(). |
null
if the given tetrahedron is not part of a spiralled solid torus with the given vertex roles.
|
static |
Determines if the given tetrahedron forms part of a three-tetrahedron triangular solid torus with its vertices playing the given roles in the solid torus.
Note that the six boundary triangles of the triangular solid torus need not be boundary triangles within the overall triangulation, i.e., they may be identified with each other or with faces of other tetrahedra.
tet | the tetrahedron to examine. |
useVertexRoles | a permutation describing the role each tetrahedron vertex must play in the solid torus; this must be in the same format as the permutation returned by vertexRoles(). |
null
if the given tetrahedron is not part of a triangular solid torus with the given vertex roles.
|
inline |
Returns a 180 degree rotated representation of this annulus.
This structure will not be changed. See rotateHalfTurn() for further details.
|
inline |
Returns whether there is another saturated block listed as being adjacent to the given boundary annulus of this block.
whichAnnulus | indicates which boundary annulus of this block should be examined; this must be between 0 and nAnnuli()-1 inclusive. |
true
if the given boundary annulus has an adjacent block listed, or false
otherwise.
|
inline |
Determines whether the core triangular solid torus has two of its boundary annuli linked by a layered chain as described in the general class notes.
true
if and only if the layered chain described in the class notes is present.
|
inline |
Returns the requested hinge edge of this layered loop.
See the general class notes for further details. If there is only one hinge but parameter which is 1, null
will be returned.
which | specifies which hinge to return; this must be 0 or 1. |
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented in regina::LayeredSolidTorus, regina::TriSolidTorus, regina::LayeredChain, regina::SpiralSolidTorus, regina::LayeredTorusBundle, regina::SnapPeaCensusTri, regina::LayeredLensSpace, regina::SnappedBall, regina::LayeredLoop, regina::TrivialTri, regina::L31Pillow, and regina::LayeredChainPair.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homologyH1() (a name that is more specific, but a little longer to type).
Reimplemented from regina::StandardTriangulation.
|
inline |
Returns the expected first homology group of this triangulation, if such a routine has been implemented.
If the calculation of homology has not yet been implemented for this triangulation then this routine will return 0.
This routine does not work by calling Triangulation<3>::homology() on the associated real triangulation. Instead the homology is calculated directly from the known properties of this standard triangulation.
The details of which standard triangulations have homology calculation routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
The homology group will be newly allocated and must be destroyed by the caller of this routine.
If this StandardTriangulation describes an entire Triangulation<3> (and not just a part thereof) then the results of this routine should be identical to the homology group obtained by calling Triangulation<3>::homology() upon the associated real triangulation.
This routine can also be accessed via the alias homology() (a name that is less specific, but a little easier to type).
|
inline |
Returns a left-to-right reflected representation of this annulus.
This structure will not be changed. See reflectHorizontal() for further details.
|
inline |
Returns the image of this annulus representation under the given isomorphism between triangulations.
This annulus representation will not be changed. See transform() for further details.
originalTri | the triangulation currently used by this annulus representation. |
iso | the mapping from originalTri to newTri. |
newTri | the triangulation to be used by the new annulus representation. |
|
inline |
Returns the index of this triangulation within its particular section of the SnapPea census.
Note that indices for each section begin counting at zero.
|
inline |
Returns the number of tetrahedra in this layered chain.
|
protectedvirtual |
Fills this list with items.
The particular set of items to use will typically depend on the particular subclass of ListOnCall that is being defined.
This routine will be run the first time that begin() is called on each list, and will not be run again.
Implements regina::ListOnCall< SatBlockStarter >.
|
static |
Inserts a new copy of a cube block into the given triangulation, and returns the corresponding block structure.
The given triangulation will not be emptied before the new tetrahedra are inserted.
tri | the triangulation into which the new block should be inserted. |
|
static |
Inserts a new copy of a triangular prism block into the given triangulation, and returns the corresponding block structure.
The given triangulation will not be emptied before the new tetrahedra are inserted.
tri | the triangulation into which the new block should be inserted. |
major | true if a block of major type should be inserted, or false if a block of minor type should be inserted. |
|
static |
Inserts a new reflector strip into the given triangulation, and returns the corresponding block structure.
The given triangulation will not be emptied before the new tetrahedra are inserted.
tri | the triangulation into which the new block should be inserted. |
length | the length of the new reflector strip, i.e., the number of boundary annuli; this must be strictly positive. |
twisted | true if the new reflector strip should be twisted (causing its ring of boundary annuli to be twisted also), or false if the new strip should not be twisted. |
|
inline |
Returns the vertex number of the given tetrahedron corresponding to the degree three vertex in the interior of the triangular pillow.
See the general class notes for further details.
The specific tetrahedron to examine is determined by the argument whichTet; this will be the tetrahedron tetrahedron(whichTet)
.
whichTet | specifies which tetrahedron to examine; this must be either 0 or 1. |
|
inline |
Returns the edge internal to this snapped ball.
|
inline |
Returns one of the two tetrahedron faces internal to this snapped ball.
You are guaranteed that index 0 will return a smaller face number than index 1.
index | specifies which of the two internal faces to return; this must be either 0 or 1. |
void regina::LayeredChain::invert | ( | ) |
Inverts this layered chain so the upper hinge becomes the lower and vice versa.
The top and bottom tetrahedra will remain the top and bottom tetrahedra respectively.
Note that this operation will cause the hinge edges to point in the opposite direction around the solid torus formed by this layered chain.
Note that only the representation of the chain is altered; the underlying triangulation is not changed.
bool regina::SatAnnulus::isAdjacent | ( | const SatAnnulus & | other, |
bool * | refVert, | ||
bool * | refHoriz | ||
) | const |
Determines whether this and the given annulus are adjacent, possibly modulo vertical or horizontal reflections.
That is, this routine determines whether this and the given structure represent opposite sides of the same saturated annulus, where the fibres for both structures are consistent (though possibly reversed). See switchSides() for details on what "opposite sides" means in this context, and see reflectVertical() and reflectHorizontal() for descriptions of the various types of reflection.
Information regarding reflections is returned via the two boolean pointers refVert and refHoriz. If the two annuli are identically opposite each other as described by switchSides(), both booleans will be set to false
. If the two annuli are identically opposite after one undergoes a vertical and/or horizontal reflection, then the booleans refVert and/or refHoriz will be set to true
accordingly.
The critical difference between this routine and isJoined() is that this routine insists that the fibres on each annulus be consistent. This routine is thus suitable for examining joins between different sections of the same Seifert fibred space, for example.
other | the annulus to compare with this. |
refVert | returns information on whether the annuli are adjacent modulo a vertical reflection. This is set to true if a vertical reflection is required and false if it is not. If no adjacency was found at all, this boolean is not touched. A null pointer may be passed, in which case this information will not be returned at all. |
refHoriz | returns information on whether the annuli are adjacent modulo a horizontal reflection. This is set to true if a horizontal reflection is required and false if it is not. If no adjacency was found at all, this boolean is not touched. A null pointer may be passed, in which case this information will not be returned at all. |
true
if some adjacency was found (either with or without reflections), or false
if no adjacency was found at all. bool regina::TriSolidTorus::isAnnulusSelfIdentified | ( | int | index, |
Perm< 4 > * | roleMap | ||
) | const |
Determines whether the two triangles of the requested annulus are glued to each other.
If the two triangles are glued, parameter roleMap will be modified to return a permutation describing how the vertex roles are glued to each other. This will describe directly how axis edges, major edges and minor edges map to each other without having to worry about the specific assignment of tetrahedron vertex numbers. For a discussion of vertex roles, see vertexRoles().
Note that annulus index
uses faces from tetrahedra index+1
and index+2
. The gluing permutation that maps vertices of tetrahedron index+1
to vertices of tetrahedron index+2
will be vertexRoles(index+2) * roleMap * vertexRoles(index+1).inverse()
.
index | specifies which annulus on the solid torus boundary to examine; this must be 0, 1 or 2. |
roleMap | a pointer to a permutation that, if this routine returns true , will be modified to describe the gluing of vertex roles. This parameter may be null . |
true
if and only if the two triangles of the requested annulus are glued together.
|
static |
Determines if the given triangulation component is an augmented triangular solid torus.
comp | the triangulation component to examine. |
null
if the given component is not an augmented triangular solid torus.
|
inlinestaticprotected |
Determines whether the given tetrahedron is contained within the given list.
This is intended as a helper routine for isBlock() and related routines. It is a generic routine for working with arbitrary list types.
List::const_iterator
that span the given list can be obtained by calling list.begin()
and list.end()
.t | the tetrahedron to search for. |
list | the list in which to search. |
true
if and only if the given tetrahedron was found.
|
staticprotected |
Determines whether the given tetrahedron is contained within the given list.
This is intended as a helper routine for isBlock() and related routines.
t | the tetrahedron to search for. |
list | the list in which to search. |
true
if and only if the given tetrahedron was found.
|
static |
Determines whether the given annulus is in fact a boundary annulus for a recognised type of saturated block.
The annulus should be represented from the inside of the proposed saturated block.
Only certain types of saturated block are recognised by this routine. More exotic saturated blocks will not be identified, and this routine will return null
in such cases.
The given list of tetrahedra will not be examined by this routine. That is, only saturated blocks that do not contain any of these tetrahedra will be considered. As a consequence, if the given annulus uses any of these tetrahedra then null
will be returned.
If a block is found on the other hand, all of the tetrahedra within this block will be added to the given list.
In the event that a block is found, it is guaranteed that the given annulus will be listed as annulus number 0 in the block structure, without any horizontal or vertical reflection.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found.
|
static |
Determines whether the given annulus is a boundary annulus for a block of this type (cube).
This routine is a specific case of SatBlock::isBlock(); see that routine for further details.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found.
|
static |
Determines if the given triangulation is a blocked Seifert fibred space.
tri | the triangulation to examine. |
null
if the given triangulation is not a blocked Seifert fibred space.
|
static |
Determines if the given triangulation is a blocked Seifert fibred space with identified boundaries, as described by this class.
tri | the triangulation to examine. |
null
if the given triangulation is not of this form.
|
static |
Determines if the given triangulation is a blocked pair of Seifert fibred spaces, as described by this class.
tri | the triangulation to examine. |
null
if the given triangulation is not of this form.
|
static |
Determines if the given triangulation is a blocked sequence of three Seifert fibred spaces, as described in the class notes above.
tri | the triangulation to examine. |
null
if the given triangulation is not of this form.
|
static |
Determines whether the given annulus is a boundary annulus for a block of this type (single layering).
This routine is a specific case of SatBlock::isBlock(); see that routine for further details.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found.
|
static |
Determines whether the given annulus is a boundary annulus for a block of this type (layered solid torus).
This routine is a specific case of SatBlock::isBlock(); see that routine for further details.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found.
|
static |
Determines whether the given annulus is a boundary annulus for a block of this type (Mobius band).
This routine is a specific case of SatBlock::isBlock(); see that routine for further details.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found.
|
static |
Determines whether the given annulus is a boundary annulus for a block of this type (reflector strip).
This routine is a specific case of SatBlock::isBlock(); see that routine for further details.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found.
|
static |
Determines whether the given annulus is a boundary annulus for a block of this type (triangular prism).
This routine is a specific case of SatBlock::isBlock(); see that routine for further details.
annulus | the proposed boundary annulus that should form part of the new saturated block. |
avoidTets | the list of tetrahedra that should not be considered, and to which any new tetrahedra will be added. |
null
if none was found. bool regina::SpiralSolidTorus::isCanonical | ( | const Triangulation< 3 > * | tri | ) | const |
Determines whether this spiralled solid torus is in canonical form.
Canonical form is described in detail in the description for makeCanonical().
tri | the triangulation in which this solid torus lives. |
true
if and only if this spiralled solid torus is in canonical form. bool regina::SatAnnulus::isJoined | ( | const SatAnnulus & | other, |
Matrix2 & | matching | ||
) | const |
Determines whether this and the given annulus are joined in some form, even if the fibres on each annulus are not consistent.
This routine treats each annulus as though its boundaries are identified to form a torus (though it does not actually test whether this is true). It then examines whether this and the given annulus represent opposite sides of the same torus. More specifically, it tests whether both annuli are formed from the same pair of triangles, and whether the mapping of 0/1/2 markings from one annulus to the other is the same for each triangle. Note that the triangles are allowed to be switched (i.e., the first triangle of one annulus may be the second triangle of the other).
The critical difference between this routine and isAdjacent() is that this routine allows the fibres on each annulus to be inconsistent. This routine is thus suitable for examining joins between different Seifert fibred blocks in a graph manifold, for example.
If the two annuli are joined, the precise relationship between the curves on each annulus will be returned in the matrix matching. Specifically, let x and y be the oriented curves running from markings 0-1 and 0-2 respectively on the first triangle of this annulus. Likewise, let x' and y' run from markings 0-1 and 0-2 respectively on the first triangle of the annulus other. Then the joining between the two annuli can be expressed as follows:
[x ] [x'] [ ] = matching * [ ]. [y ] [y']
other | the annulus to compare with this. |
matching | returns details on how the curves on each annulus are related. If the this and the given annulus are not joined, then this matrix is not touched. |
true
if this and the given annulus are found to be joined, or false
if they are not. Determines if the given triangulation component is a triangular pillow L(3,1).
comp | the triangulation component to examine. |
null
if the given component is not a triangular pillow L(3,1).
|
static |
Determines if the given triangulation component is a layered chain pair.
comp | the triangulation component to examine. |
null
if the given component is not a layered chain pair.
|
static |
Determines if the given triangulation component is a layered lens space.
comp | the triangulation component to examine. |
null
if the given component is not a layered lens space.
|
static |
Determines if the given triangulation component is a layered loop.
comp | the triangulation component to examine. |
null
if the given component is not a layered loop.
|
static |
Determines if the given triangulation component forms a layered solid torus in its entirity.
Note that, unlike formsLayeredSolidTorusBase(), this routine tests for a component that is a layered solid torus with no additional tetrahedra or gluings. That is, the two boundary triangles of the layered solid torus must in fact be boundary triangles of the component.
comp | the triangulation component to examine. |
null
if the given component is not a layered solid torus.
|
static |
Determines if the given triangulation is a layered surface bundle.
tri | the triangulation to examine. |
null
if the given triangulation is not a layered surface bundle.
|
inline |
Is this prism of major type or minor type? See the class notes for further details.
Note that this routine cannot be called major(), since on some compilers that name clashes with a macro for isolating major/minor bytes.
true
if this prism is of major type, or false
if it is of minor type. bool regina::BlockedSFS::isPluggedIBundle | ( | std::string & | name | ) | const |
Determines whether this triangulation is a plugged thin I-bundle or a plugged thick I-bundle.
These structures are described in "Structures of small closed non-orientable 3-manifold triangulations", Benjamin A. Burton, J. Knot Theory Ramifications 16 (2007), 545–574.
name | used to return the name of the plugged thin/thick I-bundle, if the triangulation is of this form. If the triangulation is not of this form, this string is not touched. |
true
if this triangulation is indeed a plugged thin I-bundle or a plugged thick I-bundle.
|
static |
Determines if the given triangulation is a saturated region joined to a thin I-bundle via optional layerings, as described in the class notes above.
tri | the triangulation to examine. |
null
if the given triangulation is not of the form described by this class.
|
static |
Determines if the given triangulation component is a plugged triangular solid torus.
comp | the triangulation component to examine. |
null
if the given component is not a plugged triangular solid torus.
|
static |
Determines if the given triangulation component is one of the smallest SnapPea census triangulations.
This routine is able to recognise a small selection of triangulations from the beginning of the SnapPea census, by way of hard-coding their structures and properties. Most triangulations from the census however will not be recognised by this routine.
comp | the triangulation component to examine. |
null
if the given component is not one of the few SnapPea census triangulations recognised by this routine.
|
inline |
Determines if the layered solid torus that forms the basis for this lens space is snapped shut (folded closed without a twist).
true
if and only if the torus is snapped shut.
|
static |
Determines whether the given component represents one of the standard triangulations understood by Regina.
The list of recognised triangulations is expected to grow between releases.
If the standard triangulation returned has boundary triangles then the given component must have the same corresponding boundary triangles, i.e., the component cannot have any further identifications of these boundary triangles with each other.
Note that the triangulation-based routine isStandardTriangulation(Triangulation<3>*) may recognise more triangulations than this routine, since passing an entire triangulation allows access to more information.
component | the triangulation component under examination. |
|
static |
Determines whether the given triangulation represents one of the standard triangulations understood by Regina.
The list of recognised triangulations is expected to grow between releases.
If the standard triangulation returned has boundary triangles then the given triangulation must have the same corresponding boundary triangles, i.e., the triangulation cannot have any further identifications of these boundary triangles with each other.
This routine may recognise more triangulations than the component-based isStandardTriangulation(Component<3>*), since passing an entire triangulation allows access to more information.
tri | the triangulation under examination. |
|
static |
Determines if the given triangulation component is one of the trivial triangulations recognised by this class.
comp | the triangulation component to examine. |
null
if the given component is not one of the triangulations recognised by this class.
|
inline |
Determines if this layered loop contains a twist.
See the general class notes for further details.
true
if and only if this layered loop contains a twist.
|
inline |
Determines if the layered solid torus that forms the basis for this lens space is twisted shut (folded closed with a twist).
true
if and only if the torus is twisted shut. bool regina::SatAnnulus::isTwoSidedTorus | ( | ) | const |
Determines whether this annulus has its boundaries identified to form an embedded two-sided torus within the surrounding triangulation.
It will be verified that:
true
if this annulus forms an embedded two-sided torus as described above, or false
if it does not.
|
inline |
Returns the additional parameter k as described in the class notes.
|
inline |
Creates a new layered chain that is a clone of the given structure.
cloneMe | the layered chain to clone. |
|
inline |
Creates a new layered chain containing only the given tetrahedron.
This new layered chain will have index 1, but may be extended using extendAbove(), extendBelow() or extendMaximal().
tet | the tetrahedron that will make up this layered chain. |
vertexRoles | a permutation describing the role each tetrahedron vertex must play in the layered chain; this must be in the same format as the permutation returned by bottomVertexRoles() and topVertexRoles(). |
regina::Layering::Layering | ( | Tetrahedron< 3 > * | bdry0, |
Perm< 4 > | roles0, | ||
Tetrahedron< 3 > * | bdry1, | ||
Perm< 4 > | roles1 | ||
) |
Creates a new trivial (zero-tetrahedron) layering upon the given boundary.
The boundary is described by two tetrahedra and two permutations as explained in the class notes. Note that the given tetrahedra need not be boundary triangles in the triangulation (and if search routines such as extend() are called then they almost certainly should not be).
bdry0 | the tetrahedron providing the first triangle of the boundary. |
roles0 | the permutation describing how this first triangle is formed from three vertices of tetrahedron bdry0, as described in the class notes. |
bdry1 | the tetrahedron providing the second triangle of the boundary. |
roles1 | the permutation describing how this second triangle is formed from three vertices of tetrahedron bdry1. |
|
inline |
Returns a 2-by-2 matrix describing how the layering of tetrahedra relates curves on the two torus boundaries of the core T x I
.
The TxICore class documentation describes generating alpha and beta curves on the two torus boundaries of the core T x I
(which are referred to as the upper and lower boundaries). The two boundary tori are parallel in two directions: through the core, and through the layering. It is desirable to know the parallel relationship between the two sets of boundary curves in each direction.
The relationship through the core is already described by TxICore::parallelReln(). This routine describes the relationship through the layering.
Let a_u and b_u be the alpha and beta curves on the upper boundary torus, and let a_l and b_l be the alpha and beta curves on the lower boundary torus. Suppose that the upper alpha is parallel to w.a_l + x.b_l, and that the upper beta is parallel to y.a_l + z.b_l. Then the matrix returned will be
[ w x ] [ ] . [ y z ]
In other words,
[ a_u ] [ a_l ] [ ] = layeringReln() * [ ] . [ b_u ] [ b_l ]
It can be observed that this matrix expresses the upper boundary curves in terms of the lower, whereas TxICore::parallelReln() expresses the lower boundary curves in terms of the upper. This means that the monodromy describing the overall torus bundle over the circle can be calculated as
M = layeringReln() * core().parallelReln()
or alternatively using the similar matrix
M' = core().parallelReln() * layeringReln() .
Note that in the degenerate case where there is no layering at all, this matrix is still perfectly well defined; in this case it describes a direct identification between the upper and lower boundary tori.
T x I
.
|
inline |
Returns the length of this layered loop.
See the general class notes for further details.
|
inline |
Returns details of the layered solid torus that this block represents.
bool regina::SpiralSolidTorus::makeCanonical | ( | const Triangulation< 3 > * | tri | ) |
Converts this spiralled solid torus into its canonical representation.
The canonical representation of a spiralled solid torus is unique in a given triangulation.
Tetrahedron 0 in the spiralled solid torus will be the tetrahedron with the lowest index in the triangulation, and under permutation vertexRoles(0)
the image of 0 will be less than the image of 3.
tri | the triangulation in which this solid torus lives. |
true
if and only if the representation of this spiralled solid torus was actually changed.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented in regina::LayeredSolidTorus, regina::TriSolidTorus, regina::LayeredChain, regina::AugTriSolidTorus, regina::SpiralSolidTorus, regina::LayeredTorusBundle, regina::PlugTriSolidTorus, regina::BlockedSFSTriple, regina::PluggedTorusBundle, regina::SnapPeaCensusTri, regina::LayeredLensSpace, regina::BlockedSFSLoop, regina::SnappedBall, regina::BlockedSFSPair, regina::LayeredLoop, regina::TrivialTri, regina::L31Pillow, regina::LayeredChainPair, and regina::BlockedSFS.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
|
virtual |
Returns the 3-manifold represented by this triangulation, if such a recognition routine has been implemented.
If the 3-manifold cannot be recognised then this routine will return 0.
The details of which standard triangulations have 3-manifold recognition routines can be found in the notes for the corresponding subclasses of StandardTriangulation. The default implementation of this routine returns 0.
It is expected that the number of triangulations whose underlying 3-manifolds can be recognised will grow between releases.
The 3-manifold will be newly allocated and must be destroyed by the caller of this routine.
Reimplemented from regina::StandardTriangulation.
bool regina::Layering::matchesTop | ( | Tetrahedron< 3 > * | upperBdry0, |
Perm< 4 > | upperRoles0, | ||
Tetrahedron< 3 > * | upperBdry1, | ||
Perm< 4 > | upperRoles1, | ||
Matrix2 & | upperReln | ||
) | const |
Determines whether the new torus boundary of this structure is identified with the given torus boundary.
In other words, this routine determines whether the new torus boundary of this structure and the given torus boundary represent opposite sides of the same two triangles.
The two boundaries must be identified according to some homeomorphism of the torus. Note that there are 12 different ways in which this can be done (two choices for which tetrahedron face joins with which, and then six possible rotations and reflections).
As with the other routines in this class, this routine does not verify that either boundary in fact forms a torus. Instead, it uses this assumption to define the rules of what identifications are allowable.
If there is a match, the given matrix upperReln will be modified to describe how the edges of the given boundary relate to the edges of the old boundary torus. Note that this relationship depends on how the intermediate tetrahedra are layered (and in fact the purpose of a layering is often to produce such a non-trivial relationship).
Specifically, let t0 and p0 be the first tetrahedron and permutation of the old boundary (as returned by oldBoundaryTet(0) and oldBoundaryRoles(0)), and let x and y be the directed edges p0[0]-p0[1] and p0[0]-p0[2] of tetrahedron t0 respectively (these are the leftmost and uppermost edges of the diagram below). Likewise, let u and q be the first tetrahedron and permutation of the given boundary (as passed by parameters upperBdry0 and upperRoles0), and let a and b be the directed edges q[0]-q[1] and q[0]-q[2] of tetrahedron u respectively.
*--->>--* |0 2 / | | / 1| v / v |1 / | | / 2 0| *--->>--*
Assuming both boundaries are tori, edges x and y are generators of the original torus boundary and edges a and b are generators of the given torus boundary. Using additive notation, the matrix upperReln is modified so that
[a] [x] [ ] = upperReln * [ ] . [b] [y]
In other words, the modified upperReln matrix expresses the generator curves of the given boundary in terms of the generator curves of the old boundary.
If no match is found, the matrix upperReln is not touched.
upperBdry0 | the tetrahedron providing the first triangle of the given boundary. |
upperRoles0 | the permutation describing how this first triangle is formed from three vertices of tetrahedron upperBdry0, as described in the class notes. |
upperBdry1 | the tetrahedron providing the second triangle of the given boundary. |
upperRoles1 | the permutation describing how this second triangle is formed from three vertices of tetrahedron upperBdry1. |
upperReln | the matrix that is changed to reflect the relationship between the old boundary of this structure and the given boundary. |
true
if the given boundary is found to matche the new boundary of this structure, or false
otherwise.
|
inline |
Returns the matrix describing how the two saturated region boundaries are joined.
Note that if a layering is placed between the two region boundaries, then any changes to the boundary relationships caused by the layering are included in this matrix.
See the class notes above for precise information on how this matrix is presented.
|
inline |
Returns the matrix describing how the two torus boundaries of the saturated region are joined.
Note that if a layering is placed between the two boundary tori, then any changes to the boundary relationships caused by the layering are included in this matrix.
See the class notes above for precise information on how this matrix is presented.
|
inline |
Returns the matrix describing how the two torus boundaries of the saturated region are joined by the thin I-bundle and layerings.
See the class notes above for details.
|
inline |
Returns the matrix describing how the given end region is joined to the central region.
Note that if a layering is placed between the two respective region boundaries, then any changes to the boundary relationships caused by the layering are included in this matrix.
See the class notes above for precise information on how each matrix is presented.
which | 0 if the matrix returned should describe how the central region is joined to the first end region (marked end region 0 in the class notes), or 1 if the matrix returned should describe how the central region is joined to the second end region (marked end region 1 in the class notes). |
unsigned regina::SatAnnulus::meetsBoundary | ( | ) | const |
Determines how many triangles of this annulus lie on the boundary of the triangulation.
Note that this routine can also be used as a boolean function to determine whether any triangles of the annulus lie on the triangulation boundary.
|
inline |
Returns the number of times the meridinal disc of the torus cuts the top level tetrahedron edges in the given group.
See topEdge() for further details about groups.
group | the given edge group; this must be 0, 1 or 2. |
|
inline |
Determines which edge of the layered solid torus is glued to the boundary of the mobius strip (i.e., the weight 2 edge of the degenerate (2,1,1) layered solid torus).
The return value will be one of the three top level tetrahedron edge groups in the layered solid torus; see LayeredSolidTorus::topEdge() for further details about edge groups.
std::string regina::StandardTriangulation::name | ( | ) | const |
Returns the name of this specific triangulation as a human-readable string.
std::string regina::TxICore::name | ( | ) | const |
Returns the name of this specific triangulation of T x I
as a human-readable string.
|
inline |
Returns the number of annuli on the boundary of this saturated block.
|
inline |
Returns the permutations that describe the new boundary triangles.
These refer to the final boundary after layerings have been performed.
See the Layering class notes for details on how a torus boundary is formed from two tetrahedra and two permutations.
which | specifies which permutation to return; this must be either 0 or 1. |
|
inline |
Returns the tetrahedra that provide the new boundary triangles.
These belong to the final boundary after layerings have been performed.
See the Layering class notes for details on how a torus boundary is formed from two tetrahedra and two permutations.
which | specifies which tetrahedron to return; this must be either 0 or 1. |
void regina::SatBlock::nextBoundaryAnnulus | ( | unsigned | thisAnnulus, |
SatBlock *& | nextBlock, | ||
unsigned & | nextAnnulus, | ||
bool & | refVert, | ||
bool & | refHoriz, | ||
bool | followPrev | ||
) |
Finds the next (or previous) boundary annulus around from this, treating all adjacent blocks as part of a single large saturated region.
Suppose that all saturated blocks are merged together according to adjacent boundary annuli, forming larger saturated structures. The remaining annuli that do not have adjacent blocks will group together to form several large boundary rings. Note that each boundary ring might involve annuli from several different blocks, and might or might not have a twist (thus forming a large Klein bottle instead of a large torus).
This routine is used to trace around such a boundary ring. It is assumed that annulus thisAnnulus of this block forms part of a boundary ring (i.e., it has no adjacent block). This routine will then return the next/previous annulus around from this in the large boundary ring. Here "next" means in the direction following from the second triangle of this annulus, and "previous" means in the direction following from the first triangle; the boolean argument followPrev controls which we will be used. This next/previous annulus might belong to another block, or it might even be this original annulus again.
The next/previous annulus itself is not returned, but rather a reference as to how it appears within its enclosing saturated block. Specifically, a block and corresponding annulus number will be returned in the arguments nextBlock and nextAnnulus respectively.
It is possible that the next/previous annulus as it appears within the returned block is oriented differently from how it appears within this large boundary ring. For this reason, two booleans are returned also. The argument refVert will describe whether the annulus is reflected vertically as it appears within the large boundary ring (i.e., the first and second triangles remain the same but the fibre direction is reversed). Similarly, the argument refHoriz will describe whether the annulus is reflected horizontally as it appears within the large boundary ring (i.e., first and second triangles are switched but the fibre direction is unchanged).
It is possible that both a horizontal and vertical reflection take place. Note that any kind of reflection will also affect the locations of the 0/1/2 markings as described in the SatAnnulus class notes.
Finally, note that if the large boundary ring is twisted (i.e., it forms a Klein bottle), then following the entire boundary ring around using this routine will bring you back to the starting annulus but with the refVert flag set.
thisAnnulus | describes which original boundary annulus of this block to examine; this must be between 0 and nAnnuli()-1 inclusive. |
nextBlock | a reference used to return the block containing the next boundary annulus around from thisAnnulus. |
nextAnnulus | a reference used to return the specific annulus number within nextBlock of the next annulus around; this will be between 0 and nextBlock->nAnnuli()-1 inclusive, and the corresponding annulus will have no block adjacent to it. |
refVert | a reference used to return true if the next annulus around is vertically reflected, or false if not; see above for details. |
refHoriz | a reference used to return true if the next annulus around is horizontally reflected, or false if not; see above for details. |
followPrev | true if we should find the previous boundary annulus, or false if we should find the next boundary annulus. |
|
inlinestaticprotected |
Determines whether the given tetrahedron pointer is null.
This is intended as a helper routine for isBlock() and related routines. Despite its trivial implementation, it is provided to make long blocks of code easier to read and distinguish by functionality.
The name notUnique() may seem strang for what is essentially a nullity test; in fact this routine is offered as a degenerate case of other variants of notUnique() that take more tetrahedra as arguments.
test | the tetrahedron pointer to test. |
true
if test is null, or false
otherwise.
|
inlinestaticprotected |
Determines whether the given tetrahedron pointer is null or equal to another from the given list.
This is intended as a helper routine for isBlock() and related routines. Despite its trivial implementation, it is provided to make long blocks of code easier to read and distinguish by functionality.
test | the tetrahedron pointer to test. |
other1 | another tetrahedron that will be compared with test. |
true
if test is null or equal to other1, or false
otherwise.
|
inlinestaticprotected |
Determines whether the given tetrahedron pointer is null or equal to another from the given list.
This is intended as a helper routine for isBlock() and related routines. Despite its trivial implementation, it is provided to make long blocks of code easier to read and distinguish by functionality.
test | the tetrahedron pointer to test. |
other1 | another tetrahedron that will be compared with test. |
other2 | another tetrahedron that will be compared with test. |
true
if test is null or equal to other1 or other2, or false
otherwise.
|
inlinestaticprotected |
Determines whether the given tetrahedron pointer is null or equal to another from the given list.
This is intended as a helper routine for isBlock() and related routines. Despite its trivial implementation, it is provided to make long blocks of code easier to read and distinguish by functionality.
test | the tetrahedron pointer to test. |
other1 | another tetrahedron that will be compared with test. |
other2 | another tetrahedron that will be compared with test. |
other3 | another tetrahedron that will be compared with test. |
true
if test is null or equal to other1, other2 or other3, or false
otherwise.
|
inlinestaticprotected |
Determines whether the given tetrahedron pointer is null or equal to another from the given list.
This is intended as a helper routine for isBlock() and related routines. Despite its trivial implementation, it is provided to make long blocks of code easier to read and distinguish by functionality.
test | the tetrahedron pointer to test. |
other1 | another tetrahedron that will be compared with test. |
other2 | another tetrahedron that will be compared with test. |
other3 | another tetrahedron that will be compared with test. |
other4 | another tetrahedron that will be compared with test. |
true
if test is null or equal to other1, other2, other3 or other4, or false
otherwise.
|
inline |
Returns the number of saturated blocks that come together to form this saturated region.
|
inline |
Returns the number of saturated annuli that together form the boundary components of this region.
|
inline |
Returns the permutations that describe the old boundary triangles.
These refer to the original boundary before any layerings take place.
See the Layering class notes for details on how a torus boundary is formed from two tetrahedra and two permutations.
which | specifies which permutation to return; this must be either 0 or 1. |
|
inline |
Returns the tetrahedra that provide the old boundary triangles.
These belong to the original boundary before any layerings take place.
See the Layering class notes for details on how a torus boundary is formed from two tetrahedra and two permutations.
which | specifies which tetrahedron to return; this must be either 0 or 1. |
|
inline |
Determines whether or not this and the given structure describe the same annulus with the same representation.
This requires both structures to have identical tet[] and roles[] arrays.
other | the structure to compare with this. |
true
if the structures do not describe the same annulus with the same representation, or false
if they do.
|
inline |
Determines whether this and the given structure contain different information.
In particular, they are considered different if their block pointers are different (even if they point to different blocks with the same contents).
other | the structure to compare against this. |
true
if and only if this and other contain different information.
|
inline |
Determines whether this and the given structure represent different triangulations from the SnapPea census.
compare | the structure with which this will be compared. |
true
if and only if this and the given structure represent different SnapPea census triangulations. bool regina::SatBlock::operator< | ( | const SatBlock & | compare | ) | const |
Implements a consistent ordering of saturated blocks.
This ordering is purely aesthetic on the part of the author, and is subject to change in future versions of Regina.
compare | the saturated block with which this will be compared. |
true
if this block comes before the given block according to the ordering of saturated blocks, or false
if either the blocks are identical or this block comes after the given block.
|
inline |
Makes this equal to a clone of the given structure.
cloneMe | the structure to clone. |
|
inline |
Determines whether or not this and the given structure describe the same annulus with the same representation.
This requires both structures to have identical tet[] and roles[] arrays.
other | the structure to compare with this. |
true
if the structures describe the same annulus with the same representation, or false
if they do not.
|
inline |
Determines whether this and the given structure contain identical information.
In particular, their block pointers must be identical (not pointing to different blocks with the same contents).
other | the structure to compare against this. |
true
if and only if this and other contain identical information.
|
inline |
Determines whether this and the given structure represent the same triangulation from the SnapPea census.
compare | the structure with which this will be compared. |
true
if and only if this and the given structure represent the same SnapPea census triangulation.
|
inline |
Returns a representation of the same annulus from the other side.
This structure will not be changed. See switchSides() for further details.
|
inline |
Does this describe a layering over the horizontal edge of the boundary annulus, or a layering over the diagonal edge?
See the SatAnnulus class notes for definitions of horizontal and diagonal in this context.
|
inline |
Returns the first parameter p of this lens space L(p,q).
|
inline |
Returns a 2-by-2 matrix describing the parallel relationship between the upper and lower boundary curves.
Let a_u and b_u be the upper alpha and beta boundary curves. Suppose that the lower alpha is parallel to w.a_u + x.b_u, and that the lower beta is parallel to y.a_u + z.b_u. Then the matrix returned will be
[ w x ] [ ] . [ y z ]
In other words, if a_l and b_l are the lower alpha and beta curves respectively, we have
[ a_l ] [ a_u ] [ ] = parallelReln() * [ ] . [ b_l ] [ b_u ]
|
inline |
Describes how the Mobius band is attached to the boundary annulus.
The class notes discuss the weight two edge of the Mobius band (or equivalently the boundary edge of the Mobius band). The return value of this routine indicates which edge of the boundary annulus this weight two edge is joined to.
In the SatAnnulus class notes, the three edges of the annulus are denoted vertical, horizontal and boundary, and the vertices of each triangle are given markings 0, 1 and 2.
The return value of this routine takes the value 0, 1 or 2 as follows:
|
inline |
Returns the second parameter q of this lens space L(p,q).
|
inline |
Performs a left-to-right reflection of this annulus representation.
The vertical direction of the fibres will remain unchanged, but the first and second triangles will be switched (and the 0..2 markings changed to compensate).
|
inline |
Reverses the direction of the vertical fibres in this annulus representation.
The first and second triangles (as described in the class notes) will remain unchanged, but the markings 0 and 1 on each triangle will be switched.
|
inline |
Returns details of the single saturated region that fills this triangulation.
|
inline |
Returns details of the saturated region from which this triangulation is formed.
See the class notes above for further information.
|
inline |
Returns the saturated region that forms part of this triangulation.
The region refers directly to tetrahedra within this triangulation (as opposed to the thin I-bundle, which refers to a separate external triangulation).
|
inline |
Returns details of one of the two bounded saturated regions that form this triangulation.
See the class notes above for further information.
which | 0 if the first region should be returned, or 1 if the second region should be returned. |
void regina::SpiralSolidTorus::reverse | ( | ) |
Reverses this spiralled solid torus.
Tetrahedra 0, 1, 2, ..., size()-1 will become tetrahedra size()-1, ..., 2, 1, 0 respectively. Note that this operation will change the vertex roles as well.
The underlying triangulation is not changed; all that changes is how this spiralled solid torus is represented.
void regina::LayeredChain::reverse | ( | ) |
Reverses this layered chain so the top tetrahedron becomes the bottom and vice versa.
The upper and lower hinges will remain the upper and lower hinges respectively.
Note that this operation will cause the hinge edges to point in the opposite direction around the solid torus formed by this layered chain.
Note that only the representation of the chain is altered; the underlying triangulation is not changed.
|
inline |
Describes how the layered solid torus is attached to the boundary annulus.
The LayeredSolidTorus class notes describe top-level edge groups 0, 1 and 2 for a layered solid torus. On the other hand, the SatAnnulus class notes define vertical, horizontal and diagonal edges on the boundary annulus.
Suppose that the permutation returned by this routine is r. This indicates that:
The image r[3] will always be 3.
|
inline |
Rotates the representation of this annulus by 180 degrees.
This has the effect of switching the first and second triangles and also reversing the direction of the vertical fibres.
Calling this routine is equivalent to calling reflectVertical() and then reflectHorizontal().
|
inline |
Creates a new uninitialised structure.
Both tetrahedra will be set to null pointers.
|
inline |
Creates a clone of the given structure.
cloneMe | the structure to clone. |
|
inline |
Creates a new structure initialised to the given values.
See the class notes for what the various tetrahedra and permutations mean.
t0 | the tetrahedron to assign to tet[0]. |
r0 | the permutation to assign to roles[0]. |
t1 | the tetrahedron to assign to tet[1]. |
r1 | the permutation to assign to roles[1]. |
regina::SatBlock::SatBlock | ( | const SatBlock & | cloneMe | ) |
Creates a new clone of the given block.
Note that the new adjBlock_ array will contain pointers to the same adjacent blocks as the original. That is, adjacent blocks will not be cloned also; instead pointers to adjacent blocks will simply be copied across.
cloneMe | the saturated block to clone. |
|
inlineprotected |
Constructor for a block with the given number of annuli on the boundary.
All arrays will be constructed but their contents will remain uninitialised, with the exception that the adjBlock array will be filled with null pointers.
nAnnuli | the number of annuli on the boundary of this block; this must be strictly positive. |
twistedBoundary | true if the ring of boundary annuli is twisted to form a long Mobius band, or false (the default) if it is not. |
|
inline |
Creates a new structure that is completely uninitialised.
|
inline |
Creates a new structure that is initialised to the given set of values.
useBlock | details of the saturated block structure. |
useRefVert | true if the block is reflected vertically within the larger region, or false otherwise. |
useRefHoriz | true if the block is reflected horizontally within the larger region, or false otherwise. |
|
inlineprotected |
Constructs an uninitialised block.
The boundary annuli must be initialised before this block can be used.
|
inline |
Constructs a clone of the given block structure.
cloneMe | the block structure to clone. |
|
inlineprotected |
Constructs a partially initialised block.
The boundary annuli will remain uninitialised, and must be initialised before this block can be used.
overHorizontal | true if this block describes a layering over the horizontal edge of the boundary annulus, or false if it describes a layering over the diagonal edge. |
|
inline |
Constructs a clone of the given block structure.
cloneMe | the block structure to clone. |
regina::SatLST::SatLST | ( | const SatLST & | cloneMe | ) |
Constructs a clone of the given block structure.
cloneMe | the block structure to clone. |
|
inline |
Constructs a clone of the given block structure.
cloneMe | the block structure to clone. |
|
inline |
Constructs a clone of the given block structure.
cloneMe | the block structure to clone. |
|
inlineprotected |
Constructs a partially initialised block of the given length.
The boundary annuli will remain uninitialised, and must be initialised before this block can be used.
length | the length of the new reflector strip, i.e., the number of boundary annuli; this must be strictly positive. |
twisted | true if the strip should be twisted (giving a twisted ring of boundary annuli), or false if not. |
regina::SatRegion::SatRegion | ( | SatBlock * | starter | ) |
Constructs a new region containing just the given block.
All boundary annuli of the given block will become boundary annuli of this region. It is guaranteed that this block will be stored in the region without any kind of reflection (see SatBlockSpec for details).
Typically a region is initialised using this constructor, and then grown using the expand() routine. For help in finding an initial starter block, see the SatBlockStarterSearcher class.
This region will claim ownership of the given block, and upon destruction it will destroy this block also.
false
.starter | the single block that this region will describe. |
|
inlineprotected |
Constructs a partially initialised block.
The boundary annuli will remain uninitialised, and must be initialised before this block can be used.
major | true if this block is of major type, or false if it is of minor type. |
|
inline |
Constructs a clone of the given block structure.
cloneMe | the block structure to clone. |
|
inline |
Returns the section of the SnapPea census to which this triangulation belongs.
This will be one of the section constants defined in this class.
|
inline |
Lists the given saturated block as being adjacent to the given boundary annulus of this block.
Both block structures (this and the given block) will be updated.
whichAnnulus | indicates which boundary annulus of this block has the new adjacency; this must be between 0 and nAnnuli()-1 inclusive. |
adjBlock | the other saturated block that is adjacent to this. |
adjAnnulus | indicates which boundary annulus of the adjacent block meets the given boundary annulus of this block; this must be between 0 and adjBlock->nAnnuli()-1 inclusive. |
adjReflected | indicates whether the new adjacency is reflected (see the class notes for details). |
adjBackwards | indicates whether the new adjacency is backwards (see the class notes for details). |
|
inline |
Returns the number of tetrahedra in this layered solid torus.
|
inline |
Returns the number of tetrahedra in this spiralled solid torus.
|
inline |
Returns the number of individual tetrahedra that have been layered onto the original boundary, according to the data stored in this structure.
This begins at zero when the class constructor is called, and it increases if the routines extend() or extendOne() find that additional layerings have taken place.
|
inline |
Returns the total number of tetrahedra in this T x I
triangulation.
|
inline |
Returns one of the two snapped 3-balls whose equators are joined.
index | specifies which of the two 3-balls to return; this must be either 0 or 1. |
void regina::SatAnnulus::switchSides | ( | ) |
Converts this into a representation of the same annulus from the other side.
The first and second triangles and their 0..2 markings (as described in the class notes) remain unchanged. However, the two tetrahedra that are used to describe the annulus will be replaced by their counterparts on the other side of the annulus (i.e., the two new tetrahedra that meet the two original tetrahedra along the annulus itself).
|
inline |
Returns the tetrahedron that forms this snapped ball.
|
inline |
Returns the requested tetrahedron in this solid torus.
See the general class notes for further details.
index | specifies which tetrahedron in the solid torus to return; this must be 0, 1 or 2. |
|
inline |
Returns one of the two tetrahedra involved in this structure.
whichTet | specifies which tetrahedron to return; this must be either 0 or 1. |
|
inline |
Returns the requested tetrahedron in this spiralled solid torus.
Tetrahedra are numbered from 0 to size()-1 inclusive, with tetrahedron i+1 being placed above tetrahedron i.
index | specifies which tetrahedron to return; this must be between 0 and size()-1 inclusive. |
std::string regina::StandardTriangulation::TeXName | ( | ) | const |
Returns the name of this specific triangulation in TeX format.
No leading or trailing dollar signs will be included.
std::string regina::TxICore::TeXName | ( | ) | const |
Returns the name of this specific triangulation of T x I
in TeX format.
No leading or trailing dollar signs will be included.
|
inline |
Returns the top tetrahedron of this layered chain.
|
inline |
Returns the requested edge of the top level tetrahedron belonging to the given group.
The layering reduces five of the top level tetrahedron edges to three boundary edges of the solid torus; this divides the five initial edges into groups of size two, two and one.
Group 0 represents the boundary edge that the meridinal disc cuts fewest times. Group 2 represents the boundary edge that the meridinal disc cuts most times. Group 1 is in the middle.
Note that topEdgeGroup(topEdge(group, index)) == group
for all values of group
and index
that actually correspond to an edge.
Edges topEdge(group, 0)
will all belong to face topFace(0)
. Edges topEdge(group, 1)
(if they exist) will all belong to face topFace(1)
.
group | the group that the requested edge should belong to; this must be 0, 1 or 2. |
index | the index within the given group of the requested edge; this must be 0 or 1. Note that one of the groups only contains one tetrahedron edge, in which case this edge will be stored at index 0. |
|
inline |
Returns the group that the given edge of the top level tetrahedron belongs to.
See topEdge() for further details about groups.
Note that topEdgeGroup(topEdge(group, index)) == group
for all values of group
and index
that actually correspond to an edge.
edge | the edge number in the top level tetrahedron of the given edge; this must be between 0 and 5 inclusive. |
|
inline |
Returns one of the two faces of the top level tetrahedron that form the boundary of this layered solid torus.
index | specifies which of the two faces to return; this must be 0 or 1. |
|
inline |
Returns the top level tetrahedron in this layered solid torus.
This is the tetrahedron that would be on the boundary of the torus if the torus were the entire manifold.
|
inline |
Returns a permutation represeting the role that each vertex of the top tetrahedron plays in the layered chain.
The permutation returned (call this p
) maps 0, 1, 2 and 3 to the four vertices of the top tetrahedron so that the edge from p[0]
to p[1]
is the top hinge, the edge from p[2]
to p[3]
is the bottom hinge, faces p[1]
and p[2]
are the bottom faces and faces p[0]
and p[3]
are the (boundary) top faces.
See the general class notes for further details.
|
inline |
Returns the layered solid torus to which the mobius strip is glued.
|
inline |
Returns the single boundary annulus of the core triangular solid torus to which a layered solid torus is attached.
This routine is only meaningful if the other two annuli are linked by a layered chain.
The integer returned will be 0, 1 or 2; see the TriSolidTorus class notes for how the boundary annuli are numbered.
|
virtual |
Adjusts the structure of this block according to the given isomorphism between triangulations.
Any triangulation-specific information will be transformed accordingly (for instance, the routine SatAnnulus::transform() will be called for each boundary annulus).
Information regarding adjacent blocks will not be changed. Only structural information for this particular block will be updated.
The given isomorphism must describe a mapping from originalTri to newTri, and this block must currently refer to tetrahedra in originalTri. After this routine is called the block will instead refer to the corresponding tetrahedra in newTri (with changes in vertex/face numbering also accounted for).
originalTri | the triangulation currently used by this saturated block. |
iso | the mapping from originalTri to newTri. |
newTri | the triangulation to be used by the updated block structure. |
Reimplemented from regina::SatBlock.
void regina::LayeredSolidTorus::transform | ( | const Triangulation< 3 > * | originalTri, |
const Isomorphism< 3 > * | iso, | ||
Triangulation< 3 > * | newTri | ||
) |
Adjusts the details of this layered solid torus according to the given isomorphism between triangulations.
The given isomorphism must describe a mapping from originalTri to newTri, and this layered solid torus must currently refer to tetrahedra in originalTri. After this routine is called this structure will instead refer to the corresponding tetrahedra in newTri (with changes in vertex/face numbering also accounted for).
originalTri | the triangulation currently referenced by this layered solid torus. |
iso | the mapping from originalTri to newTri. |
newTri | the triangulation to be referenced by the updated layered solid torus. |
|
virtual |
Adjusts the structure of this block according to the given isomorphism between triangulations.
Any triangulation-specific information will be transformed accordingly (for instance, the routine SatAnnulus::transform() will be called for each boundary annulus).
Information regarding adjacent blocks will not be changed. Only structural information for this particular block will be updated.
The given isomorphism must describe a mapping from originalTri to newTri, and this block must currently refer to tetrahedra in originalTri. After this routine is called the block will instead refer to the corresponding tetrahedra in newTri (with changes in vertex/face numbering also accounted for).
originalTri | the triangulation currently used by this saturated block. |
iso | the mapping from originalTri to newTri. |
newTri | the triangulation to be used by the updated block structure. |
Reimplemented in regina::SatLST.
void regina::SatAnnulus::transform | ( | const Triangulation< 3 > * | originalTri, |
const Isomorphism< 3 > * | iso, | ||
Triangulation< 3 > * | newTri | ||
) |
Adjusts this annulus representation according to the given isomorphism between triangulations.
The given isomorphism must describe a mapping from originalTri to newTri, and this annulus must refer to tetrahedra in originalTri. This routine will adjust this annulus according to the given isomorphism, so that it refers to the corresponding tetrahedra in newTri (with the roles permutations also updated accordingly).
originalTri | the triangulation currently used by this annulus representation. |
iso | the mapping from originalTri to newTri. |
newTri | the triangulation to be used by the updated annulus representation. |
|
inline |
Returns one of the two triangles whose boundaries are joined.
index | specifies which of the two triangles to return; this must be either 0 or 1. |
|
inline |
Returns a permutation describing how the boundaries of the two triangles are joined.
The permutation will map vertices (0,1,2) of triangle(0)
to vertices (0,1,2) of triangle(1)
. The map will represent how the vertices of the triangles are identified by the three edge gluings.
|
inline |
Returns a reference to the triangulation of the saturated block.
|
inline |
Is the ring of boundary annuli twisted to form a long Mobius strip?
Recall from the class notes that the twist occurs between boundary annuli nAnnuli()-1 and 0.
true
if the ring of boundary annuli is twisted, or false
if not.
|
inlineprotected |
Default constructor that performs no initialisation.
regina::TxIDiagonalCore::TxIDiagonalCore | ( | unsigned long | newSize, |
unsigned long | newK | ||
) |
Creates a new T x I
triangulation with the given parameters.
newSize | the number of tetrahedra in this triangulation. This must be at least 6. |
newK | the additional parameter k as described in the class notes. This must be between 1 and (newSize - 5) inclusive. |
regina::TxIParallelCore::TxIParallelCore | ( | ) |
Creates a new copy of this T x I
triangulation.
|
inline |
Returns the specific trivial triangulation being represented.
|
protectedpure virtual |
Used by subclasses to process each starter block embedding that is found.
Suppose that the main search routine findStarterBlocks() has been called with some triangulation t. Each time it locates an isomorphic embedding of a starter block within t, it will call useStarterBlock(). Subclasses of SatBlockStarterSearcher should therefore override useStarterBlock() to process each embedding in whatever way is appropriate for the problem at hand.
The block passed in the argument starter is a newly created structure describing the starter block as it appears within the triangulation t. Thus different embeddings of the same starter block within t will pass different starter arguments to this routine. It is the responsibility of useStarterBlock() to either destroy the new block starter or pass ownership of it elsewhere.
When this routine is called, the data member usedTets will contain a list of all tetrahedra from the triangulation t that appear within the relevant starter block embedding. The reimplementation of useStarterBlock() may modify this list as it pleases, since the main search routine will empty the list anyway when useStarterBlock() returns. One possible use for the usedTets data member is for passing to SatBlock::isBlock() or SatRegion::expand() as the list of tetrahedra to avoid in further searches.
This routine must return a boolean; this allows subclasses to immediately terminate the main search once they have found whatever it is they were looking for. A return value of true
signifies that the search should continue as normal, whereas a return value of false
signifies that the search should end immediately (specifically, that findStarterBlocks() should clean up and return before all remaining embeddings of all starter blocks have been found).
starter | a newly created structure describing the starter block as it appears within the larger triangulation currently under examination. |
true
if the search for embeddings of starter blocks should continue, or false
if the search should stop immediately.
|
inline |
Returns a permutation represeting the role that each vertex of the requested tetrahedron plays in the solid torus.
The permutation returned (call this p
) maps 0, 1, 2 and 3 to the four vertices of tetrahedron index so that the edge from p[0]
to p[3]
is an oriented axis edge, and the path from vertices p[0]
to p[1]
to p[2]
to p[3]
follows the three oriented major edges. In particular, the major edge for annulus index will run from vertices p[1]
to p[2]
. Edges p[0]
to p[2]
and p[1]
to p[3]
will both be oriented minor edges.
Note that annulus index+1
uses face p[1]
of the requested tetrahedron and annulus index+2
uses face p[2]
of the requested tetrahedron. Both annuli use the axis edge p[0]
to p[3]
, and each annulus uses one other major edge and one other minor edge so that (according to homology) the axis edge equals the major edge plus the minor edge.
See the general class notes for further details.
index | specifies which tetrahedron in the solid torus to examine; this must be 0, 1 or 2. |
|
inline |
Returns a permutation represeting the role that each vertex of the requested tetrahedron plays in the solid torus.
The permutation returned (call this p
) maps 0, 1, 2 and 3 to the four vertices of tetrahedron index so that vertices p[0]
, p[1]
, p[2]
and p[3]
correspond to vertices A, B, C and D respectively as described in the general class notes.
In particular, the directed edge from vertex p[0]
to p[3]
is an axis edge, directed edges p[0]
to p[2]
and p[1]
to p[3]
are minor edges and the directed path from vertices p[0]
to p[1]
to p[2]
to p[3]
follows the three major edges.
See the general class notes for further details.
index | specifies which tetrahedron in the solid torus to examine; this must be between 0 and size()-1 inclusive. |
|
inline |
Returns a representation of this annulus in which the vertical direction of the fibres has been reversed.
This structure will not be changed. See reflectVertical() for further details.
|
virtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implements regina::SatBlock.
|
virtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implements regina::SatBlock.
|
pure virtual |
Writes an abbreviated name or symbol for this block to the given output stream.
This name should reflect the particular block type, but need not provide thorough details.
The output should be no more than a handful of characters long, and no newline should be written. In TeX mode, no leading or trailing dollar signs should be written.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be in plain text format. |
Implemented in regina::SatLayering, regina::SatReflectorStrip, regina::SatCube, regina::SatTriPrism, regina::SatLST, and regina::SatMobius.
void regina::SatRegion::writeBlockAbbrs | ( | std::ostream & | out, |
bool | tex = false |
||
) | const |
Writes an abbreviated list of blocks within this region to the given output stream.
Blocks will be written using their abbreviated names, and these names will be separated by commas. See SatBlock::writeAbbr() for further details.
The blocks within this region will be sorted before their abbreviated names are output. The particular method of sorting is an arbitrary aesthetic decision on the part of the author, and is subject to change in future versions of Regina.
out | the output stream to which to write. |
tex | true if the output should be formatted for TeX, or false if it should be written as plain text. |
void regina::SatRegion::writeDetail | ( | std::ostream & | out, |
const std::string & | title | ||
) | const |
Writes details of the composition of this region to the given output stream.
The output will consist of several lines. The first line will contain the title string (passed as a separate argument to this routine), followed by a colon. Following this will be a number of lines describing the individual blocks that make up this region and the various adjacencies between them.
out | the output stream to which to write. |
title | the name of this region, to be written on the first line of output. |
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this specific triangulation of T x I
to the given output stream.
The name will be written as a human-readable string.
None
.out | the output stream to which to write. |
Implements regina::TxICore.
|
inlinevirtual |
Writes the name of this specific triangulation of T x I
to the given output stream.
The name will be written as a human-readable string.
None
.out | the output stream to which to write. |
Implements regina::TxICore.
|
pure virtual |
Writes the name of this triangulation as a human-readable string to the given output stream.
out | the output stream to which to write. |
Implemented in regina::LayeredSolidTorus, regina::TriSolidTorus, regina::LayeredChain, regina::AugTriSolidTorus, regina::SpiralSolidTorus, regina::LayeredTorusBundle, regina::PlugTriSolidTorus, regina::BlockedSFSTriple, regina::PluggedTorusBundle, regina::SnapPeaCensusTri, regina::LayeredLensSpace, regina::BlockedSFSLoop, regina::SnappedBall, regina::LayeredLoop, regina::BlockedSFSPair, regina::TrivialTri, regina::L31Pillow, regina::LayeredChainPair, and regina::BlockedSFS.
|
pure virtual |
Writes the name of this specific triangulation of T x I
to the given output stream.
The name will be written as a human-readable string.
None
.out | the output stream to which to write. |
Implemented in regina::TxIParallelCore, and regina::TxIDiagonalCore.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implements regina::StandardTriangulation.
|
inlinevirtual |
Writes the name of this specific triangulation of T x I
in TeX format to the given output stream.
No leading or trailing dollar signs will be written.
None
.out | the output stream to which to write. |
Implements regina::TxICore.
|
inlinevirtual |
Writes the name of this specific triangulation of T x I
in TeX format to the given output stream.
No leading or trailing dollar signs will be written.
None
.out | the output stream to which to write. |
Implements regina::TxICore.
|
pure virtual |
Writes the name of this triangulation in TeX format to the given output stream.
No leading or trailing dollar signs will be included.
out | the output stream to which to write. |
Implemented in regina::LayeredSolidTorus, regina::TriSolidTorus, regina::LayeredChain, regina::AugTriSolidTorus, regina::SpiralSolidTorus, regina::LayeredTorusBundle, regina::PlugTriSolidTorus, regina::BlockedSFSTriple, regina::PluggedTorusBundle, regina::SnapPeaCensusTri, regina::LayeredLensSpace, regina::BlockedSFSLoop, regina::SnappedBall, regina::LayeredLoop, regina::BlockedSFSPair, regina::TrivialTri, regina::L31Pillow, regina::LayeredChainPair, and regina::BlockedSFS.
|
pure virtual |
Writes the name of this specific triangulation of T x I
in TeX format to the given output stream.
No leading or trailing dollar signs will be written.
None
.out | the output stream to which to write. |
Implemented in regina::TxIParallelCore, and regina::TxIDiagonalCore.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented in regina::LayeredSolidTorus, regina::TriSolidTorus, regina::LayeredChain, regina::AugTriSolidTorus, regina::SpiralSolidTorus, regina::LayeredTorusBundle, regina::PlugTriSolidTorus, regina::BlockedSFSTriple, regina::PluggedTorusBundle, regina::LayeredLensSpace, regina::BlockedSFSLoop, regina::SnappedBall, regina::LayeredLoop, regina::BlockedSFSPair, regina::TrivialTri, regina::L31Pillow, regina::LayeredChainPair, and regina::BlockedSFS.
|
virtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inline |
Writes a detailed text representation of this object to the given output stream.
out | the output stream to which to write. |
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
Reimplemented from regina::StandardTriangulation.
|
inlinevirtual |
Writes a detailed text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent SatBlock class offers a reasonable default implementation.
out | the output stream to which to write. |
|
inline |
Writes a detailed text representation of this object to the given output stream.
out | the output stream to which to write. |
|
virtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implements regina::SatBlock.
|
inline |
Writes a short text representation of this object to the given output stream.
out | the output stream to which to write. |
|
inline |
Writes a short text representation of this object to the given output stream.
out | the output stream to which to write. |
|
virtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes a short text representation of this object to the given output stream.
This may be reimplemented by subclasses, but the parent StandardTriangulation class offers a reasonable default implementation based on writeName().
out | the output stream to which to write. |
|
inline |
Writes a short text representation of this object to the given output stream.
out | the output stream to which to write. |
|
inlinevirtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implements regina::SatBlock.
|
inlinevirtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implements regina::SatBlock.
void regina::SatRegion::writeTextShort | ( | std::ostream & | out | ) | const |
Writes a short text representation of this object to the given output stream.
out | the output stream to which to write. |
|
inlinevirtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implements regina::SatBlock.
|
pure virtual |
Writes a short text representation of this object to the given output stream.
This must be implemented by subclasses.
out | the output stream to which to write. |
Implemented in regina::SatLayering, regina::SatReflectorStrip, regina::SatCube, regina::SatTriPrism, regina::SatLST, and regina::SatMobius.
|
virtual |
Destroys this augmented solid torus; note that the corresponding triangular and layered solid tori will also be destroyed.
regina::BlockedSFS::~BlockedSFS | ( | ) |
Destroys this structure and its constituent components.
regina::BlockedSFSLoop::~BlockedSFSLoop | ( | ) |
Destroys this structure and its constituent components.
regina::BlockedSFSPair::~BlockedSFSPair | ( | ) |
Destroys this structure and its constituent components.
regina::BlockedSFSTriple::~BlockedSFSTriple | ( | ) |
Destroys this structure and its constituent components.
|
inlinevirtual |
Destroys this structure.
|
inlinevirtual |
Destroys this layered chain.
|
inlinevirtual |
Destroys this layered chain pair.
|
inlinevirtual |
Destroys this lens space; note that the corresponding layered solid torus will also be destroyed.
|
inlinevirtual |
Destroys this layered loop.
|
virtual |
Destroys this layered torus bundle and all of its internal components.
regina::PluggedTorusBundle::~PluggedTorusBundle | ( | ) |
Destroys this structure and its constituent components.
As an exception, the thin I-bundle is not destroyed, since it is assumed that this is referenced from elsewhere.
|
virtual |
Destroys this plugged solid torus; note that the corresponding triangular solid torus and layered chains will also be destroyed.
|
inlinevirtual |
Destroys all internal arrays.
Note that any adjacent blocks that are referenced by the adjBlock array will not be destroyed.
|
inline |
Destroys both the internal triangulation and block structure.
|
inlinevirtual |
Destroys this object and its internal structures.
regina::SatLST::~SatLST | ( | ) |
Destroys this structure and its internal components.
regina::SatRegion::~SatRegion | ( | ) |
Destroys this structure and all of its internal data, including the individual blocks that make up this region.
|
inline |
Destroys this snapped 2-sphere; note that the corresponding snapped 3-balls will also be destroyed.
|
inlinevirtual |
Destroys this spiralled solid torus.
|
inlinevirtual |
A destructor that does nothing.
|
inlinevirtual |
Destroys this solid torus.
|
inlinevirtual |
Destroys this object.
|
protected |
Describes which specific annulus of the adjacent saturated block is joined to each boundary annulus of this block.
Values may be undefined if the corresponding entries in the adjBlock array is null.
|
protected |
Describes whether the adjacency for each boundary annulus is backwards (see the class notes above).
Values may be undefined if the corresponding entries in the adjBlock array is null.
|
protected |
The saturated block joined to each boundary annulus; this may be null if there is no adjacency or if this information is not known.
|
protected |
Describes whether the adjacency for each boundary annulus is reflected (see the class notes above).
Values may be undefined if the corresponding entries in the adjBlock array is null.
|
protected |
Details of each boundary annulus, as seen from the inside of this saturated block.
|
static |
Represents the one-tetrahedron three-vertex triangulation of the ball.
This is a single tetrahedron with two faces as boundary and the other two faces folded together.
|
static |
Represents the one-tetrahedron four-vertex triangulation of the ball.
This is a single tetrahedron with all four faces as boundary.
|
protected |
Expresses the alpha and beta curves for each torus boundary in terms of specific tetrahedron edges and vertices.
The elements bdryReln_[0] and bdryReln_[1] refer to the upper and lower boundaries respectively, and each of these matrices must have determinant +1 or -1. See bdryReln() for further details.
|
protected |
Describes which tetrahedron vertices play which roles in the upper and lower boundary triangles.
See bdryRoles() for details.
|
protected |
The tetrahedra that provide the upper and lower boundary triangles.
See bdryTet() for details.
SatBlock* regina::SatBlockSpec::block |
Details of the saturated block structure.
|
static |
Indicates that this augmented triangular solid torus contains a layered chain attached as described by TriSolidTorus::areAnnuliLinkedAxis().
|
static |
Indicates that this augmented triangular solid torus contains a layered chain attached as described by TriSolidTorus::areAnnuliLinkedMajor().
|
static |
Indicates an annulus on the triangular solid torus boundary with an attached layered chain layered over the major edge of the annulus.
|
static |
Indicates an annulus on the triangular solid torus boundary with an attached layered chain layered over the minor edge of the annulus.
|
static |
Indicates that this augmented triangular solid torus contains no layered chain.
|
static |
Indicates an annulus on the triangular solid torus boundary with no attached layered chain.
|
protected |
A full copy of the T x I
triangulation that is described.
|
static |
Indicates that, if no layered chains were present, the equator of the plug would consist of major edges of the core triangular solid torus.
|
static |
Indicates that, if no layered chains were present, the equator of the plug would consist of minor edges of the core triangular solid torus.
|
static |
Represents the two-tetrahedron triangulation N(2) of the twisted 2-sphere bundle over the circle.
|
static |
Represents the three-tetrahedron triangulation N(3,1) of the projective plane bundle over the circle.
This particular triangulation has no Mobius band triangles.
|
static |
Represents the three-tetrahedron triangulation N(3,2) of the projective plane bundle over the circle.
This particular triangulation has two Mobius band triangles.
|
protected |
The number of boundary annuli.
|
protected |
Expresses the lower alpha and beta curves in terms of the upper alpha and beta curves.
See parallelReln() for details.
bool regina::SatBlockSpec::refHoriz |
Indicates whether the block is reflected horizontally within the larger region.
See the class notes for details.
bool regina::SatBlockSpec::refVert |
Indicates whether the block is reflected vertically within the larger region.
See the class notes for details.
Perm<4> regina::SatAnnulus::roles[2] |
Describes how the first and second triangles match up with individual tetrahedron vertices.
See the class notes for details.
|
static |
Represents the collection of triangulations formed from five or fewer tetrahedra (both orientable and non-orientable).
There are 415 triangulations in this section.
|
static |
Represents the collection of non-orientable triangulations formed from six tetrahedra.
There are 259 triangulations in this section.
|
static |
Represents the collection of orientable triangulations formed from six tetrahedra.
There are 962 triangulations in this section.
|
static |
Represents the collection of non-orientable triangulations formed from seven tetrahedra.
There are 887 triangulations in this section.
|
static |
Represents the collection of orientable triangulations formed from seven tetrahedra.
There are 3552 triangulations in this section.
|
static |
Represents the two-tetrahedron four-vertex triangulation of the 3-sphere.
Tetrahedron<3>* regina::SatAnnulus::tet[2] |
Describes which tetrahedra provide the first and second triangles.
See the class notes for details.
|
protected |
Is the ring of boundary annuli twisted to form a Mobius band?
|
protected |
Keeps track of which tetrahedra have used by the current embedding of the current starter block.
See useStarterBlock() for further details.