A normal surface vector using transversely oriented quadrilateral coordinates.
More...
|
| NNormalSurfaceVectorOrientedQuad (size_t length) |
| Creates a new vector all of whose entries are initialised to zero. More...
|
|
| NNormalSurfaceVectorOrientedQuad (const NVector< NLargeInteger > &cloneMe) |
| Creates a new vector that is a clone of the given vector. More...
|
|
virtual NNormalSurfaceVector * | makeMirror (NTriangulation *triang) const |
| Creates a new mirror vector corresponding to this vector. More...
|
|
virtual const NVertex * | isVertexLink (NTriangulation *triang) const |
| Determines if a rational multiple of the normal surface represented is the link of a single vertex. More...
|
|
virtual NLargeInteger | getQuadCoord (unsigned long tetIndex, int quadType, NTriangulation *triang) const |
| Returns the number of quadrilateral discs of the given type in this normal surface. More...
|
|
virtual NLargeInteger | getOrientedQuadCoord (unsigned long tetIndex, int quadType, NTriangulation *triang, bool orientation) const |
| Returns the number of oriented quadrilateral discs of the given type in this normal surface. More...
|
|
virtual NLargeInteger | getOctCoord (unsigned long tetIndex, int octType, NTriangulation *triang) const |
| Returns the number of octagonal discs of the given type in this normal surface. More...
|
|
| NNormalSurfaceVectorMirrored (size_t length) |
| Creates a new vector all of whose entries are initialised to zero. More...
|
|
| NNormalSurfaceVectorMirrored (const NVector< NLargeInteger > &cloneMe) |
| Creates a new vector that is a clone of the given vector. More...
|
|
| NNormalSurfaceVectorMirrored (const NNormalSurfaceVectorMirrored &cloneMe) |
| Creates a new vector that is a clone of the given vector. More...
|
|
virtual | ~NNormalSurfaceVectorMirrored () |
| Destroys this vector and its mirror if appropriate. More...
|
|
virtual NLargeInteger | getTriangleCoord (unsigned long tetIndex, int vertex, NTriangulation *triang) const |
| Returns the number of triangular discs of the given type in this normal surface. More...
|
|
virtual NLargeInteger | getOrientedTriangleCoord (unsigned long tetIndex, int vertex, NTriangulation *triang, bool orientation) const |
| Returns the number of oriented triangular discs of the given type in this normal surface. More...
|
|
virtual NLargeInteger | getEdgeWeight (unsigned long edgeIndex, NTriangulation *triang) const |
| Returns the number of times this normal surface crosses the given edge. More...
|
|
virtual NLargeInteger | getTriangleArcs (unsigned long triIndex, int triVertex, NTriangulation *triang) const |
| Returns the number of arcs in which this normal surface intersects the given triangle in the given direction. More...
|
|
| NNormalSurfaceVector (size_t length) |
| Creates a new vector all of whose entries are initialised to zero. More...
|
|
| NNormalSurfaceVector (const NVector< NLargeInteger > &cloneMe) |
| Creates a new vector that is a clone of the given vector. More...
|
|
virtual | ~NNormalSurfaceVector () |
| A virtual destructor. More...
|
|
virtual NNormalSurfaceVector * | clone () const =0 |
| Creates a newly allocated clone of this vector. More...
|
|
virtual bool | allowsAlmostNormal () const =0 |
| Determines if the specific underlying coordinate system allows for almost normal surfaces, that is, allows for octagonal discs. More...
|
|
virtual bool | allowsSpun () const =0 |
| Determines if the specific underlying coordinate system allows for spun-normal surfaces; that is, surfaces with infinitely many triangles. More...
|
|
virtual bool | allowsOriented () const =0 |
| Determines if the specific underlying coordinate system allows for transversely oriented normal surfaces. More...
|
|
virtual bool | hasMultipleOctDiscs (NTriangulation *triang) const |
| Determines if this normal surface has more than one octagonal disc. More...
|
|
virtual bool | isCompact (NTriangulation *triang) const |
| Determines if the normal surface represented is compact (has finitely many discs). More...
|
|
virtual bool | isVertexLinking (NTriangulation *triang) const |
| Determines if the normal surface represented is vertex linking. More...
|
|
virtual std::pair< const NEdge
*, const NEdge * > | isThinEdgeLink (NTriangulation *triang) const |
| Determines if a rational multiple of the normal surface represented is the thin link of a single edge. More...
|
|
virtual bool | isSplitting (NTriangulation *triang) const |
| Determines if the normal surface represented is a splitting surface in the given triangulation. More...
|
|
virtual NLargeInteger | isCentral (NTriangulation *triang) const |
| Determines if the normal surface represented is a central surface in the given triangulation. More...
|
|
NLargeInteger | getFaceArcs (unsigned long triIndex, int triVertex, NTriangulation *triang) const |
| A deprecated alias for getTriangleArcs(). More...
|
|
| NRay (size_t length) |
| Creates a new ray all of whose coordinates are initialised to zero. More...
|
|
| NRay (const NVector< NLargeInteger > &cloneMe) |
| Creates a new ray that is a clone of the given ray. More...
|
|
void | scaleDown () |
| Scales this vector down by the greatest common divisor of all its elements. More...
|
|
void | negate () |
| Negates every element of this vector. More...
|
|
| NVector (size_t newVectorSize) |
| Creates a new vector. More...
|
|
| NVector (size_t newVectorSize, const NLargeInteger &initValue) |
| Creates a new vector and initialises every element to the given value. More...
|
|
| NVector (const NVector< NLargeInteger > &cloneMe) |
| Creates a new vector that is a clone of the given vector. More...
|
|
| ~NVector () |
| Destroys this vector. More...
|
|
size_t | size () const |
| Returns the number of elements in the vector. More...
|
|
const NLargeInteger & | operator[] (size_t index) const |
| Returns the element at the given index in the vector. More...
|
|
void | setElement (size_t index, const NLargeInteger &value) |
| Sets the element at the given index in the vector to the given value. More...
|
|
bool | operator== (const NVector< NLargeInteger > &compare) const |
| Determines if this vector is equal to the given vector. More...
|
|
NVector< NLargeInteger > & | operator= (const NVector< NLargeInteger > &cloneMe) |
| Sets this vector equal to the given vector. More...
|
|
void | operator+= (const NVector< NLargeInteger > &other) |
| Adds the given vector to this vector. More...
|
|
void | operator-= (const NVector< NLargeInteger > &other) |
| Subtracts the given vector from this vector. More...
|
|
void | operator*= (const NLargeInteger &factor) |
| Multiplies this vector by the given scalar. More...
|
|
NLargeInteger | operator* (const NVector< NLargeInteger > &other) const |
| Calculates the dot product of this vector and the given vector. More...
|
|
void | negate () |
| Negates every element of this vector. More...
|
|
NLargeInteger | norm () const |
| Returns the norm of this vector. More...
|
|
NLargeInteger | elementSum () const |
| Returns the sum of all elements of this vector. More...
|
|
void | addCopies (const NVector< NLargeInteger > &other, const NLargeInteger &multiple) |
| Adds the given multiple of the given vector to this vector. More...
|
|
void | subtractCopies (const NVector< NLargeInteger > &other, const NLargeInteger &multiple) |
| Subtracts the given multiple of the given vector to this vector. More...
|
|
A normal surface vector using transversely oriented quadrilateral coordinates.
If there are t tetrahedra in the underlying triangulation, there must be precisely 6t coordinates. For each i, coordinates 2i and 2i+1 represent the true
and false
orientations for coordinate i in the 3t-dimensional quadrilateral coordinate system. See NNormalSurfaceVectorQuad for further details.
- Warning
- Support for transversely oriented normal surfaces is still experimental, and some features will break (e.g., testing connectedness, disjointness or embeddedness).
- Python:
- Not present.