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
00036
template <
unsigned int TPo
intDimension = 3 >
00037 class TubeSpatialObjectPoint
00038 :
public SpatialObjectPoint<TPointDimension>
00039 {
00040
00041
public:
00042
00043 typedef TubeSpatialObjectPoint Self;
00044 typedef SpatialObjectPoint<TPointDimension> Superclass;
00045 typedef Point< double, TPointDimension > PointType;
00046 typedef Vector<double, TPointDimension > VectorType;
00047 typedef CovariantVector<double, TPointDimension > CovariantVectorType;
00048
00051
TubeSpatialObjectPoint(
void );
00052
00054
virtual ~TubeSpatialObjectPoint(
void );
00055
00057
const VectorType &
GetTangent(
void ) const;
00058
00060
void SetTangent(const
VectorType & newT);
00061
void SetTangent(const
double t0, const
double t1);
00062
void SetTangent(const
double t0, const
double t1, const
double t2);
00063
00065 const
CovariantVectorType & GetNormal1(
void ) const;
00066
00068
void SetNormal1(const
CovariantVectorType & newV1);
00069
void SetNormal1(const
double v10, const
double v11);
00070
void SetNormal1(const
double v10, const
double v11, const
double v12);
00071
00073 const
CovariantVectorType & GetNormal2(
void ) const;
00074
00076
void SetNormal2(const
CovariantVectorType & newV2);
00077
void SetNormal2(const
double v20, const
double v21);
00078
void SetNormal2(const
double v20, const
double v21, const
double v22);
00079
00081
float GetRadius(
void ) const;
00082
00084
void SetRadius(const
float newR);
00085
00087
float GetMedialness(
void ) const;
00088
00090
void SetMedialness(const
float newMedialness);
00091
00093
float GetRidgeness(
void ) const;
00094
00096
void SetRidgeness(const
float newRidgeness);
00097
00099
float GetBranchness(
void ) const;
00100
00102
void SetBranchness(const
float newBranchness);
00103
00105
bool GetMark(
void ) const;
00106
00108
void SetMark(const
bool newMark);
00109
00111
float GetAlpha1(
void ) const;
00112
00114
void SetAlpha1(const
float newAlpha);
00115
00117
float GetAlpha2(
void ) const;
00118
00120
void SetAlpha2(const
float newAlpha);
00121
00123
float GetAlpha3(
void ) const;
00124
00126
void SetAlpha3(const
float newAlpha);
00127
00129
unsigned short int GetNumDimensions(
void ) const;
00130
00132
Self & operator=(const
TubeSpatialObjectPoint & rhs);
00133
00134 protected:
00135
00136
VectorType m_T;
00137
CovariantVectorType m_Normal1;
00138
CovariantVectorType m_Normal2;
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