]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx
open dialog y ya funciona el NV
[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
264                                 i++;
265                         }
266         }
267
268         //
269         // when the user had changed the transference Function
270         //
271         
272         //setting variables if the user wants to do refresh
273         
274         hDlg->setCTF(ctfun);
275         //hDlg->setMPR3Dview(_wxvtkmpr3Dview);
276         
277         if(hDlg->ShowModal()== wxID_OK )
278         {       
279                 
280                 // -- vtkColorTransferFunction  --
281                         ctfun->RemoveAllPoints ();
282                         //clean colors
283                         ctfunVectorPoint->clear();
284                         ctfunVectorRed->clear();
285                         ctfunVectorGreen->clear();
286                         ctfunVectorBlue->clear();
287
288                         int nCTFpoints=hDlg->getSizeBarColor();
289 // Machete .. Ojo Eduardo
290                         i=0;    
291                         while(i<nCTFpoints)
292                         {
293                                 hDlg->getDataBarColorPoint(i,xi,r,g,b);
294                                 /*
295                                 if (i==0)
296                                 {
297                                         hDlg->getDataBarColorPoint(1,xi,r,g,b);
298                                 } 
299                                 if (i==nCTFpoints)
300                                 {
301                                         hDlg->getDataBarColorPoint(i-1,xi,r,g,b);
302                                 } 
303                                 */
304                                 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
305                                 ctfunVectorPoint->push_back(xi);
306                                 ctfunVectorRed->push_back(r/255.0);
307                                 ctfunVectorGreen->push_back(g/255.0);
308                                 ctfunVectorBlue->push_back(b/255.0);
309                                 i++;
310                                 
311                         }
312                         
313         }
314         
315         else
316         {
317                 
318                 if(hDlg->getRefreshed())
319                 {
320                         // -- vtkColorTransferFunction  --
321                         ctfun->RemoveAllPoints ();
322                         
323                         int i=0;
324                         int size=ctfunVectorPoint->size();
325                         
326                         for(i=0;i<size;i++)
327                         {
328                                 double grey2=(*ctfunVectorPoint)[i];
329                                 double red =(*ctfunVectorRed)[i];
330                                 double green =(*ctfunVectorGreen)[i];
331                                 double blue = (*ctfunVectorBlue)[i];
332                                 ctfun->AddRGBPoint(grey2,red,green,blue);
333                         }
334                  }      
335                  
336         }
337
338  hDlg->Destroy();
339 }
340
341
342 //-------------------------------------------------------------------
343 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event)
344 {
345         
346         _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() );
347         _wxvtkmpr3Dview->Refresh();
348         
349         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
350
351         try{
352                 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
353         }catch(char* e){
354                 std::cout<<e<<std::endl;
355         }
356 }
357 //-------------------------------------------------------------------
358 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
359 {
360         _wxvtkmpr3Dview->VisibleImageActor(1, event.IsChecked() );
361         _wxvtkmpr3Dview->Refresh();
362
363         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
364         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
365
366 }
367 //-------------------------------------------------------------------
368 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
369 {
370         _wxvtkmpr3Dview->VisibleImageActor(2, event.IsChecked() );
371         _wxvtkmpr3Dview->Refresh();
372
373         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
374         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
375 }
376
377 //-------------------------------------------------------------------
378 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
379 {
380
381         _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
382 }
383
384 //-------------------------------------------------------------------
385 void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event)
386 {
387         _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked());
388
389 }
390
391 //-------------------------------------------------------------------
392 void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event)
393 {
394         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() );
395         _wxvtkmpr3Dview->RefreshView();
396
397         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
398         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
399 }
400 //-------------------------------------------------------------------
401 void wxVtkMPR3DViewCntrlPanel::OnPositionY(wxScrollEvent& event)
402 {
403         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( _positionY->GetValue() );
404         _wxvtkmpr3Dview->RefreshView();
405         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
406         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
407 }
408 //-------------------------------------------------------------------
409 void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event)
410 {
411         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( _positionZ->GetValue() );
412         _wxvtkmpr3Dview->RefreshView();
413         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
414         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
415 }
416
417 //-------------------------------------------------------------------
418 bool wxVtkMPR3DViewCntrlPanel::GetVisibleX()
419 {
420         return ckBoxX->GetValue();
421 }
422
423 //-------------------------------------------------------------------
424 bool wxVtkMPR3DViewCntrlPanel::GetVisibleY()
425 {
426         return ckBoxY->GetValue();
427 }
428
429 //-------------------------------------------------------------------
430 bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ()
431 {
432         return ckBoxZ->GetValue();
433 }
434
435 //-------------------------------------------------------------------
436 bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ()
437 {
438         return _ckBoxXYZ->GetValue();
439 }
440
441 //-------------------------------------------------------------------
442 bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
443 {
444         return _ckBoxPlane->GetValue();
445 }
446
447 //-------------------------------------------------------------------
448 void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
449 {
450         ckBoxX->SetValue(value);
451         
452         _wxvtkmpr3Dview->VisibleImageActor(0, value );
453         _wxvtkmpr3Dview->Refresh();
454
455         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
456         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
457 }
458
459 //-------------------------------------------------------------------
460 void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
461 {
462         ckBoxY->SetValue(value);
463         
464         _wxvtkmpr3Dview->VisibleImageActor(1, value );
465         _wxvtkmpr3Dview->Refresh();
466
467         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
468         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
469 }
470
471 //-------------------------------------------------------------------
472 void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
473 {
474         ckBoxZ->SetValue(value);
475
476         _wxvtkmpr3Dview->VisibleImageActor(2, value );
477         _wxvtkmpr3Dview->Refresh();
478
479         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
480         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
481 }
482
483 //-------------------------------------------------------------------
484 void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value)
485 {
486         _ckBoxXYZ->SetValue(value);
487         _wxvtkmpr3Dview->VisiblePointWidget(value);
488
489 }
490
491 //-------------------------------------------------------------------
492 void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value)
493 {
494         _ckBoxPlane->SetValue(value);
495         _wxvtkmpr3Dview->VisiblePlaneWidget(value);
496 }