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