Regina Calculation Engine
|
Represents the dual graph of a 3-manifold triangulation. More...
#include <triangulation/facetpairing3.h>
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... | |
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... | |
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.
|
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. |