Regina Calculation Engine
|
A degenerate zero-tetrahedron saturated block that corresponds to attaching a Mobius band to a single annulus boundary. 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 | |
SatMobius (const SatMobius &cloneMe)=default | |
Constructs a clone of the given block structure. More... | |
int | position () const |
Describes how the Mobius band is attached to the boundary annulus. 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 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... | |
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... | |
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 zero-tetrahedron saturated block that corresponds to attaching a Mobius band to a single annulus boundary.
This is a degenerate case of the layered solid torus (see the class SatLST), where instead of joining a solid torus to an annulus boundary we join a Mobius band. The Mobius band can be thought of as a zero-tetrahedron solid torus with two boundary triangles, which in fact are opposite sides of the same triangle. By attaching a zero-tetrahedron Mobius band to an annulus boundary, we are effectively joining the two triangles of the annulus together.
The meridinal disc of this zero-tetrahedron solid torus meets the three edges of the annulus in 1, 1 and 2 places, so it is in fact a degenerate (1,1,2) layered solid torus. Note that the weight 2 edge is the boundary edge of the Mobius strip.
|
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.