00001
00002
00003 #ifndef _VU_VOLUME_LIGHTFIELD_UNIMODAL_SPHERIC_IBR_H_
00004 #define _VU_VOLUME_LIGHTFIELD_UNIMODAL_SPHERIC_IBR_H_
00005
00006 #include "../spheric.h"
00007 #include "../vuSphericFilter.h"
00008 #include "General/vuLightfield/vuSphericViewFilter.h"
00009 #include "General/vuMisc/vuProgressHandler.h"
00010
00011 template <int SIZE, class TYPE>
00012 class vu1611_2 : public vu1611<SIZE,TYPE>
00013 {
00014 protected:
00015 using vu1611<SIZE,TYPE>::m_Camera;
00016 using vu1611<SIZE,TYPE>::m_numberOfViews;
00017 using vu1611<SIZE,TYPE>::m_views;
00018 public:
00019 vu1611_2();
00020
00021 ~vu1611_2();
00022
00024 vuSphericFilter<SIZE,TYPE> *getFilter();
00025
00028 void setFilter(vuSphericFilter<SIZE,TYPE> *filter);
00029
00032 void setViewFilter(vuSphericViewFilter<SIZE,TYPE> *viewFilter);
00033
00035 vuSphericViewFilter<SIZE,TYPE> *getViewFilter();
00036
00038 void preprocess(vuProgressHandler *handler=NULL);
00039
00041 virtual void initOpenGL(void);
00042
00044 virtual void glResize(dword width, dword height);
00045
00047 virtual void render();
00048
00050 vuFixelMap<SIZE,TYPE>* computeAndReturnImage();
00051
00053 virtual bool read(void);
00054
00056 void preview(int hint);
00057
00058 protected:
00060 vuSphericFilter<SIZE,TYPE> *m_Filter;
00062 vuSphericViewFilter<SIZE,TYPE> *m_ViewFilter;
00063 };
00064
00065
00066
00067
00068 template class vu1611_2<1,byte>;
00069 template class vu1611_2<2,byte>;
00070 template class vu1611_2<3,byte>;
00071 template class vu1611_2<1,float>;
00072 template class vu1611_2<2,float>;
00073 template class vu1611_2<3,float>;
00074
00075
00076 typedef vu1611_2<1,byte> vu161112;
00077 typedef vu1611_2<2,byte> vu161122;
00078 typedef vu1611_2<3,byte> vu161132;
00079 typedef vu1611_2<1,float> vu1611A2;
00080 typedef vu1611_2<2,float> vu1611B2;
00081 typedef vu1611_2<3,float> vu1611C2;
00082
00083 typedef vu161112 vuVolumeLightfieldUnimodalSpheric1Bibr;
00084 typedef vu161122 vuVolumeLightfieldUnimodalSpheric2Bibr;
00085 typedef vu161132 vuVolumeLightfieldUnimodalSpheric3Bibr;
00086 typedef vu1611A2 vuVolumeLightfieldUnimodalSpheric1Fibr;
00087 typedef vu1611B2 vuVolumeLightfieldUnimodalSpheric2Fibr;
00088 typedef vu1611C2 vuVolumeLightfieldUnimodalSpheric3Fibr;
00089
00090 #endif