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