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