00001 /*========================================================================= 00002 00003 Program: wxMaracas 00004 Module: $RCSfile: wxMaracasRendererView.h,v $ 00005 Language: C++ 00006 00007 =========================================================================*/ 00008 00009 #ifndef __wxMaracasRendererViewPanelH__ 00010 #define __wxMaracasRendererViewPanelH__ 00011 00012 #include <vector> 00013 #include <wx/wx.h> 00014 #include "wx/aui/aui.h" 00015 #include <iostream> 00016 #include "marTypes.h" 00017 #include "vtkProp3D.h" 00018 #include "wxVtkBaseView.h" 00019 00020 #include "wxMaracasRendererView.h" 00021 #include "wxMaracasRenderTabbedPanel.h" 00022 #include "wxMaracasMultipleVolumeRendererManager.h" 00023 #include "wxMaracasSurfaceRenderingManager.h" 00024 00025 class creaMaracasVisu_EXPORT wxMaracasRendererView : public wxPanel 00026 { 00027 00028 public: 00029 wxMaracasRendererView( wxWindow* parent, std::string path); 00030 ~wxMaracasRendererView( ); 00031 00032 static wxMaracasRendererView* getInstance(wxWindow* parent,std::string path=""); 00033 static wxMaracasRendererView* getInstance(); 00034 00035 std::string getPath(); 00036 wxMaracasRenderTabbedPanel* getTabbedPanel(int id) throw(char*); 00037 00038 void setRenderer(vtkRenderer* renderer); /* throw(char*), */ // JPR 00039 void setVtkBaseView(wxVtk3DBaseView* base); 00040 void onLoadImageFile(); 00041 void addVolumes(vtkImageData* img, std::string pathfile, std::string filename); 00042 void addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkImageData* img, std::string pathfile, std::string filename); 00043 00044 void deleteVolume(int volid); 00045 std::vector<std::string> getFiles(); 00046 00047 private: 00048 static wxMaracasRendererView* instance; 00049 00050 std::vector<wxMaracasRenderTabbedPanel*> tabsVector; 00051 std::vector<std::string> files; 00052 00053 wxAuiManager* wxauimanager; 00054 wxToolBar * _toolb; 00055 00056 vtkRenderer* _renderer; 00057 wxVtk3DBaseView* baseView; 00058 std::string _path; 00059 00060 int _idCount; 00061 }; 00062 00063 class ToolBarEventHandlerRenderer : public wxEvtHandler 00064 { 00065 public: 00066 ToolBarEventHandlerRenderer(); 00067 ~ToolBarEventHandlerRenderer(); 00068 00069 void onLoadImageFile(wxCommandEvent& event); 00070 00071 private: 00072 00073 DECLARE_EVENT_TABLE() 00074 }; 00075 00076 class ToolBarRenderer : public wxToolBar{ 00077 00078 public: 00079 ToolBarRenderer(wxWindow * parent,std::string iconsdir); 00080 ~ToolBarRenderer(void); 00081 00082 private: 00083 00084 ToolBarEventHandlerRenderer* _evthand; 00085 }; 00086 00087 #endif