Regina 7.0 Calculation Engine
|
Details how a subdim-face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
#include <triangulation/generic.h>
Public Member Functions | |
FaceEmbedding ()=default | |
Default constructor. More... | |
FaceEmbedding (Simplex< dim > *simplex, Perm< dim+1 > vertices) | |
Creates a new object containing the given data. More... | |
FaceEmbedding (const FaceEmbedding &cloneMe)=default | |
Creates a new copy of the given object. More... | |
FaceEmbedding & | operator= (const FaceEmbedding &cloneMe)=default |
Sets this to be a copy of the given object. More... | |
Simplex< dim > * | simplex () const |
Returns the top-dimensional simplex in which the underlying subdim-face of the triangulation is contained. More... | |
int | face () const |
Returns the corresponding face number of simplex(). More... | |
Perm< dim+1 > | vertices () const |
Maps vertices (0,...,subdim) of the underlying subdim-face of the triangulation to the corresponding vertex numbers of simplex(). More... | |
bool | operator== (const FaceEmbeddingBase &rhs) const |
Tests whether this and the given object are identical. More... | |
bool | operator!= (const FaceEmbeddingBase &rhs) const |
Tests whether this and the given object are not identical. More... | |
void | writeTextShort (std::ostream &out) const |
Writes a short text representation of this object to the given output stream. More... | |
void | writeTextLong (std::ostream &out) const |
A default implementation for detailed output. More... | |
std::string | str () const |
Returns a short text representation of this object. More... | |
std::string | utf8 () const |
Returns a short text representation of this object using unicode characters. More... | |
std::string | detail () const |
Returns a detailed text representation of this object. More... | |
Details how a subdim-face of a dim-dimensional triangulation appears within each top-dimensional simplex.
For small-dimensional faces, this class is typically described using dimension-specific type aliases: VertexEmbedding<dim>, EdgeEmbedding<dim>, TriangleEmbedding<dim>, TetrahedronEmbedding<dim> and PentachoronEmbedding<dim> refer to the cases subdim = 0, 1, 2, 3 and 4 respectively.
For a dim-dimensional triangulation T, each subdim-face F typically belongs to many top-dimensional simplices of T, and therefore has many associated FaceEmbedding objects. These individual FaceEmbedding objects correspond to the top-dimensional simplices of the link of F (which is a (dim - subdim - 1)-dimensional triangulation).
As of Regina 7.0, a FaceEmbedding can happily outlive its face - even if the underlying Face object is destroyed (e.g., because the triangulation changed), if you made a local copy of a FaceEmbedding beforehand then its simplex(), face() and vertices() routines will continue to return the same values as they did before, back when the underlying Face still existed. A FaceEmbedding cannot, however, outlive its top-dimensional simplex, because internally a FaceEmbedding references the Simplex object in which it lives (i.e., it does not just store an integer simplex index).
If dim is one of Regina's standard dimensions, then this template is specialised to offer additional dimension-specific aliases. In order to use these specialised classes, you will need to include the corresponding triangulation headers (e.g., triangulation/dim2.h for dim = 2, or triangulation/dim3.h for dim = 3).
These objects are small enough to pass by value and swap with std::swap(), with no need for any specialised move operations or swap functions.
dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
subdim | the dimension of the faces of the underlying triangulation. This must be between 0 and dim-1 inclusive. |
|
default |
Default constructor.
This object is unusable until it has some data assigned to it using operator =
.
|
inline |
Creates a new object containing the given data.
simplex | the top-dimensional simplex in which the underlying subdim-face of the triangulation is contained. |
vertices | a mapping from the vertices of the underlying subdim-face of the triangulation to the corresponding vertex numbers of simplex. See FaceEmbeddingBase::vertices() for details of how this permutation should be structured. |
|
default |
Creates a new copy of the given object.
cloneMe | the object to copy. |
|
inherited |
Returns a detailed text representation of this object.
This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.
|
inlineinherited |
Returns the corresponding face number of simplex().
This identifies which face of the top-dimensional simplex simplex() refers to the underlying subdim-face of the triangulation.
If the face dimension subdim is at most 4, then you can also access this face number through a dimension-specific alias (e.g., edge() in the case subdim = 1).
|
inlineinherited |
Tests whether this and the given object are not identical.
Here identical means that two FaceEmbedding objects refer to the same-numbered face of the same-numbered simplex, and have the same embedding permutations as returned by vertices().
In particular, since this test only examines face/simplex/vertex numbers (not object pointers), it is meaningful to compare two FaceEmbedding objects from different underlying triangulations.
rhs | the object to compare with this. |
true
if and only if both object are identical.
|
default |
Sets this to be a copy of the given object.
cloneMe | the object to copy. |
|
inlineinherited |
Tests whether this and the given object are identical.
Here identical means that two FaceEmbedding objects refer to the same-numbered face of the same-numbered simplex, and have the same embedding permutations as returned by vertices().
In particular, since this test only examines face/simplex/vertex numbers (not object pointers), it is meaningful to compare two FaceEmbedding objects from different underlying triangulations.
rhs | the object to compare with this. |
true
if and only if both object are identical.
|
inlineinherited |
Returns the top-dimensional simplex in which the underlying subdim-face of the triangulation is contained.
If the triangulation dimension dim is at most 4, then you can also access this simplex through a dimension-specific alias (e.g., tetrahedron() in the case dim = 3).
|
inherited |
Returns a short text representation of this object.
This text should be human-readable, should use plain ASCII characters where possible, and should not contain any newlines.
Within these limits, this short text ouptut should be as information-rich as possible, since in most cases this forms the basis for the Python str()
and repr()
functions.
str()
will use precisely this function, and for most classes the Python repr()
function will incorporate this into its output.
|
inherited |
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should not contain any newlines, and (within these constraints) should be as information-rich as is reasonable.
Unlike str(), this function may use unicode characters to make the output more pleasant to read. The string that is returned will be encoded in UTF-8.
|
inlineinherited |
Maps vertices (0,...,subdim) of the underlying subdim-face of the triangulation to the corresponding vertex numbers of simplex().
If the link of the underlying subdim-face is orientable, then this permutation also maps (subdim+1, ..., dim) to the remaining vertex numbers of simplex() in a manner that preserves orientation as you walk through the many different FaceEmbedding objects for the same underlying subdim-face.
This routine returns the same permutation as simplex().faceMapping<subdim>(face())
(and this routine is faster if you already have a FaceEmbedding). See Simplex<dim>::faceMapping() for details.
|
inlineinherited |
A default implementation for detailed output.
This routine simply calls T::writeTextShort() and appends a final newline.
out | the output stream to which to write. |
|
inlineinherited |
Writes a short text representation of this object to the given output stream.
out | the output stream to which to write. |