Regina Calculation Engine
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
regina::FacetPairing< 3 > Class Reference

Represents the dual graph of a 3-manifold triangulation. More...

#include <triangulation/facetpairing3.h>

Inheritance diagram for regina::FacetPairing< 3 >:
regina::detail::FacetPairingBase< dim > regina::ShortOutput< FacetPairingBase< dim > > regina::Output< FacetPairingBase< dim >, false >

Public Types

typedef std::list< Isomorphism< dim > * > IsoList
 A list of isomorphisms on facet pairings. More...
 
typedef void(* Use) (const FacetPairing< dim > *, const IsoList *, void *)
 A routine that can do arbitrary processing upon a facet pairing and its automorphisms. More...
 

Public Member Functions

 FacetPairing (const FacetPairing &cloneMe)
 Creates a new face pairing that is a clone of the given face pairing. More...
 
 FacetPairing (const Triangulation< 3 > &tri)
 Creates the face pairing of the given 3-manifold triangulation. More...
 
void followChain (size_t &tet, FacePair &faces) const
 Follows a chain as far as possible from the given point. More...
 
bool hasTripleEdge () const
 Determines whether this face pairing contains a triple edge. More...
 
bool hasBrokenDoubleEndedChain () const
 Determines whether this face pairing contains a broken double-ended chain. More...
 
bool hasOneEndedChainWithDoubleHandle () const
 Determines whether this face pairing contains a one-ended chain with a double handle. More...
 
bool hasWedgedDoubleEndedChain () const
 Determines whether this face pairing contains a wedged double-ended chain. More...
 
bool hasOneEndedChainWithStrayBigon () const
 Determines whether this face pairing contains a one-ended chain with a stray bigon. More...
 
bool hasTripleOneEndedChain () const
 Determines whether this face pairing contains a triple one-ended chain. More...
 
bool hasSingleStar () const
 Determines whether this face pairing contains a single-edged star. More...
 
bool hasDoubleStar () const
 Determines whether this face pairing contains a double-edged star. More...
 
bool hasDoubleSquare () const
 Determines whether this face pairing contains a double-edged square. 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...
 
Basic Queries
size_t size () const
 Returns the number of simplices whose facets are described by this facet pairing. More...
 
const FacetSpec< dim > & dest (const FacetSpec< dim > &source) const
 Returns the other facet to which the given simplex facet is paired. More...
 
const FacetSpec< dim > & dest (size_t simp, unsigned facet) const
 Returns the other facet to which the given simplex facet is paired. More...
 
const FacetSpec< dim > & operator[] (const FacetSpec< dim > &source) const
 Returns the other facet to which the given simplex facet is paired. More...
 
bool isUnmatched (const FacetSpec< dim > &source) const
 Determines whether the given simplex facet has been left deliberately unmatched. More...
 
bool isUnmatched (size_t simp, unsigned facet) const
 Determines whether the given simplex facet has been left deliberately unmatched. More...
 
bool isClosed () const
 Determines whether this facet pairing is closed. More...
 
Isomorphic Representations
bool isCanonical () const
 Determines whether this facet pairing is in canonical form, i.e., is a lexicographically minimal representative of its isomorphism class. More...
 
void findAutomorphisms (IsoList &list) const
 Fills the given list with the set of all combinatorial automorphisms of this facet pairing. More...
 

Protected Attributes

size_t size_
 The number of simplices under consideration. More...
 
FacetSpec< dim > * pairs_
 The other facet to which each simplex facet is paired. More...
 

Friends

class detail::FacetPairingBase< 3 >
 

Input and Output

void writeTextShort (std::ostream &out) const
 Writes a human-readable representation of this facet pairing to the given output stream. More...
 
std::string toTextRep () const
 Returns a text-based representation of this facet pairing that can be used to reconstruct the facet pairing. More...
 
void writeDot (std::ostream &out, const char *prefix=0, bool subgraph=false, bool labels=false) const
 Writes the graph corresponding to this facet pairing in the Graphviz DOT language. More...
 
std::string dot (const char *prefix=0, bool subgraph=false, bool labels=false) const
 Returns a Graphviz DOT representation of the graph that describes this facet pairing. More...
 
FacetSpec< dim > & dest (const FacetSpec< dim > &source)
 Returns the other facet to which the given simplex facet is paired. More...
 
FacetSpec< dim > & dest (size_t simp, unsigned facet)
 Returns the other facet to which the given simplex facet is paired. More...
 
FacetSpec< dim > & operator[] (const FacetSpec< dim > &source)
 Returns the other facet to which the given simplex facet is paired. More...
 
bool noDest (const FacetSpec< dim > &source) const
 Determines whether the matching for the given simplex facet has not yet been determined. More...
 
bool noDest (size_t simp, unsigned facet) const
 Determines whether the matching for the given simplex facet has not yet been determined. More...
 
bool isCanonicalInternal (IsoList &list) const
 Determines whether this facet pairing is in canonical (smallest lexicographical) form, given a small set of assumptions. More...
 
static FacetPairing< dim > * fromTextRep (const std::string &rep)
 Reconstructs a facet pairing from a text-based representation. More...
 
static void writeDotHeader (std::ostream &out, const char *graphName=0)
 Writes header information for a Graphviz DOT file that will describe the graphs for one or more facet pairings. More...
 
static std::string dotHeader (const char *graphName=0)
 Returns header information for a Graphviz DOT file that will describe the graphs for one or more facet pairings. More...
 
static void findAllPairings (size_t nSimplices, BoolSet boundary, int nBdryFacets, Use use, void *useArgs=0)
 Generates all possible facet pairings satisfying the given constraints. More...
 

Detailed Description

Represents the dual graph of a 3-manifold triangulation.

This is a specialisation of the generic FacetPairing class template; see the FacetPairing documentation for an overview of how this class works.

This 3-dimensional specialisation contains some extra functionality. In particular, it provides routines for finding informative subgraphs within the dual graph.

Member Function Documentation

◆ detail()

std::string regina::Output< FacetPairingBase< dim > , supportsUtf8 >::detail
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< FacetPairingBase< dim > , supportsUtf8 >::str
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< FacetPairingBase< dim > , supportsUtf8 >::utf8
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< FacetPairingBase< dim > , 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:\n Not present.
Parameters
outthe output stream to which to write.

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

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