Helper class for storing the necessary faces of a boundary component of a dim-dimensional triangulation.
More...
#include <triangulation/detail/boundarycomponent.h>
|
static constexpr bool | allFaces = true |
| A compile-time constant indicating whether this boundary component class stores all lower-dimensional faces (true ), or only faces of dimension dim-1 (false ). More...
|
|
|
template<int subdim> |
void | push_back (Face< dim, subdim > *face) |
| Pushes the given face onto the end of the list of subdim-faces of this boundary component. More...
|
|
void | reorderAndRelabelFaces (Triangulation< dim-1 > *tri) const |
| Reorders all lower-dimensional faces of the given triangulation so that they appear in the same order as the corresponding faces of this boundary component, and relabels these faces so that their vertices are numbered in a corresponding way. More...
|
|
void | reorderAndRelabelFaces (Triangulation< tridim > *tri, const std::vector< Face< dim, tridim > * > &tridimFaces) const |
| Reorders and relabels all faces of all dimensions 0,...,subdim of the given triangulation, so that for each k, the k-faces of the given triangulation appear in the same order as the corresponding k-faces in this suite, and have their vertices numbered in a corresponding way. More...
|
|
template<int dim, bool allFaces_>
class regina::detail::BoundaryComponentFaceStorage< dim, allFaces_ >
Helper class for storing the necessary faces of a boundary component of a dim-dimensional triangulation.
Every class BoundaryComponent<dim> inherits from this template.
- Python
- This base class is not present, but the "end user" class BoundaryComponent<dim> is.
- Template Parameters
-
dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
allFaces_ | true if this class should store all faces of all dimensions 0,1,...,dim-1, or false if this class should only store faces of dimension dim-1. |
◆ component()
template<int dim, bool allFaces_>
Returns the connected component of the triangulation to which this boundary component belongs.
- Returns
- the component containing this boundary component.
◆ countFaces()
template<int dim, bool allFaces_>
template<int subdim>
Returns the number of subdim-faces in this boundary component.
This routine is only available where dim is one of Regina's standard dimensions.
- Python
- Python does not support templates. Instead, Python users should call this function in the form
countFaces(subdim)
; that is, the template parameter subdim becomes the first argument of the function.
- Template Parameters
-
subdim | the dimension of the faces to query. This must be between 0 and dim-1 inclusive. |
- Returns
- the number of subdim-faces.
◆ countRidges()
template<int dim, bool allFaces_>
Returns the number of (dim-2)-faces in this boundary component.
If this is an ideal or invalid vertex boundary component, then this routine will return 0.
- Returns
- the number of (dim-2)-faces in this boundary component.
◆ face()
template<int dim, bool allFaces_>
template<int subdim>
Returns the requested subdim-face in this boundary component.
Note that the index of a face in the boundary component need not be the index of the same face in the overall triangulation. However, if this is a real boundary component (i.e., it is built from one or more (dim-1)-faces), then the index of each subdim-face in this boundary component will match the index of the corresponding subdim-face in the (dim-1)-manifold triangulation returned by build().
This routine is only available where dim is one of Regina's standard dimensions.
- Python
- Python does not support templates. Instead, Python users should call this function in the form
face(subdim, index)
; that is, the template parameter subdim becomes the first argument of the function.
- Template Parameters
-
subdim | the dimension of the face to query. This must be between 0 and dim-1 inclusive. |
- Parameters
-
- Returns
- the requested face.
◆ faces()
template<int dim, bool allFaces_>
template<int subdim>
Returns all subdim-faces in this boundary component.
The reference that is returned will remain valid only for as long as this boundary component object exists. In particular, the reference will become invalid any time that the triangulation changes (since all boundary component objects will be destroyed and others rebuilt in their place).
- Python
- Python users should call this function in the form
faces(subdim)
. It will then return a Python list containing all the subdim-faces of the boundary component. Be warned that, unlike in C++, this Python list will be a snapshot of the faces when this function is called, and will not be kept up-to-date as the triangulation changes.
- Template Parameters
-
subdim | the dimension of the faces to query. This must be between 0 and dim-1 inclusive. |
- Returns
- access to the list of all subdim-faces.
◆ facet()
template<int dim, bool allFaces_>
Returns the requested (dim-1)-face in this boundary component.
These are the top-dimensional faces for a real boundary component.
Note that the index of a face in the boundary component need not be the index of the same face in the overall triangulation. However, if this is a real boundary component (i.e., it is built from one or more (dim-1)-faces), then the index of each (dim-1)-face in this boundary component will match the index of the corresponding top-dimensional simplex in the (dim-1)-manifold triangulation returned by build().
- Parameters
-
index | the index of the desired face, ranging from 0 to size()-1 inclusive. |
- Returns
- the requested face.
◆ facets()
template<int dim, bool allFaces_>
Returns all (dim-1)-faces in this boundary component.
The reference that is returned will remain valid only for as long as this boundary component object exists. In particular, the reference will become invalid any time that the triangulation changes (since all boundary component objects will be destroyed and others rebuilt in their place).
- Python
- This routine returns a python list.
@return the list of all (<i>dim</i>-1)-faces.
◆ push_back()
template<int dim, bool allFaces_>
template<int subdim>
Pushes the given face onto the end of the list of subdim-faces of this boundary component.
This class does not take ownership of the given face.
- Template Parameters
-
subdim | the dimension of the face to append. This must be between 0 and dim-1 inclusive. |
- Parameters
-
face | the face to append to the list. |
◆ reorderAndRelabelFaces() [1/2]
Reorders and relabels all faces of all dimensions 0,...,subdim of the given triangulation, so that for each k, the k-faces of the given triangulation appear in the same order as the corresponding k-faces in this suite, and have their vertices numbered in a corresponding way.
- Precondition
- For each dimension k = 0,...,subdim, the k-faces of the given triangulation tri are in one-to-one correspondence with the k-faces in this suite, though not necessarily in the same order. Moreover, for each i and j, this correspondence maps the ith k-face of
tri->simplex(j)
to the ith k-face of tridimFaces[j]
.
- Template Parameters
-
tridim | the dimension of the given triangulation. This must be strictly larger than subdim, but it need not be equal to dim. |
- Parameters
-
tri | a tridim-dimensional triangulation, as described above. |
tridimFaces | a list of tridim-faces that together contain all of the faces in this suite, and that are in an ordered one-to-one correspondence with the top-dimensional simplices of tri as described in the precondition above. |
◆ reorderAndRelabelFaces() [2/2]
template<int dim, bool allFaces_>
Reorders all lower-dimensional faces of the given triangulation so that they appear in the same order as the corresponding faces of this boundary component, and relabels these faces so that their vertices are numbered in a corresponding way.
This affects all faces of dimensions 0,...,(dim-2).
- Precondition
- This is a real boundary component.
-
tri is a triangulation of this boundary component.
-
For each i, the ith top-dimensional simplex of tri corresponds to the ith (dim-1)-face of this boundary component, and has its vertices 0,...,(dim-1) labelled in the same way.
- Parameters
-
tri | a triangulation of this boundary component, as described above. |
◆ size()
template<int dim, bool allFaces_>
Returns the number of (dim-1)-faces in this boundary component.
These are the top-dimensional faces for a real boundary component.
If this is an ideal or invalid vertex boundary component, then this routine will return 0.
- Returns
- the number of (dim-1)-faces in this boundary component.
◆ triangulation()
template<int dim, bool allFaces_>
Returns the triangulation to which this boundary component belongs.
- Returns
- the triangulation containing this boundary component.
◆ allFaces
template<int dim, bool allFaces_>
A compile-time constant indicating whether this boundary component class stores all lower-dimensional faces (true
), or only faces of dimension dim-1 (false
).
This is a compile-time constant only, with no linkage - any attempt to create a reference or pointer to it will give a linker error.
◆ faces_
template<int dim, int subdim>
The documentation for this class was generated from the following file: