00001 #ifndef __ARLinearColorSpaceMapping__ 00002 #define __ARLinearColorSpaceMapping__ 00003 00004 00005 00026 #include <stdio.h> 00027 00028 #include "AR3ChannelConverter.hpp" 00029 00030 class ARLinearColorSpaceMapping : public AR3ChannelConverter 00031 { 00032 protected: 00033 00034 double Tdata[9]; 00035 double Tinvdata[9]; 00036 00037 double** T; 00038 double** Tinv; 00039 00040 public: 00041 00042 ARLinearColorSpaceMapping(); 00043 virtual ~ARLinearColorSpaceMapping(){delete[] T; delete[] Tinv; T=0; Tinv=0; } 00044 00045 00046 virtual void inSpaceTo(double* to1, double* to2, double* to3, double from1=0.0, double from2=0.0, double from3=0.0); 00047 virtual void outSpaceTo(double* from1, double* from2, double* from3, double to1, double to2, double to3); 00048 00049 // single shot solor space filtering 00050 virtual Real3CImage* convert(Real3CImage* from, Real3CImage* to=0); 00051 virtual Real3CImage* revert(Real3CImage* from, Real3CImage* to=0); 00052 00053 00054 virtual void report(FILE* file){} 00055 }; 00056 00057 00058 #endif