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