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