1 /*# ---------------------------------------------------------------------
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 # This software is governed by the CeCILL-B license under French law and
10 # abiding by the rules of distribution of free software. You can use,
11 # modify and/ or redistribute the software under the terms of the CeCILL-B
12 # license as circulated by CEA, CNRS and INRIA at the following URL
13 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 # or in the file LICENSE.txt.
16 # As a counterpart to the access to the source code and rights to copy,
17 # modify and redistribute granted by the license, users are provided only
18 # with a limited warranty and the software's author, the holder of the
19 # economic rights, and the successive licensors have only limited
22 # The fact that you are presently reading this means that you have had
23 # knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
26 #include "wxVtkMPR3DViewCntrlPanel.h"
28 #include "HistogramDialog.h"
29 #include <wx/combobox.h>
31 wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align )
34 wxPanel *panel = this;
35 _wxvtkmpr3Dview = wxvtkmpr3Dview;
37 /*int maxX = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionX();
38 int maxY = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionY();
39 int maxZ = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionZ();*/
45 //CPR: Modified 30 Nov 2009
47 wxCheckBox *ckBoxX = new wxCheckBox(panel,-1,_T("X "));
48 _positionX = new wxSlider(panel,-1,maxX/2,0,maxX, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
49 wxCheckBox *ckBoxY = new wxCheckBox(panel,-1,_T("Y "));
50 _positionY = new wxSlider(panel,-1,maxY/2,0,maxY, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
51 wxCheckBox *ckBoxZ = new wxCheckBox(panel,-1,_T("Z "));
52 _positionZ = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition, wxSize(150,40), wxSL_HORIZONTAL | wxSL_LABELS);
53 wxButton *btnColorTable = new wxButton (panel, -1, _T("Edit Color Table") );
56 _ckBoxX = new wxCheckBox(panel,-1,_T("X "));
57 _positionX = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS);
58 _ckBoxY = new wxCheckBox(panel,-1,_T("Y "));
59 _positionY = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS);
60 _ckBoxZ = new wxCheckBox(panel,-1,_T("Z "));
61 _positionZ = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxSize(300,40), wxSL_HORIZONTAL | wxSL_LABELS);
63 _ckBoxXYZ = new wxCheckBox(panel,-1,_T("XYZ axis "));
64 _ckBoxPlane = new wxCheckBox(panel,-1,_T("Plane"));
65 ////EED 05Nov2012 _ckBox_BW_Color_Plane = new wxCheckBox(panel,-1,_T("GL/Color"));
66 wxButton *btnColorTable = new wxButton (panel, -1, _T("Color table") );
67 wxButton *btnFreePlanesOrtho= new wxButton (panel, -1, _T("Orthogonal planes GL") );
69 _ckFreePlaneX= new wxCheckBox(panel,-1,_T("X "));;
70 _ckFreePlaneY= new wxCheckBox(panel,-1,_T("Y "));;
71 _ckFreePlaneZ= new wxCheckBox(panel,-1,_T("Z "));;
72 _ckFreePlaneInteraction= new wxCheckBox(panel,-1,_T("Interaction planes GL"));;
74 //EED: If-else statements added 30 Nov 2009
75 _ckFreePlaneX->SetValue(false);
76 _ckFreePlaneY->SetValue(false);
77 _ckFreePlaneZ->SetValue(false);
78 _ckFreePlaneInteraction->SetValue(true);
80 _ckBoxX->SetValue(false);
81 _ckBoxY->SetValue(false);
82 _ckBoxZ->SetValue(false);
83 _ckBoxXYZ->SetValue(false);
84 ////EED 05Nov2012 _ckBox_BW_Color_Plane->SetValue(true);
85 _ckBoxPlane->SetValue(false);
87 _positionX->SetSize(400,20);
88 _positionY->SetSize(400,20);
89 _positionZ->SetSize(400,20);
92 _cbStereo = new wxComboBox(panel, -1, _T(""), wxDefaultPosition, wxDefaultSize, 0, NULL,wxCB_READONLY );
93 _cbStereo->Append(_T(" * NO STEREO"));
94 _cbStereo->Append(_T(" STEREO CRYSTAL EYES"));
95 _cbStereo->Append(_T(" STEREO RED BLUE"));
96 _cbStereo->Append(_T(" STEREO INTERLACED"));
97 _cbStereo->Append(_T(" STEREO LEFT"));
98 _cbStereo->Append(_T(" STEREO RIGHT"));
99 _cbStereo->Append(_T(" STEREO DRESDEN"));
100 _cbStereo->Append(_T(" * STEREO ANAGLYPH"));
101 _cbStereo->Append(_T(" STEREO CHECKERBOARD"));
102 _cbStereo->Select(0);
107 Connect(_ckBoxX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX );
108 Connect(_positionX->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionX );
109 Connect(_ckBoxY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY );
110 Connect(_positionY->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionY );
111 Connect(_ckBoxZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ );
112 Connect(_positionZ->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionZ );
114 Connect(btnColorTable->GetId() , wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnEditColorTable );
115 Connect(_ckBoxXYZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ );
116 Connect(_ckBoxPlane->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane );
117 ////EED 05Nov2012 Connect(_ckBox_BW_Color_Plane->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane );
119 Connect(_ckFreePlaneX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX);
120 Connect(_ckFreePlaneY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY);
121 Connect(_ckFreePlaneZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ);
122 Connect(btnFreePlanesOrtho->GetId() , wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho );
123 Connect(_ckFreePlaneInteraction->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction );
125 Connect(_cbStereo->GetId() , wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnSetStereo );
128 wxFlexGridSizer *sizer;
130 // wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
131 // wxBoxSizer *sizerH4 = new wxBoxSizer(wxHORIZONTAL);
133 //CPR: If-else statements added 30 Nov 2009
134 wxFlexGridSizer *sizerH4;
135 wxFlexGridSizer *sizerH5;
136 wxFlexGridSizer *sizerH6;
140 sizer = new wxFlexGridSizer(4);
141 sizerH4 = new wxFlexGridSizer(3);
143 sizerH4->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
144 sizerH4->Add( new wxStaticText(panel, -1,_T("GL")) , 1, wxALL|wxEXPAND, 0);
145 sizerH4->Add( new wxStaticText(panel, -1,_T("Color ")) , 1, wxALL|wxEXPAND, 0);
147 sizerH4->Add( _positionX ,1,wxGROW , 0 );
148 sizerH4->Add( _ckFreePlaneX, 1, wxALL|wxEXPAND, 0);
149 sizerH4->Add( _ckBoxX ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
151 sizerH4->Add( _positionY ,1,wxGROW, 0 );
152 sizerH4->Add( _ckFreePlaneY, 1, wxALL|wxEXPAND, 0);
153 sizerH4->Add( _ckBoxY ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
155 sizerH4->Add( _positionZ ,1,wxGROW, 0 );
156 sizerH4->Add( _ckFreePlaneZ, 1, wxALL|wxEXPAND, 0);
157 sizerH4->Add( _ckBoxZ ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
163 sizerH5 = new wxFlexGridSizer(1);
164 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
165 sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0);
166 sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0);
167 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
168 ////EED 05Nov2012 sizerH5->Add( _ckBox_BW_Color_Plane , 1, wxALL|wxEXPAND, 0);
169 sizerH5->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND, 0);
170 sizerH5->Add( btnFreePlanesOrtho , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
171 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
172 sizerH5->Add( btnColorTable , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
173 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
174 sizerH5->Add( _cbStereo, 1, wxALL|wxEXPAND, 0);
176 sizer->Add( sizerH4, 1, wxALL|wxGROW, 2);
177 sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2);
181 sizer = new wxFlexGridSizer(1);
183 sizerH4 = new wxFlexGridSizer(10);
184 sizerH5 = new wxFlexGridSizer(10);
185 sizerH6 = new wxFlexGridSizer(10);
187 sizerH4->Add( _positionX , 1, wxGROW , 0 );
188 sizerH4->Add( _ckBoxX , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
189 sizerH4->Add( _positionY , 1, wxGROW , 0 );
190 sizerH4->Add( _ckBoxY , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
191 sizerH4->Add( _positionZ , 1, wxGROW , 0 );
192 sizerH4->Add( _ckBoxZ , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
193 sizerH4->Add( btnColorTable , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
195 sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0);
196 sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0);
197 ////EED 05Nov2012 sizerH5->Add( _ckBox_BW_Color_Plane , 1, wxALL|wxEXPAND, 0);
198 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
200 sizerH6 = new wxFlexGridSizer(10);
201 sizerH6->Add( _ckFreePlaneX , 1, wxALL|wxEXPAND, 0);
202 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
203 sizerH6->Add( _ckFreePlaneY , 1, wxALL|wxEXPAND, 0);
204 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
205 sizerH6->Add( _ckFreePlaneZ , 1, wxALL|wxEXPAND, 0);
206 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
207 sizerH6->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND, 0);
208 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
209 sizerH6->Add( btnFreePlanesOrtho , 0 , wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
210 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
211 sizerH6->Add( _cbStereo, 1, wxALL|wxEXPAND, 0);
213 sizer->Add( sizerH4, 1, wxALL|wxGROW, 2);
214 sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2);
215 sizer->Add( sizerH6, 1, wxALL|wxEXPAND,2);
222 // wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10);
223 // wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10);
225 // sizerH4->Add( ckBoxX , 1, wxALL|wxEXPAND, 0);
226 // sizerH4->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0);
227 // sizerH4->Add( _positionX , 1, wxALL|wxEXPAND, 0);
229 // sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0);
230 // sizerH5->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0);
231 // sizerH5->Add( _positionY , 1, wxALL|wxEXPAND, 0);
233 // sizerH6->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0);
234 // sizerH6->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0);
235 // sizerH6->Add( _positionZ , 1, wxALL|wxEXPAND, 0);
237 // sizerH7->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0);
238 // sizerH7->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0);
240 // sizer->Add( sizerH4 , 1, wxALL|wxEXPAND, 2);
241 // sizer->Add( sizerH5 , 1, wxALL|wxEXPAND, 2);
242 // sizer->Add( sizerH6 , 1, wxALL|wxEXPAND, 2);
243 // sizer->Add( sizerH7 , 1, wxALL|wxEXPAND, 2);
246 // sizerH5->Add( ckBoxX , 1, wxALL|wxEXPAND, 0);
247 // sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0);
248 // sizerH5->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0);
251 panel->SetSize(400,50);
252 panel->SetAutoLayout(true);
253 panel->SetSizer(sizer);
256 panel->SetEventHandler((wxEvtHandler*)this);
258 //this->UpdateControlPanel();
262 //-------------------------------------------------------------------
263 void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel()
265 vtkMPRBaseData* basedata = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData();
266 if(basedata != NULL){
268 vtkImageData* img = basedata->GetImageData();
269 int x0,x1,y0,y1,z0,z1;
272 img->GetExtent(x0,x1,y0,y1,z0,z1);
273 _positionX->SetRange(x0,x1);
274 _positionY->SetRange(y0,y1);
275 _positionZ->SetRange(z0,z1);
277 _positionX->SetValue((x0+x1)/2);
278 _positionY->SetValue((y0+y1)/2);
279 _positionZ->SetValue((z0+z1)/2);
281 //EED 12April2012 This make a floting window in MacOs and Linux with for windows
282 // _positionX->Update();
283 // _positionY->Update();
284 // _positionZ->Update();
292 //-------------------------------------------------------------------
293 wxVtkMPR3DViewCntrlPanel::~wxVtkMPR3DViewCntrlPanel()
297 //-------------------------------------------------------------------
298 void wxVtkMPR3DViewCntrlPanel::Refresh()
300 // wxPanel::Refresh();
301 _positionX->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX( )) );
302 _positionY->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY( )) );
303 _positionZ->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ( )) );
307 //-------------------------------------------------------------------
308 int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
311 if (_surfA->GetValue()==true)
315 if (_surfB->GetValue()==true)
319 if (_surfC->GetValue()==true)
323 if (_surfD->GetValue()==true)
332 //-------------------------------------------------------------------
333 //void wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane(wxCommandEvent& event)
335 // printf ("EED wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane ...... NOT Implemented\n ");
339 //-------------------------------------------------------------------
340 void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
343 vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
345 if ( imagedata->GetScalarType()!=VTK_UNSIGNED_SHORT )
347 wxMessageDialog windowMessage1(NULL,_T("This option is just available for UNSIGNED SHORT images."), _T("Alert !"), wxOK);
348 windowMessage1.ShowModal();
352 vtkColorTransferFunction *ctfun = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction();
353 std::vector<double> *ctfunVectorPoint = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
354 std::vector<double> *ctfunVectorRed = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
355 std::vector<double> *ctfunVectorGreen = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorGreen();
356 std::vector<double> *ctfunVectorBlue = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorBlue();
358 //void *p=this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer(); // JPRx
363 HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2);
366 hDlg->erasePointsTransferenceFunction();
367 int ctfSize=ctfunVectorRed->size();
370 // MACHETE OJO Eduardo
374 double gr = (*ctfunVectorPoint)[i];
375 double r = (*ctfunVectorRed)[i];
376 double g = (*ctfunVectorGreen)[i];
377 double b = (*ctfunVectorBlue)[i];
379 hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255));
386 // when the user had changed the transference Function
389 //setting variables if the user wants to do refresh
392 //hDlg->setMPR3Dview(_wxvtkmpr3Dview);
394 if(hDlg->ShowModal()== wxID_OK )
397 // -- vtkColorTransferFunction --
398 ctfun->RemoveAllPoints ();
400 ctfunVectorPoint->clear();
401 ctfunVectorRed->clear();
402 ctfunVectorGreen->clear();
403 ctfunVectorBlue->clear();
405 int nCTFpoints=hDlg->getSizeBarColor();
406 // Machete .. Ojo Eduardo
410 hDlg->getDataBarColorPoint(i,xi,r,g,b);
414 hDlg->getDataBarColorPoint(1,xi,r,g,b);
418 hDlg->getDataBarColorPoint(i-1,xi,r,g,b);
421 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
422 ctfunVectorPoint->push_back(xi);
423 ctfunVectorRed->push_back(r/255.0);
424 ctfunVectorGreen->push_back(g/255.0);
425 ctfunVectorBlue->push_back(b/255.0);
435 if(hDlg->getRefreshed())
437 // -- vtkColorTransferFunction --
438 ctfun->RemoveAllPoints ();
441 int size=ctfunVectorPoint->size();
445 double grey2=(*ctfunVectorPoint)[i];
446 double red =(*ctfunVectorRed)[i];
447 double green =(*ctfunVectorGreen)[i];
448 double blue = (*ctfunVectorBlue)[i];
449 ctfun->AddRGBPoint(grey2,red,green,blue);
459 //-------------------------------------------------------------------
460 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(wxCommandEvent& event)
462 _wxvtkmpr3Dview->FreePlaneVisible( 1, event.IsChecked() );
463 _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
466 //-------------------------------------------------------------------
467 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event)
469 _wxvtkmpr3Dview->FreePlaneVisible( 2, event.IsChecked() );
470 _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
474 //-------------------------------------------------------------------
475 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ(wxCommandEvent& event)
477 _wxvtkmpr3Dview->FreePlaneVisible( 3, event.IsChecked() );
478 _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
482 //-------------------------------------------------------------------
483 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(wxCommandEvent& event)
485 _wxvtkmpr3Dview->FreePlaneInteraction( event.IsChecked() );
488 //-------------------------------------------------------------------
489 void wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho(wxCommandEvent& event)
491 _wxvtkmpr3Dview->SetFreePlanesOrtho();
494 //-------------------------------------------------------------------
495 void wxVtkMPR3DViewCntrlPanel::OnSetStereo(wxCommandEvent& event)
497 this->_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->SetStereo( _cbStereo->GetSelection() );
502 //-------------------------------------------------------------------
503 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event)
505 _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() );
506 _wxvtkmpr3Dview->Refresh();
508 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
511 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
513 std::cout<<e<<std::endl;
516 //-------------------------------------------------------------------
517 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
519 _wxvtkmpr3Dview->VisibleImageActor(1, event.IsChecked() );
520 _wxvtkmpr3Dview->Refresh();
522 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
523 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
526 //-------------------------------------------------------------------
527 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
529 _wxvtkmpr3Dview->VisibleImageActor(2, event.IsChecked() );
530 _wxvtkmpr3Dview->Refresh();
532 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
533 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
536 //-------------------------------------------------------------------
537 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
540 _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
543 //-------------------------------------------------------------------
544 void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event)
546 _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked());
550 //-------------------------------------------------------------------
551 void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event)
553 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() );
554 _wxvtkmpr3Dview->RefreshView();
556 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
557 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
559 //-------------------------------------------------------------------
560 void wxVtkMPR3DViewCntrlPanel::OnPositionY(wxScrollEvent& event)
562 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( _positionY->GetValue() );
563 _wxvtkmpr3Dview->RefreshView();
564 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
565 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
567 //-------------------------------------------------------------------
568 void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event)
570 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( _positionZ->GetValue() );
571 _wxvtkmpr3Dview->RefreshView();
572 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
573 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
578 //-------------------------------------------------------------------
579 bool wxVtkMPR3DViewCntrlPanel::GetVisibleX()
581 return _ckBoxX->GetValue();
584 //-------------------------------------------------------------------
585 bool wxVtkMPR3DViewCntrlPanel::GetVisibleY()
587 return _ckBoxY->GetValue();
590 //-------------------------------------------------------------------
591 bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ()
593 return _ckBoxZ->GetValue();
596 //-------------------------------------------------------------------
597 bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ()
599 return _ckBoxXYZ->GetValue();
602 //-------------------------------------------------------------------
604 //bool wxVtkMPR3DViewCntrlPanel::Get_BW_Color_Plane()
606 // return _ckBox_BW_Color_Plane;
609 //-------------------------------------------------------------------
610 bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
612 return _ckBoxPlane->GetValue();
615 //-------------------------------------------------------------------
616 void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
618 _ckBoxX->SetValue(value);
620 _wxvtkmpr3Dview->VisibleImageActor(0, value );
621 _wxvtkmpr3Dview->Refresh();
623 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
624 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
627 //-------------------------------------------------------------------
628 void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
630 _ckBoxY->SetValue(value);
632 _wxvtkmpr3Dview->VisibleImageActor(1, value );
633 _wxvtkmpr3Dview->Refresh();
635 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
636 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
639 //-------------------------------------------------------------------
640 void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
642 _ckBoxZ->SetValue(value);
644 _wxvtkmpr3Dview->VisibleImageActor(2, value );
645 _wxvtkmpr3Dview->Refresh();
647 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
648 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
651 //-------------------------------------------------------------------
652 void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value)
654 _ckBoxXYZ->SetValue(value);
655 _wxvtkmpr3Dview->VisiblePointWidget(value);
659 //-------------------------------------------------------------------
660 void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value)
662 _ckBoxPlane->SetValue(value);
663 _wxvtkmpr3Dview->VisiblePlaneWidget(value);