1 #ifndef SUIT_DATAOBJECT_ITERATOR_H
2 #define SUIT_DATAOBJECT_ITERATOR_H
4 #include "SUIT_DataObject.h"
6 class SUIT_EXPORT SUIT_DataObjectIterator
9 typedef enum { DepthLeft, DepthRight, BreadthLeft, BreadthRight, User } DetourType;
11 SUIT_DataObjectIterator( SUIT_DataObject* root, const int det, const bool fromTrueRoot = false );
13 virtual void operator++();
14 SUIT_DataObject* current() const;
20 SUIT_DataObject* parent( SUIT_DataObject* ) const;
21 SUIT_DataObject* extreme( DataObjectList&, bool FromLeft ) const;
22 SUIT_DataObject* globalSibling( SUIT_DataObject*, bool next ) const;
25 SUIT_DataObject* myRoot;
26 SUIT_DataObject* myCurrent;
29 SUIT_DataObject* myExtremeChild;
30 int myDetourType, myCurrentLevel;
33 class SUIT_DataObjectLevelIterator : public SUIT_DataObjectIterator
36 SUIT_DataObjectLevelIterator( SUIT_DataObject* root, const int start, const int end = 0,
37 const bool LeftToRight = true );
38 virtual void operator++();