]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h
6552e6876a9ccb9a19927a020d01dd1e795492ae
[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
7 #include "wxMaracasRenderImageManagementPanel.h"
8 #include "wxMaracasMultipleVolumeRendererManager.h"
9 #include "wxMaracasSurfaceRenderingManager.h"
10 #include "wxVtkBaseView.h"
11 #include "wxMPRWidget.h"
12
13
14 class wxMaracasRenderTabbedPanel : public wxPanel
15 {
16         
17 public:
18         wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView);
19         ~wxMaracasRenderTabbedPanel();
20
21         void createControls(vtkImageData* inImg, std::string pathfile, std::string 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 deleteVolume(int volid);
29         void addRemoveActorV(int id, bool addremove);
30         void addRemoveActorSA(int id, bool addremove);
31         void addRemoveActorSB(int id, bool addremove);
32         void addRemoveActorSC(int id, bool addremove);
33         void addMPROptions();
34
35         // ----- Volume rendering functions ----- //
36         void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
37         void SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values);
38         vtkPiecewiseFunction* GetTransferFunction(int volumeid);
39         vtkColorTransferFunction* GetColorFunction(int volumeid);
40
41         // ----- Surface rendering functions ----- //
42         void changeOpacityA(int _propid, int value);
43         void changeIsoValueA(int propid, double value);
44         void changeColorA(int propid, double red, double green, double blue);
45         void changeOpacityB(int _propid, int value);
46         void changeIsoValueB(int propid, double value);
47         void changeColorB(int propid, double red, double green, double blue);
48         void changeOpacityC(int _propid, int value);
49         void changeIsoValueC(int propid, double value);
50         void changeColorC(int propid, double red, double green, double blue);
51         
52         void onCheckBoxVChange(wxCommandEvent& event);
53         void onCheckBoxSAChange(wxCommandEvent& event);
54         void onCheckBoxSBChange(wxCommandEvent& event);
55         void onCheckBoxSCChange(wxCommandEvent& event);
56         void onMPROptions(wxCommandEvent& event);
57
58         void onOpenParameters(wxCommandEvent& event);
59         void onColorChange(wxCommandEvent& event);
60         void onOpenCutter(wxCommandEvent& event);
61         void OnRefreshView(wxCommandEvent& event);
62
63         vtkImageData* getVolImage();
64         vtkImageData* getSurfAImage();
65         vtkImageData* getSurfBImage();
66         vtkImageData* getSurfCImage();
67
68         int getPropIdV();
69         
70 private:
71         wxCheckBox* checkboxVol;
72         wxCheckBox* checkboxSA;
73         wxCheckBox* checkboxSB;
74         wxCheckBox* checkboxSC;
75         wxCheckBox* checkboxViewer;
76         wxPanel*        controlPanelMPR3D;
77         wxNotebook* wxtabs;
78         wxString        volname;
79         
80         wxVtk3DBaseView*        baseView;
81         wxVtkMPR3DView*         mwxvtkmpr3Dview;
82         vtkMPR3DDataViewer* vtkmpr3Ddataviewer;
83
84         bool first;
85         int _id;
86
87         wxMaracasRenderImageManagementPanel*    dialog;
88         wxMaracasMultipleVolumeRendererManager* volmanager;
89         wxMaracasSurfaceRenderingManager*               surrendmanager1;
90         wxMaracasSurfaceRenderingManager*               surrendmanager2;
91         wxMaracasSurfaceRenderingManager*               surrendmanager3;
92
93         DECLARE_EVENT_TABLE( );
94 };
95
96 #endif /*wxMaracasMultipleVolumeRendererPanel_H_*/