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 #ifndef _CELLEDGE_H_ 00012 #define _CELLEDGE_H_ 00013 00014 00015 #include "MayDay.H" 00016 #include "RealVect.H" 00017 #include "IntVect.H" 00018 00019 #include "NamespaceHeader.H" 00020 00021 class CellEdge 00022 { 00023 public: 00024 00025 /* 00026 * Don't use this kind of construction anymore 00027 CellEdge(const IntVect& a_cell, 00028 const int& a_dir, 00029 const bool* a_lohi); 00030 */ 00031 00032 CellEdge(const IntVect& a_node0, 00033 const IntVect& a_node1); 00034 00035 CellEdge(const IntVect& a_node0, 00036 const int a_dir); 00037 00038 ~CellEdge(); 00039 00040 void shift(const int a_dir); 00041 00042 void shift(const int a_dir, 00043 const int a_offset); 00044 00045 // test CellEdge equality (for unordered_map) with _both_ nodes _and_ the direction 00046 bool operator==(const CellEdge& a_edge) const; 00047 00048 //IntVect m_cell; // don't use this anymore 00049 int m_dir; 00050 //bool m_lohi[SpaceDim-1]; // don't use this anymore 00051 IntVect m_node0; 00052 IntVect m_node1; 00053 00054 private: 00055 00056 CellEdge() 00057 { 00058 MayDay::Abort("CellEdge uses strong construction"); 00059 } 00060 00061 void operator=(const CellEdge& a_inputCellEdge) 00062 { 00063 MayDay::Abort("CellEdge doesn't allow assignment"); 00064 } 00065 }; 00066 00067 #include "NamespaceFooter.H" 00068 #endif