00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkPointSetToSpatialObjectDemonsRegistration_h
00018 #define __itkPointSetToSpatialObjectDemonsRegistration_h
00019
00020 #include "itkProcessObject.h"
00021 #include "itkImage.h"
00022 #include "itkPointSetToImageMetric.h"
00023 #include "itkSingleValuedNonLinearOptimizer.h"
00024
00025 namespace itk
00026 {
00027
00051 template <typename TFixedPointSet, typename TMovingSpatialObject>
00052 class ITK_EXPORT PointSetToSpatialObjectDemonsRegistration : public ProcessObject
00053 {
00054 public:
00056 typedef PointSetToSpatialObjectDemonsRegistration Self;
00057 typedef ProcessObject Superclass;
00058 typedef SmartPointer<Self> Pointer;
00059 typedef SmartPointer<const Self> ConstPointer;
00060
00062 itkNewMacro(Self);
00063
00065 itkTypeMacro(PointSetToSpatialObjectDemonsRegistration, ProcessObject);
00066
00068 typedef TFixedPointSet FixedPointSetType;
00069 typedef typename FixedPointSetType::ConstPointer FixedPointSetConstPointer;
00070
00072 typedef TMovingSpatialObject MovingSpatialObjectType;
00073 typedef typename MovingSpatialObjectType::ConstPointer MovingSpatialObjectConstPointer;
00074
00076 void StartRegistration(void);
00077
00079 itkSetConstObjectMacro( FixedPointSet, FixedPointSetType );
00080 itkGetConstObjectMacro( FixedPointSet, FixedPointSetType );
00081
00083 itkSetConstObjectMacro( MovingSpatialObject, MovingSpatialObjectType );
00084 itkGetConstObjectMacro( MovingSpatialObject, MovingSpatialObjectType );
00085
00086 protected:
00087 PointSetToSpatialObjectDemonsRegistration();
00088 virtual ~PointSetToSpatialObjectDemonsRegistration() {};
00089 void PrintSelf(std::ostream& os, Indent indent) const;
00090
00091 private:
00092 PointSetToSpatialObjectDemonsRegistration(const Self&);
00093 void operator=(const Self&);
00094
00095 MovingSpatialObjectConstPointer m_MovingSpatialObject;
00096 FixedPointSetConstPointer m_FixedPointSet;
00097
00098
00099 };
00100
00101
00102 }
00103
00104
00105 #ifndef ITK_MANUAL_INSTANTIATION
00106 #include "itkPointSetToSpatialObjectDemonsRegistration.txx"
00107 #endif
00108
00109 #endif
00110
00111
00112