]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h
7be98884be86f5248e2373619b1aca37f0799815
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRendererView.h
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: wxMaracasRendererView.h,v $
5   Language:  C++
6
7 =========================================================================*/
8
9 #ifndef __wxMaracasRendererViewPanelH__
10 #define __wxMaracasRendererViewPanelH__
11
12 #include <vector>
13 #include <wx/wx.h>
14 #include "wx/aui/aui.h"
15 #include <iostream>
16 #include "marTypes.h"
17 #include "vtkProp3D.h"
18
19 #include "wxMaracasRendererView.h"
20 #include "wxMaracasRenderTabbedPanel.h"
21 #include "wxMaracasMultipleVolumeRendererManager.h"
22 #include "wxMaracasMultipleVolumeRendererPanel.h"
23 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
24 #include "wxMaracasSurfaceRenderingManager.h"
25
26
27 class  creaMaracasVisu_EXPORT  wxMaracasRendererView : public wxPanel
28 {
29
30 public:
31         wxMaracasRendererView( wxWindow* parent, std::string path);
32     ~wxMaracasRendererView( );
33
34         static wxMaracasRendererView* getInstance(wxWindow* parent,std::string path="");
35
36         static wxMaracasRendererView* getInstance();
37
38         void setRenderer(vtkRenderer*  renderer);
39         
40         wxMaracasMultipleVolumeRendererPanel* addVolume(vtkImageData* img, std::string dataname="");            
41
42         wxMaracasSurfaceRenderingPanel* addSurface1(vtkImageData* img, std::string dataname="");
43         
44         wxMaracasSurfaceRenderingPanel* addSurface2(vtkImageData* img, std::string dataname="");
45         
46         wxMaracasSurfaceRenderingPanel* addSurface3(vtkImageData* img, std::string dataname="");
47
48         void loadVolume(wxString filename, wxString dataname);
49
50         void onLoadImageFile();
51
52         void addPanels(wxString filename, wxString dataname = "");
53
54         std::string getPath();
55
56         void deleteVolume(int volid);
57
58         void addRemoveActorVol(int id, bool remove);
59         void addRemoveSurf1Actor(int id, bool addremove);
60         void addRemoveSurf2Actor(int id, bool addremove);
61         void addRemoveSurf3Actor(int id, bool addremove);
62         
63         void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
64         void SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values);
65
66         void addPanels(wxMaracasMultipleVolumeRendererPanel* irmview, std::string dataname);
67
68          vtkPiecewiseFunction* GetTransferFunction(int volumeid);
69          vtkColorTransferFunction* GetColorFunction(int volumeid);
70
71 private:
72         static wxMaracasRendererView* instance;
73
74         wxMaracasMultipleVolumeRendererManager* volmanager;
75
76         wxMaracasSurfaceRenderingManager* surrendmanager1;
77
78         wxMaracasSurfaceRenderingManager* surrendmanager2;
79
80         wxMaracasSurfaceRenderingManager* surrendmanager3;
81
82         wxMaracasRenderTabbedPanel* wxtabs;
83
84         wxAuiManager* wxauimanager;
85         
86         std::string _path;
87
88         wxToolBar* _toolb;
89
90 };
91
92 class ToolBarEventHandlerRenderer : public wxEvtHandler{
93
94         public:
95                 ToolBarEventHandlerRenderer();
96                 ~ToolBarEventHandlerRenderer();
97
98                 void onLoadImageFile(wxCommandEvent& event);
99
100         private:
101
102                 DECLARE_EVENT_TABLE()
103         };
104
105 class ToolBarRenderer : public wxToolBar{
106
107         
108 public:
109         ToolBarRenderer(wxWindow * parent,std::string iconsdir);
110         ~ToolBarRenderer(void);
111
112
113 private:
114
115         ToolBarEventHandlerRenderer* _evthand;
116
117 };
118
119 #endif
120