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