]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp
File deleted:
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRenderTabbedPanel.cpp
1 #include "wxMaracasRenderTabbedPanel.h"
2
3 #include <wx/colordlg.h>
4 #include <OpenImage.xpm>
5 #include "Color.xpm"
6
7
8 /**
9 **      
10 **/
11 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* img1, wxMaracasSurfaceRenderingManager* img2, wxMaracasSurfaceRenderingManager* img3, 
12                                                                           wxMaracasSurfaceRenderingManager* img4, wxString filename, wxString dataname)
13 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
14 {
15         //_propid = propid;
16
17         createControls(img1, img2, img3, img4, filename, dataname);
18 }
19
20 /**
21 **
22 **/
23 void wxMaracasRenderTabbedPanel::createControls(wxMaracasMultipleVolumeRendererManager* volmanager, wxMaracasSurfaceRenderingManager* surrendmanager1, wxMaracasSurfaceRenderingManager* surrendmanager2, 
24                                                                           wxMaracasSurfaceRenderingManager* surrendmanager3, wxString filename, wxString dataname)
25 {
26         wxPanel* up = new wxPanel(this, wxID_ANY);
27         wxFlexGridSizer* sizerup = new wxFlexGridSizer(2,2,1);
28         
29         wxString choices[2];
30         choices[0] = wxString(_T("On"));
31         choices[1] = wxString(_T("Off"));
32         checkboxVol = new  wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
33         Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);   
34         checkboxVol->SetValue(true);    
35
36         sizerup->Add(checkboxVol, wxFIXED_MINSIZE);
37
38         //wxString choices[2];
39         //choices[0] = wxString(_T("On"));
40         //choices[1] = wxString(_T("Off"));
41         checkboxSA = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
42         Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);   
43         checkboxSA->SetValue(true);     
44
45         sizerup->Add(checkboxSA, wxFIXED_MINSIZE);
46
47         //wxString choices[2];
48         //choices[0] = wxString(_T("On"));
49         //choices[1] = wxString(_T("Off"));
50         checkboxSB = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
51         Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);   
52         checkboxSB->SetValue(true);     
53
54         sizerup->Add(checkboxSB, wxFIXED_MINSIZE);
55
56         //wxString choices[2];
57         //choices[0] = wxString(_T("On"));
58         //choices[1] = wxString(_T("Off"));
59         checkboxSC = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
60         Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);   
61         checkboxSC->SetValue(true);     
62
63         sizerup->Add(checkboxSC, wxFIXED_MINSIZE);
64
65         up->SetSizer(sizerup, true);            
66         up->SetAutoLayout( true );
67
68
69         wxPanel* down = new wxPanel(this, wxID_ANY);
70         down->SetSize(100, 100);
71         wxFlexGridSizer* sizerdown = new wxFlexGridSizer(1,1,1);
72
73         wxtabs = new wxNotebook(this, -1);
74         wxtabs->SetSize(100, 100);
75         //wxtabs->
76         std::string s = std::string(filename.mb_str());
77         vtkImageData* img1 = volmanager->getImageData(s);
78         vtkImageData* img2 = surrendmanager1->getImageData(s);
79         vtkImageData* img3 = surrendmanager2->getImageData(s);
80         vtkImageData* img4 = surrendmanager3->getImageData(s);
81         if(img1!=NULL)
82         {
83                 s = std::string(dataname.mb_str());
84                 wxMaracasMultipleVolumeRendererPanel* controlpan1 = addVolume(volmanager, img1, s);
85                 wxMaracasSurfaceRenderingPanel* controlpan2 = addSurface1(surrendmanager1, img2, s);
86                 wxMaracasSurfaceRenderingPanel* controlpan3 = addSurface2(surrendmanager2, img3, s);
87                 wxMaracasSurfaceRenderingPanel* controlpan4 = addSurface3(surrendmanager3, img4, s);
88         
89                 wxtabs->AddPage(controlpan1, _T("Volume Rendering"), true);
90                 wxtabs->AddPage(controlpan2, _T("Surf Rend A"));
91                 wxtabs->AddPage(controlpan3, _T("Surf Rend B"));
92                 wxtabs->AddPage(controlpan4, _T("Surf Rend C"));
93         
94                 wxtabs->Refresh();
95                 sizerdown->Add(wxtabs, wxFIXED_MINSIZE);
96
97                 down->SetSizer(sizerdown, true);                
98                 down->SetAutoLayout( true );
99
100         }
101
102         wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(2,1,5);
103         sizerrenderprop->Add(up, wxFIXED_MINSIZE);
104         sizerrenderprop->Add(down, wxFIXED_MINSIZE);
105
106         this->SetSizer(sizerrenderprop, true);          
107         this->SetAutoLayout( true );
108
109 }
110
111 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
112 {       
113         //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false);
114         //wxMaracasRenderTabbedPanel::getInstance()->deleteVolume(_propid);
115         delete wxtabs;
116         //delete surview1;
117         //delete surview2;
118         //delete surview3;
119 }
120
121 /*
122 *
123 */
124 wxMaracasMultipleVolumeRendererPanel* wxMaracasRenderTabbedPanel::addVolume(wxMaracasMultipleVolumeRendererManager* volmanager, vtkImageData* img, std::string dataname)
125 {
126
127         try
128         {
129                 int id = volmanager->addVolume(img, dataname);
130                 if(id!=-1)
131                 {
132                         wxMaracasMultipleVolumeRendererPanel* controlpan = new wxMaracasMultipleVolumeRendererPanel(wxtabs, id,img);
133                         //controlpan->updateVolume();
134
135                         return controlpan;
136                 }
137         }
138         catch(char* str)
139         {
140                 std::cout << "Exception : " << str << '\n';
141                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
142                 diag->ShowModal();
143         }
144 }
145
146 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface1(wxMaracasSurfaceRenderingManager* surrendmanager1, vtkImageData* img, std::string dataname)
147 {
148         try
149         {
150                 int id = surrendmanager1->addPropMHD(img, dataname);
151                 
152                 if(id!=-1)
153                 {
154                         wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
155                         //int maxiso = surrendmanager1->getMaxIsoValue(id);
156                         //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
157                         
158                         return controlpan;
159                 }
160         }
161         catch(char* str)
162         {
163                 std::cout << "Exception : " << str << '\n';
164                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
165                 diag->ShowModal();
166         }
167 }
168
169 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface2(wxMaracasSurfaceRenderingManager* surrendmanager2, vtkImageData* img, std::string dataname)
170 {
171         try
172         {
173                 int id = surrendmanager2->addPropMHD(img, dataname);
174                 if(id!=-1)
175                 {
176                         wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
177                         //int maxiso = surrendmanager2->getMaxIsoValue(id);
178                         //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
179
180                         return controlpan;
181                 }
182         }
183         catch(char* str)
184         {
185                 std::cout << "Exception : " << str << '\n';
186                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
187                 diag->ShowModal();
188         }
189 }
190
191 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface3(wxMaracasSurfaceRenderingManager* surrendmanager3, vtkImageData* img, std::string dataname)
192 {
193         try
194         {
195                 int id = surrendmanager3->addPropMHD(img, dataname);
196                 if(id!=-1)
197                 {
198                         wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
199                         //int maxiso = surrendmanager3->getMaxIsoValue(id);
200                         //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
201                         
202                         return controlpan;
203                 }
204         }
205         catch(char* str)
206         {
207                 std::cout << "Exception : " << str << '\n';
208                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
209                 diag->ShowModal();
210         }
211 }
212
213 void wxMaracasRenderTabbedPanel::onOK(wxCommandEvent& event)
214 {
215     updateVolume();
216         //_frame->Show(false);
217 }
218
219 void wxMaracasRenderTabbedPanel::onCancel(wxCommandEvent& event)
220 {
221         //_frame->Show(false);
222 }
223
224 void wxMaracasRenderTabbedPanel::onUpdate(wxCommandEvent& event)
225 {
226         updateVolume();    
227 }
228
229 void wxMaracasRenderTabbedPanel::updateVolume()
230 {
231         //std::vector<double> greylevelcolors;
232         //std::vector<double> red;
233         //std::vector<double> green;
234         //std::vector<double> blue;
235
236         //std::vector<double> greylevel;
237         //std::vector<double> values;
238
239     //mwxwidget->GetValuesColorPointsFunction(greylevelcolors, red, green, blue);
240         //mwxwidget->GetValuesPointsFunction(greylevel, values);
241
242
243         //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesColorPointsFunction(this->_propid, greylevelcolors, red, green, blue);
244         //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesPointsFunction(this->_propid, greylevel, values);
245
246 }
247
248 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
249 {       
250
251         //if(mwxwidget->ShowModal()==wxID_OK){
252         //updateVolume();
253         //      mwxwidget->Show(false);
254         //}     
255 }
256
257 /**
258 ** 
259 **/
260 void wxMaracasRenderTabbedPanel::onViewImage(wxCommandEvent& event){
261         
262 }
263
264 /**
265 **
266 **/
267 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
268 {
269         //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());  
270 }
271
272 /**
273 **
274 **/
275 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
276 {       
277         //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());  
278 }
279
280 /**
281 **
282 **/
283 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
284 {       
285         //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());  
286 }
287
288 /**
289 **
290 **/
291 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
292 {       
293         //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());  
294 }
295
296 /**
297 **
298 **/
299 int wxMaracasRenderTabbedPanel::getPropId(){
300         return _propid;
301 }