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