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

Represents a combinatorial isomorphism from one 2-manifold triangulation into another. More...

#include <dim2/dim2isomorphism.h>

Inheritance diagram for regina::Dim2Isomorphism:
regina::NGenericIsomorphism< 2 > regina::ShareableObject regina::boost::noncopyable

Public Member Functions

 Dim2Isomorphism (unsigned sourceTriangles)
 Creates a new isomorphism with no initialisation. More...
 
 Dim2Isomorphism (const Dim2Isomorphism &cloneMe)
 Creates a new isomorphism identical to the given isomorphism. More...
 
unsigned getSourceTriangles () const
 Returns the number of triangles in the source triangulation associated with this isomorphism. More...
 
int & triImage (unsigned sourceTriangle)
 Determines the image of the given source triangle under this isomorphism. More...
 
int triImage (unsigned sourceTriangle) const
 Determines the image of the given source triangle under this isomorphism. More...
 
NPerm3edgePerm (unsigned sourceTriangle)
 Returns a read-write reference to the permutation that is applied to the three edges of the given source triangle under this isomorphism. More...
 
NPerm3 edgePerm (unsigned sourceTriangle) const
 Determines the permutation that is applied to the three edges of the given source triangle under this isomorphism. More...
 
- Public Member Functions inherited from regina::NGenericIsomorphism< 2 >
 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...
 
PermfacetPerm (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...
 
Triangulationapply (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< 2 >
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< 2 >
static Isomorphismrandom (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< 2 >
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...
 
PermfacetPerm_
 The permutation applied to the facets of each source simplex. More...
 

Detailed Description

Represents a combinatorial isomorphism from one 2-manifold triangulation into another.

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

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

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

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 triangles than triangulation T.

Constructor & Destructor Documentation

regina::Dim2Isomorphism::Dim2Isomorphism ( unsigned  sourceTriangles)
inline

Creates a new isomorphism with no initialisation.

Python:
Not present.
Parameters
sourceTrianglesthe number of triangles in the source triangulation associated with this isomorphism; this may be zero.
regina::Dim2Isomorphism::Dim2Isomorphism ( const Dim2Isomorphism cloneMe)
inline

Creates a new isomorphism identical to the given isomorphism.

Parameters
cloneMethe isomorphism upon which to base the new isomorphism.

Member Function Documentation

NPerm3 & regina::Dim2Isomorphism::edgePerm ( unsigned  sourceTriangle)
inline

Returns a read-write reference to the permutation that is applied to the three edges of the given source triangle under this isomorphism.

Edge i of source triangle sourceTriangle will be mapped to edge facetPerm(sourceTriangle)[i] of triangle simpImage(sourceTriangle).

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

Python:
Not present, though the read-only version of this routine is.
Parameters
sourceTrianglethe index of the source triangle containing the original three edges; this must be between 0 and getSourceTriangles()-1 inclusive.
Returns
a read-write reference to the permutation applied to the three edges of the source triangle.
NPerm3 regina::Dim2Isomorphism::edgePerm ( unsigned  sourceTriangle) const
inline

Determines the permutation that is applied to the three edges of the given source triangle under this isomorphism.

Edge i of source triangle sourceTriangle will be mapped to triangle facetPerm(sourceTriangle)[i] of triangle simpImage(sourceTriangle).

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

Parameters
sourceTrianglethe index of the source triangle containing the original three edges; this must be between 0 and getSourceTriangles()-1 inclusive.
Returns
the permutation applied to the three edges of the source triangle.
unsigned regina::Dim2Isomorphism::getSourceTriangles ( ) const
inline

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

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

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

Returns
the number of triangles in the source triangulation.
int & regina::Dim2Isomorphism::triImage ( unsigned  sourceTriangle)
inline

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

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

Python:
Not present, though the read-only version of this routine is.
Parameters
sourceTrianglethe index of the source triangle; this must be between 0 and getSourceSimplices()-1 inclusive.
Returns
a reference to the index of the destination triangle that the source triangle maps to.
int regina::Dim2Isomorphism::triImage ( unsigned  sourceTriangle) const
inline

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

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

Parameters
sourceTrianglethe index of the source triangle; this must be between 0 and getSourceSimplices()-1 inclusive.
Returns
the index of the destination triangle that the source triangle maps to.

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