#include <ndisc.h>
Public Member Functions | |
NDiscSetTet (const NNormalSurface &surface, unsigned long tetIndex) | |
Creates a new set of normal discs corresponding to the discs of the given normal surface that lie within the given tetrahedron. | |
virtual | ~NDiscSetTet () |
Destroys this disc set. | |
unsigned long | nDiscs (int type) const |
Determines the number of discs of the given type inside this tetrahedron. | |
unsigned long | arcFromDisc (int arcFace, int arcVertex, int discType, unsigned long discNumber) const |
Determines which normal arc of a given type on a given face of this tetrahedron corresponds to the given normal disc. | |
void | discFromArc (int arcFace, int arcVertex, unsigned long arcNumber, int &discType, unsigned long &discNumber) const |
Determines which normal disc in this tetrahedron meets the given normal arc on the given face. | |
Protected Attributes | |
unsigned long | internalNDiscs [10] |
The number of discs of each type. |
The numbers of discs of each type are stored in this structure, so querying them is fast regardless of the underlying normal surface coordinate system used.
unsigned long
. See the precondition below.This class should only be used with embedded normal surfaces.
unsigned long
. See how this affects NDiscSetTetData also. regina::NDiscSetTet::NDiscSetTet | ( | const NNormalSurface & | surface, | |
unsigned long | tetIndex | |||
) |
Creates a new set of normal discs corresponding to the discs of the given normal surface that lie within the given tetrahedron.
surface | the normal surface whose discs we shall use. | |
tetIndex | the index in the triangulation of the tetrahedron that our discs must lie in; this must be between 0 and tri.getNumberOfTetrahedra()-1 inclusive, where tri is the triangulation containing the given normal surface. |
regina::NDiscSetTet::~NDiscSetTet | ( | ) | [inline, virtual] |
Destroys this disc set.
unsigned long regina::NDiscSetTet::arcFromDisc | ( | int | arcFace, | |
int | arcVertex, | |||
int | discType, | |||
unsigned long | discNumber | |||
) | const |
Determines which normal arc of a given type on a given face of this tetrahedron corresponds to the given normal disc.
arcFace | the face of this tetrahedron containing the normal arc (between 0 and 3 inclusive). | |
arcVertex | the vertex of this tetrahedron about which the normal arc runs (between 0 and 3 inclusive); arcFace and arcVertex should not be the same. | |
discType | the disc type of the given normal disc; this should be between 0 and 9 inclusive, as described in the NDiscSpec class notes. | |
discNumber | indicates which normal disc of the given disc type is referred to (between 0 and nDiscs(discType)-1 inclusive). |
void regina::NDiscSetTet::discFromArc | ( | int | arcFace, | |
int | arcVertex, | |||
unsigned long | arcNumber, | |||
int & | discType, | |||
unsigned long & | discNumber | |||
) | const |
Determines which normal disc in this tetrahedron meets the given normal arc on the given face.
arcFace | the face of this tetrahedron containing the normal arc (between 0 and 3 inclusive). | |
arcVertex | the vertex of this tetrahedron about which the normal arc runs (between 0 and 3 inclusive); arcFace and arcVertex should not be the same. | |
arcNumber | indicates which normal arc of the given type is referred to. Arcs of a given type (where arcFace and arcVertex together define the arc type) are numbered starting at 0 from the tetrahedron vertex outwards. | |
discType | returns the disc type of the normal disc that meets the given normal arc; this will be between 0 and 9 inclusive, as described in the NDiscSpec class notes. Any value may be initially passed. | |
discNumber | returns a number that indicates which normal disc of the returned disc type (discType ) meets the given normal arc; this will be between 0 and nDiscs(discType)-1 inclusive. Any value may be initially passed. |
unsigned long regina::NDiscSetTet::nDiscs | ( | int | type | ) | const [inline] |
Determines the number of discs of the given type inside this tetrahedron.
type | the disc type to examine; this should be between 0 and 9 inclusive. Disc types are outlined in the NDiscSpec class notes. |
unsigned long regina::NDiscSetTet::internalNDiscs[10] [protected] |
The number of discs of each type.