00001 #ifndef __ColorModelFactory__
00002 #define __ColorModelFactory__
00003
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00019
00020 #include <stdio.h>
00021
00022 #include "AR3ChannelConverter.hpp"
00023
00024 #define NUMBER_COLOR_MODELS 5
00025
00026 class ColorModelFactory
00027 {
00028 public:
00029
00030 const static char model[NUMBER_COLOR_MODELS][4];
00031
00032
00033 protected:
00034
00035 AR3ChannelConverter* createRGB(){ return 0; }
00036
00037 AR3ChannelConverter* createLUV();
00038 AR3ChannelConverter* createLHS();
00039 AR3ChannelConverter* createYIQ();
00040 AR3ChannelConverter* createHSV();
00041
00042 public:
00043
00044 ColorModelFactory(){}
00045 virtual ~ColorModelFactory(){}
00046
00047 static int numberOfModels(){ return NUMBER_COLOR_MODELS; }
00048 static const char* getModel(int i){ return ColorModelFactory::model[i]; }
00049
00050 AR3ChannelConverter* createModel(int indexModel);
00051
00052 virtual void report(FILE* file){}
00053 };
00054
00055
00056
00057 #endif