00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __wxMaracasMultipleVolumeRendererViewPanelH__
00019 #define __wxMaracasMultipleVolumeRendererViewPanelH__
00020
00021 #include <vector>
00022 #include <wx/wx.h>
00023 #include "wx/aui/aui.h"
00024 #include <iostream>
00025 #include "marTypes.h"
00026 #include "vtkProp3D.h"
00027
00028 #include "wxMaracasMultipleVolumeRendererManager.h"
00029 #include "wxMaracasMultipleVolumeRendererPanel.h"
00030
00031
00032
00033 class creaMaracasVisu_EXPORT wxMaracasMultipleVolumeRendererView : public wxPanel
00034 {
00035
00036 public:
00037 wxMaracasMultipleVolumeRendererView( wxWindow* parent, std::string path);
00038 ~wxMaracasMultipleVolumeRendererView( );
00039
00040 static wxMaracasMultipleVolumeRendererView* getInstance(wxWindow* parent,std::string path="");
00041
00042 static wxMaracasMultipleVolumeRendererView* getInstance();
00043
00044 void setRenderer(vtkRenderer* renderer);
00045
00046 void addVolume(vtkImageData* img, std::string dataname="");
00047
00048 void loadVolume(wxString filename, wxString dataname);
00049
00050 void onLoadImageFile();
00051
00052 void addVolumeRendererPanel(wxMaracasMultipleVolumeRendererPanel* irmview, std::string dataname="");
00053
00054 std::string getPath();
00055
00056 void deleteVolume(int volid);
00057
00058 void addRemoveActor(int id, bool remove);
00059
00060 void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
00061 void SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values);
00062
00063 void addVolumeViewPanel(wxMaracasMultipleVolumeRendererPanel* irmview, std::string dataname);
00064
00065 vtkPiecewiseFunction* GetTransferFunction(int volumeid);
00066 vtkColorTransferFunction* GetColorFunction(int volumeid);
00067
00068 private:
00069 static wxMaracasMultipleVolumeRendererView* instance;
00070
00071 wxMaracasMultipleVolumeRendererManager* volmanager;
00072
00073 wxAuiManager* wxauimanager;
00074
00075 std::string _path;
00076
00077 wxToolBar* _toolb;
00078
00079 };
00080
00081 class ToolBarEventHandlerMultipleVolumeRenderer : public wxEvtHandler{
00082
00083 public:
00084 ToolBarEventHandlerMultipleVolumeRenderer();
00085 ~ToolBarEventHandlerMultipleVolumeRenderer();
00086
00087 void onLoadImageFile(wxCommandEvent& event);
00088
00089 private:
00090
00091 DECLARE_EVENT_TABLE()
00092 };
00093
00094 class ToolBarMultipleVolumeRenderer : public wxToolBar{
00095
00096
00097 public:
00098 ToolBarMultipleVolumeRenderer(wxWindow * parent,std::string iconsdir);
00099 ~ToolBarMultipleVolumeRenderer(void);
00100
00101
00102 private:
00103
00104 ToolBarEventHandlerMultipleVolumeRenderer* _evthand;
00105
00106 };
00107
00108 #endif
00109