iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator Class Reference

Iterator is not remove safe. More...

#include <iso_space_rtree.h>

Collaboration diagram for iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Iterator ()
 ~Iterator ()
bool IsNull ()
 Is iterator invalid.
bool IsNotNull ()
 Is iterator pointing to valid data.
DATATYPE & operator * ()
 Access the current data element. Caller must be sure iterator is not NULL first.
const DATATYPE & operator * () const
 Access the current data element. Caller must be sure iterator is not NULL first.
bool operator++ ()
 Find the next data element.

Private Types

enum  { MAX_STACK = 32 }

Private Member Functions

void Init ()
 Reset iterator.
bool FindNextData ()
 Find the next data element in the tree (For internal use only).
void Push (Node *a_node, int a_branchIndex)
 Push node and branch onto iteration stack (For internal use only).
StackElementPop ()
 Pop element off iteration stack (For internal use only).

Private Attributes

StackElement m_stack [MAX_STACK]
 Stack as we are doing iteration instead of recursion.
int m_tos
 Top Of Stack index.

Friends

class RTree

Classes

struct  StackElement

Detailed Description

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
class iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator

Iterator is not remove safe.


Member Enumeration Documentation

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
anonymous enum [private]

Enumerator:
MAX_STACK 


Constructor & Destructor Documentation

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::Iterator (  )  [inline]

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::~Iterator (  )  [inline]


Member Function Documentation

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
bool iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::IsNull (  )  [inline]

Is iterator invalid.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
bool iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::IsNotNull (  )  [inline]

Is iterator pointing to valid data.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
DATATYPE& iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::operator * (  )  [inline]

Access the current data element. Caller must be sure iterator is not NULL first.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
const DATATYPE& iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::operator * (  )  const [inline]

Access the current data element. Caller must be sure iterator is not NULL first.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
bool iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::operator++ (  )  [inline]

Find the next data element.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
void iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::Init (  )  [inline, private]

Reset iterator.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
bool iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::FindNextData (  )  [inline, private]

Find the next data element in the tree (For internal use only).

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
void iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::Push ( Node a_node,
int  a_branchIndex 
) [inline, private]

Push node and branch onto iteration stack (For internal use only).

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
StackElement& iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::Pop (  )  [inline, private]

Pop element off iteration stack (For internal use only).


Friends And Related Function Documentation

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
friend class RTree [friend]


Member Data Documentation

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
StackElement iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::m_stack[MAX_STACK] [private]

Stack as we are doing iteration instead of recursion.

template<class DATATYPE, class ELEMTYPE, class ELEMTYPEREAL = ELEMTYPE, int TMAXNODES = 8, int TMINNODES = TMAXNODES / 2>
int iso::space::RTree< DATATYPE, ELEMTYPE, ELEMTYPEREAL, TMAXNODES, TMINNODES >::Iterator::m_tos [private]

Top Of Stack index.


The documentation for this class was generated from the following file:
Generated on Fri Feb 25 14:08:16 2011 for iso_space by  doxygen 1.5.1