|
Regina Calculation Engine
|
A saturated block that is a reflector strip. 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 | |
| SatReflectorStrip (const SatReflectorStrip &cloneMe)=default | |
| Constructs a clone of the given block structure. 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 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 * | insertBlock (Triangulation< 3 > &tri, unsigned length, bool twisted) |
| Inserts a new reflector strip into the given triangulation, and returns the corresponding block structure. 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 | |
| SatReflectorStrip (unsigned length, bool twisted) | |
| Constructs a partially initialised block of the given length. 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 saturated block that is a reflector strip.
A reflector strip is a ring of triangular prisms arranged end-to-end, as illustrated in the diagram below. The top rectangle of each prism is identified with the bottom in an orientation-reversing fashion (the back edge moves to the front and vice versa), and the prisms are joined in a loop from left to right. The Seifert fibres run vertically in the diagram, with each saturated boundary annulus shaded at the rear of each prism.
The effect of a reflector strip is to create a reflector boundary in the base orbifold of the surrounding Seifert fibred space. Each prism provides a segment of this reflector boundary.
A reflector strip may have arbitrary length, and it may also include a twist as the ring of prisms wraps back around to meet itself. Note that a twisted reflector strip will have a twisted ring of boundary annuli, as described by SatBlock::twistedBoundary().
The length of a reflector strip is defined to be the number of prisms that are joined together, or equivalently the number of saturated annuli on the boundary.
|
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.