Regina Calculation Engine
|
A degenerate saturated block that is a single tetrahedron wrapped around so that two opposite edges touch. More...
#include <subcomplex/satblocktypes.h>
Public Types | |
typedef std::set< Tetrahedron< 3 > * > | TetList |
The data structure used to store a list of tetrahedra that should not be examined by isBlock(). More... | |
Public Member Functions | |
SatLayering (const SatLayering &cloneMe)=default | |
Constructs a clone of the given block structure. More... | |
bool | 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 * | clone () const override |
Returns a newly created clone of this saturated block structure. More... | |
virtual void | adjustSFS (SFSpace &sfs, bool reflect) const override |
Adjusts the given Seifert fibred space to insert the contents of this saturated block. More... | |
virtual void | writeTextShort (std::ostream &out) const override |
Writes a short text representation of this object to the given output stream. More... | |
virtual void | writeAbbr (std::ostream &out, bool tex=false) const override |
Writes an abbreviated name or symbol for this block to the given output stream. More... | |
unsigned | nAnnuli () const |
Returns the number of annuli on the boundary of this saturated block. More... | |
const SatAnnulus & | annulus (unsigned which) const |
Returns details of the requested annulus on the boundary of this saturated block. More... | |
bool | twistedBoundary () const |
Is the ring of boundary annuli twisted to form a long Mobius strip? More... | |
bool | 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 * | adjacentBlock (unsigned whichAnnulus) const |
Returns the saturated block listed as being adjacent to the given boundary annulus of this block. More... | |
unsigned | 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 | adjacentReflected (unsigned whichAnnulus) const |
Returns whether the adjacency along the given boundary annulus of this block is reflected. More... | |
bool | adjacentBackwards (unsigned whichAnnulus) const |
Returns whether the adjacency along the given boundary annulus of this block is backwards. More... | |
void | 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 | 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 | 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 | abbr (bool tex=false) const |
Returns an abbreviated name or symbol for this block. More... | |
bool | operator< (const SatBlock &compare) const |
Implements a consistent ordering of saturated blocks. More... | |
virtual void | writeTextLong (std::ostream &out) const |
Writes a detailed text representation of this object to the given output stream. More... | |
std::string | str () const |
Returns a short text representation of this object. More... | |
std::string | utf8 () const |
Returns a short text representation of this object using unicode characters. More... | |
std::string | detail () const |
Returns a detailed text representation of this object. More... | |
Static Public Member Functions | |
static 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... | |
static 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... | |
Protected Member Functions | |
SatLayering (bool overHorizontal) | |
Constructs a partially initialised block. More... | |
Static Protected Member Functions | |
static bool | isBad (Tetrahedron< 3 > *t, const TetList &list) |
Determines whether the given tetrahedron is contained within the given list. More... | |
template<class List > | |
static bool | isBad (Tetrahedron< 3 > *t, const List &list) |
Determines whether the given tetrahedron is contained within the given list. More... | |
static bool | notUnique (Tetrahedron< 3 > *test) |
Determines whether the given tetrahedron pointer is null. More... | |
static bool | 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 | 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 | 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 | 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... | |
Protected Attributes | |
unsigned | nAnnuli_ |
The number of boundary annuli. More... | |
SatAnnulus * | annulus_ |
Details of each boundary annulus, as seen from the inside of this saturated block. More... | |
bool | twistedBoundary_ |
Is the ring of boundary annuli twisted to form a Mobius band? More... | |
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 * | adjAnnulus_ |
Describes which specific annulus of the adjacent saturated block is joined to each boundary annulus of this block. More... | |
bool * | adjReflected_ |
Describes whether the adjacency for each boundary annulus is reflected (see the class notes above). More... | |
bool * | adjBackwards_ |
Describes whether the adjacency for each boundary annulus is backwards (see the class notes above). More... | |
A degenerate saturated block that is a single tetrahedron wrapped around so that two opposite edges touch.
This forms a degenerate one-tetrahedron solid torus that is pinched along a single meridinal curve.
The four faces of this tetrahedron form two boundary annuli, and the tetrahedron is effectively layered onto each boundary annulus. See the Layering class notes for more discussion on layerings in general.
Although this block is degenerate (the fibres are all pinched together where the opposite edges of the tetrahedron meet), it can be used without problems as long as the entire Seifert fibred space is not formed from degenerate blocks. In other words, using such blocks is fine as long as they eventually meet a real (non-degenerate) block, which will give room for the fibres to separate so that they are no longer pinched together.
The SatAnnulus class notes describe horizontal and diagonal edges of a saturated annulus. This block may be one of two types, according to how the tetrahedron is layered onto the boundary annuli. Either the tetrahedron can be layered over the horizontal edge of each annulus (with the fibres pinched together between the two diagonal edges), or the tetrahedron can be layered over the diagonal edge of each annulus (with the fibres pinched together between the two horizontal edges).
|
inherited |
Returns a detailed text representation of this object.
This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.
|
inherited |
Returns a short text representation of this object.
This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.
__str__()
.
|
inherited |
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.