regina::Signature Class Reference
Splitting Surfaces

Represents a signature of a splitting surface in a closed 3-manifold triangulation. More...

`#include <split/signature.h>`

Inheritance diagram for regina::Signature:

## 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...
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

## Detailed Description

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.

## Member Function Documentation

## detail()

std::string regina::Output< Signature , supportsUtf8 >::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< Signature , supportsUtf8 >::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< Signature , supportsUtf8 >::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.

## writeTextLong()

void regina::ShortOutput< Signature , false >::writeTextLong | ( | std::ostream & | out | ) | const

inline inherited

A default implementation for detailed output.

This routine simply calls T::writeTextShort() and appends a final newline.

Python:\n Not present.

Parameters

  out | the output stream to which to write.

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

- split/signature.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).