regina::FacetPairing< dim > Class Template Reference
Triangulations | Generic triangulations

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>`

Inheritance diagram for regina::FacetPairing< dim >:

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

## Detailed Description

### template<int dim>
class regina::FacetPairing< dim >

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.

Python:\n Python does not support templates. Instead
  this class can be used by appending the dimension as a suffix (e.g., FacetPairing2 and FacetPairing3 for dimensions 2 and 3).

Template Parameters

  dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive.

## Member Function Documentation

## detail()

std::string regina::Output< FacetPairingBase< dim > , 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< FacetPairingBase< dim > , 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< FacetPairingBase< dim > , 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< FacetPairingBase< dim > , 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 files:

- triangulation/forward.h
- triangulation/generic/facetpairing.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).