Regina Calculation Engine
Public Types | Static Public Member Functions | Protected Member Functions | List of all members
regina::NSatBlockStarterSet Class Reference

Represents a set of starter blocks that can be used for identifying triangulations of Seifert fibred spaces. More...

#include <subcomplex/nsatblockstarter.h>

Inheritance diagram for regina::NSatBlockStarterSet:
regina::NListOnCall< NSatBlockStarter >

Public Types

typedef NListOnCall
< NSatBlockStarter >::iterator 
iterator
 An iterator over the starter blocks in this list. More...
 

Static Public Member Functions

static iterator begin ()
 Returns an iterator pointing to the first block in the hard-coded list. More...
 
static iterator end ()
 Returns an iterator pointing past the end of the hard-coded list (i.e., just after the last item). More...
 

Protected Member Functions

void initialise ()
 Fills this list with items. More...
 

Additional Inherited Members

- Private Types inherited from regina::NListOnCall< NSatBlockStarter >
typedef std::list< const
NSatBlockStarter * >
::const_iterator 
iterator
 An iterator over this list. More...
 
- Private Member Functions inherited from regina::NListOnCall< NSatBlockStarter >
 NListOnCall ()
 Creates a new list structure. More...
 
virtual ~NListOnCall ()
 Destroys this list and all of the items it contains. More...
 
iterator begin () const
 Returns an iterator pointing to the first item in this list. More...
 
iterator end () const
 Returns an iterator pointing past the end of this list (i.e., just after the last item). More...
 
void insert (NSatBlockStarter *item)
 Adds the given item to the end of this list. More...
 

Detailed Description

Represents a set of starter blocks that can be used for identifying triangulations of Seifert fibred spaces.

This class provides a list of saturated blocks that can be used as starting points for recognising triangulations; see the NSatBlockStarter class notes for details.

More importantly, this list is global and hard-coded. The only access to the list is through the static routines begin() and end().

Creating the list of starter blocks is expensive, and so this is not done until the first time that begin() is called. This way, if the list is never used then the work is never done. As a consequence however, you must be sure to call begin() before calling end() (which is the usual way in which iterator loops are structured in code).

Be aware that this list makes no claims to be exhaustive; it is expected to grow as future versions of Regina are released.

Python:
Not present.

Member Typedef Documentation

An iterator over the starter blocks in this list.

This operates as a forward iterator in a manner consistent with the standard C++ library.

Member Function Documentation

NSatBlockStarterSet::iterator regina::NSatBlockStarterSet::begin ( )
inlinestatic

Returns an iterator pointing to the first block in the hard-coded list.

The very first time this routine is called, the list will be filled with items (and as such the call will be expensive). Every subsequent call will be very cheap.

Returns
an iterator pointing to the first starter block.
NSatBlockStarterSet::iterator regina::NSatBlockStarterSet::end ( )
inlinestatic

Returns an iterator pointing past the end of the hard-coded list (i.e., just after the last item).

Precondition
The begin() routine has been called at least once.
Returns
a past-the-end iterator.
void regina::NSatBlockStarterSet::initialise ( )
protectedvirtual

Fills this list with items.

The particular set of items to use will typically depend on the particular subclass of NListOnCall that is being defined.

This routine will be run the first time that begin() is called on each list, and will not be run again.

Implements regina::NListOnCall< NSatBlockStarter >.


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

Copyright © 1999-2013, 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).