Regina Calculation Engine
Public Member Functions | Protected Attributes | List of all members
regina::DiscSetSurfaceData< T > Class Template Reference

Stores data of type T for every normal disc within a particular normal surface. More...

#include <surfaces/disc.h>

Inheritance diagram for regina::DiscSetSurfaceData< T >:
regina::DiscSetSurface

Public Member Functions

 DiscSetSurfaceData (const NormalSurface &surface)
 Creates a new disc set corresponding to the discs of the given normal surface. More...
 
 DiscSetSurfaceData (const NormalSurface &surface, const T &initValue)
 Creates a new disc set corresponding to the discs of the given normal surface. More...
 
T & data (const DiscSpec &disc)
 Retrieves a reference to the data corresponding to the given normal disc. More...
 
size_t nTets () const
 Returns the number of tetrahedra in the underlying triangulation. More...
 
unsigned long nDiscs (size_t tetIndex, int type) const
 Determines the number of discs of the given type inside the given tetrahedron. More...
 
DiscSetTettetDiscs (size_t tetIndex) const
 Returns the specific set of discs living inside the given tetrahedron. More...
 
DiscSpecadjacentDisc (const DiscSpec &disc, Perm< 4 > arc, Perm< 4 > &adjArc) const
 Determines which normal disc is adjacent to the given normal disc along the given directed normal arc in the surface described by this disc set. More...
 

Protected Attributes

DiscSetTet ** discSets
 The disc sets corresponding to each tetrahedron. More...
 
const Triangulation< 3 > * triangulation
 The triangulation in which the normal surface lives. More...
 

Detailed Description

template<class T>
class regina::DiscSetSurfaceData< T >

Stores data of type T for every normal disc within a particular normal surface.

This data is stored using an array of DiscSetTetData<T> objects, one for each tetrahedron (thus the inherited member function tetDiscs() will return an object of class DiscSetTetData<T>).

Warning
This class converts the number 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.
Type T has a default constructor and an assignment operator. That is, if a and b are of type T, then a can be declared with no parameters and can then receive the value of b using a=b.
Python:
Not present.

Constructor & Destructor Documentation

◆ DiscSetSurfaceData() [1/2]

template<class T >
regina::DiscSetSurfaceData< T >::DiscSetSurfaceData ( const NormalSurface surface)
inline

Creates a new disc set corresponding to the discs of the given normal surface.

The data for each disc will remain uninitialised.

Parameters
surfacethe normal surface whose discs we shall use.

◆ DiscSetSurfaceData() [2/2]

template<class T >
regina::DiscSetSurfaceData< T >::DiscSetSurfaceData ( const NormalSurface surface,
const T &  initValue 
)
inline

Creates a new disc set corresponding to the discs of the given normal surface.

The data for each disc will be initialised to the given value.

Parameters
surfacethe normal surface whose discs we shall use.
initValuethe value with which to initialise the data corresponding to each disc.

Member Function Documentation

◆ adjacentDisc()

DiscSpec* regina::DiscSetSurface::adjacentDisc ( const DiscSpec disc,
Perm< 4 >  arc,
Perm< 4 > &  adjArc 
) const
inherited

Determines which normal disc is adjacent to the given normal disc along the given directed normal arc in the surface described by this disc set.

A directed normal arc will be specified by a permutation p, where the arc runs around vertex p[0] parallel to the directed edge from vertex p[1] to p[2].

Parameters
discthe given normal disc; this must be a disc in this disc set.
arcthe given normal arc; this must actually be an arc on the boundary of the given normal disc (although it may run in either direction).
adjArcreturns the same directed normal arc that was passed, but expressed in terms of the vertices of the adjacent tetrahedron. Any value may be initially passed. If there is no adjacent disc/tetrahedron, this permutation will remain unchanged.
Returns
the normal disc adjacent to the given disc along the given arc, or 0 if there is no adjacent disc. This disc specifier will be newly created, and it is up to the caller of this routine to dispose of it.

◆ data()

template<class T >
T& regina::DiscSetSurfaceData< T >::data ( const DiscSpec disc)
inline

Retrieves a reference to the data corresponding to the given normal disc.

Parameters
discthe disc whose data we require; this must refer to a disc within this disc set.
Returns
a reference to the data corresponding to the given normal disc.

◆ nDiscs()

unsigned long regina::DiscSetSurface::nDiscs ( size_t  tetIndex,
int  type 
) const
inlineinherited

Determines the number of discs of the given type inside the given tetrahedron.

Parameters
tetIndexthe index in the triangulation of the tetrahedron to examine.
typethe disc type to examine; this should be between 0 and 9 inclusive. Disc types are outlined in the DiscSpec class notes.
Returns
the number of discs of the given type inside the given tetrahedron.

◆ nTets()

size_t regina::DiscSetSurface::nTets ( ) const
inlineinherited

Returns the number of tetrahedra in the underlying triangulation.

Returns
the number of tetrahedra.

◆ tetDiscs()

DiscSetTet & regina::DiscSetSurface::tetDiscs ( size_t  tetIndex) const
inlineinherited

Returns the specific set of discs living inside the given tetrahedron.

Parameters
tetIndexthe index in the triangulation of the given tetrahedron.
Returns
the set of discs inside the given tetrahedron.

Member Data Documentation

◆ discSets

DiscSetTet** regina::DiscSetSurface::discSets
protectedinherited

The disc sets corresponding to each tetrahedron.

◆ triangulation

const Triangulation<3>* regina::DiscSetSurface::triangulation
protectedinherited

The triangulation in which the normal surface lives.


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

Copyright © 1999-2016, 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@maths.uq.edu.au).