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 _ckBoxOutline= new wxCheckBox(panel,-1,_T("Outline"));
88 _ckBoxOutline->SetValue(true);
91 _ckBoxBackGroundBlack= new wxCheckBox(panel,-1,_T("Background Black"));;
92 _ckBoxBackGroundBlack->SetValue(false);
94 _positionX->SetSize(400,20);
95 _positionY->SetSize(400,20);
96 _positionZ->SetSize(400,20);
99 _cbStereo = new wxComboBox(panel, -1, _T(""), wxDefaultPosition, wxDefaultSize, 0, NULL,wxCB_READONLY );
100 _cbStereo->Append(_T(" * NO STEREO"));
101 _cbStereo->Append(_T(" STEREO CRYSTAL EYES"));
102 _cbStereo->Append(_T(" STEREO RED BLUE"));
103 _cbStereo->Append(_T(" STEREO INTERLACED"));
104 _cbStereo->Append(_T(" STEREO LEFT"));
105 _cbStereo->Append(_T(" STEREO RIGHT"));
106 _cbStereo->Append(_T(" STEREO DRESDEN"));
107 _cbStereo->Append(_T(" * STEREO ANAGLYPH"));
108 _cbStereo->Append(_T(" STEREO CHECKERBOARD"));
109 _cbStereo->Select(0);
114 Connect(_ckBoxX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX );
115 Connect(_positionX->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionX );
116 Connect(_ckBoxY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY );
117 Connect(_positionY->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionY );
118 Connect(_ckBoxZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ );
119 Connect(_positionZ->GetId() , wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionZ );
121 Connect(btnColorTable->GetId() , wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnEditColorTable );
122 Connect(_ckBoxXYZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ );
123 Connect(_ckBoxPlane->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane );
124 ////EED 05Nov2012 Connect(_ckBox_BW_Color_Plane->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane );
126 Connect(_ckFreePlaneX->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX );
127 Connect(_ckFreePlaneY->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY );
128 Connect(_ckFreePlaneZ->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ );
129 Connect(btnFreePlanesOrtho->GetId() , wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho );
130 Connect(_ckFreePlaneInteraction->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction );
131 Connect(_cbStereo->GetId() , wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnSetStereo );
132 Connect(_ckBoxOutline->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnOutline );
133 Connect(_ckBoxBackGroundBlack->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack );
136 wxFlexGridSizer *sizer;
138 // wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
139 // wxBoxSizer *sizerH4 = new wxBoxSizer(wxHORIZONTAL);
141 //CPR: If-else statements added 30 Nov 2009
142 wxFlexGridSizer *sizerH4;
143 wxFlexGridSizer *sizerH5;
144 wxFlexGridSizer *sizerH6;
148 sizer = new wxFlexGridSizer(4);
149 sizerH4 = new wxFlexGridSizer(3);
151 sizerH4->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
152 sizerH4->Add( new wxStaticText(panel, -1,_T("GL")) , 1, wxALL|wxEXPAND, 0);
153 sizerH4->Add( new wxStaticText(panel, -1,_T("Color ")) , 1, wxALL|wxEXPAND, 0);
155 sizerH4->Add( _positionX ,1,wxGROW , 0 );
156 sizerH4->Add( _ckFreePlaneX, 1, wxALL|wxEXPAND, 0);
157 sizerH4->Add( _ckBoxX ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
159 sizerH4->Add( _positionY ,1,wxGROW, 0 );
160 sizerH4->Add( _ckFreePlaneY, 1, wxALL|wxEXPAND, 0);
161 sizerH4->Add( _ckBoxY ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
163 sizerH4->Add( _positionZ ,1,wxGROW, 0 );
164 sizerH4->Add( _ckFreePlaneZ, 1, wxALL|wxEXPAND, 0);
165 sizerH4->Add( _ckBoxZ ,0,wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
171 sizerH5 = new wxFlexGridSizer(1);
172 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
173 sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0);
174 sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0);
175 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
176 ////EED 05Nov2012 sizerH5->Add( _ckBox_BW_Color_Plane , 1, wxALL|wxEXPAND, 0);
177 sizerH5->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND, 0);
178 sizerH5->Add( btnFreePlanesOrtho , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
179 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
180 sizerH5->Add( btnColorTable , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
181 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
182 sizerH5->Add( _cbStereo, 1, wxALL|wxEXPAND, 0);
184 sizerH6 = new wxFlexGridSizer(1);
185 sizerH6->Add( _ckBoxOutline , 1, wxALL|wxEXPAND, 0);
186 sizerH6->Add( _ckBoxBackGroundBlack , 1, wxALL|wxEXPAND, 0);
189 sizer->Add( sizerH4, 1, wxALL|wxGROW, 2);
190 sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2);
191 sizer->Add( sizerH6, 1, wxALL|wxEXPAND,2);
195 sizer = new wxFlexGridSizer(1);
197 sizerH4 = new wxFlexGridSizer(10);
198 sizerH5 = new wxFlexGridSizer(10);
199 sizerH6 = new wxFlexGridSizer(10);
201 sizerH4->Add( _positionX , 1, wxGROW , 0 );
202 sizerH4->Add( _ckBoxX , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
203 sizerH4->Add( _positionY , 1, wxGROW , 0 );
204 sizerH4->Add( _ckBoxY , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
205 sizerH4->Add( _positionZ , 1, wxGROW , 0 );
206 sizerH4->Add( _ckBoxZ , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
207 sizerH4->Add( btnColorTable , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
209 sizerH5->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0);
210 sizerH5->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0);
211 ////EED 05Nov2012 sizerH5->Add( _ckBox_BW_Color_Plane , 1, wxALL|wxEXPAND, 0);
212 sizerH5->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
214 sizerH6 = new wxFlexGridSizer(10);
215 sizerH6->Add( _ckFreePlaneX , 1, wxALL|wxEXPAND, 0);
216 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
217 sizerH6->Add( _ckFreePlaneY , 1, wxALL|wxEXPAND, 0);
218 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
219 sizerH6->Add( _ckFreePlaneZ , 1, wxALL|wxEXPAND, 0);
220 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
221 sizerH6->Add( _ckFreePlaneInteraction , 1, wxALL|wxEXPAND, 0);
222 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
223 sizerH6->Add( btnFreePlanesOrtho , 0 , wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
224 sizerH6->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0);
225 sizerH6->Add( _cbStereo, 1, wxALL|wxEXPAND, 0);
227 sizer->Add( sizerH4, 1, wxALL|wxGROW, 2);
228 sizer->Add( sizerH5, 1, wxALL|wxEXPAND,2);
229 sizer->Add( sizerH6, 1, wxALL|wxEXPAND,2);
236 // wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10);
237 // wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10);
239 // sizerH4->Add( ckBoxX , 1, wxALL|wxEXPAND, 0);
240 // sizerH4->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0);
241 // sizerH4->Add( _positionX , 1, wxALL|wxEXPAND, 0);
243 // sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0);
244 // sizerH5->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0);
245 // sizerH5->Add( _positionY , 1, wxALL|wxEXPAND, 0);
247 // sizerH6->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0);
248 // sizerH6->Add( new wxStaticText(panel, -1," ") , 1, wxALL|wxEXPAND, 0);
249 // sizerH6->Add( _positionZ , 1, wxALL|wxEXPAND, 0);
251 // sizerH7->Add( _ckBoxXYZ , 1, wxALL|wxEXPAND, 0);
252 // sizerH7->Add( _ckBoxPlane , 1, wxALL|wxEXPAND, 0);
254 // sizer->Add( sizerH4 , 1, wxALL|wxEXPAND, 2);
255 // sizer->Add( sizerH5 , 1, wxALL|wxEXPAND, 2);
256 // sizer->Add( sizerH6 , 1, wxALL|wxEXPAND, 2);
257 // sizer->Add( sizerH7 , 1, wxALL|wxEXPAND, 2);
260 // sizerH5->Add( ckBoxX , 1, wxALL|wxEXPAND, 0);
261 // sizerH5->Add( ckBoxY , 1, wxALL|wxEXPAND, 0);
262 // sizerH5->Add( ckBoxZ , 1, wxALL|wxEXPAND, 0);
265 panel->SetSize(400,50);
266 panel->SetAutoLayout(true);
267 panel->SetSizer(sizer);
270 panel->SetEventHandler((wxEvtHandler*)this);
272 //this->UpdateControlPanel();
276 //-------------------------------------------------------------------
277 void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel()
279 vtkMPRBaseData* basedata = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData();
280 if(basedata != NULL){
282 vtkImageData* img = basedata->GetImageData();
283 int x0,x1,y0,y1,z0,z1;
286 img->GetExtent(x0,x1,y0,y1,z0,z1);
287 _positionX->SetRange(x0,x1);
288 _positionY->SetRange(y0,y1);
289 _positionZ->SetRange(z0,z1);
291 _positionX->SetValue((x0+x1)/2);
292 _positionY->SetValue((y0+y1)/2);
293 _positionZ->SetValue((z0+z1)/2);
295 //EED 12April2012 This make a floting window in MacOs and Linux with for windows
296 // _positionX->Update();
297 // _positionY->Update();
298 // _positionZ->Update();
306 //-------------------------------------------------------------------
307 wxVtkMPR3DViewCntrlPanel::~wxVtkMPR3DViewCntrlPanel()
311 //-------------------------------------------------------------------
312 void wxVtkMPR3DViewCntrlPanel::Refresh()
314 // wxPanel::Refresh();
315 _positionX->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX( )) );
316 _positionY->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY( )) );
317 _positionZ->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ( )) );
321 //-------------------------------------------------------------------
322 int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
325 if (_surfA->GetValue()==true)
329 if (_surfB->GetValue()==true)
333 if (_surfC->GetValue()==true)
337 if (_surfD->GetValue()==true)
346 //-------------------------------------------------------------------
347 //void wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane(wxCommandEvent& event)
349 // printf ("EED wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane ...... NOT Implemented\n ");
353 //-------------------------------------------------------------------
354 void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
357 vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
359 if ( imagedata->GetScalarType()!=VTK_UNSIGNED_SHORT )
361 wxMessageDialog windowMessage1(NULL,_T("This option is just available for UNSIGNED SHORT images."), _T("Alert !"), wxOK);
362 windowMessage1.ShowModal();
366 vtkColorTransferFunction *ctfun = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction();
367 std::vector<double> *ctfunVectorPoint = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
368 std::vector<double> *ctfunVectorRed = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
369 std::vector<double> *ctfunVectorGreen = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorGreen();
370 std::vector<double> *ctfunVectorBlue = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorBlue();
372 //void *p=this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer(); // JPRx
377 HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2);
380 hDlg->erasePointsTransferenceFunction();
381 int ctfSize=ctfunVectorRed->size();
384 // MACHETE OJO Eduardo
388 double gr = (*ctfunVectorPoint)[i];
389 double r = (*ctfunVectorRed)[i];
390 double g = (*ctfunVectorGreen)[i];
391 double b = (*ctfunVectorBlue)[i];
393 hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255));
400 // when the user had changed the transference Function
403 //setting variables if the user wants to do refresh
406 //hDlg->setMPR3Dview(_wxvtkmpr3Dview);
408 if(hDlg->ShowModal()== wxID_OK )
411 // -- vtkColorTransferFunction --
412 ctfun->RemoveAllPoints ();
414 ctfunVectorPoint->clear();
415 ctfunVectorRed->clear();
416 ctfunVectorGreen->clear();
417 ctfunVectorBlue->clear();
419 int nCTFpoints=hDlg->getSizeBarColor();
420 // Machete .. Ojo Eduardo
424 hDlg->getDataBarColorPoint(i,xi,r,g,b);
428 hDlg->getDataBarColorPoint(1,xi,r,g,b);
432 hDlg->getDataBarColorPoint(i-1,xi,r,g,b);
435 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
436 ctfunVectorPoint->push_back(xi);
437 ctfunVectorRed->push_back(r/255.0);
438 ctfunVectorGreen->push_back(g/255.0);
439 ctfunVectorBlue->push_back(b/255.0);
449 if(hDlg->getRefreshed())
451 // -- vtkColorTransferFunction --
452 ctfun->RemoveAllPoints ();
455 int size=ctfunVectorPoint->size();
459 double grey2=(*ctfunVectorPoint)[i];
460 double red =(*ctfunVectorRed)[i];
461 double green =(*ctfunVectorGreen)[i];
462 double blue = (*ctfunVectorBlue)[i];
463 ctfun->AddRGBPoint(grey2,red,green,blue);
473 //-------------------------------------------------------------------
474 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(wxCommandEvent& event)
476 _wxvtkmpr3Dview->FreePlaneVisible( 1, event.IsChecked() );
477 _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
480 //-------------------------------------------------------------------
481 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event)
483 _wxvtkmpr3Dview->FreePlaneVisible( 2, event.IsChecked() );
484 _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
488 //-------------------------------------------------------------------
489 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ(wxCommandEvent& event)
491 _wxvtkmpr3Dview->FreePlaneVisible( 3, event.IsChecked() );
492 _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
496 //-------------------------------------------------------------------
497 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(wxCommandEvent& event)
499 _wxvtkmpr3Dview->FreePlaneInteraction( event.IsChecked() );
502 //-------------------------------------------------------------------
503 void wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho(wxCommandEvent& event)
505 _wxvtkmpr3Dview->SetFreePlanesOrtho();
508 //-------------------------------------------------------------------
509 void wxVtkMPR3DViewCntrlPanel::OnSetStereo(wxCommandEvent& event)
511 this->_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->SetStereo( _cbStereo->GetSelection() );
516 //-------------------------------------------------------------------
517 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event)
519 _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() );
520 _wxvtkmpr3Dview->Refresh();
522 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
525 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
527 std::cout<<e<<std::endl;
530 //-------------------------------------------------------------------
531 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
533 _wxvtkmpr3Dview->VisibleImageActor(1, event.IsChecked() );
534 _wxvtkmpr3Dview->Refresh();
536 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
537 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
540 //-------------------------------------------------------------------
541 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
543 _wxvtkmpr3Dview->VisibleImageActor(2, event.IsChecked() );
544 _wxvtkmpr3Dview->Refresh();
546 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
547 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
550 //-------------------------------------------------------------------
551 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
554 _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
557 //-------------------------------------------------------------------
558 void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event)
560 _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked());
564 //-------------------------------------------------------------------
565 void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event)
567 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() );
568 _wxvtkmpr3Dview->RefreshView();
570 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
571 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
573 //-------------------------------------------------------------------
574 void wxVtkMPR3DViewCntrlPanel::OnPositionY(wxScrollEvent& event)
576 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( _positionY->GetValue() );
577 _wxvtkmpr3Dview->RefreshView();
578 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
579 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
581 //-------------------------------------------------------------------
582 void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event)
584 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( _positionZ->GetValue() );
585 _wxvtkmpr3Dview->RefreshView();
586 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
587 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
592 //-------------------------------------------------------------------
593 bool wxVtkMPR3DViewCntrlPanel::GetVisibleX()
595 return _ckBoxX->GetValue();
598 //-------------------------------------------------------------------
599 bool wxVtkMPR3DViewCntrlPanel::GetVisibleY()
601 return _ckBoxY->GetValue();
604 //-------------------------------------------------------------------
605 bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ()
607 return _ckBoxZ->GetValue();
610 //-------------------------------------------------------------------
611 bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ()
613 return _ckBoxXYZ->GetValue();
616 //-------------------------------------------------------------------
618 //bool wxVtkMPR3DViewCntrlPanel::Get_BW_Color_Plane()
620 // return _ckBox_BW_Color_Plane;
623 //-------------------------------------------------------------------
624 bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
626 return _ckBoxPlane->GetValue();
629 //-------------------------------------------------------------------
630 void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
632 _ckBoxX->SetValue(value);
634 _wxvtkmpr3Dview->VisibleImageActor(0, value );
635 _wxvtkmpr3Dview->Refresh();
637 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
638 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
641 //-------------------------------------------------------------------
642 void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
644 _ckBoxY->SetValue(value);
646 _wxvtkmpr3Dview->VisibleImageActor(1, value );
647 _wxvtkmpr3Dview->Refresh();
649 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
650 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
653 //-------------------------------------------------------------------
654 void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
656 _ckBoxZ->SetValue(value);
658 _wxvtkmpr3Dview->VisibleImageActor(2, value );
659 _wxvtkmpr3Dview->Refresh();
661 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
662 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
665 //-------------------------------------------------------------------
666 void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value)
668 _ckBoxXYZ->SetValue(value);
669 _wxvtkmpr3Dview->VisiblePointWidget(value);
673 //-------------------------------------------------------------------
674 void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value)
676 _ckBoxPlane->SetValue(value);
677 _wxvtkmpr3Dview->VisiblePlaneWidget(value);
681 //-------------------------------------------------------------------
682 void wxVtkMPR3DViewCntrlPanel::OnOutline(wxCommandEvent& event)
684 _wxvtkmpr3Dview->showOutlineActor( _ckBoxOutline->GetValue() );
685 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->Refresh();
689 //-------------------------------------------------------------------
690 void wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack(wxCommandEvent& event)
692 if (_ckBoxBackGroundBlack->GetValue()==true)
694 _wxvtkmpr3Dview->SetBackGroundType(0);
696 _wxvtkmpr3Dview->SetBackGroundType(1);