Regina Calculation Engine
|
Represents the dual graph of a dim-manifold triangulation; that is, the pairwise matching of facets of dim-dimensional simplices. More...
#include <triangulation/generic.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 clone of the given facet pairing. More... | |
FacetPairing (const Triangulation< dim > &tri) | |
Creates the dual graph of the given triangulation. 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< dim > |
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 dim-manifold triangulation; that is, the pairwise matching of facets of dim-dimensional simplices.
Given a fixed number of dim-dimensional simplices, each facet of each simplex is either paired with some other simplex facet (which is in turn paired with it) or remains unmatched. A simplex facet cannot be paired with itself.
Such a matching models part of the structure of a dim-manifold triangulation, in which each simplex facet is either glued to some other simplex facet (which is in turn glued to it) or is an unglued boundary facet.
Note that if this pairing is used to construct an actual triangulation, the individual gluing permutations will still need to be specified; they are not a part of this structure.
For dimension 3, this template is specialised and offers more functionality. In order to use this specialised class, you will need to include the corresponding header triangulation/facetpairing3.h.
dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
|
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. |