regina::NAngleStructureVector Class Reference
[Angle Structures]

A vector of integers used to indirectly store the individual angles in an angle structure. More...

#include <nanglestructure.h>

Inheritance diagram for regina::NAngleStructureVector:

regina::NRay regina::NVectorDense< T > regina::NVector< T >

List of all members.

Public Member Functions

 NAngleStructureVector (unsigned length)
 Creates a new vector all of whose entries are initialised to zero.
 NAngleStructureVector (const NVector< NLargeInteger > &cloneMe)
 Creates a new vector that is a clone of the given vector.
virtual NVector< NLargeInteger > * clone () const
 Makes a newly allocated clone of this vector.


Detailed Description

A vector of integers used to indirectly store the individual angles in an angle structure.

This vector will contain one member per angle plus a final scaling member; to obtain the actual angle in the angle structure one should divide the corresonding angle member by the scaling member and then multiply by pi.

The reason for using this obfuscated representation is so we can be lazy and use the NVertexEnumerator vertex solution routines to calculate vertex angle structures.

If there are t tetrahedra in the underlying triangulation, there will be precisely 3t+1 elements in this vector. The first three elements will be the angle members for the first tetrahedron, the next three for the second tetrahedron and so on. For each tetraheron, the three individual elements are the angle members for vertex splittings 0, 1 and 2 (see NAngleStructure::getAngle()). The final element of the vector is the scaling member as described above.

Test:
Tested in the test suite, though not exhaustively.
Python:
Not present.

Constructor & Destructor Documentation

regina::NAngleStructureVector::NAngleStructureVector ( unsigned  length  )  [inline]

Creates a new vector all of whose entries are initialised to zero.

Parameters:
length the number of elements in the new vector.

regina::NAngleStructureVector::NAngleStructureVector ( const NVector< NLargeInteger > &  cloneMe  )  [inline]

Creates a new vector that is a clone of the given vector.

Parameters:
cloneMe the vector to clone.


Member Function Documentation

NVector< NLargeInteger > * regina::NAngleStructureVector::clone (  )  const [inline, virtual]

Makes a newly allocated clone of this vector.

The clone will be of the same subclass of NVector as this vector.

Returns:
a clone of this vector.

Reimplemented from regina::NRay.


The documentation for this class was generated from the following file:
Copyright © 1999-2007, Ben Burton
This software is released under the GNU General Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).