]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtkMPR3DViewCntrlPanel.cxx
1 #include "wxVtkMPR3DViewCntrlPanel.h"
2
3 #include "HistogramDialog.h"
4
5 wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align )
6 : wxPanel(parent, -1)
7 {
8
9         wxPanel *panel  = this;
10         _wxvtkmpr3Dview = wxvtkmpr3Dview;
11
12         /*int maxX = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionX();
13         int maxY = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionY();
14         int maxZ = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionZ();*/
15
16         int maxX = 1;
17         int maxY = 1;
18         int maxZ = 1;
19
20         //CPR: Modified 30 Nov 2009
21         /*
22         wxCheckBox              *ckBoxX                 = new wxCheckBox(panel,-1,_T("X           "));
23                                         _positionX              = new wxSlider(panel,-1,maxX/2,0,maxX, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
24         wxCheckBox              *ckBoxY                 = new wxCheckBox(panel,-1,_T("Y           "));
25                                         _positionY              = new wxSlider(panel,-1,maxY/2,0,maxY, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
26         wxCheckBox              *ckBoxZ                 = new wxCheckBox(panel,-1,_T("Z           "));
27                                         _positionZ              = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
28         wxButton                *btnColorTable  = new wxButton (panel, -1, _T("Edit Color Table") );
29         */
30
31         ckBoxX                  = new wxCheckBox(panel,-1,_T("X           "));
32         _positionX              = new wxSlider(panel,-1,maxX/2,0,maxX, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
33         ckBoxY                  = new wxCheckBox(panel,-1,_T("Y           "));
34         _positionY              = new wxSlider(panel,-1,maxY/2,0,maxY, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
35         ckBoxZ                  = new wxCheckBox(panel,-1,_T("Z           "));
36         _positionZ              = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
37         wxButton                *btnColorTable  = new wxButton (panel, -1, _T("Edit Color Table") );
38
39         _ckBoxXYZ               = new wxCheckBox(panel,-1,_T("XYZ                  "));
40         _ckBoxPlane             = new wxCheckBox(panel,-1,_T("Plane"));
41
42         ckBoxX->SetValue(false);
43         ckBoxY->SetValue(false);
44         ckBoxZ->SetValue(false);
45         _ckBoxXYZ->SetValue(false);
46         _ckBoxPlane->SetValue(false);
47
48         _positionX->SetSize(400,20);
49         _positionY->SetSize(400,20);
50         _positionZ->SetSize(400,20);
51
52         Connect(ckBoxX->GetId()                 , wxEVT_COMMAND_CHECKBOX_CLICKED          , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX   );
53         Connect(_positionX->GetId()             , wxEVT_COMMAND_SLIDER_UPDATED            , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionX              );
54         Connect(ckBoxY->GetId()                 , wxEVT_COMMAND_CHECKBOX_CLICKED          , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY   );
55         Connect(_positionY->GetId()             , wxEVT_COMMAND_SLIDER_UPDATED            , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionY              );
56         Connect(ckBoxZ->GetId()                 , wxEVT_COMMAND_CHECKBOX_CLICKED          , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ   );
57         Connect(_positionZ->GetId()             , wxEVT_COMMAND_SLIDER_UPDATED            , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionZ              );
58         Connect(btnColorTable->GetId()  , wxEVT_COMMAND_BUTTON_CLICKED            , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnEditColorTable );
59
60         Connect(_ckBoxXYZ->GetId()  , wxEVT_COMMAND_CHECKBOX_CLICKED      , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ );
61         Connect(_ckBoxPlane->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED      , (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane   );
62
63         wxFlexGridSizer *sizer;
64         
65         //      wxBoxSizer *sizer        = new wxBoxSizer(wxVERTICAL);
66         //      wxBoxSizer *sizerH4 = new wxBoxSizer(wxHORIZONTAL);
67         
68         //CPR: If-else statements added 30 Nov 2009
69         wxFlexGridSizer *sizerH4;
70         wxFlexGridSizer *sizerH5;
71         if(align)
72         {
73                 sizer    = new wxFlexGridSizer(2);
74
75                 sizerH4 = new wxFlexGridSizer(2);
76                 sizerH4->Add( _positionX                        ,1,wxGROW                                                       , 0 );
77                 sizerH4->Add( ckBoxX                            ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED , 0 );
78                 sizerH4->Add( _positionY                        ,1,wxGROW                                                       , 0 );
79                 sizerH4->Add( ckBoxY                            ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED     , 0 );
80                 sizerH4->Add( _positionZ                        ,1,wxGROW                                                       , 0 );
81                 sizerH4->Add( ckBoxZ                            ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED     , 0 );
82                 
83                 sizerH5 = new wxFlexGridSizer(1);
84                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND                     , 0);
85                 sizerH5->Add( _ckBoxXYZ                                                                 , 1, wxALL|wxEXPAND                     , 0);
86                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND                     , 0);
87                 sizerH5->Add( _ckBoxPlane                                                               , 1, wxALL|wxEXPAND                     , 0);
88                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND                     , 0);
89                 sizerH5->Add( btnColorTable                                                             , 0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
90                 //sizerH5->Add( new wxStaticText(panel, -1,_T("      "))                        , 1, wxALL|wxEXPAND, 0);
91         }
92         else
93         {
94                 sizer    = new wxFlexGridSizer(1);
95
96                 sizerH4 = new wxFlexGridSizer(10);
97                 sizerH5 = new wxFlexGridSizer(10);
98
99                 sizerH4->Add( _positionX        , 1, wxGROW                                                      , 0 );
100                 sizerH4->Add( ckBoxX            , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
101                 sizerH4->Add( _positionY        , 1, wxGROW                                                      , 0 );
102                 sizerH4->Add( ckBoxY            , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
103                 sizerH4->Add( _positionZ        , 1, wxGROW                                                      , 0 );
104                 sizerH4->Add( ckBoxZ            , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
105                 sizerH4->Add( btnColorTable     , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
106
107                 sizerH5->Add( _ckBoxXYZ                                                                 , 1, wxALL|wxEXPAND, 0);
108                 sizerH5->Add( _ckBoxPlane                                                               , 1, wxALL|wxEXPAND, 0);
109                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND, 0);
110         }
111         
112
113         //EED 28 sep 2006
114         //      wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10);
115         //      wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10);
116
117         //      sizerH4->Add( ckBoxX            , 1, wxALL|wxEXPAND, 0);
118         //      sizerH4->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
119         //      sizerH4->Add( _positionX        , 1, wxALL|wxEXPAND, 0);
120
121         //      sizerH5->Add( ckBoxY            , 1, wxALL|wxEXPAND, 0);
122         //      sizerH5->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
123         //      sizerH5->Add( _positionY        , 1, wxALL|wxEXPAND, 0);
124
125         //      sizerH6->Add( ckBoxZ            , 1, wxALL|wxEXPAND, 0);
126         //      sizerH6->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
127         //      sizerH6->Add( _positionZ        , 1, wxALL|wxEXPAND, 0);
128
129         //      sizerH7->Add( _ckBoxXYZ         , 1, wxALL|wxEXPAND, 0);
130         //      sizerH7->Add( _ckBoxPlane       , 1, wxALL|wxEXPAND, 0);
131
132         //      sizer->Add( sizerH4                     , 1, wxALL|wxEXPAND, 2);
133         //      sizer->Add( sizerH5                     , 1, wxALL|wxEXPAND, 2);
134         //      sizer->Add( sizerH6                     , 1, wxALL|wxEXPAND, 2);
135         //      sizer->Add( sizerH7                     , 1, wxALL|wxEXPAND, 2);
136
137                 
138         //      sizerH5->Add( ckBoxX                            ,  1, wxALL|wxEXPAND, 0);
139         //      sizerH5->Add( ckBoxY                            ,  1, wxALL|wxEXPAND, 0);
140         //      sizerH5->Add( ckBoxZ                            ,  1, wxALL|wxEXPAND, 0);
141
142         sizer->Add( sizerH4,  1, wxALL|wxGROW,  2);
143         sizer->Add( sizerH5,  1, wxALL|wxEXPAND,2);
144
145         panel->SetSize(400,50);
146         panel->SetAutoLayout(true);
147         panel->SetSizer(sizer);
148         panel->Layout();
149
150         panel->SetEventHandler((wxEvtHandler*)this);
151
152         //this->UpdateControlPanel();
153 }
154 void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel()
155 {
156
157         vtkMPRBaseData* basedata = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData();
158         if(basedata != NULL){
159
160                 /*int maxX = basedata->GetMaxPositionX();
161                 int maxY = basedata->GetMaxPositionY();
162                 int maxZ = basedata->GetMaxPositionZ();*/
163                 int x0,x1,y0,y1,z0,z1;
164
165                 basedata->GetDimensionExtention(&x0,&x1,&y0,&y1,&z0,&z1);
166                 /*int maxX = x1-x0;//basedata->GetMaxPositionX();
167                 int maxY = y1-y0;//basedata->GetMaxPositionY();
168                 int maxZ = z1-z0;//basedata->GetMaxPositionZ();*/
169
170                 
171
172                 //std::cout<<"wxVtkMPR3DViewCntrlPanel::UpdateControlPanel() maxX="<<maxX<<" maxY="<<maxY<<" maxZ="<<maxZ<<std::endl;
173                 /*_positionX->SetRange(0,maxX);
174                 _positionY->SetRange(0,maxY);
175                 _positionZ->SetRange(0,maxZ);*/
176                 _positionX->SetRange(x0,x1);
177                 _positionY->SetRange(y0,y1);
178                 _positionZ->SetRange(z0,z1);
179
180                 _positionX->SetValue((x0+x1)/2);
181                 _positionY->SetValue((y0+y1)/2);
182                 _positionZ->SetValue((z0+z1)/2);
183
184                 _positionX->Update();
185                 _positionY->Update();
186                 _positionZ->Update();
187                 this->Update();
188         }
189         
190 }
191 //-------------------------------------------------------------------
192 wxVtkMPR3DViewCntrlPanel::~wxVtkMPR3DViewCntrlPanel()
193 {
194 }
195 //-------------------------------------------------------------------
196 void wxVtkMPR3DViewCntrlPanel::Refresh()
197 {
198 //      wxPanel::Refresh();
199         _positionX->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX( )) );
200         _positionY->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY( )) );
201         _positionZ->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ( )) );
202 }
203 /*
204 //-------------------------------------------------------------------
205 int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
206 {
207         int idTissue=-1;
208         if (_surfA->GetValue()==true)
209         {
210                 idTissue=0;
211         }
212         if (_surfB->GetValue()==true)
213         {
214                 idTissue=1;
215         }
216         if (_surfC->GetValue()==true)
217         {
218                 idTissue=2;
219         }
220         if (_surfD->GetValue()==true)
221         {
222                 idTissue=3;
223         }
224
225         return idTissue;
226 }
227 */
228
229 //-------------------------------------------------------------------
230 void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
231 {
232         
233         vtkColorTransferFunction *ctfun                 = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction(); 
234         std::vector<double> *ctfunVectorPoint   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
235         std::vector<double> *ctfunVectorRed             = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
236         std::vector<double> *ctfunVectorGreen   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorGreen();
237         std::vector<double> *ctfunVectorBlue    =   this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorBlue();
238
239         //void *p=this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer(); // JPRx
240
241
242         int i=0,xi,r,g,b;
243         
244         vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
245
246         HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2);
247         
248                 
249         hDlg->erasePointsTransferenceFunction();        
250         int ctfSize=ctfunVectorRed->size();
251         if(ctfSize>0)
252         {
253 // MACHETE  OJO Eduardo
254                 int i=0;
255                         while(i<ctfSize)
256                         {
257                                 double gr       = (*ctfunVectorPoint)[i];
258                                 double r        = (*ctfunVectorRed)[i];
259                                 double g        = (*ctfunVectorGreen)[i];
260                                 double b        = (*ctfunVectorBlue)[i];
261                         
262                                 hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255));
263                                 i++;
264                         }
265         }
266
267         //
268         // when the user had changed the transference Function
269         //
270         
271         //setting variables if the user wants to do refresh
272         
273         hDlg->setCTF(ctfun);
274         //hDlg->setMPR3Dview(_wxvtkmpr3Dview);
275         
276         if(hDlg->ShowModal()== wxID_OK )
277         {       
278                 
279                 // -- vtkColorTransferFunction  --
280                         ctfun->RemoveAllPoints ();
281                         //clean colors
282                         ctfunVectorPoint->clear();
283                         ctfunVectorRed->clear();
284                         ctfunVectorGreen->clear();
285                         ctfunVectorBlue->clear();
286
287                         int nCTFpoints=hDlg->getSizeBarColor();
288 // Machete .. Ojo Eduardo
289                         i=0;    
290                         while(i<nCTFpoints)
291                         {
292                                 hDlg->getDataBarColorPoint(i,xi,r,g,b);
293                                 /*
294                                 if (i==0)
295                                 {
296                                         hDlg->getDataBarColorPoint(1,xi,r,g,b);
297                                 } 
298                                 if (i==nCTFpoints)
299                                 {
300                                         hDlg->getDataBarColorPoint(i-1,xi,r,g,b);
301                                 } 
302                                 */
303                                 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
304                                 ctfunVectorPoint->push_back(xi);
305                                 ctfunVectorRed->push_back(r/255.0);
306                                 ctfunVectorGreen->push_back(g/255.0);
307                                 ctfunVectorBlue->push_back(b/255.0);
308                                 i++;
309                                 
310                         }
311                         
312         }
313         
314         else
315         {
316                 
317                 if(hDlg->getRefreshed())
318                 {
319                         // -- vtkColorTransferFunction  --
320                         ctfun->RemoveAllPoints ();
321                         
322                         int i=0;
323                         int size=ctfunVectorPoint->size();
324                         
325                         for(i=0;i<size;i++)
326                         {
327                                 double grey2=(*ctfunVectorPoint)[i];
328                                 double red =(*ctfunVectorRed)[i];
329                                 double green =(*ctfunVectorGreen)[i];
330                                 double blue = (*ctfunVectorBlue)[i];
331                                 ctfun->AddRGBPoint(grey2,red,green,blue);
332                         }
333                  }      
334                  
335         }
336
337  hDlg->Destroy();
338 }
339
340
341 //-------------------------------------------------------------------
342 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event)
343 {
344         
345         _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() );
346         _wxvtkmpr3Dview->Refresh();
347         
348         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
349
350         try{
351                 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
352         }catch(char* e){
353                 std::cout<<e<<std::endl;
354         }
355 }
356 //-------------------------------------------------------------------
357 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
358 {
359         _wxvtkmpr3Dview->VisibleImageActor(1, event.IsChecked() );
360         _wxvtkmpr3Dview->Refresh();
361
362         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
363         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
364
365 }
366 //-------------------------------------------------------------------
367 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
368 {
369         _wxvtkmpr3Dview->VisibleImageActor(2, event.IsChecked() );
370         _wxvtkmpr3Dview->Refresh();
371
372         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
373         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
374 }
375
376 //-------------------------------------------------------------------
377 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
378 {
379
380         _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
381 }
382
383 //-------------------------------------------------------------------
384 void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event)
385 {
386         _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked());
387
388 }
389
390 //-------------------------------------------------------------------
391 void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event)
392 {
393         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() );
394         _wxvtkmpr3Dview->RefreshView();
395
396         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
397         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
398 }
399 //-------------------------------------------------------------------
400 void wxVtkMPR3DViewCntrlPanel::OnPositionY(wxScrollEvent& event)
401 {
402         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( _positionY->GetValue() );
403         _wxvtkmpr3Dview->RefreshView();
404         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
405         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
406 }
407 //-------------------------------------------------------------------
408 void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event)
409 {
410         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( _positionZ->GetValue() );
411         _wxvtkmpr3Dview->RefreshView();
412         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
413         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
414 }
415
416 //-------------------------------------------------------------------
417 bool wxVtkMPR3DViewCntrlPanel::GetVisibleX()
418 {
419         return ckBoxX->GetValue();
420 }
421
422 //-------------------------------------------------------------------
423 bool wxVtkMPR3DViewCntrlPanel::GetVisibleY()
424 {
425         return ckBoxY->GetValue();
426 }
427
428 //-------------------------------------------------------------------
429 bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ()
430 {
431         return ckBoxZ->GetValue();
432 }
433
434 //-------------------------------------------------------------------
435 bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ()
436 {
437         return _ckBoxXYZ->GetValue();
438 }
439
440 //-------------------------------------------------------------------
441 bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
442 {
443         return _ckBoxPlane->GetValue();
444 }
445
446 //-------------------------------------------------------------------
447 void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
448 {
449         ckBoxX->SetValue(value);
450         
451         _wxvtkmpr3Dview->VisibleImageActor(0, value );
452         _wxvtkmpr3Dview->Refresh();
453
454         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
455         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
456 }
457
458 //-------------------------------------------------------------------
459 void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
460 {
461         ckBoxY->SetValue(value);
462         
463         _wxvtkmpr3Dview->VisibleImageActor(1, value );
464         _wxvtkmpr3Dview->Refresh();
465
466         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
467         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
468 }
469
470 //-------------------------------------------------------------------
471 void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
472 {
473         ckBoxZ->SetValue(value);
474
475         _wxvtkmpr3Dview->VisibleImageActor(2, value );
476         _wxvtkmpr3Dview->Refresh();
477
478         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
479         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
480 }
481
482 //-------------------------------------------------------------------
483 void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value)
484 {
485         _ckBoxXYZ->SetValue(value);
486         _wxvtkmpr3Dview->VisiblePointWidget(value);
487
488 }
489
490 //-------------------------------------------------------------------
491 void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value)
492 {
493         _ckBoxPlane->SetValue(value);
494         _wxvtkmpr3Dview->VisiblePlaneWidget(value);
495 }