00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _bitmask_h
00018 #define _bitmask_h
00019
00020 #include <spl/Debug.h>
00021 #include <spl/types.h>
00022 #include <spl/Memory.h>
00023
00029 class BitMask : public IMemoryValidate
00030 {
00031 protected:
00032 int m_rows, m_cols;
00033 int m_size;
00034 byte *m_bits;
00035
00036 void GetByteBit(int row, int col, int *bytenum, int *bytebit);
00037
00038 public:
00039 BitMask(int rows, int cols);
00040 BitMask(const BitMask& bits);
00041 virtual ~BitMask();
00042
00043 BitMask& operator =(const BitMask& bits);
00044
00045 void Set(int row, int col);
00046 bool IsSet(int row, int col);
00047 void Clear(int row, int col);
00048 void Clear();
00049
00050 #ifdef DEBUG
00051 virtual void ValidateMem() const;
00052 virtual void CheckMem() const;
00053 #endif
00054 };
00055
00058 #endif