Regina Calculation Engine
Public Member Functions | Static Public Member Functions | Friends | List of all members
regina::Signature Class Reference

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

#include <split/signature.h>

Inheritance diagram for regina::Signature:
regina::ShortOutput< Signature > regina::Output< T, supportsUtf8 >

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...
 
Signatureoperator= (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 Signatureparse (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

◆ writeTextLong()

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

A default implementation for detailed output.

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

Python
Not present.
Parameters
outthe output stream to which to write.

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

Copyright © 1999-2021, 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).