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.