00001 #ifndef __ColorModelFactory__ 00002 #define __ColorModelFactory__ 00003 00005 // Color Model Factory 00006 // =================== 00007 // 00008 // Group: Eggs and Pictures. 00009 // Author: Bernard De Cuyper 00010 // Date: 10/06/2002 00011 // 00012 // Purpose: Color Model Factory building color models. 00013 // 00014 // Copyrights: Bernard De Cuyper & Eddy Fraiha 2002, 00015 // Eggs & Pictures. 00016 // MIT/Open BSD copyright model. 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