00001 #ifndef _VUVOLUMEREGULARUNIMODAL3D1B_H_
00002 #define _VUVOLUMEREGULARUNIMODAL3D1B_H_
00003
00007 #include "../3d.h"
00008
00009 class vu11121;
00010 typedef vu11121 vuVolumeRegularUnimodal3d1B;
00011
00012 class vuConvert;
00013
00015 class vu11121 : public vu1112
00016 {
00017 friend class vuConvert;
00018 public:
00019 vu11121();
00020 vu11121(byte *data, dword XSize, dword YSize, dword ZSize);
00022
00028 virtual bool read(void);
00030
00033 virtual bool write(void);
00034
00040 void generateLapWeightHistogram();
00041
00043 byte getDataValue(unsigned int x, unsigned int y, unsigned int z) const {
00044 if ( (x<0) || (x>=m_Dim1Size) || (y<0) || (y>=m_Dim2Size) || (z<0) || (z>=m_Dim3Size) )
00045 return 0;
00046 else
00047 return m_Data[x+y*m_Dim1Size+z*m_Dim1Size*m_Dim2Size];
00048 }
00049
00051 void setViewVectors (const vuVector &, const vuVector &, const vuVector &) {};
00053 void render() {};
00054
00057 void cropFrom(const vu11121& vol, word cube[6]);
00061 void scaleFrom(const vu11121& vol, word nx, word ny, word nz);
00062
00066 friend bool readRAW(const vuString& fname, vu11121& vol);
00067
00073 bool createHistogram(vuHistogram& hist) const;
00074
00076 void remap(const vuMap& map);
00077
00078 protected:
00080
00084 bool read(FILE *file);
00086
00088 bool write(FILE *file);
00089
00090 };
00091
00092 #endif