]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx
25a2781e3497d37acb1ab4077ea483a806b55568
[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                         _positionX->Update();
215                         _positionY->Update();
216                         _positionZ->Update();
217                         this->Update();
218                 }
219                 
220         }
221         
222 }
223 //-------------------------------------------------------------------
224 wxVtkMPR3DViewCntrlPanel::~wxVtkMPR3DViewCntrlPanel()
225 {
226 }
227 //-------------------------------------------------------------------
228 void wxVtkMPR3DViewCntrlPanel::Refresh()
229 {
230 //      wxPanel::Refresh();
231         _positionX->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX( )) );
232         _positionY->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY( )) );
233         _positionZ->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ( )) );
234 }
235 /*
236 //-------------------------------------------------------------------
237 int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
238 {
239         int idTissue=-1;
240         if (_surfA->GetValue()==true)
241         {
242                 idTissue=0;
243         }
244         if (_surfB->GetValue()==true)
245         {
246                 idTissue=1;
247         }
248         if (_surfC->GetValue()==true)
249         {
250                 idTissue=2;
251         }
252         if (_surfD->GetValue()==true)
253         {
254                 idTissue=3;
255         }
256
257         return idTissue;
258 }
259 */
260
261 //-------------------------------------------------------------------
262 void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
263 {
264         
265         vtkColorTransferFunction *ctfun                 = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction(); 
266         std::vector<double> *ctfunVectorPoint   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
267         std::vector<double> *ctfunVectorRed             = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
268         std::vector<double> *ctfunVectorGreen   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorGreen();
269         std::vector<double> *ctfunVectorBlue    =   this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorBlue();
270
271         //void *p=this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer(); // JPRx
272
273
274         int i=0,xi,r,g,b;
275         
276         vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
277
278         HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2);
279         
280                 
281         hDlg->erasePointsTransferenceFunction();                
282         int ctfSize=ctfunVectorRed->size();
283         if(ctfSize>0)
284         {
285 // MACHETE  OJO Eduardo
286                 int i=0;
287                         while(i<ctfSize)
288                         {
289                                 double gr       = (*ctfunVectorPoint)[i];
290                                 double r        = (*ctfunVectorRed)[i];
291                                 double g        = (*ctfunVectorGreen)[i];
292                                 double b        = (*ctfunVectorBlue)[i];                        
293
294                                 hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255));
295
296                                 i++;
297                         }
298         }
299
300         //
301         // when the user had changed the transference Function
302         //
303         
304         //setting variables if the user wants to do refresh
305         
306         hDlg->setCTF(ctfun);
307         //hDlg->setMPR3Dview(_wxvtkmpr3Dview);
308         
309         if(hDlg->ShowModal()== wxID_OK )
310         {       
311                 
312                 // -- vtkColorTransferFunction  --
313                         ctfun->RemoveAllPoints ();
314                         //clean colors
315                         ctfunVectorPoint->clear();
316                         ctfunVectorRed->clear();
317                         ctfunVectorGreen->clear();
318                         ctfunVectorBlue->clear();
319
320                         int nCTFpoints=hDlg->getSizeBarColor();
321 // Machete .. Ojo Eduardo
322                         i=0;    
323                         while(i<nCTFpoints)
324                         {
325                                 hDlg->getDataBarColorPoint(i,xi,r,g,b);
326                                 /*
327                                 if (i==0)
328                                 {
329                                         hDlg->getDataBarColorPoint(1,xi,r,g,b);
330                                 } 
331                                 if (i==nCTFpoints)
332                                 {
333                                         hDlg->getDataBarColorPoint(i-1,xi,r,g,b);
334                                 } 
335                                 */
336                                 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
337                                 ctfunVectorPoint->push_back(xi);
338                                 ctfunVectorRed->push_back(r/255.0);
339                                 ctfunVectorGreen->push_back(g/255.0);
340                                 ctfunVectorBlue->push_back(b/255.0);
341                                 i++;
342                                 
343                         }
344                         
345         }
346         
347         else
348         {
349                 
350                 if(hDlg->getRefreshed())
351                 {
352                         // -- vtkColorTransferFunction  --
353                         ctfun->RemoveAllPoints ();
354                         
355                         int i=0;
356                         int size=ctfunVectorPoint->size();
357                         
358                         for(i=0;i<size;i++)
359                         {
360                                 double grey2=(*ctfunVectorPoint)[i];
361                                 double red =(*ctfunVectorRed)[i];
362                                 double green =(*ctfunVectorGreen)[i];
363                                 double blue = (*ctfunVectorBlue)[i];
364                                 ctfun->AddRGBPoint(grey2,red,green,blue);
365                         }
366                  }      
367                  
368         }
369
370  hDlg->Destroy();
371 }
372
373
374 //-------------------------------------------------------------------
375 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(wxCommandEvent& event)
376 {
377         _wxvtkmpr3Dview->FreePlaneVisible( 1, event.IsChecked() );
378         _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
379 }
380
381 //-------------------------------------------------------------------
382 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event)
383 {
384         _wxvtkmpr3Dview->FreePlaneVisible(  2, event.IsChecked() );
385         _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
386 }
387
388
389 //-------------------------------------------------------------------
390 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ(wxCommandEvent& event)
391 {
392         _wxvtkmpr3Dview->FreePlaneVisible(  3, event.IsChecked() );
393         _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
394 }
395
396
397 //-------------------------------------------------------------------
398 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(wxCommandEvent& event)
399 {
400         _wxvtkmpr3Dview->FreePlaneInteraction(  event.IsChecked() );
401 }
402
403
404 //-------------------------------------------------------------------
405 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event)
406 {
407         
408         _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() );
409         _wxvtkmpr3Dview->Refresh();
410         
411         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
412
413         try{
414                 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
415         }catch(char* e){
416                 std::cout<<e<<std::endl;
417         }
418 }
419 //-------------------------------------------------------------------
420 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
421 {
422         _wxvtkmpr3Dview->VisibleImageActor(1, event.IsChecked() );
423         _wxvtkmpr3Dview->Refresh();
424
425         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
426         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
427
428 }
429 //-------------------------------------------------------------------
430 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
431 {
432         _wxvtkmpr3Dview->VisibleImageActor(2, event.IsChecked() );
433         _wxvtkmpr3Dview->Refresh();
434
435         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
436         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
437 }
438
439 //-------------------------------------------------------------------
440 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
441 {
442
443         _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
444 }
445
446 //-------------------------------------------------------------------
447 void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event)
448 {
449         _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked());
450
451 }
452
453 //-------------------------------------------------------------------
454 void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event)
455 {
456         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() );
457         _wxvtkmpr3Dview->RefreshView();
458
459         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
460         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
461 }
462 //-------------------------------------------------------------------
463 void wxVtkMPR3DViewCntrlPanel::OnPositionY(wxScrollEvent& event)
464 {
465         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( _positionY->GetValue() );
466         _wxvtkmpr3Dview->RefreshView();
467         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
468         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
469 }
470 //-------------------------------------------------------------------
471 void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event)
472 {
473         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( _positionZ->GetValue() );
474         _wxvtkmpr3Dview->RefreshView();
475         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
476         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
477 }
478
479 //-------------------------------------------------------------------
480 bool wxVtkMPR3DViewCntrlPanel::GetVisibleX()
481 {
482         return ckBoxX->GetValue();
483 }
484
485 //-------------------------------------------------------------------
486 bool wxVtkMPR3DViewCntrlPanel::GetVisibleY()
487 {
488         return ckBoxY->GetValue();
489 }
490
491 //-------------------------------------------------------------------
492 bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ()
493 {
494         return ckBoxZ->GetValue();
495 }
496
497 //-------------------------------------------------------------------
498 bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ()
499 {
500         return _ckBoxXYZ->GetValue();
501 }
502
503 //-------------------------------------------------------------------
504 bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
505 {
506         return _ckBoxPlane->GetValue();
507 }
508
509 //-------------------------------------------------------------------
510 void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
511 {
512         ckBoxX->SetValue(value);
513         
514         _wxvtkmpr3Dview->VisibleImageActor(0, value );
515         _wxvtkmpr3Dview->Refresh();
516
517         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
518         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
519 }
520
521 //-------------------------------------------------------------------
522 void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
523 {
524         ckBoxY->SetValue(value);
525         
526         _wxvtkmpr3Dview->VisibleImageActor(1, value );
527         _wxvtkmpr3Dview->Refresh();
528
529         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
530         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
531 }
532
533 //-------------------------------------------------------------------
534 void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
535 {
536         ckBoxZ->SetValue(value);
537
538         _wxvtkmpr3Dview->VisibleImageActor(2, value );
539         _wxvtkmpr3Dview->Refresh();
540
541         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
542         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
543 }
544
545 //-------------------------------------------------------------------
546 void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value)
547 {
548         _ckBoxXYZ->SetValue(value);
549         _wxvtkmpr3Dview->VisiblePointWidget(value);
550
551 }
552
553 //-------------------------------------------------------------------
554 void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value)
555 {
556         _ckBoxPlane->SetValue(value);
557         _wxvtkmpr3Dview->VisiblePlaneWidget(value);
558 }