]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h
a8c6fc87fb2973113ce2111385ed1588393312cd
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRenderTabbedPanel.h
1 #ifndef wxMaracasRenderTabbedPanel_H_
2 #define wxMaracasRenderTabbedPanel_H_
3
4 #include <wx/wx.h>
5 #include <wx/notebook.h> 
6 #include "wxMaracasMultipleVolumeRendererPanel.h"
7 #include "wxMaracasSurfaceRenderingPanel.h"
8 #include "wxMaracasMultipleVolumeRendererManager.h"
9 #include "wxMaracasSurfaceRenderingManager.h"
10 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
11
12
13 class wxMaracasRenderTabbedPanel : public wxPanel
14 {
15         
16 public:
17         wxMaracasRenderTabbedPanel(wxWindow* parent/*, wxMaracasMultipleVolumeRendererManager* volmanager, wxMaracasSurfaceRenderingManager* surmanager1, wxMaracasSurfaceRenderingManager* surmanager2, 
18                                                                           wxMaracasSurfaceRenderingManager* surmanager3, wxString pathfile, wxString filename*/);
19         ~wxMaracasRenderTabbedPanel();
20
21         void createControls(wxString pathfile, wxString filename);
22         void setRenderer(vtkRenderer* rend);
23         void addVolume(vtkImageData* img, std::string dataname);
24         void addSurface1(vtkImageData* img, std::string dataname);
25         void addSurface2(vtkImageData* img, std::string dataname);
26         void addSurface3(vtkImageData* img, std::string dataname);
27
28         void onCheckBoxVChange(wxCommandEvent& event);
29         void onCheckBoxSAChange(wxCommandEvent& event);
30         void onCheckBoxSBChange(wxCommandEvent& event);
31         void onCheckBoxSCChange(wxCommandEvent& event);
32
33         void deleteVolume(int volid);
34         void addRemoveActorV(int id, bool addremove);
35         void addRemoveActorSA(int id, bool addremove);
36         void addRemoveActorSB(int id, bool addremove);
37         void addRemoveActorSC(int id, bool addremove);
38
39         // ----- Volume rendering functions ----- //
40         void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
41         void SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values);
42         vtkPiecewiseFunction* GetTransferFunction(int volumeid);
43         vtkColorTransferFunction* GetColorFunction(int volumeid);
44
45         // ----- Surface rendering functions ----- //
46         void changeOpacityA(int _propid, int value);
47         void changeIsoValueA(int propid, double value);
48         void changeColorA(int propid, double red, double green, double blue);
49         void changeOpacityB(int _propid, int value);
50         void changeIsoValueB(int propid, double value);
51         void changeColorB(int propid, double red, double green, double blue);
52         void changeOpacityC(int _propid, int value);
53         void changeIsoValueC(int propid, double value);
54         void changeColorC(int propid, double red, double green, double blue);
55
56         void onColorChange(wxCommandEvent& event);
57         //void onOK(wxCommandEvent& event);
58         //void onCancel(wxCommandEvent& event);
59         void onUpdate(wxCommandEvent& event);
60         void onViewImage(wxCommandEvent& event);
61
62         void updateVolume();
63         int getPropIdV();
64         int getPropIdSA();
65         int getPropIdSB();
66         int getPropIdSC();
67         
68 private:
69         wxCheckBox* checkboxVol;
70         wxCheckBox* checkboxSA;
71         wxCheckBox* checkboxSB;
72         wxCheckBox* checkboxSC;
73         //wxBitmapButton* _viewimage;
74
75         wxNotebook* wxtabs;
76
77         int _propidV;
78         int _propidSA;
79         int _propidSB;
80         int _propidSC;
81
82         bool first;
83
84         wxMaracasMultipleVolumeRendererManager* volmanager;
85         wxMaracasSurfaceRenderingManager* surrendmanager1;
86         wxMaracasSurfaceRenderingManager* surrendmanager2;
87         wxMaracasSurfaceRenderingManager* surrendmanager3;
88
89         wxMaracasMultipleVolumeRendererPanel* controlpanV;
90         wxMaracasSurfaceRenderingPanel* controlpanSA;
91         wxMaracasSurfaceRenderingPanel* controlpanSB;
92         wxMaracasSurfaceRenderingPanel* controlpanSC;
93 };
94
95 #endif /*wxMaracasMultipleVolumeRendererPanel_H_*/
96