regina::SatReflectorStrip Class Reference
Standard Triangulations and Subcomplexes

A saturated block that is a reflector strip. More...

`#include <subcomplex/satblocktypes.h>`

Inheritance diagram for regina::SatReflectorStrip:

## 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)
| Constructs a clone of the given block structure. More...
virtual SatBlock * | clone () const
| Returns a newly created clone of this saturated block structure. More...
virtual void | adjustSFS (SFSpace &sfs, bool reflect) const
| Adjusts the given Seifert fibred space to insert the contents of this saturated block. More...
virtual void | writeTextShort (std::ostream &out) const
| Writes a short text representation of this object to the given output stream. More...
virtual void | writeAbbr (std::ostream &out, bool tex=false) const
| 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...

## Detailed Description

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.

## Member Function Documentation

## detail()

std::string regina::Output< SatBlock , false >::detail | ( |  | ) | const

inherited

Returns a detailed text representation of this object.

This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.

Returns
  a detailed text representation of this object.

## str()

std::string regina::Output< SatBlock , false >::str | ( |  | ) | const

inherited

Returns a short text representation of this object.

This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.

Python:\n In addition to str(), this is also used as the
  Python "stringification" function `__str__()`.

Returns
  a short text representation of this object.

## utf8()

std::string regina::Output< SatBlock , false >::utf8 | ( |  | ) | const

inherited

Returns a short text representation of this object using unicode characters.

Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.

Returns
  a short text representation of this object.

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

- subcomplex/satblocktypes.h

Copyright © 1999-2016, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).