00001 #ifdef CH_LANG_CC 00002 /* 00003 * _______ __ 00004 * / ___/ / ___ __ _ / / ___ 00005 * / /__/ _ \/ _ \/ V \/ _ \/ _ \ 00006 * \___/_//_/\___/_/_/_/_.__/\___/ 00007 * Please refer to Copyright.txt, in Chombo's root directory. 00008 */ 00009 #endif 00010 00011 // ANAG, LBNL 00012 00013 #ifndef _VOFITERATOR_H_ 00014 #define _VOFITERATOR_H_ 00015 00016 #include "IntVect.H" 00017 #include "VolIndex.H" 00018 #include "IntVectSet.H" 00019 #include "Vector.H" 00020 #include "NamespaceHeader.H" 00021 class EBGraph; 00022 00023 /// Iterator for all vofs within an IntVectSet and an Ebgraph 00024 /** 00025 Iterator for all vofs within an IntVectSet and an Ebgraph 00026 */ 00027 class VoFIterator 00028 { 00029 public: 00030 /// 00031 VoFIterator(const IntVectSet& a_ivs, 00032 const EBGraph& a_ebgraph); 00033 00034 /// 00035 VoFIterator(); 00036 00037 /// 00038 ~VoFIterator(); 00039 00040 /// 00041 void define(const IntVectSet& a_ivs, 00042 const EBGraph& a_ebgraph); 00043 00044 /// 00045 void reset(); 00046 00047 /// 00048 void operator++(); 00049 00050 /// 00051 const VolIndex& operator() () const; 00052 00053 /// 00054 bool ok() const; 00055 00056 /// 00057 bool isDefined() const; 00058 00059 const Vector<VolIndex> getVector() const; 00060 00061 int size() const 00062 { 00063 return m_vols.size(); 00064 } 00065 private: 00066 bool m_isDefined; 00067 Vector<VolIndex> m_vols; 00068 int m_ivol; 00069 }; 00070 00071 #include "NamespaceFooter.H" 00072 #endif