#include <nsurfaceset.h>
Public Member Functions | |
virtual | ~NSurfaceSet () |
Default destructor that does nothing. | |
virtual int | getFlavour () const =0 |
Returns the flavour of coordinate system being used by the surfaces stored in this set. | |
virtual bool | allowsAlmostNormal () const =0 |
Determines if the flavour of coordinate system being used allows for almost normal surfaces, that is, allows for octagonal discs. | |
virtual bool | isEmbeddedOnly () const =0 |
Returns whether this set is known to contain only embedded normal surfaces. | |
virtual NTriangulation * | getTriangulation () const =0 |
Returns the triangulation upon which these normal surfaces are based. | |
virtual unsigned long | getNumberOfSurfaces () const =0 |
Returns the number of surfaces stored in this set. | |
virtual const NNormalSurface * | getSurface (unsigned long index) const =0 |
Returns the surface at the requested index in this set. | |
virtual ShareableObject * | getShareableObject ()=0 |
Returns this object cast as a ShareableObject. | |
void | writeAllSurfaces (std::ostream &out) const |
Writes the number of surfaces in this set followed by the details of each surface to the given output stream. |
This is a completely abstract base class used to provide a common interface to different types of surface sets.
Any class derived from NSurfaceSet must maintain a fixed set of surfaces; no surfaces may be added to or removed from the set. Surfaces in the set may however be modified.
regina::NSurfaceSet::~NSurfaceSet | ( | ) | [inline, virtual] |
Default destructor that does nothing.
virtual bool regina::NSurfaceSet::allowsAlmostNormal | ( | ) | const [pure virtual] |
Determines if the flavour of coordinate system being used allows for almost normal surfaces, that is, allows for octagonal discs.
true
if and only if almost normal surfaces are allowed. Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
virtual int regina::NSurfaceSet::getFlavour | ( | ) | const [pure virtual] |
Returns the flavour of coordinate system being used by the surfaces stored in this set.
This will be one of the predefined coordinate system constants in NNormalSurfaceList.
Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
virtual unsigned long regina::NSurfaceSet::getNumberOfSurfaces | ( | ) | const [pure virtual] |
Returns the number of surfaces stored in this set.
Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
virtual ShareableObject* regina::NSurfaceSet::getShareableObject | ( | ) | [pure virtual] |
Returns this object cast as a ShareableObject.
Generally the implementation of this routine will simply be return this;
.
This routine is necessary because NSurfaceSet is not of type ShareableObject; however, it is presumed that each of its derived classes will be. The aim here is to reduce the mess that could arise combining virtual multiple inheritance with the voluminous casting and recasting that takes place when working with external interfaces.
Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
virtual const NNormalSurface* regina::NSurfaceSet::getSurface | ( | unsigned long | index | ) | const [pure virtual] |
Returns the surface at the requested index in this set.
index | the index of the requested surface in this set; this must be between 0 and getNumberOfSurfaces()-1 inclusive. |
Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
virtual NTriangulation* regina::NSurfaceSet::getTriangulation | ( | ) | const [pure virtual] |
Returns the triangulation upon which these normal surfaces are based.
Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
virtual bool regina::NSurfaceSet::isEmbeddedOnly | ( | ) | const [pure virtual] |
Returns whether this set is known to contain only embedded normal surfaces.
If it is possible that there are non-embedded surfaces in this set but it is not known whether any are actually present or not, this routine should return false
.
true
if it is known that only embedded normal surfaces exist in this list, or false
if immersed and/or singular normal surfaces might be present. Implemented in regina::NNormalSurfaceList, and regina::NSurfaceSubset.
void regina::NSurfaceSet::writeAllSurfaces | ( | std::ostream & | out | ) | const |
Writes the number of surfaces in this set followed by the details of each surface to the given output stream.
Output will be over many lines.
out | the output stream to which to write. |