00001 /* $Id: IteratorHeap.h,v 1.2 2002/11/05 14:31:15 anonymous Exp $ */ 00002 00003 #ifndef __ITERATOR_HEAP_H 00004 #define __ITERATOR_HEAP_H 00005 00006 #include <esg/SceneGraphObject.h> 00007 #include <esg/spacesorting/SDS.h> 00008 #include <esg/spacesorting/BVH.h> 00009 #include <esg/iterator/Iterator.h> 00010 #include <esg/iterator/IteratorSDS.h> 00011 00012 namespace esg { 00013 00014 /* Always returns all stored objects */ 00015 00016 class OGSCENE_EXPORT IteratorHeap : public IteratorSDS { 00017 protected: 00018 // Methods for children traverse: 00019 virtual SceneGraphObject* _first_child() { 00020 return ((Heap*)_pAggregate)->_list.firstItem(); 00021 } 00022 00023 virtual SceneGraphObject* _next_child() { 00024 return ((Heap*)_pAggregate)->_list.nextItem(); 00025 } 00026 00027 public: 00028 IteratorHeap (Heap* pAggregate) : IteratorSDS(pAggregate) {} 00029 }; 00030 00031 }; // namespace 00032 00033 #endif // __ITERATOR_HEAP_H