00001 #ifndef __IFThomasHeatOp__
00002 #define __IFThomasHeatOp__
00003 
00042 #include <stdio.h>
00043 
00044 #include "IFMultiImageOp.hpp"
00045 
00046 #include "Float3CImage.hpp"
00047 
00048 
00049 class IFThomasHeatOp : public IFMultiImageOp 
00050 {
00051 private:
00052 
00053 int                     iter;
00054 double          tau;
00055 
00056 protected:
00057 
00058 
00059 
00060 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00061 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00062 
00063 
00064 
00065 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00066 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00067 
00068 
00069 
00070 
00071 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00072 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00073 
00074 public:
00075         
00077 IFThomasHeatOp(int iterations=1, double t=0.5, bool colorFlag= false):IFMultiImageOp(1,colorFlag)
00078         {iter= iterations; tau= t;}
00079 virtual ~IFThomasHeatOp(){}
00080 
00081 
00082 virtual void report(FILE* file){}
00083 };
00084 
00085 
00086 #endif