]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DViewCntrlPanel.cxx
#3472 MeshDeformation
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtkMPR3DViewCntrlPanel.cxx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
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
8 #
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.
15 #
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
20 #  liability.
21 #
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 # ------------------------------------------------------------------------ */
25
26 #include "wxVtkMPR3DViewCntrlPanel.h"
27
28 #include "HistogramDialog.h"
29 #include <wx/combobox.h>
30
31 wxVtkMPR3DViewCntrlPanel::wxVtkMPR3DViewCntrlPanel(wxWindow *parent, wxVtkMPR3DView *wxvtkmpr3Dview, bool align )
32 : wxPanel(parent, -1)
33 {
34         wxPanel *panel  = this;
35         _wxvtkmpr3Dview = wxvtkmpr3Dview;
36
37         /*int maxX = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionX();
38         int maxY = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionY();
39         int maxZ = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetMaxPositionZ();*/
40
41         //int maxX = 1;
42         //int maxY = 1;
43         //int maxZ = 1;
44
45         //CPR: Modified 30 Nov 2009
46         /*
47         wxCheckBox              *ckBoxX                 = new wxCheckBox(panel,-1,_T("X           "));
48                                         _positionX              = new wxSlider(panel,-1,maxX/2,0,maxX, wxDefaultPosition,  wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
49         wxCheckBox              *ckBoxY                 = new wxCheckBox(panel,-1,_T("Y           "));
50                                         _positionY              = new wxSlider(panel,-1,maxY/2,0,maxY, wxDefaultPosition,  wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
51         wxCheckBox              *ckBoxZ                 = new wxCheckBox(panel,-1,_T("Z           "));
52                                         _positionZ              = new wxSlider(panel,-1,maxZ/2,0,maxZ, wxDefaultPosition,  wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
53         wxButton                *btnColorTable  = new wxButton (panel, -1, _T("Edit Color Table") );
54         */
55
56         _ckBoxX                                         = new wxCheckBox(panel,-1,_T("X   "));
57         _positionX                                      = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
58         _ckBoxY                                         = new wxCheckBox(panel,-1,_T("Y   "));
59         _positionY                                      = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
60         _ckBoxZ                                         = new wxCheckBox(panel,-1,_T("Z   "));
61         _positionZ                                      = new wxSlider(panel,-1,0,0,1, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
62
63         _ckBoxXYZ                                       = new wxCheckBox(panel,-1,_T("3D Axis  "));
64         _ckBoxFixAxis2D                         = new wxCheckBox(panel,-1,_T("2D Fix Axis"));
65         _opacityAxis                            = new wxSlider(panel,-1,100,0,100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
66
67         _ckBoxPlane                                     = new wxCheckBox(panel,-1,_T("Plane"));
68 ////EED 05Nov2012       _ckBox_BW_Color_Plane           = new wxCheckBox(panel,-1,_T("GL/Color"));
69         wxButton *btnColorTable         = new wxButton (panel, -1, _T("Color table") );
70         wxButton *btnFreePlanesOrtho= new wxButton (panel, -1, _T("Orthogonal planes GL") );
71
72         _ckFreePlaneX= new wxCheckBox(panel,-1,_T("X "));
73         _ckFreePlaneY= new wxCheckBox(panel,-1,_T("Y "));
74         _ckFreePlaneZ= new wxCheckBox(panel,-1,_T("Z "));
75         _ckFreePlaneInteraction= new wxCheckBox(panel,-1,_T("Interaction planes GL"));
76         
77         //EED: If-else statements added 30 Nov 2009
78         _ckFreePlaneX->SetValue(false);
79         _ckFreePlaneY->SetValue(false);
80         _ckFreePlaneZ->SetValue(false);
81         _ckFreePlaneInteraction->SetValue(true);
82         
83         _ckBoxX->SetValue(false);
84         _ckBoxY->SetValue(false);
85         _ckBoxZ->SetValue(false);
86         _ckBoxXYZ->SetValue(false);
87 ////EED 05Nov2012       _ckBox_BW_Color_Plane->SetValue(true);
88         _ckBoxPlane->SetValue(false);
89         _ckBoxInterpolate= new wxCheckBox(panel,-1,_T("Interpolate"));
90         _ckBoxInterpolate->SetValue(true);
91
92
93         _ckBoxOutlineBox        = new wxCheckBox(panel,-1,_T("Outline Box"));
94         _ckBoxOutlineBox->SetValue(true);
95         _ckBoxOutlinePlane      = new wxCheckBox(panel,-1,_T("Outline Plane"));
96         _ckBoxOutlinePlane->SetValue(true);
97
98
99         
100 //      _ckBoxBackGroundBlack= new wxCheckBox(panel,-1,_T("Background Black"));;
101 //      _ckBoxBackGroundBlack->SetValue(false);
102 // EED Borrame  
103 //      _ckBoxBackGroundBlack= new wxCheckBox(panel,-1,_T("Background Black"));;
104 //      _ckBoxBackGroundBlack->SetValue(false);
105
106         wxPanel *panelH7 = new wxPanel(panel);
107
108         _rdBackGroundGradient   = new wxRadioButton( panelH7, -1, _T("Background Gradient"),wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
109         _rdBackGroundBlack              = new wxRadioButton( panelH7, -1, _T("Background Black"),wxDefaultPosition, wxDefaultSize, 0);
110         _rdBackGroundWhite              = new wxRadioButton( panelH7, -1, _T("Background White"),wxDefaultPosition, wxDefaultSize, 0);
111
112         _rdBackGroundGradient->SetValue(false);
113         _rdBackGroundBlack->SetValue(false);
114         _rdBackGroundWhite->SetValue(false);
115
116         _positionX->SetSize(400,20);
117         _positionY->SetSize(400,20);
118         _positionZ->SetSize(400,20);
119
120         // Stereo
121         _cbStereo = new wxComboBox(panel, -1, _T(""), wxDefaultPosition, wxDefaultSize, 0, NULL,wxCB_READONLY );        
122         _cbStereo->Append(_T(" * NO STEREO"));
123         _cbStereo->Append(_T("   STEREO CRYSTAL EYES"));
124         _cbStereo->Append(_T("   STEREO RED BLUE"));
125         _cbStereo->Append(_T("   STEREO INTERLACED"));
126         _cbStereo->Append(_T("   STEREO LEFT"));
127         _cbStereo->Append(_T("   STEREO RIGHT"));
128         _cbStereo->Append(_T("   STEREO DRESDEN"));
129         _cbStereo->Append(_T(" * STEREO ANAGLYPH"));
130         _cbStereo->Append(_T("   STEREO CHECKERBOARD"));
131     _cbStereo->Append(_T(" * STEREO SPLITVIEWPORT_HORIZONTAL"));
132     _cbStereo->Append(_T("   STEREO FAKE"));
133     _cbStereo->Append(_T("   STEREO EMULATE"));
134         _cbStereo->Select(0);
135
136         Connect(_ckBoxX->GetId()                                , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX     );
137         Connect(_positionX->GetId()                             , wxEVT_COMMAND_SLIDER_UPDATED,   (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionX                );
138         Connect(_ckBoxY->GetId()                                , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY     );
139         Connect(_positionY->GetId()                             , wxEVT_COMMAND_SLIDER_UPDATED,   (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionY                );
140         Connect(_ckBoxZ->GetId()                                , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ     );
141         Connect(_positionZ->GetId()                             , wxEVT_COMMAND_SLIDER_UPDATED,   (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnPositionZ                );
142         
143         Connect(btnColorTable->GetId()                  , wxEVT_COMMAND_BUTTON_CLICKED,   (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnEditColorTable   );
144         Connect(_ckBoxXYZ->GetId()                              , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ   );
145         Connect(_ckBoxPlane->GetId()                    , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisiblePlane     );
146         Connect(_ckFreePlaneX->GetId()          , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX);
147         Connect(_ckFreePlaneY->GetId()          , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY);
148         Connect(_ckFreePlaneZ->GetId()          , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ);
149         Connect(btnFreePlanesOrtho->GetId()             , wxEVT_COMMAND_BUTTON_CLICKED,   (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho  );
150         Connect(_ckFreePlaneInteraction->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction );
151         Connect(_cbStereo->GetId()                              , wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnSetStereo               );
152         Connect(_ckBoxOutlineBox->GetId()                       , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnOutlineBox                       );
153         Connect(_ckBoxOutlinePlane->GetId()                     , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnOutlinePlane                     );
154
155 // EED Borrame
156 //      Connect(_ckBoxBackGroundBlack->GetId()  , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack  );
157         Connect(_rdBackGroundGradient->GetId()  , wxEVT_COMMAND_RADIOBUTTON_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack      );
158         Connect(_rdBackGroundBlack->GetId()     , wxEVT_COMMAND_RADIOBUTTON_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack      );
159         Connect(_rdBackGroundWhite->GetId()     , wxEVT_COMMAND_RADIOBUTTON_SELECTED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack      );
160
161
162         Connect(_ckBoxInterpolate->GetId()              , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnInterpolate              );
163         Connect(_ckBoxFixAxis2D->GetId()                , wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnFixAxis2D                );
164         Connect(_opacityAxis->GetId()                   , wxEVT_COMMAND_SLIDER_UPDATED,   (wxObjectEventFunction) &wxVtkMPR3DViewCntrlPanel::OnOpacityAxis              );
165         
166         wxFlexGridSizer *sizer;
167         
168         //      wxBoxSizer *sizer        = new wxBoxSizer(wxVERTICAL);
169         //      wxBoxSizer *sizerH4 = new wxBoxSizer(wxHORIZONTAL);
170         
171         //CPR: If-else statements added 30 Nov 2009
172         wxFlexGridSizer *sizerV1;
173         wxFlexGridSizer *sizerH4;
174         wxFlexGridSizer *sizerH4a;
175         wxFlexGridSizer *sizerH5;
176         wxFlexGridSizer *sizerH6;
177         wxFlexGridSizer *sizerH7;
178
179         if(align)
180         {
181                 sizer   = new wxFlexGridSizer(4);
182                 sizerH4 = new wxFlexGridSizer(3);
183
184                 sizerH4a = new wxFlexGridSizer(3);
185                 
186                 sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
187                 sizerH4->Add( new wxStaticText(panel, -1,_T("GL"))              ,1, wxALL|wxEXPAND                                              , 0);
188                 sizerH4->Add( new wxStaticText(panel, -1,_T("Color   ")),1, wxALL|wxEXPAND                                              , 0);
189                 sizerH4->Add( _positionX                                                                ,1,     wxGROW                                          , 0);
190                 sizerH4->Add( _ckFreePlaneX                                                             ,1, wxALL|wxEXPAND                                              , 0);
191                 sizerH4->Add( _ckBoxX                                                                   ,0,     wxALIGN_CENTER_VERTICAL|wxSHAPED        , 0);
192                 sizerH4->Add( _positionY                                                                ,1,     wxGROW                                                          , 0);
193                 sizerH4->Add( _ckFreePlaneY                                                             ,1, wxALL|wxEXPAND                                              , 0);
194                 sizerH4->Add( _ckBoxY                                                                   ,0,     wxALIGN_CENTER_VERTICAL|wxSHAPED        , 0);
195                 sizerH4->Add( _positionZ                                                                ,1,     wxGROW                                                          , 0);
196                 sizerH4->Add( _ckFreePlaneZ                                                             ,1, wxALL|wxEXPAND                                              , 0);
197                 sizerH4->Add( _ckBoxZ                                                                   ,0,     wxALIGN_CENTER_VERTICAL|wxSHAPED        , 0);
198
199 //EED 2016/02/19                
200                 sizerH4->Add( _ckBoxInterpolate                                                 ,1, wxALL|wxEXPAND                                              , 0);
201                 sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
202                 sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
203 //              sizerH4->Add( _ckBoxXYZ                                                                 ,1, wxALL|wxEXPAND                                              , 0);
204 //              sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
205 //              sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
206
207 //              sizerH4a->Add( new wxStaticText(panel, -1,_T("Axis 2D:")),1, wxALL|wxEXPAND                                             , 0);
208                 sizerH4a->Add( _ckBoxXYZ                                                                ,1, wxALL|wxEXPAND                                              , 0);
209                 sizerH4a->Add( _ckBoxFixAxis2D                                                  ,1, wxALL|wxEXPAND                                              , 0);
210                 sizerH4a->Add( _opacityAxis                                                             ,1, wxALL|wxEXPAND                                              , 0);
211
212                 sizerH4->Add( sizerH4a                                                                  ,1, wxALL|wxEXPAND                                              , 0);
213                 sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
214                 sizerH4->Add( new wxStaticText(panel, -1,_T(" "))               ,1, wxALL|wxEXPAND                                              , 0);
215                 
216                         
217                 
218                 sizerH5 = new wxFlexGridSizer(1);
219                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND                                             , 0);
220                 sizerH5->Add( _ckBoxPlane                                                               , 1, wxALL|wxEXPAND                                             , 0);           
221                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND                                             , 0);
222 ////EED 05Nov2012               sizerH5->Add( _ckBox_BW_Color_Plane             , 1, wxALL|wxEXPAND                                             , 0);
223                 sizerH5->Add( _ckFreePlaneInteraction                                   , 1, wxALL|wxEXPAND                                             , 0);
224                 sizerH5->Add( btnFreePlanesOrtho                                        , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED   , 0);
225                 sizerH5->Add( new wxStaticText(panel, -1,_T(" "))               , 1, wxALL|wxEXPAND                                             , 0);
226                 sizerH5->Add( btnColorTable                             , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED   , 0);
227                 sizerH5->Add( new wxStaticText(panel, -1,_T(" "))               , 1, wxALL|wxEXPAND                                             , 0);
228                 sizerH5->Add( _cbStereo                                                                 , 1, wxALL|wxEXPAND                                             , 0);
229                 
230                 sizerH6 = new wxFlexGridSizer(1);
231                 sizerH6->Add( _ckBoxOutlineBox                                                  , 1, wxALL|wxEXPAND                                             , 0);
232                 sizerH6->Add( _ckBoxOutlinePlane                                                , 1, wxALL|wxEXPAND                                             , 0);
233
234
235
236                 sizerH7 = new wxFlexGridSizer(1);
237                 panelH7->SetSizer(sizerH7);
238                 sizerH7->Add( _rdBackGroundGradient                                             , 1, wxALL|wxEXPAND                                             , 0);
239                 sizerH7->Add( _rdBackGroundBlack                                                , 1, wxALL|wxEXPAND                                             , 0);
240                 sizerH7->Add( _rdBackGroundWhite                                                , 1, wxALL|wxEXPAND                                             , 0);
241
242
243                 sizerH6->Add( new wxStaticText(panel, -1,_T(" "))               , 1, wxALL|wxEXPAND                                             , 0);
244                 sizerH6->Add( panelH7                                                                   , 1, wxALL|wxEXPAND                                             , 0);
245
246                 sizer->Add( sizerH4,  1, wxALL|wxGROW,  2);
247                 sizer->Add( sizerH5,  1, wxALL|wxEXPAND,2);
248                 sizer->Add( sizerH6,  1, wxALL|wxEXPAND,2);
249                         
250         }       else    {
251                 sizer    = new wxFlexGridSizer(1);
252
253                 sizerH4 = new wxFlexGridSizer(10);
254                 sizerH5 = new wxFlexGridSizer(10);
255                 sizerH6 = new wxFlexGridSizer(10);
256
257                 sizerH4->Add( _positionX        , 1, wxGROW                          , 0 );
258                 sizerH4->Add( _ckBoxX           , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
259                 sizerH4->Add( _positionY        , 1, wxGROW                          , 0 );
260                 sizerH4->Add( _ckBoxY           , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
261                 sizerH4->Add( _positionZ        , 1, wxGROW                          , 0 );
262                 sizerH4->Add( _ckBoxZ           , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
263                 sizerH4->Add( btnColorTable     , 0, wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
264
265                 sizerH5->Add( _ckBoxXYZ                                                                 , 1, wxALL|wxEXPAND, 0);
266                 sizerH5->Add( _ckBoxPlane                                                               , 1, wxALL|wxEXPAND, 0);
267 ////EED 05Nov2012               sizerH5->Add( _ckBox_BW_Color_Plane                                             , 1, wxALL|wxEXPAND, 0);
268                 sizerH5->Add( new wxStaticText(panel, -1,_T("      "))  , 1, wxALL|wxEXPAND, 0);
269
270                 sizerH6 = new wxFlexGridSizer(10);
271                 sizerH6->Add( _ckFreePlaneX                            , 1, wxALL|wxEXPAND, 0);
272                 sizerH6->Add( new wxStaticText(panel, -1,_T(" "))      , 1, wxALL|wxEXPAND, 0);
273                 sizerH6->Add( _ckFreePlaneY                            , 1, wxALL|wxEXPAND, 0);
274                 sizerH6->Add( new wxStaticText(panel, -1,_T(" "))      , 1, wxALL|wxEXPAND, 0);
275                 sizerH6->Add( _ckFreePlaneZ                            , 1, wxALL|wxEXPAND, 0);
276                 sizerH6->Add( new wxStaticText(panel, -1,_T("  "))     , 1, wxALL|wxEXPAND, 0);
277                 sizerH6->Add( _ckFreePlaneInteraction                  , 1, wxALL|wxEXPAND, 0);
278                 sizerH6->Add( new wxStaticText(panel, -1,_T(" "))       , 1, wxALL|wxEXPAND, 0);
279                 sizerH6->Add( btnFreePlanesOrtho        , 0     , wxALIGN_CENTER_VERTICAL|wxSHAPED, 0 );
280                 sizerH6->Add( new wxStaticText(panel, -1,_T(" "))       , 1, wxALL|wxEXPAND, 0);
281                 sizerH6->Add( _cbStereo, 1, wxALL|wxEXPAND, 0);
282                 
283                 sizer->Add( sizerH4,  1, wxALL|wxGROW,  2);
284                 sizer->Add( sizerH5,  1, wxALL|wxEXPAND,2);
285                 sizer->Add( sizerH6,  1, wxALL|wxEXPAND,2);
286         }
287
288         
289
290         
291         //EED 28 sep 2006
292         //      wxFlexGridSizer *sizerH6 = new wxFlexGridSizer(10);
293         //      wxFlexGridSizer *sizerH7 = new wxFlexGridSizer(10);
294
295         //      sizerH4->Add( ckBoxX            , 1, wxALL|wxEXPAND, 0);
296         //      sizerH4->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
297         //      sizerH4->Add( _positionX        , 1, wxALL|wxEXPAND, 0);
298
299         //      sizerH5->Add( ckBoxY            , 1, wxALL|wxEXPAND, 0);
300         //      sizerH5->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
301         //      sizerH5->Add( _positionY        , 1, wxALL|wxEXPAND, 0);
302
303         //      sizerH6->Add( ckBoxZ            , 1, wxALL|wxEXPAND, 0);
304         //      sizerH6->Add( new wxStaticText(panel, -1,"  ")                  , 1, wxALL|wxEXPAND, 0);
305         //      sizerH6->Add( _positionZ        , 1, wxALL|wxEXPAND, 0);
306
307         //      sizerH7->Add( _ckBoxXYZ         , 1, wxALL|wxEXPAND, 0);
308         //      sizerH7->Add( _ckBoxPlane       , 1, wxALL|wxEXPAND, 0);
309
310         //      sizer->Add( sizerH4                     , 1, wxALL|wxEXPAND, 2);
311         //      sizer->Add( sizerH5                     , 1, wxALL|wxEXPAND, 2);
312         //      sizer->Add( sizerH6                     , 1, wxALL|wxEXPAND, 2);
313         //      sizer->Add( sizerH7                     , 1, wxALL|wxEXPAND, 2);
314
315                 
316         //      sizerH5->Add( ckBoxX                            ,  1, wxALL|wxEXPAND, 0);
317         //      sizerH5->Add( ckBoxY                            ,  1, wxALL|wxEXPAND, 0);
318         //      sizerH5->Add( ckBoxZ                            ,  1, wxALL|wxEXPAND, 0);
319
320
321                 panelH7->SetAutoLayout(true);
322                 panelH7->Layout();
323
324
325         panel->ClearBackground();
326 //      panel->SetSize(400,50);
327         sizer->FitInside(panel);
328         panel->SetAutoLayout(true);
329         panel->SetSizer(sizer);
330         panel->Layout();
331
332         panel->SetEventHandler((wxEvtHandler*)this);
333         
334         //this->UpdateControlPanel();
335                 
336 }
337
338 //-------------------------------------------------------------------
339 void wxVtkMPR3DViewCntrlPanel::UpdateControlPanel(bool firsttime)
340 {
341         vtkMPRBaseData* basedata = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData();
342         if(basedata != NULL){
343
344                 vtkImageData* img = basedata->GetImageData();
345                 int x0,x1,y0,y1,z0,z1;
346
347                 if(img)
348                 {
349                         img->GetExtent(x0,x1,y0,y1,z0,z1);
350                         _positionX->SetRange(x0,x1);
351                         _positionY->SetRange(y0,y1);
352                         _positionZ->SetRange(z0,z1);
353
354                         if (firsttime==true)
355                         {
356                                 _positionX->SetValue((x0+x1)/2);
357                                 _positionY->SetValue((y0+y1)/2);
358                                 _positionZ->SetValue((z0+z1)/2);
359                         } // if firsttime
360
361 //EED 12April2012  This make a floting window in MacOs and Linux with for windows                       
362 //                      _positionX->Update();
363 //                      _positionY->Update();
364 //                      _positionZ->Update();
365 //                      this->Update();
366                 }//img
367                 
368         }//basedata 
369         
370 }
371
372 //-------------------------------------------------------------------
373 wxVtkMPR3DViewCntrlPanel::~wxVtkMPR3DViewCntrlPanel()
374 {
375 }
376
377 //-------------------------------------------------------------------
378 void wxVtkMPR3DViewCntrlPanel::Refresh()
379 {
380 //      wxPanel::Refresh();
381         _positionX->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX( )) );
382         _positionY->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY( )) );
383         _positionZ->SetValue( (int)(_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ( )) );
384 }
385
386 /*
387 //-------------------------------------------------------------------
388 int wxVtkMPR3DViewCntrlPanel::GetIdTissue()
389 {
390         int idTissue=-1;
391         if (_surfA->GetValue()==true)
392         {
393                 idTissue=0;
394         }
395         if (_surfB->GetValue()==true)
396         {
397                 idTissue=1;
398         }
399         if (_surfC->GetValue()==true)
400         {
401                 idTissue=2;
402         }
403         if (_surfD->GetValue()==true)
404         {
405                 idTissue=3;
406         }
407
408         return idTissue;
409 }
410 */
411
412 //-------------------------------------------------------------------
413 //void wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane(wxCommandEvent& event)
414 //{
415 //      printf ("EED wxVtkMPR3DViewCntrlPanel::On_BW_Color_Plane  ...... NOT Implemented\n ");
416 //}
417
418
419 //-------------------------------------------------------------------
420 void wxVtkMPR3DViewCntrlPanel::OnEditColorTable(wxCommandEvent& event)
421 {
422         
423         vtkImageData *imagedata = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
424
425         if ( imagedata->GetScalarType()!=VTK_UNSIGNED_SHORT )
426         {
427                 wxMessageDialog windowMessage1(NULL,_T("This option is just available for UNSIGNED SHORT images."), _T("Alert !"), wxOK);
428                 windowMessage1.ShowModal();
429                 return;
430         }
431         
432         vtkColorTransferFunction *ctfun                 = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetvtkColorTransferFunction(); 
433         std::vector<double> *ctfunVectorPoint   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorPoint();
434         std::vector<double> *ctfunVectorRed             = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorRed();
435         std::vector<double> *ctfunVectorGreen   = this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorGreen();
436         std::vector<double> *ctfunVectorBlue    =   this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetctFunVectorBlue();
437
438         //void *p=this->_wxvtkmpr3Dview->GetVtkMPR3DDataViewer(); // JPRx
439
440
441         int i=0,xi,r,g,b;
442         
443         HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Color table"),imagedata,2);
444         
445                 
446         hDlg->erasePointsTransferenceFunction();                
447         int ctfSize=ctfunVectorRed->size();
448         if(ctfSize>0)
449         {
450 // MACHETE  OJO Eduardo
451                 int i=0;
452                         while(i<ctfSize)
453                         {
454                                 double gr       = (*ctfunVectorPoint)[i];
455                                 double r        = (*ctfunVectorRed)[i];
456                                 double g        = (*ctfunVectorGreen)[i];
457                                 double b        = (*ctfunVectorBlue)[i];                        
458
459                                 hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255));
460
461                                 i++;
462                         }
463         }
464
465         //
466         // when the user had changed the transference Function
467         //
468         
469         //setting variables if the user wants to do refresh
470         
471         hDlg->setCTF(ctfun);
472         //hDlg->setMPR3Dview(_wxvtkmpr3Dview);
473         
474         if(hDlg->ShowModal()== wxID_OK )
475         {       
476                 
477                 // -- vtkColorTransferFunction  --
478                         ctfun->RemoveAllPoints ();
479                         //clean colors
480                         ctfunVectorPoint->clear();
481                         ctfunVectorRed->clear();
482                         ctfunVectorGreen->clear();
483                         ctfunVectorBlue->clear();
484
485                         int nCTFpoints=hDlg->getSizeBarColor();
486 // Machete .. Ojo Eduardo
487                         i=0;    
488                         while(i<nCTFpoints)
489                         {
490                                 hDlg->getDataBarColorPoint(i,xi,r,g,b);
491                                 /*
492                                 if (i==0)
493                                 {
494                                         hDlg->getDataBarColorPoint(1,xi,r,g,b);
495                                 } 
496                                 if (i==nCTFpoints)
497                                 {
498                                         hDlg->getDataBarColorPoint(i-1,xi,r,g,b);
499                                 } 
500                                 */
501                                 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
502                                 ctfunVectorPoint->push_back(xi);
503                                 ctfunVectorRed->push_back(r/255.0);
504                                 ctfunVectorGreen->push_back(g/255.0);
505                                 ctfunVectorBlue->push_back(b/255.0);
506                                 i++;
507                                 
508                         }
509                         
510         }
511         
512         else
513         {
514                 
515                 if(hDlg->getRefreshed())
516                 {
517                         // -- vtkColorTransferFunction  --
518                         ctfun->RemoveAllPoints ();
519                         
520                         int i=0;
521                         int size=ctfunVectorPoint->size();
522                         
523                         for(i=0;i<size;i++)
524                         {
525                                 double grey2=(*ctfunVectorPoint)[i];
526                                 double red =(*ctfunVectorRed)[i];
527                                 double green =(*ctfunVectorGreen)[i];
528                                 double blue = (*ctfunVectorBlue)[i];
529                                 ctfun->AddRGBPoint(grey2,red,green,blue);
530                         }
531                  }      
532                  
533         }
534
535  hDlg->Destroy();
536 }
537
538
539 //-------------------------------------------------------------------
540 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(wxCommandEvent& event)
541 {
542         _wxvtkmpr3Dview->FreePlaneVisible( 1, event.IsChecked() );
543         _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
544 }
545
546 //-------------------------------------------------------------------
547 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(wxCommandEvent& event)
548 {
549         _wxvtkmpr3Dview->FreePlaneVisible(  2, event.IsChecked() );
550         _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
551 }
552
553
554 //-------------------------------------------------------------------
555 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ(wxCommandEvent& event)
556 {
557         _wxvtkmpr3Dview->FreePlaneVisible(  3, event.IsChecked() );
558         _wxvtkmpr3Dview->FreePlaneInteraction( _ckFreePlaneInteraction->GetValue() );
559 }
560
561
562 //-------------------------------------------------------------------
563 void wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(wxCommandEvent& event)
564 {
565         _wxvtkmpr3Dview->FreePlaneInteraction(  event.IsChecked() );
566 }
567
568 //-------------------------------------------------------------------
569 void wxVtkMPR3DViewCntrlPanel::OnFreePlanesOrtho(wxCommandEvent& event)
570 {
571         _wxvtkmpr3Dview->SetFreePlanesOrtho();
572 }
573
574 //-------------------------------------------------------------------
575 void wxVtkMPR3DViewCntrlPanel::OnSetStereo(wxCommandEvent& event)
576 {
577         this->_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->SetStereo( _cbStereo->GetSelection()  );
578 }
579
580
581
582 //-------------------------------------------------------------------
583 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(wxCommandEvent& event)
584 {       
585         _wxvtkmpr3Dview->VisibleImageActor(0, event.IsChecked() );
586         _wxvtkmpr3Dview->Refresh();
587         
588         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
589
590         try{
591 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
592 #if wxMAJOR_VERSION <= 2
593                 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
594 #else
595                 _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
596 #endif
597         }catch(char* e){
598                 std::cout<<e<<std::endl;
599         }
600 }
601 //-------------------------------------------------------------------
602 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(wxCommandEvent& event)
603 {
604         _wxvtkmpr3Dview->VisibleImageActor(1, event.IsChecked() );
605         _wxvtkmpr3Dview->Refresh();
606
607         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
608 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
609 #if wxMAJOR_VERSION <= 2
610         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
611 #else
612         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
613 #endif
614 }
615 //-------------------------------------------------------------------
616 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(wxCommandEvent& event)
617 {
618         _wxvtkmpr3Dview->VisibleImageActor(2, event.IsChecked() );
619         _wxvtkmpr3Dview->Refresh();
620         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
621 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
622 #if wxMAJOR_VERSION <= 2
623         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
624 #else
625         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
626 #endif
627 }
628
629 //-------------------------------------------------------------------
630 void wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(wxCommandEvent& event)
631 {
632
633         _wxvtkmpr3Dview->VisiblePointWidget(event.IsChecked());
634 }
635
636 //-------------------------------------------------------------------
637 void wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(wxCommandEvent& event)
638 {
639         _wxvtkmpr3Dview->VisiblePlaneWidget(event.IsChecked());
640 }
641
642 //-------------------------------------------------------------------
643 void wxVtkMPR3DViewCntrlPanel::OnPositionX(wxScrollEvent& event)
644 {
645         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( _positionX->GetValue() );
646         _wxvtkmpr3Dview->RefreshView();
647
648         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
649 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
650 #if wxMAJOR_VERSION <= 2
651         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
652 #else
653         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
654 #endif
655 }
656 //-------------------------------------------------------------------
657 void wxVtkMPR3DViewCntrlPanel::OnPositionY(wxScrollEvent& event)
658 {
659         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( _positionY->GetValue() );
660         _wxvtkmpr3Dview->RefreshView();
661         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
662 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
663 #if wxMAJOR_VERSION <= 2
664         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
665 #else
666         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
667 #endif
668 }
669 //-------------------------------------------------------------------
670 void wxVtkMPR3DViewCntrlPanel::OnPositionZ(wxScrollEvent& event)
671 {
672         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( _positionZ->GetValue() );
673         _wxvtkmpr3Dview->RefreshView();
674         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
675 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
676 #if wxMAJOR_VERSION <= 2
677         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
678 #else
679         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
680 #endif
681 }
682
683
684
685 //-------------------------------------------------------------------
686 bool wxVtkMPR3DViewCntrlPanel::GetVisibleX()
687 {
688         return _ckBoxX->GetValue();
689 }
690
691 //-------------------------------------------------------------------
692 bool wxVtkMPR3DViewCntrlPanel::GetVisibleY()
693 {
694         return _ckBoxY->GetValue();
695 }
696
697 //-------------------------------------------------------------------
698 bool wxVtkMPR3DViewCntrlPanel::GetVisibleZ()
699 {
700         return _ckBoxZ->GetValue();
701 }
702
703 //-------------------------------------------------------------------
704 bool wxVtkMPR3DViewCntrlPanel::GetVisibleXYZ()
705 {
706         return _ckBoxXYZ->GetValue();
707 }
708
709 //-------------------------------------------------------------------
710 ////EED 05Nov2012
711 //bool wxVtkMPR3DViewCntrlPanel::Get_BW_Color_Plane()
712 //{
713 //      return _ckBox_BW_Color_Plane;
714 //}
715
716 //-------------------------------------------------------------------
717 bool wxVtkMPR3DViewCntrlPanel::GetVisiblePlane()
718 {
719         return _ckBoxPlane->GetValue();
720 }
721
722 //-------------------------------------------------------------------
723 void wxVtkMPR3DViewCntrlPanel::SetVisibleX(bool value)
724 {
725         _ckBoxX->SetValue(value);
726         
727         _wxvtkmpr3Dview->VisibleImageActor(0, value );
728         _wxvtkmpr3Dview->Refresh();
729
730         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
731 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
732 #if wxMAJOR_VERSION <= 2
733         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
734 #else
735         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
736 #endif
737 }
738
739 //-------------------------------------------------------------------
740 void wxVtkMPR3DViewCntrlPanel::SetVisibleY(bool value)
741 {
742         _ckBoxY->SetValue(value);
743         
744         _wxvtkmpr3Dview->VisibleImageActor(1, value );
745         _wxvtkmpr3Dview->Refresh();
746
747         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
748 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
749 #if wxMAJOR_VERSION <= 2
750         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
751 #else
752         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
753 #endif
754 }
755
756 //-------------------------------------------------------------------
757 void wxVtkMPR3DViewCntrlPanel::SetVisibleZ(bool value)
758 {
759         _ckBoxZ->SetValue(value);
760
761         _wxvtkmpr3Dview->VisibleImageActor(2, value );
762         _wxvtkmpr3Dview->Refresh();
763
764         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
765 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
766 #if wxMAJOR_VERSION <= 2
767         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
768 #else
769         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
770 #endif
771 }
772
773 //-------------------------------------------------------------------
774 void wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(bool value)
775 {
776         _ckBoxXYZ->SetValue(value);
777         _wxvtkmpr3Dview->VisiblePointWidget(value);
778
779 }
780
781 //-------------------------------------------------------------------
782 void wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(bool value)
783 {
784         _ckBoxPlane->SetValue(value);
785         _wxvtkmpr3Dview->VisiblePlaneWidget(value);
786 }
787
788
789 //-------------------------------------------------------------------
790 void wxVtkMPR3DViewCntrlPanel::OnOutlineBox(wxCommandEvent& event)
791 {
792         _wxvtkmpr3Dview->showOutlineBoxActor( _ckBoxOutlineBox->GetValue() );
793         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->Refresh();
794 }
795
796 //-------------------------------------------------------------------
797 void wxVtkMPR3DViewCntrlPanel::OnOutlinePlane(wxCommandEvent& event)
798 {
799         _wxvtkmpr3Dview->showOutlinePlaneActor( _ckBoxOutlinePlane->GetValue() );
800         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->Refresh();
801 }
802
803 //-------------------------------------------------------------------
804 void wxVtkMPR3DViewCntrlPanel::OnBackGroundBlack(wxCommandEvent& event)
805 {
806 //EED Borrame
807 //      if (_ckBoxBackGroundBlack->GetValue()==true)
808 //      {
809 //              _wxvtkmpr3Dview->SetBackGroundType(0);
810 //      } else {
811 //              _wxvtkmpr3Dview->SetBackGroundType(1);
812 //      }
813         
814         if (_rdBackGroundGradient->GetValue()==true) {
815                 _wxvtkmpr3Dview->SetBackGroundType(0);
816         } else if (_rdBackGroundBlack->GetValue()==true) {
817                 _wxvtkmpr3Dview->SetBackGroundType(1);
818         } else if (_rdBackGroundWhite->GetValue()==true) {
819                 _wxvtkmpr3Dview->SetBackGroundType(2);
820         }
821         
822 }
823
824 //-------------------------------------------------------------------
825 void wxVtkMPR3DViewCntrlPanel::OnInterpolate(wxCommandEvent& event)
826 {
827         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetInterpolate(  _ckBoxInterpolate->GetValue() );
828         _wxvtkmpr3Dview->Refresh();
829         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh 
830 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
831 #if wxMAJOR_VERSION <= 2
832         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
833 #else
834         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
835 #endif
836 }
837
838 //-------------------------------------------------------------------
839 void wxVtkMPR3DViewCntrlPanel::OnFixAxis2D(wxCommandEvent& event)
840 {
841         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetFixAxis2D(    _ckBoxFixAxis2D->GetValue() );
842         _wxvtkmpr3Dview->Refresh();
843         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
844 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
845 #if wxMAJOR_VERSION <= 2
846         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
847 #else
848         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
849 #endif
850 }
851
852 //-------------------------------------------------------------------
853 void wxVtkMPR3DViewCntrlPanel::OnOpacityAxis(wxCommandEvent& event)
854 {
855         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetOpacityAxis(  _opacityAxis->GetValue()/100.0 );
856         _wxvtkmpr3Dview->Refresh();
857         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
858 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
859 #if wxMAJOR_VERSION <= 2
860         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
861 #else
862         _wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent1);
863 #endif  
864 }
865
866