00001 #ifndef _VU_SPHERIC_IBR_UTILITY_H_ 00002 #define _VU_SPHERIC_IBR_UTILITY_H_ 00003 00004 #include <wx/wx.h> 00005 #include "../../vuBasicUtility.h" 00006 #include "vuCamera.h" 00007 #include "Volume/Lightfield/Unimodal/Spheric/IBR/ibr.h" 00008 #include "../../../wxUIElements/vuSphericViewWin.h" 00009 #include "../../../vuPreviewWin.h" 00010 00012 template <int SIZE, class TYPE> 00013 class vuSphericIBR : public vuBasicUtility 00014 { 00015 protected: 00016 enum 00017 { 00018 idFILTER, 00019 idSUBFILTER 00020 }; 00021 00022 public: 00024 vuSphericIBR(); 00025 00027 ~vuSphericIBR(); 00028 00029 virtual const char *_titleString(); 00030 00034 bool init(const char* DataFile); 00035 00036 public: 00037 //The following methods are overridden to add controls to the window. 00039 virtual void addRight(wxSizer *sizer); 00040 00041 protected: 00046 bool glInit(); 00047 00049 void glRender(); 00050 00052 void glResize(); 00053 00055 void onMouse(wxMouseEvent &ev); 00056 00058 void onKeyboard(wxKeyEvent& event); 00059 00061 vu1 *getVolume(); 00062 00063 /* --- some GUI callbacks ---------------------------------------------- */ 00065 void OnChoiceFilter(wxCommandEvent& event); 00066 00068 void OnChoiceSubFilter(wxCommandEvent& event); 00069 00070 private: 00071 void _updateSubFilterChoice(); 00072 00073 protected: 00075 vu1611_2<SIZE,TYPE> *m_Data; 00076 00077 private: 00078 // Some wxWindows GUI Elements... 00080 wxChoice *m_CHOICEfilter; 00081 wxChoice *m_CHOICEsubFilter; 00082 vuSphericViewWin *m_SphericView; 00083 vuPreviewWin *m_Preview; 00084 00085 public: 00086 virtual vuCamera* getCamera(); 00087 virtual vuImage* getCurrentImage(); 00088 virtual void DrawFromImage(); 00089 virtual void DrawAgain(); 00090 }; 00091 00092 00093 template class vuSphericIBR<1,byte>; 00094 template class vuSphericIBR<2,byte>; 00095 template class vuSphericIBR<3,byte>; 00096 template class vuSphericIBR<1,float>; 00097 template class vuSphericIBR<2,float>; 00098 template class vuSphericIBR<3,float>; 00099 00100 #endif /* _VU_SPHERIC_IBR_UTILITY_H_ */