Regina Calculation Engine
Public Member Functions | Public Attributes | Friends
regina::NDiscSpec Struct Reference

Specifies a single normal disc in a normal surface. More...

#include <surfaces/ndisc.h>

List of all members.

Public Member Functions

 NDiscSpec ()
 Creates a new uninitialised disc specifier.
 NDiscSpec (unsigned long newTetIndex, int newType, unsigned long newNumber)
 Creates a new disc specifier containing the given values.
 NDiscSpec (const NDiscSpec &cloneMe)
 Creates a new disc specifier that is a clone of the given specifier.
NDiscSpecoperator= (const NDiscSpec &cloneMe)
 Copies the values from the given disc specifier into this specifier.
bool operator== (const NDiscSpec &other) const
 Determines if this and the given disc specifier contain identical information.

Public Attributes

unsigned long tetIndex
 The index in the triangulation of the tetrahedron containing the disc.
int type
 The disc type; this is between 0 and 9 inclusive, as described in the NDiscSpec class notes.
unsigned long number
 Specifies which disc of the particular type in the particular tetrahedron is being referred to; discs are numbered as described in the NDiscSpec class notes.

Friends

std::ostream & operator<< (std::ostream &out, const NDiscSpec &spec)
 Writes the given disc specifier to the given output stream.

Detailed Description

Specifies a single normal disc in a normal surface.

There are 10 disc types. Types 0-3 represent triangles 0-3, types 4-6 represent quads 0-2 and types 7-9 represent octagons 0-2.

Discs of a specific type are assigned numbers from 0 upwards. Triangular discs are numbered outwards from the vertex they surround. Quad discs and octagonal discs are numbered outwards away from vertex 0 of the tetrahedron.

Note that, unlike NDiscType in which the meaning of NDiscType::type is flexible, the meaning of NDiscSpec::type is fixed as described above.

Warning:
This class converts the indices of normal discs of a given type from NLargeInteger to unsigned long. See the precondition below.
Precondition:
The number of normal discs of a particular type in a particular tetrahedron can be represented by a long integer.
This class should only be used with embedded normal surfaces.

Constructor & Destructor Documentation

Creates a new uninitialised disc specifier.

regina::NDiscSpec::NDiscSpec ( unsigned long  newTetIndex,
int  newType,
unsigned long  newNumber 
) [inline]

Creates a new disc specifier containing the given values.

Parameters:
newTetIndexthe index in the triangulation of the tetrahedron containing the disc.
newTypethe disc type; this is between 0 and 9 inclusive, as described in the NDiscSpec class notes.
newNumberspecifies which disc of the particular type in the particular tetrahedron is being referred to; discs are numbered as described in the NDiscSpec class notes.
regina::NDiscSpec::NDiscSpec ( const NDiscSpec cloneMe) [inline]

Creates a new disc specifier that is a clone of the given specifier.

Parameters:
cloneMethe disc specifier to clone.

Member Function Documentation

NDiscSpec & regina::NDiscSpec::operator= ( const NDiscSpec cloneMe) [inline]

Copies the values from the given disc specifier into this specifier.

Parameters:
cloneMethe disc specifier whose values should be copied.
Returns:
a reference to this disc specifier.
bool regina::NDiscSpec::operator== ( const NDiscSpec other) const [inline]

Determines if this and the given disc specifier contain identical information.

Parameters:
otherthe disc specifier to compare with this.
Returns:
true if and only if this and the given disc specifier contain identical information.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const NDiscSpec spec 
) [friend]

Writes the given disc specifier to the given output stream.

The disc specifier will be written as a triple (tetIndex, type, number).

Parameters:
outthe output stream to which to write.
specthe disc specifier to write.
Returns:
a reference to out.

Member Data Documentation

Specifies which disc of the particular type in the particular tetrahedron is being referred to; discs are numbered as described in the NDiscSpec class notes.

The index in the triangulation of the tetrahedron containing the disc.

The disc type; this is between 0 and 9 inclusive, as described in the NDiscSpec class notes.


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

Copyright © 1999-2012, The Regina development team
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).