#include <EdgeIterator.h>
Public Types | |
enum | ITERATIONMODE { SAMPLEOCCURENCE, SAMPLEVALUE } |
Public Member Functions | |
EdgeIterator (void) | |
EdgeIterator (Vertex *v, ITERATIONMODE m=SAMPLEOCCURENCE) | |
EdgeIterator (const EdgeIterator &eit) | |
~EdgeIterator (void) | |
const Edge * | operator* (void) const |
void | operator++ (void) |
void | reset (Vertex *v, ITERATIONMODE m=SAMPLEOCCURENCE) |
void | reset (ITERATIONMODE m=SAMPLEOCCURENCE) |
bool | isFinished (void) const |
VertexLabel | getPartnerVertexLabel (void) const |
void | print (unsigned short spc=0) const |
Static Public Member Functions | |
static UWORD32 | getMaxNumEdges (void) |
static void | setMaxNumEdges (UWORD32 mne) |
Private Member Functions | |
void | findNextEdge (void) |
bool | isDestSampleValueOK (const SampleValue *sv) |
Private Attributes | |
Edge | CurrentEdge |
the current edge (is returned by operator*) | |
ITERATIONMODE | Mode |
mode of iteration | |
unsigned long * | SVALIndices |
contains (for every sample value) an index to the current opposite neighbour | |
UWORD32 | EdgeIndex |
the index/number of the edge that is currently returned by operator* | |
bool | Finished |
is true iff there are no more edges for this source vertex | |
std::list< SampleOccurence > ::const_iterator | SampleOccurenceIt |
Static Private Attributes | |
static UWORD32 | MaxNumEdges = UWORD32_MAX |
the maximum number of edges the EdgeIterator should iterate through |
EdgeIterator uses an SampleOccurence::const_iterator to store information about the current edge. Graph::(un)markDeletedSampleOccurence can invalidate such iterators. It is therefore not a good idea to use EdgeIterators at the same time as the Graph::(un)markDeletedSampleOccurence functionality.
NOTE: EdgeIterator relies on the Globals object pointed to by the Globs pointer. This means that it must be set correctly before using any method of an EdgeIterator object.
EdgeIterator::EdgeIterator | ( | void | ) |
the default contructor - does not create a valid object
EdgeIterator::EdgeIterator | ( | Vertex * | v, | |
ITERATIONMODE | m = SAMPLEOCCURENCE | |||
) |
v | the source vertex |
EdgeIterator::EdgeIterator | ( | const EdgeIterator & | eit | ) |
the copy constructor
EdgeIterator::~EdgeIterator | ( | void | ) |
const Edge* EdgeIterator::operator* | ( | void | ) | const [inline] |
get the current edge
void EdgeIterator::operator++ | ( | void | ) |
set this iterator to next edge
void EdgeIterator::reset | ( | Vertex * | v, | |
ITERATIONMODE | m = SAMPLEOCCURENCE | |||
) |
set this iterator to first (shortest) edge of vertex v
v | new vertex (don't change if it is NULL) |
void EdgeIterator::reset | ( | ITERATIONMODE | m = SAMPLEOCCURENCE |
) |
reset this iterator to first (shortest) edge
bool EdgeIterator::isFinished | ( | void | ) | const [inline] |
VertexLabel EdgeIterator::getPartnerVertexLabel | ( | void | ) | const [inline] |
get the label of the partner vertex
static UWORD32 EdgeIterator::getMaxNumEdges | ( | void | ) | [inline, static] |
static void EdgeIterator::setMaxNumEdges | ( | UWORD32 | mne | ) | [inline, static] |
void EdgeIterator::print | ( | unsigned short | spc = 0 |
) | const |
void EdgeIterator::findNextEdge | ( | void | ) | [private] |
find the shortest edge, starting the search at SVOppNeighsIndices[0...k] set the private variables accordingly is only called to find a new destination sample value, i.e. if one of the SVOppNeighsIndices[i] is changed
bool EdgeIterator::isDestSampleValueOK | ( | const SampleValue * | sv | ) | [private] |
Edge EdgeIterator::CurrentEdge [private] |
ITERATIONMODE EdgeIterator::Mode [private] |
unsigned long* EdgeIterator::SVALIndices [private] |
UWORD32 EdgeIterator::MaxNumEdges = UWORD32_MAX [static, private] |
UWORD32 EdgeIterator::EdgeIndex [private] |
bool EdgeIterator::Finished [private] |
std::list<SampleOccurence>::const_iterator EdgeIterator::SampleOccurenceIt [private] |
contains the iterator pointing to the sample occurence that constitutes the edge together with SourceVertex/SourceSamleValueIndex