00001 #ifndef __GENERAL_VU_SPHERIC_LIGHTFIELD_FILE_H__
00002 #define __GENERAL_VU_SPHERIC_LIGHTFIELD_FILE_H__
00003
00004 #include "vuLightfieldFile.h"
00005 #include "vuLightfield/vuSphericView.h"
00006
00007 template <int SIZE, class TYPE>
00008 class vuSphericLightfieldFile : public vuLightfieldFile
00009 {
00010 public:
00011 vuSphericLightfieldFile();
00012
00014 vuSphericLightfieldFile(const char *fileName);
00015
00017 vuSphericLightfieldFile(dword width, dword height, dword views,
00018 const char *fileName);
00019
00021 ~vuSphericLightfieldFile();
00022
00024 vuSphericLightfieldFile(const vuSphericLightfieldFile<SIZE,TYPE> &other);
00025
00027 bool readHeader();
00028
00030 bool writeHeader();
00031
00033 bool readView(vuSphericView<SIZE,TYPE> *view);
00034
00036 bool writeView(vuSphericView<SIZE,TYPE> *view);
00037
00038
00039
00040
00041
00042 dword getNumberOfViews();
00043 dword getWidth();
00044 dword getHeight();
00045
00046 protected:
00048 dword m_Width;
00050 dword m_Height;
00052 dword m_NumberOfViews;
00053
00054
00055 bool _isDataSizeValid(dword dataSize);
00056 };
00057
00058
00059 template class vuSphericLightfieldFile<1,byte>;
00060 template class vuSphericLightfieldFile<2,byte>;
00061 template class vuSphericLightfieldFile<3,byte>;
00062
00063 template class vuSphericLightfieldFile<1,float>;
00064 template class vuSphericLightfieldFile<2,float>;
00065 template class vuSphericLightfieldFile<3,float>;
00066
00067
00068 typedef vuSphericLightfieldFile<1,byte> vuSphericLightfieldFile1B;
00069 typedef vuSphericLightfieldFile<2,byte> vuSphericLightfieldFile2B;
00070 typedef vuSphericLightfieldFile<3,byte> vuSphericLightfieldFile3B;
00071
00072 typedef vuSphericLightfieldFile<1,float> vuSphericLightfieldFile1F;
00073 typedef vuSphericLightfieldFile<2,float> vuSphericLightfieldFile2F;
00074 typedef vuSphericLightfieldFile<3,float> vuSphericLightfieldFile3F;
00075
00076 #endif