00001 #ifndef __AMSmoothShockFlow__
00002 #define __AMSmoothShockFlow__
00003
00035 #include <stdio.h>
00036 #include <math.h>
00037
00038 #include "RImage.hpp"
00039
00040 #include "AbsRImageFlow.hpp"
00041
00042 class AMSmoothShockFlow : public AbsRImageFlow
00043 {
00044 protected:
00045
00046 double lambda;
00047
00048 double PIinverse;
00049 double a;
00050
00051 double t;
00052
00053 public:
00054
00055 AMSmoothShockFlow(double ax=2.0, double alambda=1.0)
00056 {a= ax; PIinverse= 1.0/(4.0*atan(1.0)); lambda=alambda; }
00057 virtual ~AMSmoothShockFlow(){}
00058
00059 virtual void setTime(int atime){t= atime;}
00060 virtual double getTime(){return t;}
00061
00062 virtual double flow(RImage& image, int x, int y);
00063 virtual double flow(RImage& image0, RImage& imSmooth, int x, int y);
00064
00065 virtual void report(FILE* file){}
00066 };
00067
00068
00069 #endif