regina::NDiscSpec Struct Reference
Normal Surfaces

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

`#include <surfaces/ndisc.h>`

## Public Member Functions

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

## Public Attributes

unsigned long | tetIndex
| The index in the triangulation of the tetrahedron containing the disc. More...
int | type
| The disc type; this is between 0 and 9 inclusive, as described in the NDiscSpec class notes. More...
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. More...

## Friends

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

## 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

regina::NDiscSpec::NDiscSpec | ( |  | ) |

inline

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

  newTetIndex | the index in the triangulation of the tetrahedron containing the disc.
  newType | the disc type; this is between 0 and 9 inclusive, as described in the NDiscSpec class notes.
  newNumber | 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.

regina::NDiscSpec::NDiscSpec | ( | const NDiscSpec & | cloneMe | ) |

inline

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

Parameters

  cloneMe | the 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

  cloneMe | the 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

  other | the 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

  out | the output stream to which to write.
  spec | the disc specifier to write.

Returns
  a reference to out.

## Member Data Documentation

unsigned long regina::NDiscSpec::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.

unsigned long regina::NDiscSpec::tetIndex

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

int regina::NDiscSpec::type

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:

- surfaces/ndisc.h

Copyright © 1999-2014, 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@debian.org).