Volume.h

Go to the documentation of this file.
00001 
00012 #ifndef __VOLUME__
00013 #define __VOLUME__
00014 #include <QVector>
00015 #include <QObject>
00016 #include "voxel.h"
00017 #include "histogram.h"
00018 #include <QImage>
00019 
00020 #include "globals.h"
00021 #include "vector.h"
00022 
00027 class Volume : QObject {
00028 
00029         public: 
00030                 Volume(int XDim, int YDim, int ZDim);
00031                 ~Volume(void) ;
00032                 int             getXDim(void);
00033                 int             getYDim(void);
00034                 int             getZDim(void);
00035                 void    setVoxelAt(int x,int y,int z, Voxel v); 
00036                 Voxel   getVoxelAt(int x,int y,int z);  
00037                 Volume* getSlice(DIMENSION d ,int sliceNumber) ;
00038                 QImage  getHistogram(void); 
00039                 
00040                 Vector  getCenter(void);
00041                 Color   getColor(Vector v, FILTER fl);
00042                 Voxel   getVoxel(Vector v, FILTER fl);
00043                 void    calcGradients(void);    
00044                 void    calculateColors(void);
00045                 float   getRadius(void) { 
00046                         if (radius == 0) {
00047                                 Vector center = this->getCenter();
00048                                 radius = center.length();
00049                         }
00050                         return radius;
00051                 };
00052                 bool    inside(Vector v) { 
00053                          
00054                         if (((v.x) < 0) || ((v.x) >= XDim))
00055                                 return false;
00056                         if (((v.y) < 0) || ((v.y) >= YDim))
00057                                 return false;
00058                         if (((v.z) < 0) || ((v.z) >= ZDim))
00059                                 return false;
00060 
00061 
00062                         return true;
00063                 };
00064                 float getMaxGradLength(void) {return this->maxGradLength; };
00065                 QString name;
00066                 
00067         private:
00068                 int XDim;
00069                 int YDim;
00070                 int ZDim;
00071                 QVector<Voxel> lVoxels;
00072                 Histogram       *histogram;
00073                 
00074                 float   radius;
00075                 float maxGradLength;
00076                 Vector  mCenter;
00077                 Color neighbors[8];
00078                 Voxel neighborVoxels[8];
00079                 
00080 
00081                 
00082 
00083                 
00084 };
00085 
00086 #endif

Generated on Wed Dec 7 14:42:11 2005 for VisUE by  doxygen 1.4.5