00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __GU_TrimCells_h__
00021 #define __GU_TrimCells_h__
00022
00023 #include "GU_API.h"
00024
00025 class GU_API GU_TrimCells
00026 {
00027 public:
00028 GU_TrimCells(int udiv, int vdiv);
00029 ~GU_TrimCells();
00030
00031 void addCurve(int i, int j)
00032 { if (i >= 0 && i < myVDiv && j >= 0 && j < myUDiv)
00033 myCellStates[i*myUDiv + j] = 1; }
00034 char &operator()(int i, int j)
00035 { return myCellStates[i*myUDiv + j]; }
00036 char operator()(int i, int j) const
00037 { return myCellStates[i*myUDiv + j]; }
00038 char *operator()(int i) const
00039 { return &myCellStates[i*myUDiv]; }
00040
00041
00042 int runLength(int i, int j) const;
00043
00044
00045
00046 void fill(int i, int j, char state);
00047
00048 private:
00049 int myUDiv, myVDiv;
00050 char *myCellStates;
00051 };
00052
00053 #endif