Regina 7.4.1 Calculation Engine

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

#include <surface/disc.h>

Public Member Functions

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

Public Attributes

size_t 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 DiscSpec 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 DiscSpec class notes.

Friends

std::ostream & operator<< (std::ostream &out, const DiscSpec &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 DiscType in which the meaning of DiscType::type is flexible, the meaning of DiscSpec::type is fixed as described above.

These objects are small enough to pass by value and swap with std::swap(), with no need for any specialised move operations or swap functions.

Warning
This class converts the indices of normal discs of a given type from LargeInteger 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

◆ DiscSpec() [1/3]

regina::DiscSpec::DiscSpec ( )
default

Creates a new uninitialised disc specifier.

◆ DiscSpec() [2/3]

regina::DiscSpec::DiscSpec ( size_t 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 DiscSpec class notes.
newNumberspecifies which disc of the particular type in the particular tetrahedron is being referred to; discs are numbered as described in the DiscSpec class notes.

◆ DiscSpec() [3/3]

regina::DiscSpec::DiscSpec ( const DiscSpec & )
default

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

Member Function Documentation

◆ operator=()

DiscSpec & regina::DiscSpec::operator= ( const DiscSpec & )
default

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

Returns
a reference to this disc specifier.

◆ operator==()

bool regina::DiscSpec::operator== ( const DiscSpec & ) const
default

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

Returns
true if and only if this and the given disc specifier contain identical information.

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const DiscSpec & 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

◆ number

unsigned long regina::DiscSpec::number

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

◆ tetIndex

size_t regina::DiscSpec::tetIndex

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

◆ type

int regina::DiscSpec::type

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


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