Regina Calculation Engine
Public Member Functions | Static Public Attributes | Friends
regina::NFace Class Reference

Represents a face in the skeleton of a triangulation. More...

#include <triangulation/nface.h>

Inheritance diagram for regina::NFace:
regina::ShareableObject regina::NMarkedElement regina::boost::noncopyable

List of all members.

Public Member Functions

virtual ~NFace ()
 Default destructor.
bool isBoundary () const
 Determines if this face lies entirely on the boundary of the triangulation.
int getType ()
 Returns a description of the face type.
int getSubtype ()
 Return the face vertex or face edge that plays a special role for the face type of this face.
bool isMobiusBand ()
 Determines whether this face is wrapped up to form a Mobius band.
bool isCone ()
 Determines whether this face is wrapped up to form a cone.
unsigned getNumberOfEmbeddings () const
 Returns the number of descriptors available through getEmbedding().
const NFaceEmbeddinggetEmbedding (unsigned index) const
 Returns the requested descriptor detailing how this face forms a part of a particular tetrahedron in the triangulation.
NComponentgetComponent () const
 Returns the component of the triangulation to which this face belongs.
NBoundaryComponentgetBoundaryComponent () const
 Returns the boundary component of the triangulation to which this face belongs.
NVertexgetVertex (int vertex) const
 Returns the vertex of the triangulation that corresponds to the given vertex of this face.
NEdgegetEdge (int edge) const
 Returns the edge of the triangulation that corresponds to the given edge of this face.
NPerm4 getEdgeMapping (int edge) const
 Examines the given edge of this face, and returns a mapping from the "canonical" vertices of the corresponding edge of the triangulation to the vertices of this face.
void writeTextShort (std::ostream &out) const
 Writes this object in short text format to the given output stream.

Static Public Attributes

static const int TRIANGLE
 Specifies a face with no identified vertices or edges.
static const int SCARF
 Specifies a face with two identified vertices.
static const int PARACHUTE
 Specifies a face with three identified vertices.
static const int CONE
 Specifies a face with two edges identified to form a cone.
static const int MOBIUS
 Specifies a face with two edges identified to form a mobius band.
static const int HORN
 Specifies a face with two edges identified to form a cone with all three vertices identified.
static const int DUNCEHAT
 Specifies a face with all three edges identified, some via orientable and some via non-orientable gluings.
static const int L31
 Specifies a face with all three edges identified using non-orientable gluings.
static const NPerm4 ordering [4]
 An array that maps face numbers within a tetrahedron to the canonical ordering of the individual tetrahedron vertices that form each face.

Friends

class NTriangulation
 Allow access to private members.

Detailed Description

Represents a face in the skeleton of a triangulation.

Faces are highly temporary; once a triangulation changes, all its face objects will be deleted and new ones will be created.


Constructor & Destructor Documentation

regina::NFace::~NFace ( ) [inline, virtual]

Default destructor.

All embedding descriptors stored in this face will be automatically deleted.


Member Function Documentation

Returns the boundary component of the triangulation to which this face belongs.

Returns:
the boundary component containing this face, or 0 if this face does not lie entirely within the boundary of the triangulation.

Returns the component of the triangulation to which this face belongs.

Returns:
the component containing this face.
NEdge* regina::NFace::getEdge ( int  edge) const

Returns the edge of the triangulation that corresponds to the given edge of this face.

Note that edge i of a face is opposite vertex i of the face.

Parameters:
edgethe edge of this face to examine. This should be 0, 1 or 2.
Returns:
the corresponding edge of the triangulation.

Examines the given edge of this face, and returns a mapping from the "canonical" vertices of the corresponding edge of the triangulation to the vertices of this face.

This routine behaves much the same as NTetrahedron::getEdgeMapping(), except that it maps the edge vertices into a face, not into a pentachoron. See NTetrahedron::getEdgeMapping() for a more detailed explanation of precisely what this mapping means.

This routine differs from NTetrahedron::getEdgeMapping() in how it handles the images of 2 and 3. This routine will always map 2 to the remaining vertex of this face (which is equal to the argument edge), and will always map 3 to itself.

