00001
00002
00003
00004
00005
00006
00007 #ifndef _MbIToIjk_h
00008 #define _MbIToIjk_h
00009
00010
00011 class MbIToIjk
00012 {
00013 public:
00019 MbIToIjk(size_t numI, size_t numJ)
00020 {
00021 update(numI,numJ);
00022 }
00023
00024 void update(size_t numI, size_t numJ)
00025 {
00026 m_numI = numI;
00027 m_numIxJ = m_numI * numJ;
00028 }
00029
00033 void getIjk(size_t flatId, size_t& i, size_t& j, size_t& k) const
00034 {
00035 k = flatId / m_numIxJ;
00036 size_t tmp = flatId % m_numIxJ;
00037 j = tmp / m_numI;
00038 i = tmp % m_numI;
00039 }
00040
00041 private:
00042 size_t m_numI;
00043 size_t m_numIxJ;
00044
00045 };
00046
00047 #endif
00048
00049