regina::NIsomorphism Class Reference
Triangulations

Represents a combinatorial isomorphism from one triangulation into another. More...

`#include <triangulation/nisomorphism.h>`

Inheritance diagram for regina::NIsomorphism:

## Public Member Functions

| NIsomorphism (unsigned sourceTetrahedra)
| Creates a new isomorphism with no initialisation. More...
| NIsomorphism (const NIsomorphism &cloneMe)
| Creates a new isomorphism identical to the given isomorphism. More...
unsigned | getSourceTetrahedra () const
| Returns the number of tetrahedra in the source triangulation associated with this isomorphism. More...
int & | tetImage (unsigned sourceTet)
| Determines the image of the given source tetrahedron under this isomorphism. More...
int | tetImage (unsigned sourceTet) const
| Determines the image of the given source tetrahedron under this isomorphism. More...
NPerm4 & | facePerm (unsigned sourceTet)
| Returns a read-write reference to the permutation that is applied to the four faces of the given source tetrahedron under this isomorphism. More...
NPerm4 | facePerm (unsigned sourceTet) const
| Determines the permutation that is applied to the four faces of the given source tetrahedron under this isomorphism. More...
Public Member Functions inherited from regina::NGenericIsomorphism< 3 >
| NGenericIsomorphism (unsigned nSimplices)
| Creates a new isomorphism with no initialisation. More...
| NGenericIsomorphism (const NGenericIsomorphism &cloneMe)
| Creates a new isomorphism identical to the given isomorphism. More...
| ~NGenericIsomorphism ()
| Destroys this isomorphism. More...
unsigned | getSourceSimplices () const
| Returns the number of simplices in the source triangulation associated with this isomorphism. More...
int & | simpImage (unsigned sourceSimp)
| Determines the image of the given source simplex under this isomorphism. More...
int | simpImage (unsigned sourceSimp) const
| Determines the image of the given source simplex under this isomorphism. More...
Perm & | facetPerm (unsigned sourceSimp)
| Returns a read-write reference to the permutation that is applied to the (dim + 1) facets of the given source simplex under this isomorphism. More...
Perm | facetPerm (unsigned sourceSimp) const
| Determines the permutation that is applied to the (dim + 1) facets of the given source simplex under this isomorphism. More...
NFacetSpec< dim > | operator[] (const NFacetSpec< dim > &source) const
| Determines the image of the given source simplex facet under this isomorphism. More...
bool | isIdentity () const
| Determines whether or not this is an identity isomorphism. More...
Triangulation * | apply (const Triangulation *original) const
| This NGenericIsomorphism object represents a combinatorial identification from a triangulation T to a triangulation U. More...
void | applyInPlace (Triangulation *tri) const
| Applies this isomorphism to the given triangulation, modifying the given triangulation directly. More...
void | writeTextShort (std::ostream &out) const
| Writes this object in short text format to the given output stream. More...
void | writeTextLong (std::ostream &out) const
| Writes this object in long text format to the given output stream. More...
Public Member Functions inherited from regina::ShareableObject
| ShareableObject ()
| Default constructor that does nothing. More...
virtual | ~ShareableObject ()
| Default destructor that does nothing. More...
std::string | str () const
| Returns the output from writeTextShort() as a string. More...
std::string | toString () const
| A deprecated alias for str(), which returns the output from writeTextShort() as a string. More...
std::string | detail () const
| Returns the output from writeTextLong() as a string. More...
std::string | toStringLong () const
| A deprecated alias for detail(), which returns the output from writeTextLong() as a string. More...

## Additional Inherited Members

Public Types inherited from regina::NGenericIsomorphism< 3 >
typedef DimTraits< dim > ::Isomorphism | Isomorphism
| The isomorphism class used by triangulations of this specific 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...
Static Public Member Functions inherited from regina::NGenericIsomorphism< 3 >
static Isomorphism * | random (unsigned nSimplices)
| Returns a random isomorphism for the given number of simplices. More...
Protected Member Functions inherited from regina::boost::noncopyable
| noncopyable ()
| A constructor which does nothing. More...
| ~noncopyable ()
| A destructor which does nothing. More...
Protected Attributes inherited from regina::NGenericIsomorphism< 3 >
unsigned | nSimplices_
| The number of simplices in the source triangulation. More...
int * | simpImage_
| The simplex of the destination triangulation that each simplex of the source triangulation maps to. More...
Perm * | facetPerm_
| The permutation applied to the facets of each source simplex. More...

## Detailed Description

Represents a combinatorial isomorphism from one triangulation into another.

In essence, a combinatorial isomorphism from triangulation T to triangulation U is a one-to-one map from the tetrahedra of T to the tetrahedra of U that allows relabelling of both the tetrahedra and their faces (or equivalently, their vertices), and that preserves gluings across adjacent tetrahedra.

