00001 #ifndef __F2DHeatFlowOp__
00002 #define __F2DHeatFlowOp__
00003
00004
00029 #include <stdio.h>
00030
00031 #include "AbsFImageFilter.hpp"
00032
00033 #include "AbsFLinearSolver.hpp"
00034
00035 class F2DHeatFlowOp : public AbsFImageFilter
00036 {
00037 protected:
00038
00039 int iterMax;
00040 int innerIterMax;
00041 float tau;
00042 float epsilon;
00043
00044 bool implicitFlag;
00045
00046 AbsFLinearSolver* linearSolver;
00047
00048 public:
00049
00051 F2DHeatFlowOp(int typeSolver, bool implicit=false, int iter=1, int innerIter=8, float t=0.5, float eps=1.0e-4);
00052 virtual ~F2DHeatFlowOp(){delete linearSolver;}
00053
00054
00055 virtual FImage* filter(FImage* src, FImage* dest=0);
00056 virtual FImage* selectedFilter(AnImage* mask, FImage* src, FImage* dest=0)
00057 { return filter(src, dest); }
00058
00059 virtual void report(FILE* file){ fprintf(file,"HeatFlow: 2D Linear Solver\n"); }
00060 };
00061
00062
00063 #endif