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