Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

LoHiSide.H

Go to the documentation of this file.
00001 /* _______              __
00002   / ___/ /  ___  __ _  / /  ___
00003  / /__/ _ \/ _ \/  ' \/ _ \/ _ \
00004  \___/_//_/\___/_/_/_/_.__/\___/ 
00005 */
00006 //
00007 // This software is copyright (C) by the Lawrence Berkeley
00008 // National Laboratory.  Permission is granted to reproduce
00009 // this software for non-commercial purposes provided that
00010 // this notice is left intact.
00011 // 
00012 // It is acknowledged that the U.S. Government has rights to
00013 // this software under Contract DE-AC03-765F00098 between
00014 // the U.S.  Department of Energy and the University of
00015 // California.
00016 //
00017 // This software is provided as a professional and academic
00018 // contribution for joint exchange. Thus it is experimental,
00019 // is provided ``as is'', with no warranties of any kind
00020 // whatsoever, no support, no promise of updates, or printed
00021 // documentation. By using this software, you acknowledge
00022 // that the Lawrence Berkeley National Laboratory and
00023 // Regents of the University of California shall have no
00024 // liability with respect to the infringement of other
00025 // copyrights by any part of this software.
00026 //
00027 
00028 #ifndef _LOHISIDE_H_
00029 #define _LOHISIDE_H_
00030 
00032 
00035 class Side
00036 {
00037 public:
00039 
00043   enum LoHiSide {Invalid=-1, Lo=0, Hi, NUMSIDES};
00044   Side() {};
00045   ~Side() {};
00047 
00050   friend 
00051   Side::LoHiSide 
00052   flip(Side::LoHiSide side);
00053 
00055   static 
00056   Side::LoHiSide 
00057   flip(Side::LoHiSide side);
00058 
00060 
00063   friend
00064   int 
00065   sign(Side::LoHiSide side);
00066 
00067 
00068 };
00069 
00070 
00071 
00073 
00077 class SideIterator
00078 {
00079 public:
00080 
00082 
00084 
00087   SideIterator();
00088 
00090 
00093   ~SideIterator() {};
00094 
00096 
00098 
00106   void begin();
00107 
00109 
00117   void reset()
00118   {begin();}
00119 
00120   void next();
00121 
00123 
00131   void operator++();
00132 
00134    
00136 
00145   Side::LoHiSide operator() () const;
00146 
00148 
00158   bool ok() const;
00159 
00160 private:
00161   int current;
00162 };
00163 
00164 #endif

Generated on Wed Apr 16 14:31:05 2003 for EBChombo by doxygen1.2.16