itkTubeSpatialObjectPoint.h
Go to the documentation of this file.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 "itkCovariantVector.h"
00023 #include "vnl/vnl_vector_fixed.h"
00024
00025 namespace itk
00026 {
00027
00037 template < unsigned int TPointDimension = 3 >
00038 class TubeSpatialObjectPoint
00039 : public SpatialObjectPoint<TPointDimension>
00040 {
00041
00042 public:
00043
00044 typedef TubeSpatialObjectPoint Self;
00045 typedef SpatialObjectPoint<TPointDimension> Superclass;
00046 typedef Point< double, TPointDimension > PointType;
00047 typedef Vector<double, TPointDimension > VectorType;
00048 typedef CovariantVector<double, TPointDimension > CovariantVectorType;
00049
00052 TubeSpatialObjectPoint( void );
00053
00055 virtual ~TubeSpatialObjectPoint( void );
00056
00058 const VectorType & GetTangent( void ) const;
00059
00061 void SetTangent(const VectorType & newT);
00062 void SetTangent(const double t0, const double t1);
00063 void SetTangent(const double t0, const double t1, const double t2);
00065
00067 const CovariantVectorType & GetNormal1( void ) const;
00068
00070 void SetNormal1(const CovariantVectorType & newV1);
00071 void SetNormal1(const double v10, const double v11);
00072 void SetNormal1(const double v10, const double v11, const double v12);
00074
00076 const CovariantVectorType & GetNormal2( void ) const;
00077
00079 void SetNormal2(const CovariantVectorType & newV2);
00080 void SetNormal2(const double v20, const double v21);
00081 void SetNormal2(const double v20, const double v21, const double v22);
00083
00085 float GetRadius( void ) const;
00086
00088 void SetRadius(const float newR);
00089
00091 unsigned short int GetNumDimensions( void ) const;
00092
00094 Self & operator=(const TubeSpatialObjectPoint & rhs);
00095
00096 protected:
00097
00098 VectorType m_T;
00099 CovariantVectorType m_Normal1;
00100 CovariantVectorType m_Normal2;
00101
00103 float m_R;
00104
00106 unsigned short int m_NumDimensions;
00107
00109 void PrintSelf( std::ostream & os, Indent indent) const;
00110 };
00111
00112 }
00113
00114 #ifndef ITK_MANUAL_INSTANTIATION
00115 #include "itkTubeSpatialObjectPoint.txx"
00116 #endif
00117
00118 #endif // __itkTubeSpatialObjectPoint_h
00119