00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkDTITubeSpatialObjectPoint_h
00018 #define __itkDTITubeSpatialObjectPoint_h
00019
00020 #include "itkTubeSpatialObjectPoint.h"
00021 #include "itkCovariantVector.h"
00022 #include "vnl/vnl_vector_fixed.h"
00023
00024 namespace itk
00025 {
00026
00035 template < unsigned int TPointDimension = 3 >
00036 class DTITubeSpatialObjectPoint
00037 : public TubeSpatialObjectPoint<TPointDimension>
00038 {
00039
00040 public:
00041
00042 typedef DTITubeSpatialObjectPoint Self;
00043 typedef SpatialObjectPoint<TPointDimension> Superclass;
00044 typedef Point< double, TPointDimension > PointType;
00045 typedef Vector<double, TPointDimension > VectorType;
00046 typedef CovariantVector<double, TPointDimension > CovariantVectorType;
00047
00050 DTITubeSpatialObjectPoint( void );
00051
00053 virtual ~DTITubeSpatialObjectPoint( void );
00054
00056 void SetFA(const float fa) {m_FA = fa;}
00057 float GetFA() const {return m_FA;}
00058
00060 void SetADC(const float adc) {m_ADC = adc;}
00061 float GetADC() const {return m_ADC;}
00062
00064 void SetGA(const float ga) {m_GA = ga;}
00065 float GetGA() const {return m_GA;}
00066
00068 void SetLambda1(const float lambda1) {m_Lambda1 = lambda1;}
00069 float GetLambda1() const {return m_Lambda1;}
00070
00072 void SetLambda2(const float lambda2) {m_Lambda2 = lambda2;}
00073 float GetLambda2() const {return m_Lambda2;}
00074
00076 void SetLambda3(const float lambda3) {m_Lambda3 = lambda3;}
00077 float GetLambda3() const {return m_Lambda3;}
00078
00080 void SetMinEigenVector(float* val)
00081 {
00082 for(unsigned int i=0;i<3;i++)
00083 {
00084 m_MinEV[i] = val[i];
00085 }
00086 }
00087 const float* GetMinEigenVector() const {return m_MinEV;}
00088
00090 void SetMedEigenVector(float* val)
00091 {
00092 for(unsigned int i=0;i<3;i++)
00093 {
00094 m_MedEV[i] = val[i];
00095 }
00096 }
00097 const float* GetMedEigenVector() const {return m_MedEV;}
00098
00100 void SetMaxEigenVector(float* val)
00101 {
00102 for(unsigned int i=0;i<3;i++)
00103 {
00104 m_MaxEV[i] = val[i];
00105 }
00106 }
00107 const float* GetMaxEigenVector() const {return m_MaxEV;}
00108
00110 void SetMRI(float* mri)
00111 {
00112 for(unsigned int i=0;i<5;i++)
00113 {
00114 m_MRI[i] = mri[i];
00115 }
00116 }
00117
00118 const float* GetMRI() const {return m_MRI;}
00119
00121 void SetTensorMatrix(float* matrix)
00122 {
00123 for(unsigned int i=0;i<6;i++)
00124 {
00125 m_TensorMatrix[i] = matrix[i];
00126 }
00127 }
00128
00129 const float* GetTensorMatrix() const {return m_TensorMatrix;}
00130
00132 void SetInterpolation(const int interp) {m_Interpolation = interp;}
00133 int GetInterpolation() const {return m_Interpolation;}
00134
00136 Self & operator=(const DTITubeSpatialObjectPoint & rhs);
00137
00138 protected:
00139
00140 float m_FA;
00141 float m_ADC;
00142 float m_GA;
00143 float m_Lambda1;
00144 float m_Lambda2;
00145 float m_Lambda3;
00146 float m_MinEV[3];
00147 float m_MedEV[3];
00148 float m_MaxEV[3];
00149 float m_MRI[5];
00150 float m_TensorMatrix[6];
00151 int m_Interpolation;
00152
00153
00155 unsigned short int m_NumDimensions;
00156
00158 void PrintSelf( std::ostream & os, Indent indent) const;
00159 };
00160
00161 }
00162
00163 #ifndef ITK_MANUAL_INSTANTIATION
00164 #include "itkDTITubeSpatialObjectPoint.txx"
00165 #endif
00166
00167 #endif // __itkDTITubeSpatialObjectPoint_h