/vol/vipdata/irtk/image++/include/irtkImageAttributes.h

00001 #ifndef IRTKattrATTRIBUTES_H
00002 
00003 #define IRTKattrATTRIBUTES_H
00004 
00009 class irtkImageAttributes : public irtkObject
00010 {
00011 
00012 public:
00013 
00015   int _x;
00016   
00018   int _y;
00019   
00021   int _z;
00022   
00024   int _t;
00025 
00027   double _dx;
00028   
00030   double _dy;
00031   
00033   double _dz;
00034   
00036   double _dt;
00037 
00039   double _xorigin;
00040 
00042   double _yorigin;
00043   
00045   double _zorigin;
00046 
00048   double _torigin;
00049 
00051   double _xaxis[3];
00052 
00054   double _yaxis[3];
00055 
00057   double _zaxis[3];
00058 
00060   irtkImageAttributes();
00061 
00063   irtkImageAttributes(const irtkImageAttributes &);
00064 
00066   irtkImageAttributes& operator= (const irtkImageAttributes &);
00067 
00069   Bool operator==(const irtkImageAttributes &attr) const;
00070 
00071 };
00072 
00073 inline irtkImageAttributes::irtkImageAttributes()
00074 {
00075   _x  = 0;
00076   _y  = 0;
00077   _z  = 1;
00078   _t  = 1;
00079 
00080   // Default voxel size
00081   _dx = 1;
00082   _dy = 1;
00083   _dz = 1;
00084   _dt = 1;
00085 
00086   // Default origin
00087   _xorigin = 0;
00088   _yorigin = 0;
00089   _zorigin = 0;
00090   _torigin = 0;
00091 
00092   // Default x-axis
00093   _xaxis[0] = 1;
00094   _xaxis[1] = 0;
00095   _xaxis[2] = 0;
00096 
00097   // Default y-axis
00098   _yaxis[0] = 0;
00099   _yaxis[1] = 1;
00100   _yaxis[2] = 0;
00101 
00102   // Default z-axis
00103   _zaxis[0] = 0;
00104   _zaxis[1] = 0;
00105   _zaxis[2] = 1;
00106 }
00107 
00108 inline irtkImageAttributes::irtkImageAttributes(const irtkImageAttributes &attr)
00109 {
00110   _x  = attr._x;
00111   _y  = attr._y;
00112   _z  = attr._z;
00113   _t  = attr._t;
00114 
00115   // Default voxel size
00116   _dx = attr._dx;
00117   _dy = attr._dy;
00118   _dz = attr._dz;
00119   _dt = attr._dt;
00120 
00121   // Default origin
00122   _xorigin = attr._xorigin;
00123   _yorigin = attr._yorigin;
00124   _zorigin = attr._zorigin;
00125   _torigin = attr._torigin;
00126 
00127   // Default x-axis
00128   _xaxis[0] = attr._xaxis[0];
00129   _xaxis[1] = attr._xaxis[1];
00130   _xaxis[2] = attr._xaxis[2];
00131 
00132   // Default y-axis
00133   _yaxis[0] = attr._yaxis[0];
00134   _yaxis[1] = attr._yaxis[1];
00135   _yaxis[2] = attr._yaxis[2];
00136 
00137   // Default z-axis
00138   _zaxis[0] = attr._zaxis[0];
00139   _zaxis[1] = attr._zaxis[1];
00140   _zaxis[2] = attr._zaxis[2];
00141 }
00142 
00143 inline irtkImageAttributes& irtkImageAttributes::operator=(const irtkImageAttributes &attr)
00144 {
00145    
00146   _x  = attr._x;
00147   _y  = attr._y;
00148   _z  = attr._z;
00149   _t  = attr._t;
00150 
00151   // Default voxel size
00152   _dx = attr._dx;
00153   _dy = attr._dy;
00154   _dz = attr._dz;
00155   _dt = attr._dt;
00156 
00157   // Default origin
00158   _xorigin = attr._xorigin;
00159   _yorigin = attr._yorigin;
00160   _zorigin = attr._zorigin;
00161   _torigin = attr._torigin;
00162 
00163   // Default x-axis
00164   _xaxis[0] = attr._xaxis[0];
00165   _xaxis[1] = attr._xaxis[1];
00166   _xaxis[2] = attr._xaxis[2];
00167 
00168   // Default y-axis
00169   _yaxis[0] = attr._yaxis[0];
00170   _yaxis[1] = attr._yaxis[1];
00171   _yaxis[2] = attr._yaxis[2];
00172 
00173   // Default z-axis
00174   _zaxis[0] = attr._zaxis[0];
00175   _zaxis[1] = attr._zaxis[1];
00176   _zaxis[2] = attr._zaxis[2];
00177   
00178   return *this;
00179 }
00180 
00181 inline Bool irtkImageAttributes::operator==(const irtkImageAttributes &attr) const
00182 {
00183   return ((_x  == attr._x)  && (_y  == attr._y)  && (_z  == attr._z) && (_t  == attr._t) &&
00184           (_dx == attr._dx) && (_dy == attr._dy) && (_dz == attr._dz) && (_dt == attr._dt) &&
00185           (_xaxis[0] == attr._xaxis[0]) && (_xaxis[1] == attr._xaxis[1]) && (_xaxis[2] == attr._xaxis[2]) &&
00186           (_yaxis[0] == attr._yaxis[0]) && (_yaxis[1] == attr._yaxis[1]) && (_yaxis[2] == attr._yaxis[2]) &&
00187           (_xaxis[0] == attr._zaxis[0]) && (_zaxis[1] == attr._zaxis[1]) && (_zaxis[2] == attr._zaxis[2]) &&
00188           (_xorigin == attr._xorigin) && (_yorigin == attr._yorigin) && (_zorigin == attr._zorigin) && 
00189           (_torigin == attr._torigin));
00190 }
00191 
00192 #endif