1 #ifndef SUIT_DATAOBJECT_ITERATOR_H
2 #define SUIT_DATAOBJECT_ITERATOR_H
4 #include "SUIT_DataObject.h"
7 Class provide data object iterator.
9 class SUIT_EXPORT SUIT_DataObjectIterator
12 typedef enum { DepthLeft, DepthRight, BreadthLeft, BreadthRight, User } DetourType;
14 SUIT_DataObjectIterator( SUIT_DataObject* root, const int det, const bool fromTrueRoot = false );
16 virtual void operator++();
17 SUIT_DataObject* current() const;
23 SUIT_DataObject* parent( SUIT_DataObject* ) const;
24 SUIT_DataObject* extreme( DataObjectList&, bool FromLeft ) const;
25 SUIT_DataObject* globalSibling( SUIT_DataObject*, bool next ) const;
28 SUIT_DataObject* myRoot;
29 SUIT_DataObject* myCurrent;
32 SUIT_DataObject* myExtremeChild;
33 int myDetourType, myCurrentLevel;
36 class SUIT_DataObjectLevelIterator : public SUIT_DataObjectIterator
39 SUIT_DataObjectLevelIterator( SUIT_DataObject* root, const int start, const int end = 0,
40 const bool LeftToRight = true );
41 virtual void operator++();