/vol/vipdata/irtk/image++/include/irtkResampling.h

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkResampling.h 8 2009-03-02 16:12:58Z dr $
00005   Copyright : Imperial College, Department of Computing
00006               Visual Information Processing (VIP), 2008 onwards
00007   Date      : $Date: 2009-03-02 16:12:58 +0000 (Mon, 02 Mar 2009) $
00008   Version   : $Revision: 8 $
00009   Changes   : $Author: dr $
00010 
00011 =========================================================================*/
00012 
00013 #ifndef _IRTKRESAMPLING_H
00014 
00015 #define _IRTKRESAMPLING_H
00016 
00017 #include <irtkImageToImage.h>
00018 
00019 #include <irtkImageFunction.h>
00020 
00021 #ifdef HAS_TBB
00022 
00023 template <class VoxelType> class irtkMultiThreadedResampling;
00024 
00025 #endif
00026 
00036 template <class VoxelType> class irtkResampling : public irtkImageToImage<VoxelType>
00037 {
00038 
00039 #ifdef HAS_TBB
00040 
00041   friend class irtkMultiThreadedResampling<VoxelType>;
00042 
00043 #endif
00044 
00045 protected:
00046 
00048   double _XSize;
00049   double _YSize;
00050   double _ZSize;
00051 
00053   irtkImageFunction *_Interpolator;
00054 
00056   virtual Bool RequiresBuffering();
00057 
00059   virtual const char *NameOfClass();
00060 
00062   virtual void Initialize();
00063 
00064 public:
00065 
00067   irtkResampling(double, double, double);
00068 
00070   SetMacro(XSize, double);
00071 
00073   GetMacro(XSize, double);
00074 
00076   SetMacro(YSize, double);
00077 
00079   GetMacro(YSize, double);
00080 
00082   SetMacro(ZSize, double);
00083 
00085   GetMacro(ZSize, double);
00086 
00088   SetMacro(Interpolator, irtkImageFunction *);
00089 
00091   virtual void   Run();
00092 
00093 };
00094 
00095 #include <irtkResamplingWithPadding.h>
00096 
00097 #endif