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 _COVEREDFACEITERATOR_H_ 00014 #define _COVEREDFACEITERATOR_H_ 00015 00016 #include "IntVect.H" 00017 #include "VolIndex.H" 00018 #include "IntVectSet.H" 00019 #include "EBISBox.H" 00020 #include "Vector.H" 00021 #include "LoHiSide.H" 00022 #include "NamespaceHeader.H" 00023 00024 /// Iterator for all vofs within an IntVectSet and an EBISBox 00025 /** 00026 Iterator for all vofs within an IntVectSet and an EBISBox 00027 */ 00028 class CoveredFaceIterator 00029 { 00030 public: 00031 /// 00032 CoveredFaceIterator(const IntVectSet& a_ivs, 00033 const EBISBox& a_ebisBox, 00034 int a_dir, Side::LoHiSide a_side); 00035 00036 /// 00037 CoveredFaceIterator(); 00038 00039 /// 00040 ~CoveredFaceIterator(); 00041 00042 /// 00043 void define(const IntVectSet& a_ivs, 00044 const EBISBox& a_ebisBox, 00045 int a_dir, Side::LoHiSide a_side); 00046 00047 /// 00048 void reset(); 00049 00050 /// 00051 void operator++(); 00052 00053 /// 00054 const VolIndex& operator() () const; 00055 00056 /// 00057 bool ok() const; 00058 00059 /// 00060 bool isDefined() const; 00061 00062 private: 00063 CoveredFaceIterator(const CoveredFaceIterator& a_input) 00064 { 00065 MayDay::Error("Invalid Operator"); 00066 } 00067 void 00068 operator= (const CoveredFaceIterator& a_input) 00069 { 00070 MayDay::Error("Invalid Operator"); 00071 } 00072 Vector<VolIndex> m_vols; 00073 int m_ivol; 00074 00075 bool m_isDefined; 00076 }; 00077 00078 #include "NamespaceFooter.H" 00079 #endif