00001 // Author: Steven Bergner 00002 // Created: Oct01 00003 00004 #ifndef _vuRaycastUtility_h_ 00005 #define _vuRaycastUtility_h_ 00006 00007 #include <wx/textctrl.h> 00008 #include <wx/checkbox.h> 00009 00010 #include "../vuBasicUtility.h" 00011 #include "../../wxUIElements/vuTransferDialog.h" 00012 #include "vuCamera.h" 00013 #include "Volume/Regular/Unimodal/3d/1B/Intensity/Raycast/Raycast.h" 00014 #include "vuTFunc/vuTFDesign.h" 00015 #include "vuPreviewWin.h" 00016 00017 //using namespace ns_vu1112113; 00018 00020 class vuRaycast : public vuBasicUtility 00021 { 00022 public: 00024 vuRaycast(); 00026 ~vuRaycast(); 00027 00029 static const char* getFileType(); 00030 00034 bool init(const char* DataFile); 00035 00036 virtual vuCamera* getCamera (); 00037 virtual vuImage* getCurrentImage (); 00038 virtual void DrawFromImage (); 00039 // virtual void setCamera (vuCamera* cam); 00040 00041 public: 00042 //The following methods are overridden to add controls to the window. 00044 virtual void addRight(wxSizer *sizer); 00045 00046 virtual void DrawAgain(); 00047 00048 protected: 00053 bool glInit(); 00054 00060 void onRender(); 00062 void glResize(); 00064 00068 void onMouse(wxMouseEvent &ev); 00069 00071 void OnButtonRender( wxCommandEvent& event); 00073 #if wxMINOR_VERSION < 5 00074 void OnChangeSampDist( void ); 00075 #else 00076 void OnChangeSampDist(wxCommandEvent&); 00077 #endif 00078 00079 #if wxMINOR_VERSION < 5 00080 void OnCheckBoxPreDraw( void ); 00081 #else 00082 void OnCheckBoxPreDraw(wxCommandEvent&); 00083 #endif 00084 00085 #if wxMINOR_VERSION < 5 00086 void OnCheckBoxDoSpec( void ); 00087 #else 00088 void OnCheckBoxDoSpec(wxCommandEvent&); 00089 #endif 00090 00091 #if wxMINOR_VERSION < 5 00092 void OnSelectTFunc(); 00093 #else 00094 void OnSelectTFunc(wxCommandEvent&); 00095 #endif 00096 00102 void onKeyboard(wxKeyEvent& event); 00103 00105 vu1 *vuRaycast::getVolume(); 00106 00107 private: 00109 vu1112113 *m_Data; 00111 vuTFDesign m_TFunc; 00113 vuTransferDialog m_TFuncDlg; 00114 00116 vuPreviewWin *m_Preview; 00117 00119 wxTextCtrl *m_TCsmpDist; 00120 00122 wxCheckBox *m_CBdoSpec, *m_CBdrawPrev; 00123 00125 wxListBox *m_TFuncList; 00126 00127 DECLARE_EVENT_TABLE() 00128 }; 00129 00130 #endif