00001 /*========================================================================= 00002 00003 Library : Image Registration Toolkit (IRTK) 00004 Module : $Id: irtkImageToImage.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 _IRTKIMAGETOIMAGE_H 00014 00015 #define _IRTKIMAGETOIMAGE_H 00016 00017 #ifdef HAS_TBB 00018 00019 template <class VoxelType> class irtkMultiThreadedImageToImage; 00020 00021 #endif 00022 00031 template <class VoxelType> class irtkImageToImage : public irtkObject 00032 { 00033 00034 #ifdef HAS_TBB 00035 00036 friend class irtkMultiThreadedImageToImage<VoxelType>; 00037 00038 #endif 00039 00040 private: 00041 00043 irtkGenericImage<VoxelType> *_tmp; 00044 00046 Bool _DebugFlag; 00047 00048 protected: 00049 00051 irtkGenericImage<VoxelType> *_input; 00052 00054 irtkGenericImage<VoxelType> *_output; 00055 00058 virtual void Initialize(); 00059 00062 virtual void Finalize(); 00063 00064 public: 00065 00067 irtkImageToImage(); 00068 00070 virtual ~irtkImageToImage(); 00071 00073 virtual void SetInput (irtkGenericImage<VoxelType> *); 00074 00076 virtual void SetOutput(irtkGenericImage<VoxelType> *); 00077 00079 virtual void Run(); 00080 00082 virtual double Run(int, int, int, int = 0); 00083 00084 00091 virtual Bool RequiresBuffering() = 0; 00092 00094 virtual const char *NameOfClass() = 0; 00095 00097 SetMacro(DebugFlag, Bool); 00098 00100 GetMacro(DebugFlag, Bool); 00101 00103 virtual void Debug(const char *); 00104 }; 00105 00106 #endif