Parameters:
edgethe edge of this face to examine. This should be 0, 1 or 2.
Returns:
a mapping from vertices (0,1) of the requested edge to the vertices of this face.
const NFaceEmbedding & regina::NFace::getEmbedding ( unsigned  index) const [inline]

Returns the requested descriptor detailing how this face forms a part of a particular tetrahedron in the triangulation.

Note that if this face represents multiple faces of a particular tetrahedron, then there will be multiple embedding descriptors available regarding that tetrahedron.

Parameters:
indexthe index of the requested descriptor. This should be between 0 and getNumberOfEmbeddings()-1 inclusive.
Returns:
the requested embedding descriptor.
unsigned regina::NFace::getNumberOfEmbeddings ( ) const [inline]

Returns the number of descriptors available through getEmbedding().

Note that this number will never be greater than two.

Returns:
the number of embedding descriptors.
int regina::NFace::getSubtype ( ) [inline]

Return the face vertex or face edge that plays a special role for the face type of this face.

Note that this routine is only relevant for some face types. The face type is returned by getType().

Returns:
The vertex or edge that plays a special role (this will be 0, 1 or 2), or -1 if this face type has no special vertex or edge.

Returns a description of the face type.

The face type describes how the edges and vertices of the face are identified.

Returns:
one of the predefined face type constants in NFace.
NVertex * regina::NFace::getVertex ( int  vertex) const [inline]

Returns the vertex of the triangulation that corresponds to the given vertex of this face.

Note that vertex i of a face is opposite edge i of the face.

Parameters:
vertexthe vertex of this face to examine. This should be 0, 1 or 2.
Returns:
the corresponding vertex of the triangulation.
bool regina::NFace::isBoundary ( ) const [inline]

Determines if this face lies entirely on the boundary of the triangulation.

Returns:
true if and only if this face lies on the boundary.
bool regina::NFace::isCone ( ) [inline]

Determines whether this face is wrapped up to form a cone.

Note that several different face types (as returned by getType()) can produce this result. Note also that a face can be both a Mobius band and a cone.

Returns:
true if and only if this face is a cone.
bool regina::NFace::isMobiusBand ( ) [inline]

Determines whether this face is wrapped up to form a Mobius band.

Note that several different face types (as returned by getType()) can produce this result. Note also that a face can be both a Mobius band and a cone.

Returns:
true if and only if this face is a Mobius band.
void regina::NFace::writeTextShort ( std::ostream &  out) const [inline, virtual]

Writes this object in short text format to the given output stream.

The output should fit on a single line and no newline should be written.

Python:
The parameter out does not exist; standard output will be used.
Parameters:
outthe output stream to which to write.

Implements regina::ShareableObject.


Friends And Related Function Documentation

friend class NTriangulation [friend]

Allow access to private members.


Member Data Documentation

const int regina::NFace::CONE [static]

Specifies a face with two edges identified to form a cone.

const int regina::NFace::DUNCEHAT [static]

Specifies a face with all three edges identified, some via orientable and some via non-orientable gluings.

const int regina::NFace::HORN [static]

Specifies a face with two edges identified to form a cone with all three vertices identified.

const int regina::NFace::L31 [static]

Specifies a face with all three edges identified using non-orientable gluings.

Note that this forms a spine for the Lens space L(3,1).

const int regina::NFace::MOBIUS [static]

Specifies a face with two edges identified to form a mobius band.

const NPerm4 regina::NFace::ordering[4] [static]

An array that maps face numbers within a tetrahedron to the canonical ordering of the individual tetrahedron vertices that form each face.

This means that the vertices of face i in a tetrahedron are, in canonical order, ordering[i][0..2]. As an immediate consequence, we obtain ordering[i][3] == i.

This table does not describe the mapping from specific triangulation faces into individual tetrahedra (for that, see NTetrahedron::getFaceMapping() instead). This table merely provides a neat and consistent way of listing the vertices of any given tetrahedron face.

This lookup table replaces the deprecated routine regina::faceOrdering().

const int regina::NFace::PARACHUTE [static]

Specifies a face with three identified vertices.

const int regina::NFace::SCARF [static]

Specifies a face with two identified vertices.

const int regina::NFace::TRIANGLE [static]

Specifies a face with no identified vertices or edges.


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

Copyright © 1999-2011, The Regina development team
This software is released under the GNU General Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).