00001 #ifndef SUNDANCERIVARAELEMENTITERATOR_H 00002 #define SUNDANCERIVARAELEMENTITERATOR_H 00003 00004 #include "SundanceRivaraElement.hpp" 00005 00006 namespace Sundance 00007 { 00008 namespace Rivara 00009 { 00010 class RivaraMesh; 00011 00012 class ElementIterator 00013 { 00014 public: 00015 ElementIterator(const RivaraMesh* mesh); 00016 00017 bool hasMoreElements() const ; 00018 00019 const Element* getNextElement() const ; 00020 00021 private: 00022 RivaraMesh* mesh_; 00023 00024 mutable int rootIndex_; 00025 00026 mutable Element* current_; 00027 00028 mutable bool startingNewTree_; 00029 }; 00030 } 00031 } 00032 00033 #endif