Regina Calculation Engine
|
Provides a variety of alternative representations of a single bounded Seifert fibred space. More...
#include <manifold/sfsaltset.h>
Public Member Functions | |
SFSAltSet (const SFSpace *sfs) | |
Creates a new set of alternatives for the given Seifert fibred space. More... | |
void | deleteAll () |
Destroys all of the alternative representations in this set. More... | |
void | deleteAll (SFSpace *exception) |
Destroys all of the alternative representations in this set, except for the given exception. More... | |
void | deleteAll (SFSpace *exception1, SFSpace *exception2) |
Destroys all of the alternative representations in this set, except for the two given exceptions. More... | |
unsigned | size () const |
Returns the number of alternative spaces in this set. More... | |
SFSpace * | operator[] (unsigned which) const |
Returns the requested alternative space. More... | |
const Matrix2 & | conversion (unsigned which) const |
Returns the conversion matrix for the requested alternative space. More... | |
bool | reflected (unsigned which) const |
Returns whether or not a reflection was used when creating the requested alternative space. More... | |
SFSAltSet (const SFSAltSet &)=delete | |
SFSAltSet & | operator= (const SFSAltSet &)=delete |
Provides a variety of alternative representations of a single bounded Seifert fibred space.
These alternatives are made possible by altering the curves made by the fibre and base orbifold on a boundary torus.
This class is designed to help in finding simple representations of graph manifolds (or, indeed, any non-geometric manifolds containing Seifert fibred blocks).
Each alternative comes with its own representation of the original Seifert fibred space, along with instructions for converting fibre/base curves on the boundary tori between the original and alternative spaces.
The alternative representations will generally be as simple as possible (and indeed simpler than the original where possible). In particular, each alternative space is guaranteed to have obstruction constant zero. The base orbifold may be changed entirely (for instance, an orientable Seifert fibred space over the Mobius band with no exceptional fibres will be converted to a Seifert fibred space over the disc with two exceptional fibres).
The conversions between boundary curves are described by a conversion matrix M as follows. Consider the first boundary torus. Let f_old and o_old be directed curves on this boundary representing the fibre and base orbifold of the original space, and let f_alt and o_alt be directed curves on this same boundary representing the fibre and base orbifold of the new alternative space. Then
[f_alt] [f_old] [ ] = M * [ ]. [o_alt] [o_old]
Note that this only applies to the first boundary torus! If the Seifert fibred space has more than one boundary, then for the remaining boundaries the unoriented fibre and base curves remain the same. More specifically, the directed fibre remains identical, and the directed curve representing the base orbifold is reversed if and only if a reflection was used in creating the alternative space, as returned by reflected().
See the page on Notation for Seifert fibred spaces for details on some of the terminology used above.