/vol/vipdata/irtk/packages/registration/include/irtkPointRegistration.h

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkPointRegistration.h 2 2008-12-23 12:40:14Z dr $
00005   Copyright : Imperial College, Department of Computing
00006               Visual Information Processing (VIP), 2008 onwards
00007   Date      : $Date: 2008-12-23 12:40:14 +0000 (Tue, 23 Dec 2008) $
00008   Version   : $Revision: 2 $
00009   Changes   : $Author: dr $
00010 
00011 =========================================================================*/
00012 
00013 #ifndef _IRTKPOINTREGISTRATION_H
00014 
00015 #define _IRTKPOINTREGISTRATION_H
00016 
00017 #include <irtkRegistration.h>
00018 
00019 #ifdef HAS_VTK
00020 #include <vtkPolyData.h>
00021 #endif
00022 
00031 class irtkPointRegistration : public irtkRegistration
00032 {
00033 
00034 protected:
00035 
00037   irtkPointSet *_target;
00038 
00040   irtkPointSet *_source;
00041 
00043   irtkTransformation *_transformation;
00044 
00046   irtkOptimizer *_optimizer;
00047 
00049   irtkOptimizationMethod _OptimizationMethod;
00050 
00052   virtual void Initialize();
00053 
00055   virtual void Finalize();
00056 
00057 public:
00058 
00060   irtkPointRegistration();
00061 
00063   virtual ~irtkPointRegistration();
00064 
00066   virtual void SetInput (irtkPointSet *, irtkPointSet *);
00067 
00069   virtual void SetOutput(irtkTransformation *);
00070 
00072   virtual double Evaluate();
00073 
00075   virtual double EvaluateGradient(float, float *);
00076 
00078   virtual void Run() = 0;
00079 
00081   virtual const char *NameOfClass();
00082 
00083   // Access optimizer parameters
00084   virtual SetMacro(OptimizationMethod, irtkOptimizationMethod);
00085   virtual GetMacro(OptimizationMethod, irtkOptimizationMethod);
00086 };
00087 
00088 #include <irtkPointRigidRegistration.h>
00089 #include <irtkPointAffineRegistration.h>
00090 #include <irtkPointFreeFormRegistration.h>
00091 
00092 #endif