Regina Calculation Engine
|
A component of the boundary of a dim-manifold triangulation. More...
#include <triangulation/generic.h>
Public Member Functions | |
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... | |
size_t | markedIndex () const |
Returns the index at which this object is stored in an MarkedVector. More... | |
Protected Attributes | |
bool | orientable_ |
Is this boundary component orientable? More... | |
Friends | |
class | Triangulation< dim > |
class | detail::TriangulationBase< dim > |
A component of the boundary of a dim-manifold triangulation.
Regina recognises three types of boundary components:
Ideal and invalid vertex boundary components are only recognised when dim is one of Regina's standard dimensions. This is because, in higher dimensions, the relevant conditions rely on undecidable problems.
Regina stores different skeletal information for different types of boundary components:
We can encounter some interesting cases with invalid triangulations. Consider some face whose link has more than one boundary component (which makes the face invalid). This means that different parts of the (dim)-manifold boundary are effectively "pinched" together. If this happens, the different parts of the boundary that are pinched might or might not be listed as part of the same boundary component; if not then the offending face will be included in all of these boundary components. Nevertheless, only one of these can be considered the "official" boundary component of the face as returned by Face::boundaryComponent(). This is all a bit of a mess, but then again the entire triangulation is invalid and so you almost certainly have bigger problems to deal with.
Boundary components are highly temporary: whenever a triangulation changes, all of its boundary component objects will be deleted and new ones will be created in their place.
Boundary component objects are all created, managed and destroyed by the class Triangulation<dim>. See the Triangulation notes for further information on working with dim-dimensional triangulations.
For dimension dim = 3, this template is specialised and offers more functionality. In order to use this specialised class, you will need to include the corresponding header triangulation/dim3.h.
dim | the dimension of the underlying triangulation. This must be between 2 and 15 inclusive. |
|
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.
|
inherited |
Returns a short text representation of this object.
This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.
str()
.
|
inherited |
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.