Stores a piece of data alongside every normal disc within a particular normal surface.
More...
|
| DiscSetSurfaceDataImpl (const NormalSurface &surface) |
| Creates a new disc set corresponding to the discs of the given normal surface.
|
|
| DiscSetSurfaceDataImpl (const NormalSurface &surface, const typename TetData::Data &initValue) |
| Creates a new disc set corresponding to the discs of the given normal surface.
|
|
| DiscSetSurfaceDataImpl (const DiscSetSurfaceDataImpl &src) |
| Creates a new copy of the given set of normal discs.
|
|
| DiscSetSurfaceDataImpl (DiscSetSurfaceDataImpl &&src) noexcept |
| Moves the contents of the given disc set into this new disc set.
|
|
| ~DiscSetSurfaceDataImpl () |
| Destroys this set of discs and deallocates all associated memory.
|
|
DiscSetSurfaceDataImpl & | operator= (const DiscSetSurfaceDataImpl &src) |
| Sets this to be a copy of the given disc set.
|
|
DiscSetSurfaceDataImpl & | operator= (DiscSetSurfaceDataImpl &&src) noexcept |
| Moves the contents of the given disc set into this disc set.
|
|
void | swap (DiscSetSurfaceDataImpl &other) noexcept |
| Swaps the contents of this and the given disc set.
|
|
bool | operator== (const DiscSetSurfaceDataImpl &other) const |
| Determines whether this and the given set have the same number of discs of each type in each tetrahedron, and contain the same data for corresponding discs.
|
|
bool | operator!= (const DiscSetSurfaceDataImpl &other) const |
| Determines whether this and the given set have different numbers of discs of some type in some tetrahedron, or contain different data for some pair of corresponding discs.
|
|
size_t | nTets () const |
| Returns the number of tetrahedra in the underlying triangulation.
|
|
unsigned long | nDiscs (size_t tetIndex, int type) const |
| Determines the number of discs of the given type inside the given tetrahedron.
|
|
TetData & | tetDiscs (size_t tetIndex) const |
| Returns the specific set of discs living inside the given tetrahedron.
|
|
TetData::Data & | data (const DiscSpec &disc) |
| Retrieves a reference to the data corresponding to the given normal disc.
|
|
std::optional< std::pair< DiscSpec, Perm< 4 > > > | adjacentDisc (const DiscSpec &disc, Perm< 4 > arc) 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.
|
|
DiscSpecIterator< TetData > | begin () const |
| Returns a C++ iterator at the beginning of the range of all normal discs in the underlying normal surface.
|
|
DiscSpecIterator< TetData > | end () const |
| Returns a C++ iterator at the end of the range of all normal discs in the underlying normal surface.
|
|
auto | __iter__ () const |
| Returns a Python iterator over all normal discs in the underlying normal surface.
|
|
template<class TetData>
class regina::DiscSetSurfaceDataImpl< TetData >
Stores a piece of data alongside every normal disc within a particular normal surface.
End users should not refer to this class directly; instead use one of the type aliases DiscSetSurfaceData<T> or DiscSetSurface.
This class implements C++ move semantics and adheres to the C++ Swappable requirement. It is designed to avoid deep copies wherever possible, even when passing or returning objects by value.
- Template Parameters
-
TetData | This must be either (1) DiscSetTet, in which case there will be no additional data stored for each normal disc; or (2) a class of the form DiscSetTetData<T>, in which case there will be data of type T stored alongside each normal disc. |
- 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.
- Python
- The only instance of this class that is available through python is DiscSetSurface (i.e., the "vanilla" case where TetData is the type DiscSetTet).
Determines whether this and the given set have different numbers of discs of some type in some tetrahedron, or contain different data for some pair of corresponding discs.
This routine does not consider whether the two underlying triangulations are the same; it merely compares the disc counts and associated data within each set. If the two disc sets come from triangulations with different sizes, and/or surfaces with different disc counts in one or more tetarhedra, then this comparison will return true
.
The associated data (of type T) will be compared using the equality operator (==).
- Returns
true
if and only if both sets are not the same, as described above.
Determines whether this and the given set have the same number of discs of each type in each tetrahedron, and contain the same data for corresponding discs.
This routine does not consider whether the two underlying triangulations are the same; it merely compares the disc counts and associated data within each set. If the two disc sets come from triangulations with different sizes, and/or surfaces with different disc counts in one or more tetarhedra, then this comparison will return false
.
The associated data (of type T) will be compared using the equality operator (==).
- Returns
true
if and only if both sets are the same, as described above.