|
| TxIParallelCore () |
| Creates a new copy of this T x I triangulation. More...
|
|
| TxIParallelCore (const TxIParallelCore &)=default |
| Creates a new copy of the given T x I triangulation. More...
|
|
| TxIParallelCore (TxIParallelCore &&) noexcept=default |
| Moves the contents of the given T x I triangulation into this new triangulation. More...
|
|
TxIParallelCore & | operator= (const TxIParallelCore &src)=default |
| Sets this to be a copy of the given T x I triangulation. More...
|
|
TxIParallelCore & | operator= (TxIParallelCore &&src) noexcept=default |
| Moves the contents of the given T x I triangulation into this triangulation. More...
|
|
void | swap (TxIParallelCore &other) noexcept |
| Swaps the contents of this and the given T x I triangulation. More...
|
|
bool | operator== (const TxICore &other) const override |
| Determines if this and the given T x I triangulation are of the same type and have the same parameters. More...
|
|
std::ostream & | writeName (std::ostream &out) const override |
| Writes the name of this specific triangulation of T x I to the given output stream. More...
|
|
std::ostream & | writeTeXName (std::ostream &out) const override |
| Writes the name of this specific triangulation of T x I in TeX format to the given output stream. More...
|
|
const Triangulation< 3 > & | core () const |
| Returns a full copy of the T x I triangulation that this object describes. More...
|
|
unsigned | bdryTet (unsigned whichBdry, unsigned whichTri) const |
| Determines which tetrahedron provides the requested boundary triangle. More...
|
|
Perm< 4 > | bdryRoles (unsigned whichBdry, unsigned whichTri) const |
| Describes which tetrahedron vertices play which roles in the upper and lower boundary triangles. More...
|
|
const Matrix2 & | bdryReln (unsigned whichBdry) const |
| Returns a 2-by-2 matrix describing the alpha and beta curves on a torus boundary in terms of specific tetrahedron edges. More...
|
|
const Matrix2 & | parallelReln () const |
| Returns a 2-by-2 matrix describing the parallel relationship between the upper and lower boundary curves. More...
|
|
std::string | name () const |
| Returns the name of this specific triangulation of T x I as a human-readable string. More...
|
|
std::string | texName () const |
| Returns the name of this specific triangulation of T x I in TeX format. More...
|
|
std::string | TeXName () const |
| Deprecated routine that returns the name of this specific triangulation of T x I in TeX format. More...
|
|
bool | operator!= (const TxICore &other) const |
| Determines if this and the given T x I triangulation are of different types and/or have different parameters. 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...
|
|
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...
|
|
A specific six-tetrahedron TxICore triangulation that does not fit neatly into other families.
This triangulation contains the fewest possible number of tetrahedra (TxICore triangulations are not seen below six tetrahedra). It is referred to as T_6^1
in the paper "Structures of small closed
non-orientable 3-manifold triangulations", Benjamin A. Burton, J. Knot Theory Ramifications 16 (2007), 545–574. In Regina it is given the name T_6*
, to avoid confusion with the different TxIDiagonalCore triangulation T_6:1
.
The triangulations of the upper and lower boundary tori are completely parallel (and in particular, the upper and lower alpha curves are parallel, as are the upper and lower beta curves).
For reference, the central torus of this triangulation is depicted below. The left and right sides of the diagram are identified, as are the top and bottom. The four triangles u0, u1, w0 and w1 provide the boundary triangles of the overall triangulation, with the upper boundary coned out from triangles u0 and u1 and the lower boundary coned out from triangles w0 and w1. In each boundary, u0 or w0 gives the first boundary triangle and u1 or w1 gives the second. The directions of the corresponding alpha and beta curves are are also included.
This class implements C++ move semantics and adheres to the C++ Swappable requirement. It is designed to avoid deep copies wherever possible, even when passing or returning objects by value.
const Matrix2 & regina::TxICore::bdryReln |
( |
unsigned |
whichBdry | ) |
const |
|
inlineinherited |
Returns a 2-by-2 matrix describing the alpha and beta curves on a torus boundary in terms of specific tetrahedron edges.
Consider the first triangle of the given boundary. Let t be the tetrahedron returned by bdryTet(whichBdry, 0) and let p be the permutation returned by bdryRoles(whichBdry, 0).
Let edge01 be the directed edge from vertex p[0] to p[1] of tetrahedron t, and let edge02 be the directed edge from vertex p[0] to p[2] of tetrahedron t. Then the matrix returned by this routine describes how the directed edges edge01 and edge02 relate to the alpha and beta curves on the given boundary. Specifically:
[ alpha ] [ edge01 ]
[ ] = bdryReln() * [ ] .
[ beta ] [ edge02 ]
It is guaranteed that this matrix has determinant +1 or -1.
- Parameters
-
whichBdry | 0 if the upper boundary should be examined, or 1 if the lower boundary should be examined. |
- Returns
- the relationship between the boundary curves and tetrahedron edges.
Perm< 4 > regina::TxICore::bdryRoles |
( |
unsigned |
whichBdry, |
|
|
unsigned |
whichTri |
|
) |
| const |
|
inlineinherited |
Describes which tetrahedron vertices play which roles in the upper and lower boundary triangles.
Each boundary torus contains two triangles, whose vertices can be numbered 0, 1 and 2 according to the following diagram. This diagram is completely symmetric, in that edges 1-2 are no more special than edges 0-2 or 0-1. The important observations are that edges 1-2 and 2-1 of each triangle are identified, edges 0-2 and 2-0 of each triangle are identified and edges 0-1 and 1-0 of each triangle are identified.
*--->>--*
|0 2 / |
First | / 1| Second
triangle v / v triangle
|1 / |
| / 2 0|
*--->>--*
This routine returns a permutation that maps these integers 0,1,2 to real tetrahedron vertices. Let t be the tetrahedron returned by bdryTet(whichBdry, whichTri) and let p be the permutation returned by bdryRoles(whichBdry, whichTri). Then vertices p[0], p[1] and p[2] of tetrahedron t correspond to the markings 0, 1 and 2 respectively in the diagram above (and therefore the boundary triangle is face p[3] of the tetrahedron).
The arguments to this routine affect whether we examine the upper or lower boundary and whether we examine the first or second triangle of this boundary
- Parameters
-
whichBdry | 0 if the upper boundary should be examined, or 1 if the lower boundary should be examined. |
whichTri | 0 if the first boundary triangle should be examined, or 1 if the second boundary triangle should be examined. |
- Returns
- the permutation mapping roles 0, 1 and 2 in the diagram above to real tetrahedron vertex numbers.
unsigned regina::TxICore::bdryTet |
( |
unsigned |
whichBdry, |
|
|
unsigned |
whichTri |
|
) |
| const |
|
inlineinherited |
Determines which tetrahedron provides the requested boundary triangle.
Recall that the T x I
triangulation has two torus boundaries, each consisting of two boundary triangles. This routine returns the specific tetrahedron that provides the given triangle of the given torus boundary.
What is returned is the index number of the tetrahedron within the triangulation. To access the tetrahedron itself, you may call core().tetrahedron(bdryTet(...))
.
Note that the same tetrahedron may provide more than one boundary triangle.
- Parameters
-
whichBdry | 0 if the upper boundary should be examined, or 1 if the lower boundary should be examined. |
whichTri | 0 if the first boundary triangle should be examined, or 1 if the second boundary triangle should be examined. |