/vol/vipdata/irtk/packages/transformation/include/irtkFreeFormTransformation.h

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkFreeFormTransformation.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 _IRTKFREEFORMTRANSFORMATION_H
00014 
00015 #define _IRTKFREEFORMTRANSFORMATION_H
00016 
00017 #include <irtkGeometry.h>
00018 
00026 class irtkFreeFormTransformation : public irtkTransformation
00027 {
00028 
00029 public:
00030 
00032   virtual ~irtkFreeFormTransformation();
00033 
00035   virtual int GetX() const = 0;
00036 
00038   virtual int GetY() const = 0;
00039 
00041   virtual int GetZ() const = 0;
00042 
00044   virtual int NumberOfDOFs() const = 0;
00045 
00047   virtual void   Put(int, double) = 0;
00048 
00050   virtual double Get(int) const = 0;
00051 
00053   virtual void   PutStatus(int, _Status) = 0;
00054 
00056   virtual _Status GetStatus(int) = 0;
00057 
00059   virtual void Subdivide() = 0;
00060 
00062   virtual void WorldToLattice(double &, double &, double &) const = 0;
00063 
00065   virtual void LatticeToWorld(double &, double &, double &) const = 0;
00066 
00068   virtual const char *NameOfClass();
00069 
00070 };
00071 
00072 inline const char *irtkFreeFormTransformation::NameOfClass()
00073 {
00074   return "irtkFreeFormTransformation";
00075 }
00076 
00077 #endif