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