Regina Calculation Engine
|
A structure used to track equivalence classes of tetrahedron vertices as the gluing permutation set is constructed. More...
#include <census/gluingpermsearcher3.h>
Public Member Functions | |
TetVertexState () | |
Constructor for a standalone tetrahedron vertex in an equivalence class all of its own. More... | |
void | dumpData (std::ostream &out) const |
Dumps all internal data in a plain text format to the given output stream. More... | |
bool | readData (std::istream &in, unsigned long nStates) |
Fills this state with data read from the given input stream. More... | |
TetVertexState (const TetVertexState &)=delete | |
TetVertexState & | operator= (const TetVertexState &)=delete |
Public Attributes | |
int | parent |
The index of the parent object in the current tree, or -1 if this object is the root of the tree. More... | |
unsigned | rank |
The depth of the subtree beneath this object (where a leaf node has depth zero). More... | |
unsigned | bdry |
The number of boundary edges in the vertex link for this equivalence class of vertices. More... | |
int | euler |
The Euler characteristic that the vertex link would have if its punctures were all filled. More... | |
char | twistUp |
The identification of this object and its parent in the tree corresponds to a gluing of two triangles in the vertex link. More... | |
bool | hadEqualRank |
Did this tree have rank equal to its parent immediately before it was grafted beneath its parent? This information is used to maintain the ranks correctly when grafting operations are undone. More... | |
unsigned char | bdryEdges |
The number of edges of the triangular piece of vertex link that are in fact boundary edges of the vertex link. More... | |
int | bdryNext [2] |
If the corresponding triangular piece of vertex link has any boundary edges, bdryNext stores the indices of the tetrahedron vertices that provide the boundary edges following on from either end of this boundary segment. More... | |
char | bdryTwist [2] |
Describes whether the orientation of this boundary segment of the vertex link is consistent with the orientation of the adjacent segments on either side. More... | |
int | bdryNextOld [2] |
Stores a snapshot of the values in the bdryNext array from the last point in the search when bdryEdges was precisely two. More... | |
char | bdryTwistOld [2] |
Stores a snapshot of the values in the bdryTwist array from the last point in the search when bdryEdges was precisely two. More... | |
A structure used to track equivalence classes of tetrahedron vertices as the gluing permutation set is constructed.
Two vertices are considered equivalent if they are identified within the triangulation.
Tetrahedron vertices are indexed linearly by tetrahedron and then vertex number. Specifically, vertex v (0..3) of tetrahedron t (0..nTets-1) has index 4t+v.
Each equivalence class of vertices corresponds to a tree of TetVertexState objects, arranged to form a modified union-find structure.
Note that a single tetrahedron vertex (as described by this structure) provides a single triangular piece of the overall vertex link. This triangle piece is referred to in several of the data members below.