More precisely: An isomorphism consists of (i) a one-to-one map f from the tetrahedra of T to the tetrahedra of U, and (ii) for each tetrahedron S of T, a permutation f_S of the faces (0,1,2,3) of S, for which the following condition holds:

- If face k of tetrahedron S and face k' of tetrahedron S' are identified in T, then face f_S(k) of f(S) and face f_S'(k') of f(S') are identified in U. Moreover, their gluing is consistent with the face/vertex permutations; that is, there is a commutative square involving the gluing maps in T and U and the permutations f_S and f_S'.

Isomorphisms can be boundary complete or boundary incomplete. A boundary complete isomorphism satisfies the additional condition:

- If face x is a boundary triangle of T then face f(x) is a boundary triangle of U.

A boundary complete isomorphism thus indicates that a copy of triangulation T is present as an entire component (or components) of U, whereas a boundary incomplete isomorphism represents an embedding of a copy of triangulation T as a subcomplex of some possibly larger component (or components) of U.

Note that in all cases triangulation U may contain more tetrahedra than triangulation T.

Test:
  Included in the test suite.

Todo:
  Feature: Composition of isomorphisms.

## Constructor & Destructor Documentation

regina::NIsomorphism::NIsomorphism | ( | unsigned | sourceTetrahedra | ) |

inline

Creates a new isomorphism with no initialisation.

Python:
  Not present.

Parameters

  sourceTetrahedra | the number of tetrahedra in the source triangulation associated with this isomorphism; this may be zero.

regina::NIsomorphism::NIsomorphism | ( | const NIsomorphism & | cloneMe | ) |

inline

Creates a new isomorphism identical to the given isomorphism.

Parameters

  cloneMe | the isomorphism upon which to base the new isomorphism.

## Member Function Documentation

NPerm4 & regina::NIsomorphism::facePerm | ( | unsigned | sourceTet | ) |

inline

Returns a read-write reference to the permutation that is applied to the four faces of the given source tetrahedron under this isomorphism.

Face i of source tetrahedron sourceTet will be mapped to face `facePerm(sourceTet)[i]` of tetrahedron `tetImage(sourceTet)`.

This is a convenience routine specific to three dimensions, and is identical to the dimension-agnostic routine facetPerm().

Python:
  Not present, though the read-only version of this routine is.

Parameters

  sourceTet | the index of the source tetrahedron containing the original four faces; this must be between 0 and `getSourceSimplices()-1` inclusive.

Returns
  a read-write reference to the permutation applied to the four faces of the source tetrahedron.

NPerm4 regina::NIsomorphism::facePerm | ( | unsigned | sourceTet | ) | const

inline

Determines the permutation that is applied to the four faces of the given source tetrahedron under this isomorphism.

Face i of source tetrahedron sourceTet will be mapped to face `facePerm(sourceTet)[i]` of tetrahedron `tetImage(sourceTet)`.

This is a convenience routine specific to three dimensions, and is identical to the dimension-agnostic routine facetPerm().

Parameters

  sourceTet | the index of the source tetrahedron containing the original four faces; this must be between 0 and `getSourceSimplices()-1` inclusive.

Returns
  the permutation applied to the four faces of the source tetrahedron.

unsigned regina::NIsomorphism::getSourceTetrahedra | ( |  | ) | const

inline

Returns the number of tetrahedra in the source triangulation associated with this isomorphism.

Note that this is always less than or equal to the number of tetrahedra in the destination triangulation.

This is a convenience routine specific to three dimensions, and is identical to the dimension-agnostic routine getSourceSimplices().

Returns
  the number of tetrahedra in the source triangulation.

int & regina::NIsomorphism::tetImage | ( | unsigned | sourceTet | ) |

inline

Determines the image of the given source tetrahedron under this isomorphism.

This is a convenience routine specific to three dimensions, and is identical to the dimension-agnostic routine simpImage().

Python:
  Not present, though the read-only version of this routine is.

Parameters

  sourceTet | the index of the source tetrahedron; this must be between 0 and `getSourceSimplices()-1` inclusive.

Returns
  a reference to the index of the destination tetrahedron that the source tetrahedron maps to.

int regina::NIsomorphism::tetImage | ( | unsigned | sourceTet | ) | const

inline

Determines the image of the given source tetrahedron under this isomorphism.

This is a convenience routine specific to three dimensions, and is identical to the dimension-agnostic routine simpImage().

Parameters

  sourceTet | the index of the source tetrahedron; this must be between 0 and `getSourceSimplices()-1` inclusive.

Returns
  the index of the destination tetrahedron that the source tetrahedron maps to.

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

- triangulation/nisomorphism.h

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