00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkRegistrationMethod_h
00018 #define __itkRegistrationMethod_h
00019
00020 #include "itkProcessObject.h"
00021
00022 namespace itk
00023 {
00024
00034 template <class TTraits>
00035 class ITK_EXPORT RegistrationMethod : public ProcessObject
00036 {
00037 public:
00039 typedef RegistrationMethod Self;
00040 typedef ProcessObject Superclass;
00041 typedef SmartPointer<Self> Pointer;
00042 typedef SmartPointer<const Self> ConstPointer;
00043
00045 itkNewMacro(Self);
00046
00048 itkTypeMacro(RegistrationMethod, Object);
00049
00051 typedef typename TTraits::TargetType TargetType;
00052 typedef typename TargetType::ConstPointer TargetConstPointer;
00053
00055 typedef typename TTraits::MetricType MetricType;
00056
00058 typedef typename TTraits::MapperType MapperType;
00059
00061 typedef typename TTraits::TransformationType TransformationType;
00062
00064 typedef typename TTraits::ReferenceType ReferenceType;
00065 typedef typename ReferenceType::ConstPointer ReferenceConstPointer;
00066
00068 typedef typename TTraits::OptimizerType OptimizerType;
00069
00072 typedef typename TTraits::ParametersType ParametersType;
00073
00075 void StartRegistration(void);
00076
00078 void SetTarget( const TargetType * Target );
00079
00081 void SetReference( const ReferenceType * Reference );
00082
00084 itkSetObjectMacro( Optimizer, OptimizerType );
00085
00087 itkSetObjectMacro( Metric, MetricType );
00088
00090 const ReferenceType * GetReference( void );
00091
00093 const TargetType * GetTarget( void );
00094
00096 itkGetObjectMacro( Optimizer, OptimizerType );
00097
00099 itkGetObjectMacro( Metric, MetricType );
00100
00101 protected:
00102 RegistrationMethod();
00103 virtual ~RegistrationMethod();
00104 void PrintSelf(std::ostream& os, Indent indent) const;
00105
00106 private:
00107 RegistrationMethod(const Self&);
00108 void operator=(const Self&);
00109
00110 typename MetricType::Pointer m_Metric;
00111 typename OptimizerType::Pointer m_Optimizer;
00112
00113 };
00114
00115
00116 }
00117
00118
00119 #ifndef ITK_MANUAL_INSTANTIATION
00120 #include "itkRegistrationMethod.txx"
00121 #endif
00122
00123 #endif
00124
00125
00126