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

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkImageEigenFreeFormRegistration.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 _IRTKIMAGEEIGENFREEFORMREGISTRATION_H
00014 
00015 #define _IRTKIMAGEEIGENFREEFORMREGISTRATION_H
00016 
00017 #include <irtkRegistration.h>
00018 
00030 class irtkImageEigenFreeFormRegistration : public irtkImageFreeFormRegistration
00031 {
00032 
00033 protected:
00034 
00036   int _NumberOfModes;
00037 
00039   irtkEigenFreeFormTransformation *_effd;
00040 
00042   virtual void Initialize(int);
00043 
00045   virtual void Finalize(int);
00046 
00047 public:
00048 
00049   //
00050   // Constructor and destructor
00051   //
00052 
00054   irtkImageEigenFreeFormRegistration();
00055 
00057   virtual ~irtkImageEigenFreeFormRegistration();
00058 
00059   // Access parameters
00060   virtual SetMacro(NumberOfModes, int);
00061   virtual GetMacro(NumberOfModes, int);
00062 
00063   //
00064   // Inherited methods to be implemented
00065   //
00066 
00068   virtual const char *NameOfClass();
00069 
00079   virtual double EvaluateGradient(float, float *);
00080 
00081 };
00082 
00083 //
00084 // Inherited methods to be implemented
00085 //
00086 
00087 inline const char *irtkImageEigenFreeFormRegistration::NameOfClass()
00088 {
00089   return "irtkImageEigenFreeFormRegistration";
00090 }
00091 
00092 #endif