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