]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRendering.h
5a7de055d3618ffaf8d8ff91b43ca8f0adf039ed
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasSurfaceRendering.h
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: wxMaracasSurfaceRendering.h,v $
5   Language:  C++
6   Date:      $Date: 2010/01/21 13:54:15 $
7   Version:   $Revision: 1.4 $
8
9   Copyright: (c) 2002, 2003
10   License:
11
12      This software is distributed WITHOUT ANY WARRANTY; without even
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14      PURPOSE.  See the above copyright notice for more information.
15
16 =========================================================================*/
17
18 #ifndef __wxMaracasSurfaceRenderingPanelH__
19 #define __wxMaracasSurfaceRenderingPanelH__
20
21 #include <vector>
22 #include <wx/wx.h>
23 #include "wx/aui/aui.h"
24 #include <iostream>
25 #include "marTypes.h"
26 #include "vtkProp3D.h"
27
28 #include "wxMaracasSurfaceRenderingManager.h"
29 #include "wxMaracasSurfaceRenderingPanel.h"
30
31
32
33 class  creaMaracasVisu_EXPORT  wxMaracasSurfaceRendering : public wxPanel
34 {
35
36 public:
37         wxMaracasSurfaceRendering( wxWindow* parent, std::string path);
38     ~wxMaracasSurfaceRendering( );
39
40         static wxMaracasSurfaceRendering* getInstance(wxWindow* parent,std::string path="");
41
42         static wxMaracasSurfaceRendering* getInstance();
43
44         void setRenderer(vtkRenderer*  renderer);
45
46         void setInteractor(vtkRenderWindowInteractor*  interactor);
47
48         void changeOpacity(int propid, int value);
49
50         void changeIsoValue(int propid, double value);
51
52     void addRemoveActor(int propid, bool addremove);
53
54         void addRemoveSurfaceBox(int propid, bool addremove);
55
56         void changeColor(int propid, double red, double green, double blue);
57
58         void addProp3D(vtkProp3D* prop3D, std::string dataname="");
59
60         void addPropMHD(vtkImageData* imgdata, std::string dataname="");
61
62         void loadProp3D(wxString filename, wxString dataname);
63
64         void loadPropMHD(wxString filename, wxString dataname);
65
66         void onLoadImageFile();
67
68         void addSurfaceRenderingPanel(wxMaracasSurfaceRenderingPanel* surrend, std::string dataname="");
69
70         std::string getPath();
71
72         void deleteActor(int propid);
73
74         bool interactorSet();
75 private:
76         static wxMaracasSurfaceRendering* instance;
77
78         wxMaracasSurfaceRenderingManager* surrendmanager;
79         wxAuiManager* wxauimanager;
80         wxToolBar* _toolb;
81
82         std::string _path;
83
84         void createFileChooser();
85         
86
87 };
88
89 class ToolBarEventHandler : public wxEvtHandler{
90
91         public:
92                 ToolBarEventHandler();
93                 ~ToolBarEventHandler();
94
95                 void onLoadImageFile(wxCommandEvent& event);
96
97         private:
98
99                 DECLARE_EVENT_TABLE()
100         };
101
102 class ToolBar : public wxToolBar{
103
104         
105 public:
106         ToolBar(wxWindow * parent,std::string iconsdir);
107         ~ToolBar(void);
108
109
110 private:
111
112         ToolBarEventHandler* _evthand;
113
114 };
115
116 #endif
117