Regina Calculation Engine
Public Member Functions | Public Attributes | List of all members
regina::CompactSearcher::TetVertexState Struct Reference

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
 
TetVertexStateoperator= (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...
 
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...
 

Detailed Description

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.


The documentation for this struct was generated from the following file:

Copyright © 1999-2020, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).