00001 // $Id: vuFVR.h,v 1.1 2004/05/21 21:04:03 maxx Exp $ 00002 00006 #ifndef _vuFVRUtility_h_ 00007 #define _vuFVRUtility_h_ 00008 00009 #include "../vuBasicUtility.h" 00010 #include "../../wxUIElements/vuTransferDialog.h" 00011 #include "vuCamera.h" 00012 #include "Volume/Regular/Unimodal/3d/1B/Intensity/FVR/FVR.h" 00013 #include "Volume/Regular/Unimodal/3d/1B/Intensity/FVR/TorstensFilters.h" 00014 #include "vuTFunc/vuTFDesign.h" 00015 00016 class vuFVR : public vuBasicUtility 00017 { 00018 public: 00020 vuFVR(); 00022 ~vuFVR(); 00023 00025 static const char* getFileType(); 00026 00030 bool init(const char* DataFile); 00031 00033 virtual void notifyDataChanged(); 00034 00036 virtual void addRight(wxSizer *sizer); 00037 virtual void DrawAgain (); 00038 00040 virtual void DrawFromImage (); 00041 00044 virtual vuImage* getCurrentImage (); 00045 00048 virtual vuCamera* getCamera (); 00049 00052 virtual bool IsReRendering (); 00053 00055 virtual void setIsReRendering (bool isit); 00056 00057 protected: 00059 00062 bool glInit(); 00064 00067 void glRender(); 00069 void glResize(); 00071 00075 void glOnMouse(wxMouseEvent &ev); 00076 00078 void onKeyboard(wxKeyEvent& event); 00079 00080 00081 00083 void OnCheckBoxDepthCueing( wxCommandEvent& event); 00084 void OnCheckBoxDiffuseShading( wxCommandEvent& event); 00085 void OnChoiceFilter( wxCommandEvent& event); 00086 00087 void setTitle(const char* _title); 00088 00089 private: 00090 Filter *m_Filter; 00092 vu1112117 *m_Data; 00094 vuCamera m_Camera; 00096 float m_ViewScale; 00098 vuTFDesign m_TFunc; 00100 vuTransferDialog m_TFDialog; 00101 00102 #ifdef GL_VERSION_1_1 00103 GLuint texName; 00104 #endif 00105 00107 int m_x; 00109 int m_y; 00110 00111 vuCamera m_CameraLight; // for computing the light (just a hack!!!) 00112 00113 DECLARE_EVENT_TABLE() 00114 00115 float m_scaleX; 00116 float m_scaleY; 00117 00118 bool m_isRefineSlice; 00119 00121 wxCheckBox *m_CBdepthCueing; 00122 wxCheckBox *m_CBdiffuseShading; 00123 wxChoice *m_CHOICEfilter; 00124 }; 00125 00126 #endif