Regina Calculation Engine
|
Represents a signature of a splitting surface in a closed 3-manifold triangulation. More...
#include <split/signature.h>
Public Member Functions | |
Signature (const Signature &sig) | |
Creates a new signature that is a clone of the given signature. More... | |
~Signature () | |
Destroys this signature. More... | |
unsigned | order () const |
Returns the order of this signature. More... | |
Triangulation< 3 > * | triangulate () const |
Returns a newly created 3-manifold triangulation corresponding to this splitting surface signature. More... | |
void | writeCycles (std::ostream &out, const std::string &cycleOpen, const std::string &cycleClose, const std::string &cycleJoin) const |
Writes a string representation of this signature to the given output stream. More... | |
void | writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
Signature & | operator= (const Signature &)=delete |
void | writeTextLong (std::ostream &out) const |
A default implementation for detailed output. 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 Signature * | parse (const std::string &sig) |
Parses the given signature string. More... | |
static int | cycleCmp (const Signature &sig1, unsigned cycle1, unsigned start1, int dir1, unsigned *relabel1, const Signature &sig2, unsigned cycle2, unsigned start2, int dir2, unsigned *relabel2) |
Lexicographically compares the results of transformations upon two given cycles. More... | |
Friends | |
class | regina::SigPartialIsomorphism |
class | regina::SigCensus |
Represents a signature of a splitting surface in a closed 3-manifold triangulation.
A splitting surface is (for these purposes) a compact normal surface consisting of precisely one quad per tetrahedron and no other normal (or almost normal) discs.
A signature of order n is a string consisting of 2n letters arranged into cycles, where n is the number of quads in the splitting surface. From a signature, the corresponding splitting surface and then the entire 3-manifold triangulation can be recreated.
A signature of order n uses the first n letters of the alphabet, each precisely twice. Case is important; the meaning of a letter changes according to whether it appears in upper-case or lower-case.
Each letter represents an individual quadrilateral (the two occurrences of the letter representing the quadrilateral's two sides). Each cycle represents a chain of quadrilaterals joined together in the splitting surface. The case of a letter represents in which direction a quadrilateral is traversed within a cycle.
Cycles are arranged into cycle groups, where a cycle group consists of a series of consecutive cycles all of the same length.
An example of a signature is (abc)(a)(b)(c)
. This signature is of order 3 and contains two cycle groups, the first being (abc)
and the second being (a)(b)(c)
.
A signature cannot represent a splitting surface with more than 26 quadrilaterals.
For further details on splitting surfaces and their signatures, consult Minimal triangulations and normal surfaces, Burton, PhD thesis, available from the Regina website.
|
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.
|
inlineinherited |
A default implementation for detailed output.
This routine simply calls T::writeTextShort() and appends a final newline.
out | the output stream to which to write. |