#include <ngluingperms.h>
Public Member Functions | |
NGluingPerms (const NGluingPerms &cloneMe) | |
Creates a new set of gluing permutations that is a clone of the given permutation set. | |
virtual | ~NGluingPerms () |
Deallocates any memory used by this structure. | |
unsigned | getNumberOfTetrahedra () const |
Returns the total number of tetrahedra under consideration. | |
const NFacePairing * | getFacePairing () const |
Returns the specific pairing of tetrahedron faces that this set of gluing permutations complements. | |
NPerm | gluingPerm (const NTetFace &source) const |
Returns the gluing permutation associated with the given tetrahedron face. | |
NPerm | gluingPerm (unsigned tet, unsigned face) const |
Returns the gluing permutation associated with the given tetrahedron face. | |
NTriangulation * | triangulate () const |
Returns a newly created triangulation as modelled by this set of gluing permutations and the associated tetrahedron face pairing. | |
Static Public Member Functions | |
static void | findAllPerms (const NFacePairing *newPairing, const NFacePairingIsoList *autos, bool orientableOnly, bool finiteOnly, int whichPurge, UseGluingPerms use, void *useArgs=0) |
Generates all possible gluing permutation sets that complement the given tetrahedron face pairing. |
Given a pairwise matching of faces (as described by class NFacePairing), each face that is matched with some other face will have an associated permutation of four elements (as described by class NPerm).
If a face is matched with some other face, the two corresponding associated permutations will be inverses. If a face is left deliberately unmatched, it will have no associated permutation.
Such a set of permutations models part of the structure of a triangulation, in which each tetrahedron face that is glued to another face has a corresponding gluing permutation (and the matched face has the inverse gluing permutation).
|
Creates a new set of gluing permutations that is a clone of the given permutation set.
|
|
Deallocates any memory used by this structure.
|
|
Generates all possible gluing permutation sets that complement the given tetrahedron face pairing. Each set of gluing permutations will be produced precisely once up to equivalence, where equivalence is defined by a set of automorphisms of the given face pairing. For each permutation set that is generated, routine use (as passed to this function) will be called with that permutation set as an argument.
Once the generation of permutation sets has finished, routine use will be called once more, this time with Parameter whichPurge may be used to avoid constructing permutation sets that correspond to triangulations satisfying the given constraints (such as non-minimality). The use of this parameter, combined with parameters orientableOnly and finiteOnly, can significantly speed up the permutation set generation. For some combinations of these parameters entirely different algorithms are used. Note that not all permutation sets described by parameter whichPurge will be avoided. It is guaranteed however that every permutation set whose corresonding triangulation does not satisfy the constraints described by whichPurge will be generated.
|
|
Returns the specific pairing of tetrahedron faces that this set of gluing permutations complements.
|
|
Returns the total number of tetrahedra under consideration.
|
|
Returns the gluing permutation associated with the given tetrahedron face.
|
|
Returns the gluing permutation associated with the given tetrahedron face.
|
|
Returns a newly created triangulation as modelled by this set of gluing permutations and the associated tetrahedron face pairing. Each matched pair of faces and their associated permutations will be realised as two tetrahedron faces glued together with the corresponding gluing permutation. Each unmatched face will be realised as a boundary tetrahedron face. It is the responsibility of the caller of this routine to delete this triangulation once it is no longer required.
|