00001 #ifndef __F2DAdiHeatFlowOp__
00002 #define __F2DAdiHeatFlowOp__
00003
00004
00045 #include <stdio.h>
00046
00047 #include "AbsFImageFilter.hpp"
00048
00049 #include "AbsFLinearSolver.hpp"
00050
00051 class F2DAdiHeatFlowOp : public AbsFImageFilter
00052 {
00053 protected:
00054
00055 int iterMax;
00056 int innerIterMax;
00057 float tau;
00058 float epsilon;
00059
00060 bool implicitFlag;
00061
00062 AbsFLinearSolver* linearSolver;
00063
00064 public:
00065
00067 F2DAdiHeatFlowOp(int typeSolver, bool implicit=false, int iter=1, int innerIter=8, float t=0.5, float eps=1.0e-4);
00068 virtual ~F2DAdiHeatFlowOp(){delete linearSolver;}
00069
00070
00071 virtual FImage* filter(FImage* src, FImage* dest=0);
00072 virtual FImage* selectedFilter(AnImage* mask, FImage* src, FImage* dest=0)
00073 { return filter(src, dest); }
00074
00075 virtual void report(FILE* file){ fprintf(file,"HeatFlow: 2D Linear Solver\n"); }
00076 };
00077
00078
00079 #endif