Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

LimiterFactory.hpp

00001 #ifndef __LimiterFactory__
00002 #define __LimiterFactory__
00003 
00004 
00005 
00055 #include <stdio.h>
00056 
00057 #include "AbsLimiter.hpp"
00058 
00059 #define NUMBER_LIMITER_CONTEXT 3
00060 #define NUMBER_LIMITER_MODELS 8
00061 
00062 class LimiterFactory
00063 {
00064 public:
00065 
00066 const static char       context[NUMBER_LIMITER_CONTEXT][64]; 
00067 
00068 const static char       model[NUMBER_LIMITER_MODELS][64]; 
00069 const static int        modelContext[NUMBER_LIMITER_MODELS]; 
00070 
00071 
00072 protected:
00073 
00074 AbsLimiter* createCentralLimiter();
00075 
00076 AbsLimiter* createMinmod();
00077 AbsLimiter* createDoubleMinmod();
00078 AbsLimiter* createSuperbee();
00079 
00080 AbsLimiter* createMineno();
00081 
00082 AbsLimiter* createHarmod();
00083 AbsLimiter* createHareno();
00084 
00085 AbsLimiter* createVarSuperbee(double alpha);
00086 
00087 public:
00088 LimiterFactory(){}
00089 virtual ~LimiterFactory(){}
00090 
00091 static int numberOfContexts(){ return NUMBER_LIMITER_CONTEXT; }
00092 static int numberOfModels(){ return NUMBER_LIMITER_MODELS; }
00093 
00094 static const char*      getContext(int i){ return LimiterFactory::context[getModelContext(i)]; }
00095 static const char*      getModel(int i){ return LimiterFactory::model[i]; }
00096 static const int        getModelContext(int i){ return LimiterFactory::modelContext[i]; }
00097 
00098 AbsLimiter* createModel(int indexModel=0, double alpha=0.0);
00099 
00100 virtual void report(FILE* file){}
00101 };
00102 
00103 
00104 #endif
SourceForge.net Logo
Restoreinpaint sourceforge project `C++/Java Image Processing, Restoration, Inpainting Project'.

Bernard De Cuyper: Open Project Leader: Concept, design and development.
Bernard De Cuyper & Eddy Fraiha 2002, 2003. Bernard De Cuyper 2004. Open and free, for friendly usage only.
Modifications on Belgium ground of this piece of artistic work, by governement institutions or companies, must be notified to Bernard De Cuyper.
bern_bdc@hotmail.com