Represents a face in the skeleton of a triangulation. More...
#include <nface.h>
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 NFaceEmbedding & | getEmbedding (unsigned index) const |
Returns the requested descriptor detailing how this face forms a part of a particular tetrahedron in the triangulation. | |
NComponent * | getComponent () const |
Returns the component of the triangulation to which this face belongs. | |
NBoundaryComponent * | getBoundaryComponent () const |
Returns the boundary component of the triangulation to which this face belongs. | |
NVertex * | getVertex (int vertex) const |
Returns the vertex of the triangulation that corresponds to the given vertex of this face. | |
NEdge * | getEdge (int edge) const |
Returns the edge of the triangulation that corresponds to the given edge of this face. | |
NPerm | 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 NPerm | 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. |
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.
regina::NFace::~NFace | ( | ) | [inline, virtual] |
Default destructor.
All embedding descriptors stored in this face will be automatically deleted.
NBoundaryComponent * regina::NFace::getBoundaryComponent | ( | ) | const [inline] |
Returns the boundary component of the triangulation to which this face belongs.
NComponent * regina::NFace::getComponent | ( | ) | const [inline] |
Returns the component of the triangulation to which this face belongs.
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.
edge | the edge of this face to examine. This should be 0, 1 or 2. |
NPerm regina::NFace::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.
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.
edge | the edge of this face to examine. This should be 0, 1 or 2. |
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.
index | the index of the requested descriptor. This should be between 0 and getNumberOfEmbeddings()-1 inclusive. |
unsigned regina::NFace::getNumberOfEmbeddings | ( | ) | const [inline] |
Returns the number of descriptors available through getEmbedding().
Note that this number will never be greater than two.
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().
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.
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.
vertex | the vertex of this face to examine. This should be 0, 1 or 2. |
bool regina::NFace::isBoundary | ( | ) | const [inline] |
Determines if this face lies entirely on the boundary of the triangulation.
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.
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.
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.
out | the output stream to which to write. |
Implements regina::ShareableObject.
friend class NTriangulation [friend] |
Allow access to private members.
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 NPerm 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.