00001 #ifndef __PIXELPLACE_H__
00002 #define __PIXELPLACE_H__
00003
00004 #include <datachannel.h>
00005
00006 struct Elements
00007 {
00008
00009 public:
00010 int z;
00011 int index_X,index_Y;
00012 int partIndX;
00013 bool deleted;
00014 };
00015
00016 class Comparer
00017 {
00018 float* m_pOxData;
00019 float* m_pOyData;
00020 public:
00021 Comparer(float *pOxChannel, float* pOyChannel);
00022 bool operator() (const Elements& a, const Elements& b);
00023 };
00024
00025 class pixelplace
00026 {
00027 public:
00028 Elements *elementX;
00029 Elements *elementY;
00030 int *min1;
00031 int *max1;
00032
00033 pixelplace(void);
00034 pixelplace(int iNumData, float* pOxData, float* pOyData, int iXAnz, int iYAnz);
00035 ~pixelplace(void);
00036 void buildIndizes();
00037 void makePartIndX();
00038 void makeIndexArray();
00039 void makeIndexRange();
00040 int binarySearch(int left, int right, int left_Y, int right_Y);
00041 int genIndexL(int i);
00042 int genIndexR(int i);
00043 int genPartNrX(int i);
00044 int genPartNrY(int i);
00045 bool existingX(int X);
00046 bool existingY(int Y);
00047 void mark(int erg);
00048 void draw(int i, int j, int erg);
00049 void buildaverage(int i, int j);
00050 void placePixels();
00051 void extremaZ();
00052
00053 int elanz;
00054 int m_iNumData;
00055 int xanz;
00056 int yanz;
00057
00058 int searchanz;
00059 int* image;
00060 bool* indexArray;
00061
00062 float a, b;
00063 float minz,maxz;
00064 float* m_pOxData;
00065 float* m_pOyData;
00066 void sortElements();
00067 };
00068
00069
00070 #endif // __PIXELPLACE_H__
00071