00001 #ifndef __VU_SPHERIC_LIGHTFIELD_BASIC_CONVERTER_H__
00002 #define __VU_SPHERIC_LIGHTFIELD_BASIC_CONVERTER_H__
00003
00004 #include "vuSphericLightfieldFile.h"
00005
00006 class vuBasicLightfieldConverter
00007 {
00008 public:
00009 virtual void convert(const char *inFile, const char *outFile,
00010 bool isVerbose=true);
00011 };
00012
00013 template <int SI, class TI, int SO, class TO>
00014 class vuSphericLightfieldBasicConverter : public vuBasicLightfieldConverter
00015 {
00016 public:
00017
00019 virtual void _convert(vuSphericView<SI,TI> *in, vuSphericView<SO,TO> *out)=0;
00020
00021 bool _areViewsValid(vuSphericView<SI,TI> *in, vuSphericView<SO,TO> *out);
00022
00023 void convert(const char *inFile, const char *outFile, bool isVerbose=true);
00024
00025 void exitWithHint(vuLightfieldFile &file);
00026 };
00027
00028
00029 template class vuSphericLightfieldBasicConverter<1,byte,1,byte>;
00030 template class vuSphericLightfieldBasicConverter<1,byte,2,byte>;
00031 template class vuSphericLightfieldBasicConverter<1,byte,3,byte>;
00032 template class vuSphericLightfieldBasicConverter<2,byte,1,byte>;
00033 template class vuSphericLightfieldBasicConverter<2,byte,2,byte>;
00034 template class vuSphericLightfieldBasicConverter<2,byte,3,byte>;
00035 template class vuSphericLightfieldBasicConverter<3,byte,1,byte>;
00036 template class vuSphericLightfieldBasicConverter<3,byte,2,byte>;
00037 template class vuSphericLightfieldBasicConverter<3,byte,3,byte>;
00038
00039 template class vuSphericLightfieldBasicConverter<1,float,1,float>;
00040 template class vuSphericLightfieldBasicConverter<1,float,2,float>;
00041 template class vuSphericLightfieldBasicConverter<1,float,3,float>;
00042 template class vuSphericLightfieldBasicConverter<2,float,1,float>;
00043 template class vuSphericLightfieldBasicConverter<2,float,2,float>;
00044 template class vuSphericLightfieldBasicConverter<2,float,3,float>;
00045 template class vuSphericLightfieldBasicConverter<3,float,1,float>;
00046 template class vuSphericLightfieldBasicConverter<3,float,2,float>;
00047 template class vuSphericLightfieldBasicConverter<3,float,3,float>;
00048
00049 template class vuSphericLightfieldBasicConverter<1,byte,1,float>;
00050 template class vuSphericLightfieldBasicConverter<1,byte,2,float>;
00051 template class vuSphericLightfieldBasicConverter<1,byte,3,float>;
00052 template class vuSphericLightfieldBasicConverter<2,byte,1,float>;
00053 template class vuSphericLightfieldBasicConverter<2,byte,2,float>;
00054 template class vuSphericLightfieldBasicConverter<2,byte,3,float>;
00055 template class vuSphericLightfieldBasicConverter<3,byte,1,float>;
00056 template class vuSphericLightfieldBasicConverter<3,byte,2,float>;
00057 template class vuSphericLightfieldBasicConverter<3,byte,3,float>;
00058
00059 template class vuSphericLightfieldBasicConverter<1,float,1,byte>;
00060 template class vuSphericLightfieldBasicConverter<1,float,2,byte>;
00061 template class vuSphericLightfieldBasicConverter<1,float,3,byte>;
00062 template class vuSphericLightfieldBasicConverter<2,float,1,byte>;
00063 template class vuSphericLightfieldBasicConverter<2,float,2,byte>;
00064 template class vuSphericLightfieldBasicConverter<2,float,3,byte>;
00065 template class vuSphericLightfieldBasicConverter<3,float,1,byte>;
00066 template class vuSphericLightfieldBasicConverter<3,float,2,byte>;
00067 template class vuSphericLightfieldBasicConverter<3,float,3,byte>;
00068
00069 #endif