00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _itkParametricPath_h
00019 #define _itkParametricPath_h
00020
00021 #include "itkPath.h"
00022 #include "itkContinuousIndex.h"
00023 #include "itkIndex.h"
00024 #include "itkOffset.h"
00025 #include "itkVector.h"
00026
00027 namespace itk
00028 {
00029
00030
00061 template <unsigned int VDimension>
00062 class ITK_EXPORT ParametricPath : public
00063 Path< double, ContinuousIndex<double,VDimension>, VDimension >
00064 {
00065 public:
00067 typedef ParametricPath Self;
00068 typedef Path<double,ContinuousIndex<double,VDimension>,VDimension> Superclass;
00069 typedef SmartPointer<Self> Pointer;
00070 typedef SmartPointer<const Self> ConstPointer;
00071
00073 itkTypeMacro(ParametricPath, Path);
00074
00076 typedef typename Superclass::InputType InputType;
00077
00079 typedef typename Superclass::OutputType OutputType;
00080
00081
00083 typedef ContinuousIndex<double,VDimension> ContinuousIndexType;
00084 typedef Index< VDimension > IndexType;
00085 typedef Offset< VDimension > OffsetType;
00086 typedef Vector<double,VDimension> VectorType;
00087
00088
00091 virtual IndexType EvaluateToIndex( const InputType & input ) const;
00092
00108 virtual OffsetType IncrementInput(InputType & input) const;
00109
00116 virtual VectorType EvaluateDerivative(const InputType & input) const;
00117
00118 itkSetMacro( DefaultInputStepSize, InputType )
00119 itkGetConstReferenceMacro( DefaultInputStepSize, InputType )
00120
00121
00122 protected:
00123 ParametricPath();
00124 ~ParametricPath(){}
00125 void PrintSelf(std::ostream &os, Indent indent) const;
00126
00137 InputType m_DefaultInputStepSize;
00138
00139 private:
00140 ParametricPath(const Self&);
00141 void operator=(const Self&);
00142
00143 };
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153 #if (defined(_WIN32) || defined(WIN32)) && !defined(ITKSTATIC)
00154 # ifndef ITKCommon_EXPORTS
00155 template class __declspec(dllimport) ParametricPath<2>;
00156 #endif
00157 #endif
00158
00159 }
00160
00161 #ifndef ITK_MANUAL_INSTANTIATION
00162 #include "itkParametricPath.txx"
00163 #endif
00164
00165 #endif