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

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkImageRigidRegistration.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 _IRTKIMAGERIGIDREGISTRATION_H
00014 
00015 #define _IRTKIMAGERIGIDREGISTRATION_H
00016 
00026 class irtkImageRigidRegistration : public irtkImageRegistration
00027 {
00028 
00029 protected:
00030 
00032   virtual double Evaluate();
00033 
00035   virtual void Initialize();
00036 
00038   virtual void Finalize();
00039 
00040 public:
00041 
00048   virtual void SetOutput(irtkTransformation *);
00049 
00051   virtual const char *NameOfClass();
00052 
00054   virtual void Print();
00055 
00057   virtual void GuessParameter();
00058 };
00059 
00060 inline void irtkImageRigidRegistration::SetOutput(irtkTransformation *transformation)
00061 {
00062   if (strcmp(transformation->NameOfClass(), "irtkRigidTransformation") != 0) {
00063     cerr << "irtkImageRigidRegistration::SetOutput: Transformation must be rigid"
00064          << endl;
00065     exit(0);
00066   }
00067   _transformation = transformation;
00068 }
00069 
00070 inline const char *irtkImageRigidRegistration::NameOfClass()
00071 {
00072   return "irtkImageRigidRegistration";
00073 }
00074 
00075 inline void irtkImageRigidRegistration::Print()
00076 {
00077   _transformation->Print();
00078 }
00079 
00080 #endif