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

Represents a specific pairwise matching of edges of triangles. More...

#include <census/dim2edgepairing.h>

Inheritance diagram for regina::Dim2EdgePairing:
regina::NGenericFacetPairing< 2 > regina::NThread

Public Member Functions

 Dim2EdgePairing (const Dim2EdgePairing &cloneMe)
 Creates a new edge pairing that is a clone of the given edge pairing. More...
 
 Dim2EdgePairing (const Dim2Triangulation &tri)
 Creates the edge pairing of the given 2-manifold triangulation. More...
 
- Public Member Functions inherited from regina::NGenericFacetPairing< 2 >
 NGenericFacetPairing (const NGenericFacetPairing &cloneMe)
 Creates a new facet pairing that is a clone of the given facet pairing. More...
 
 NGenericFacetPairing (const Triangulation &tri)
 Creates the facet pairing of given triangulation. More...
 
virtual ~NGenericFacetPairing ()
 Deallocates any memory used by this structure. More...
 
unsigned size () const
 Returns the number of simplices whose facets are described by this facet pairing. More...
 
const NFacetSpec< dim > & dest (const NFacetSpec< dim > &source) const
 Returns the other facet to which the given simplex facet is paired. More...
 
const NFacetSpec< dim > & dest (unsigned simp, unsigned facet) const
 Returns the other facet to which the given simplex facet is paired. More...
 
const NFacetSpec< dim > & operator[] (const NFacetSpec< dim > &source) const
 Returns the other facet to which the given simplex facet is paired. More...
 
bool isUnmatched (const NFacetSpec< dim > &source) const
 Determines whether the given simplex facet has been left deliberately unmatched. More...
 
bool isUnmatched (unsigned 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...
 
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...
 
std::string toString () const
 A deprecated alias for str(), which returns a human-readable representation of this facet pairing. More...
 
std::string str () const
 Returns a human-readable representation of this facet pairing. 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...
 
void * run (void *param)
 Internal to findAllPairings(). More...
 
- Public Member Functions inherited from regina::NThread
virtual ~NThread ()
 Destroys this thread. More...
 
bool start (void *args=0, bool deleteAfterwards=false)
 Starts a new thread and performs run() within this new thread. More...
 
void join ()
 Waits for a previously-started thread to terminate. More...
 

Friends

class NGenericFacetPairing< 2 >
 

Additional Inherited Members

- Public Types inherited from regina::NGenericFacetPairing< 2 >
typedef DimTraits< dim >
::FacetPairing 
FacetPairing
 The facet pairing class specific to this dimension. More...
 
typedef DimTraits< dim >
::Isomorphism 
Isomorphism
 The isomorphism class used for triangulations in this dimension. More...
 
typedef DimTraits< dim >::Perm Perm
 The permutation class used to glue together facets of simplices when building triangulations in this dimension. More...
 
typedef DimTraits< dim >::Simplex Simplex
 The class that represents a top-level simplex of a triangulation in this dimension. More...
 
typedef DimTraits< dim >
::Triangulation 
Triangulation
 The triangulation class specific to this dimension. More...
 
typedef std::list< Isomorphism * > IsoList
 A list of isomorphisms on pairwise matchings of simplex facets. More...
 
typedef void(* Use )(const FacetPairing *, const IsoList *, void *)
 A routine that can do arbitrary processing upon a facet pairing and its automorphisms. More...
 
- Static Public Member Functions inherited from regina::NGenericFacetPairing< 2 >
static FacetPairingfromTextRep (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 bool findAllPairings (unsigned nSimplices, NBoolSet boundary, int nBdryFacets, Use use, void *useArgs=0, bool newThread=false)
 Generates all possible facet pairings satisfying the given constraints. More...
 
- Protected Member Functions inherited from regina::NGenericFacetPairing< 2 >
 NGenericFacetPairing (unsigned size)
 Creates a new facet pairing. More...
 
NFacetSpec< dim > & dest (const NFacetSpec< dim > &source)
 Returns the other facet to which the given simplex facet is paired. More...
 
NFacetSpec< dim > & dest (unsigned simp, unsigned facet)
 Returns the other facet to which the given simplex facet is paired. More...
 
NFacetSpec< dim > & operator[] (const NFacetSpec< dim > &source)
 Returns the other facet to which the given simplex facet is paired. More...
 
bool noDest (const NFacetSpec< dim > &source) const
 Determines whether the matching for the given simplex facet has not yet been determined. More...
 
bool noDest (unsigned 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...
 
- Protected Attributes inherited from regina::NGenericFacetPairing< 2 >
unsigned size_
 The number of simplices under consideration. More...
 
NFacetSpec< dim > * pairs_
 The other facet to which each simplex facet is paired. More...
 

Detailed Description

Represents a specific pairwise matching of edges of triangles.

Given a fixed number of triangles, each triangle edge is either paired with some other triangle edge (which is in turn paired with it) or remains unmatched. A triangle edge cannot be paired with itself.

Such a matching models part of the structure of a 2-manifold triangulation, in which each triangle edge is either glued to some other triangle edge facet (which is in turn glued to it) or is an unglued boundary edge.

Note that if this pairing is used to construct an actual 2-manifold triangulation, the individual gluing orientations will still need to be specified; they are not a part of this structure.

Test:
Included in the test suite.

Constructor & Destructor Documentation

regina::Dim2EdgePairing::Dim2EdgePairing ( const Dim2EdgePairing cloneMe)
inline

Creates a new edge pairing that is a clone of the given edge pairing.

Parameters
cloneMethe facet pairing to clone.
regina::Dim2EdgePairing::Dim2EdgePairing ( const Dim2Triangulation tri)
inline

Creates the edge pairing of the given 2-manifold triangulation.

This is the edge pairing that describes how the triangle edges of the given 2-manifold triangulation are joined together, as described in the class notes.

Precondition
The given triangulation is not empty.
Parameters
trithe 2-manifold triangulation whose edge pairing should be constructed.

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

Copyright © 1999-2013, 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@debian.org).