Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

regina::NFace Class Reference
[Triangulations]

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

#include <nface.h>

Inheritance diagram for regina::NFace:

regina::ShareableObject regina::boost::noncopyable List of all members.

Public Member Functions

 NFace (NComponent *myComponent)
 Creates a new face and specifies it as belonging to the given triangulation component.
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 of 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 in the triangulation skeleton corresponding to the given vertex of this face.
NEdgegetEdge (int edge) const
 Returns the edge of the triangulation skeleton corresponding to the given edge of this face.
NPerm getEdgeMapping (int edge) const
 The edge in the skeleton corresponding to the requested edge of this face is examined, and a permutation mapping vertices (0,1) of the skeleton edge to the corresponding vertices of this face is returned.
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.

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 NComponent myComponent  )  [inline]
 

Creates a new face and specifies it as belonging to the given triangulation component.

Python:
Not present.
Parameters:
myComponent the triangulation component to which this face belongs.

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

Default destructor.

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


Member Function Documentation

NBoundaryComponent * regina::NFace::getBoundaryComponent  )  const [inline]
 

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

Returns:
the boundary component containing this face, or 0 if this face is not on the boundary of the triangulation.

NComponent * regina::NFace::getComponent  )  const [inline]
 

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 skeleton corresponding to the given edge of this face.

Note that face vertex i is opposite face edge i.

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

NPerm regina::NFace::getEdgeMapping int  edge  )  const
 

The edge in the skeleton corresponding to the requested edge of this face is examined, and a permutation mapping vertices (0,1) of the skeleton edge to the corresponding vertices of this face is returned.

Thus for each i=0,1 and each face (or tetrahedron) containing this skeleton edge, getEdgeMapping(...)[i] will refer to vertices that are all identified to each other along the skeleton edge concerned.

The permutation returned will map 2 to the remaining face vertex (which will be parameter edge) and will map 3 to 3.

Parameters:
edge the 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 of 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, there will be multiple embedding descriptors available regarding that tetrahedron.

Parameters:
index the 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().

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.

int regina::NFace::getType  ) 
 

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 in the triangulation skeleton corresponding to the given vertex of this face.

Note that face vertex i is opposite face edge i.

Parameters:
vertex the vertex of this face to examine. This should be 0, 1 or 2.
Returns:
the vertex of the skeleton corresponding to the requested face vertex.

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:
out the 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 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-2004, Ben Burton
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).