|
long | eulerChar () const |
| Returns the Euler characteristic of this boundary component. More...
|
|
size_t | index () const |
| Returns the index of this boundary component in the underlying triangulation. More...
|
|
bool | isOrientable () const |
| Determines if this boundary component is orientable. 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...
|
|
const Triangulation< dim-1 > * | build () const |
| Returns the full (dim-1)-dimensional triangulation of this boundary component. More...
|
|
bool | isReal () const |
| Determines if this boundary component is real. More...
|
|
bool | isIdeal () const |
| Determines if this boundary component is ideal. More...
|
|
bool | isInvalidVertex () const |
| Determines if this boundary component consists of a single invalid vertex and nothing else. 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 |
| Writes a detailed text representation of this object to the given output stream. More...
|
|
size_t | size () const |
| Returns the number of (dim-1)-faces in this boundary component. More...
|
|
size_t | countRidges () const |
| Returns the number of (dim-2)-faces in this boundary component. More...
|
|
size_t | countFaces () const |
| Returns the number of subdim-faces in this boundary component. More...
|
|
const std::vector< Face< dim, dim-1 > *> & | facets () const |
| Returns all (dim-1)-faces in this boundary component. More...
|
|
const std::vector< Face< dim, subdim > *> & | faces () const |
| Returns all subdim-faces in this boundary component. More...
|
|
Face< dim, dim-1 > * | facet (size_t index) const |
| Returns the requested (dim-1)-face in this boundary component. More...
|
|
Face< dim, subdim > * | face (size_t index) const |
| Returns the requested subdim-face in this boundary component. More...
|
|
Triangulation< dim > * | triangulation () const |
| Returns the triangulation to which this boundary component belongs. More...
|
|
Component< dim > * | component () const |
| Returns the connected component of the triangulation to which this boundary component belongs. More...
|
|
size_t | markedIndex () const |
| Returns the index at which this object is stored in an MarkedVector. More...
|
|
|
const Triangulation< dim-1 > * | buildVertexLink () const |
| Triangulates the vertex link for an ideal or invalid vertex boundary component. More...
|
|
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<>
class regina::BoundaryComponent< 3 >
A component of the boundary of a 3-manifold triangulation.
This is a specialisation of the generic BoundaryComponent class template; see the BoundaryComponent documentation for an overview of how this class works.
This 3-dimensional specialisation contains some extra functionality. In particular, it allows you to query the Euler characteristic and orientability of a boundary component, without the heavyweight process of triangulating the boundary component first.
Returns the full (dim-1)-dimensional triangulation of this boundary component.
Note that this triangulation is read-only (though of course you can clone it and then operate upon the clone).
If this is a real boundary component (i.e., it is built from one or more (dim-1)-faces), then the triangulation of this boundary component is as follows:
- Let i lie between 0 and size()-1 inclusive. Then simplex i of the returned (dim-1)-dimensional triangulation is a copy of
facet(i)
of this boundary component, and its vertices 0,...,dim-1 are numbered in the same way. To relate these (dim-1)-face vertex numbers to the vertex numbers of top-dimensional simplices in the overall dim-dimensional triangulation, see Simplex<dim>::faceMapping<dim-1>().
- If this boundary component stores lower-dimensional faces (i.e., if the template argument allFaces is
true
), then a similar correspondence holds for these lower-dimensional faces also: for each i, k-face i of the returned triangulation is a copy of face<k>(i)
of this boundary component, and its vertices are numbered in the same way.
If this boundary component consists only of a single vertex (i.e., this is an ideal or invalid vertex boundary component), then this routine returns the triangulation of the corresponding vertex link. See Vertex::link() for details.
This routine is fast, since it caches the boundary triangulation. Moreover, it is guaranteed that the full skeleton of this (dim-1)-dimensional triangulation will have been generated already.
- Returns
- the triangulation of this boundary component.
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.
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.
Determines if this boundary component is ideal.
This is the case if and only if it consists of a single ideal vertex and no faces of any other dimensions.
See the BoundaryComponent class notes for an overview of ideal boundary components, which can only occur in dimensions ≥ 3, and which are only recognised where dim is one of Regina's standard dimensions.
Note that a boundary component formed from a single invalid vertex is not considered to be ideal. This means that, if a boundary component contains no faces of positive dimension, then one and only one of isIdeal() and isInvalidVertex() will return true
.
This routine is only available where dim is at least 3 and is one of Regina's standard dimensions.
- Returns
true
if and only if this boundary component is ideal.
Determines if this boundary component consists of a single invalid vertex and nothing else.
In particular, such a boundary component must contain no faces of any positive dimension.
See the BoundaryComponent class notes for an overview of invalid vertex boundary components, which can only occur in dimensions ≥ 4, and which are only recognised where dim is one of Regina's standard dimensions.
An invalid vertex is only placed in its own boundary component if it does not already belong to some larger boundary component (for instance, if its link is an ideal (dim-1)-manifold triangulation). This means that, for a boundary component consisting of one or more (dim-1)-faces, this routine will return false
even if the boundary component also includes one or more invalid vertices.
Note that, if a boundary component contains no faces of positive dimension, then one and only one of isIdeal() and isInvalidVertex() will return true
.
This routine is only available where dim is at least 3 and is one of Regina's standard dimensions.
- Returns
true
if and only if this boundary component consists of a single invalid vertex and nothing else.
Determines if this boundary component is real.
This is the case if and only if it is formed from one or more (dim-1)-faces.
See the BoundaryComponent class notes for an overview of real, ideal, and invalid vertex boundary components.
This routine is only available where dim is at least 3 and is one of Regina's standard dimensions. (In other dimensions, real boundary components are the only types of boundary component that Regina will recognise.)
- Returns
true
if and only if this boundary component is real.