00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkTubeSpatialObjectPoint_h
00019 #define __itkTubeSpatialObjectPoint_h
00020
00021 #include "itkSpatialObjectPoint.h"
00022 #include "vnl/vnl_vector_fixed.h"
00023
00024 namespace itk
00025 {
00026
00035 template < unsigned int TPointDimension = 3 >
00036 class TubeSpatialObjectPoint
00037 : public SpatialObjectPoint<TPointDimension>
00038 {
00039
00040 public:
00041
00042 typedef TubeSpatialObjectPoint Self;
00043 typedef SpatialObjectPoint<TPointDimension> Superclass;
00044 typedef Point< double, TPointDimension > PointType;
00045 typedef Vector<double, TPointDimension > VectorType;
00046
00048 TubeSpatialObjectPoint( void );
00049
00051 ~TubeSpatialObjectPoint( void );
00052
00054 const VectorType & GetTangent( void ) const;
00055
00057 void SetTangent(const VectorType & newT);
00058 void SetTangent(const double t0, const double t1);
00059 void SetTangent(const double t0, const double t1, const double t2);
00060
00062 const VectorType & GetV1( void ) const;
00063
00065 void SetV1(const VectorType & newV1);
00066 void SetV1(const double v10, const double v11);
00067 void SetV1(const double v10, const double v11, const double v12);
00068
00070 const VectorType & GetV2( void ) const;
00071
00073 void SetV2(const VectorType & newV2);
00074 void SetV2(const double v20, const double v21);
00075 void SetV2(const double v20, const double v21, const double v22);
00076
00078 float GetRadius( void ) const;
00079
00081 void SetRadius(const float newR);
00082
00084 float GetMedialness( void ) const;
00085
00087 void SetMedialness(const float newMedialness);
00088
00090 float GetRidgeness( void ) const;
00091
00093 void SetRidgeness(const float newRidgeness);
00094
00096 float GetBranchness( void ) const;
00097
00099 void SetBranchness(const float newBranchness);
00100
00102 bool GetMark( void ) const;
00103
00105 void SetMark(const bool newMark);
00106
00108 float GetAlpha1( void ) const;
00109
00111 void SetAlpha1(const float newAlpha);
00112
00114 float GetAlpha2( void ) const;
00115
00117 void SetAlpha2(const float newAlpha);
00118
00120 float GetAlpha3( void ) const;
00121
00123 void SetAlpha3(const float newAlpha);
00124
00126 unsigned short int GetNumDimensions( void ) const;
00127
00129 Self & operator=(const TubeSpatialObjectPoint & rhs);
00130
00131 protected:
00132
00134 unsigned int m_ID;
00135
00136 VectorType m_T;
00137 VectorType m_V1;
00138 VectorType m_V2;
00139
00141 float m_Alpha1;
00142
00144 float m_Alpha2;
00145
00147 float m_Alpha3;
00148
00150 float m_R;
00151
00153 float m_Medialness;
00154
00156 float m_Ridgeness;
00157
00159 float m_Branchness;
00160
00162 bool m_Mark;
00163
00165 unsigned short int m_NumDimensions;
00166
00168 void PrintSelf( std::ostream & os, Indent indent) const;
00169 };
00170
00171 }
00172
00173 #ifndef ITK_MANUAL_INSTANTIATION
00174 #include "itkTubeSpatialObjectPoint.txx"
00175 #endif
00176
00177 #endif // __itkTubeSpatialObjectPoint_h