]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
#2482 creaMaracasVisu Bug New High - ColorLayer refresh missing. The MPR is not...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracas_ViewerWidget.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 /*=========================================================================
27
28   Program:   wxMaracas
29   Module:    $RCSfile: wxMaracas_ViewerWidget.cxx,v $
30   Language:  C++
31   Date:      $Date: 2012/11/15 14:14:35 $
32   Version:   $Revision: 1.38 $
33
34   Copyright: (c) 2002, 2003
35   License:
36
37      This software is distributed WITHOUT ANY WARRANTY; without even
38      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
39      PURPOSE.  See the above copyright notice for more information.
40
41 =========================================================================*/
42
43 //------------------------------------------------------------------------------------------------------------
44 // Definition includes
45 //------------------------------------------------------------------------------------------------------------
46 #include "wxMaracas_ViewerWidget.h"
47 #include <wx/notebook.h>
48 //------------------------------------------------------------------------------------------------------------
49 // Other includes
50 //------------------------------------------------------------------------------------------------------------
51         //------------------------------------------------------------------------------------------------------------
52         // Constructors & Destructors
53         //------------------------------------------------------------------------------------------------------------
54
55         wxMaracas_ViewerWidget::wxMaracas_ViewerWidget(wxWindow *parent, vtkImageData* imagedata, int type, vtkMPRBaseData *vtkmprbasedata)
56                 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
57         {
58                 wxPanel *panel = this;
59                 wxWindow *wxwindow = NULL, *window3D    = 0;
60                 wxSplitterWindow        *panelClipping3D= 0;
61 //              wxPanel *panelControl                   = 0;
62 //              wxFlexGridSizer  *sizerCtrol            = 0;
63                 wxPanel *controlPanelMPR3D              = 0;
64                 wxPanel *controlPanelClippingSurf3D     = 0;
65                 //RaC 03-2010 Adding a tab
66                 wxPanel *controlPanelClippingVol3D      = 0;
67
68                 wxBoxSizer *sizer                       = 0;
69
70                 mType = type;
71
72                 if (vtkmprbasedata==NULL)
73                 {
74                         minternalVtkmprbasedata         = true;
75                         mvtkmprbasedata                 = new vtkMPRBaseData();
76                         marImageData    *marimagedata   = new marImageData( imagedata );
77                         mvtkmprbasedata->SetMarImageData(marimagedata);
78                 } else {
79                         minternalVtkmprbasedata         = false;
80                         mvtkmprbasedata                     = vtkmprbasedata;
81                 }
82
83                 mvtk2Dbaseview                  = NULL;
84                 mvtkmpr2Dview_X                 = NULL;
85                 mvtkmpr2Dview_Y                 = NULL;
86                 mvtkmpr2Dview_Z                 = NULL;
87                 mvtkplane2Dview                 = NULL;
88                 mwidgetMesure                   = NULL;
89                 mwxsphereview                   = NULL;
90                 mwxvtkclipping3Dview            = NULL;
91                 mwxvtk3Dbaseview_Clipping3D     = NULL;
92                 mwxvtkmpr3Dview                     = NULL;
93                 vtkmpr3Ddataviewer                  = NULL;
94
95                 if (type==-1)
96                 {
97                         mvtk2Dbaseview  = new wxVtk2DBaseView(panel);
98                         mvtk2Dbaseview->SetVtkBaseData(mvtkmprbasedata);
99                         wxwindow            = mvtk2Dbaseview->GetWxVTKRenderWindowInteractor();
100                 }else if (type==0)
101                 {
102                         mvtkmpr2Dview_Z = new wxVtkMPR2DView(panel,2);
103                         mvtkmpr2Dview_Z->SetVtkBaseData(mvtkmprbasedata);
104                         wxwindow            = mvtkmpr2Dview_Z->GetWxVTKRenderWindowInteractor();
105                 }else if (type==1)
106                 {
107                         mvtkmpr2Dview_X = new wxVtkMPR2DView(panel,0);
108                         mvtkmpr2Dview_X->SetVtkBaseData(mvtkmprbasedata);
109                         wxwindow            = mvtkmpr2Dview_X->GetWxVTKRenderWindowInteractor();
110                 }else if (type==2)
111                 {
112                         mvtkmpr2Dview_Y = new wxVtkMPR2DView(panel,1);
113                         mvtkmpr2Dview_Y->SetVtkBaseData(mvtkmprbasedata);
114                         wxwindow            = mvtkmpr2Dview_Y->GetWxVTKRenderWindowInteractor();
115                 }else if (type==3)
116                 {
117                         mwidgetMesure   = new wxWidgetMesure2D_Plane_in_MPR(panel);
118                         mvtkplane2Dview = new vtkPlane2DView( mwidgetMesure->GetWindow2());
119                         mwidgetMesure   -> SetVtkPlane2DView( mvtkplane2Dview );
120                         mvtkplane2Dview -> SetImgSize( 200 );
121                         mvtkplane2Dview -> SetVtkBaseData(mvtkmprbasedata);
122                         wxwindow        = mwidgetMesure;
123                 }else if (type==4)
124                 {
125                         mwxsphereview   = new wxSphereView( panel , mvtkmprbasedata, mvtkmprbasedata->GetImageData() );
126                         wxwindow=mwxsphereview->GetWxVTKRenderWindowInteractor();
127                 }else if (type==5)
128                 {
129                         panelClipping3D = new wxSplitterWindow( panel , -1);
130                         mwxvtk3Dbaseview_Clipping3D             = new wxVtk3DBaseView( panelClipping3D );
131
132                         mwxvtkclipping3Dview                    = new wxVtkClipping3DView(mwxvtk3Dbaseview_Clipping3D);
133                         vtkClipping3DDataViewer *vtkclipping3Ddataviewer = new vtkClipping3DDataViewer();
134                         vtkclipping3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                    
135                         vtkclipping3Ddataviewer->Configure();
136                         mwxvtkclipping3Dview->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer);
137
138                         mwxvtkmpr3Dview                         = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
139                         vtkMPR3DDataViewer *vtkmpr3Ddataviewer  = new vtkMPR3DDataViewer();
140                         vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
141                         vtkmpr3Ddataviewer->Configure();
142                         mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
143
144                         window3D = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
145
146 //--
147                         wxNotebook *notebook = new wxNotebook(panelClipping3D, -1);
148
149                         // First tab
150                         controlPanelMPR3D               = mwxvtkmpr3Dview->CreateControlPanel(notebook, true);
151                         notebook->AddPage(controlPanelMPR3D, _T("Planes") );
152
153                         // Second Tab
154                         controlPanelClippingSurf3D      = mwxvtkclipping3Dview->CreateSurfControlPanel(notebook);
155                         notebook->AddPage(controlPanelClippingSurf3D, _T("Surface") );
156
157                         //Third tab
158                         //RaC 03-2010 Moving the volume functionnality to other tab. The changes were realized only in the wxVtkClipping3DViewCntrlPanel class
159                         controlPanelClippingVol3D       = mwxvtkclipping3Dview->CreateVolControlPanel(notebook);
160                         notebook->AddPage(controlPanelClippingVol3D, _T("Volume") );
161
162                         panelClipping3D->SplitHorizontally( notebook , window3D , 10  );
163                         //panelClipping3D->SetMinimumPaneSize( 15 );
164                         panelClipping3D->SetMinimumPaneSize( 70 ); // JPR
165                         //RaC Nov2012 Correctly resize internal panels with the window resize event
166                         panelClipping3D->SetSashGravity(0.5);
167
168         /*              EED 04 / Febrary / 2010
169                         panelControl                    = new wxPanel(panelClipping3D,-1);
170                         controlPanelMPR3D               = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
171                         controlPanelClipping3D  = mwxvtkclipping3Dview->CreateControlPanel(panelControl);
172         //                               mbtnCutImageData               = new wxCheckBox(panelControl,-1,_T("Cut Module"));
173         //              Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED  , (wxObjectEventFunction) &wxMPRWidget::OnCutImagaData );
174                         sizerCtrol             = new wxFlexGridSizer(1);
175                         sizerCtrol->Add(controlPanelMPR3D       , 1, wxALL|wxEXPAND, 2);
176                         sizerCtrol->Add(controlPanelClipping3D  , 1, wxALL|wxEXPAND, 2);
177         //              sizerCtrol->Add( mbtnCutImageData       , 1, wxALL, 2);
178                         panelControl->SetAutoLayout(true);
179                         panelControl->SetSizer(sizerCtrol);
180                         panelControl->SetSize(400,350);
181                         panelControl->Layout();
182                         panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
183                         panelClipping3D -> SetMinimumPaneSize( 5 );
184          */
185                         wxwindow=panelClipping3D;
186
187                 } else if (type==6)             {
188                         panelClipping3D = new wxSplitterWindow( panel , -1);
189                         mwxvtk3Dbaseview_Clipping3D     = new wxVtk3DBaseView( panelClipping3D );
190
191                         mwxvtkmpr3Dview         = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
192
193                         vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();
194
195                         wxWindow *window3D = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
196
197                         wxPanel *panelControl   = new wxPanel(panelClipping3D,-1);
198                         wxPanel *controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
199
200                         wxFlexGridSizer  *sizerCtrol     = new wxFlexGridSizer(1);
201                         sizerCtrol->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
202
203                         panelControl->SetAutoLayout(true);
204                         panelControl->SetSizer(sizerCtrol);
205                         panelControl->SetSize(400,350);
206                         panelControl->Layout();
207                         //panelClipping3D->SetMinimumPaneSize( 5 );
208                         panelClipping3D->SetMinimumPaneSize( 130 );  // FCY
209                         panelClipping3D->SplitHorizontally( panelControl , window3D , 0  );
210                         //panelClipping3D->SetSashSize(10);
211
212                         //RaC Nov2012 Correctly resize internal panels with the window resize event
213                         panelClipping3D->SetSashGravity(0.5);
214                         panelClipping3D->UpdateSize(); //FCY
215                         wxwindow=panelClipping3D;
216
217                         vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
218                         //vtkmpr3Ddataviewer->Configure();
219
220                         mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
221
222                 }else if (type==7)
223                 {
224                         mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panel );
225                         wxwindow = (wxWindow*) mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
226                 }
227
228         sizer = new wxBoxSizer(wxVERTICAL);
229         sizer->Add( wxwindow, 1, wxGROW);
230         panel->SetSizer(sizer);
231         panel->SetAutoLayout(true);
232         sizer->Layout();
233         panel->Layout();
234         panel->Refresh();
235
236         //   mbbtkViewerMaracas= NULL;
237         }
238         //-------------------------------------------------------------------------
239
240         wxMaracas_ViewerWidget::~wxMaracas_ViewerWidget()
241         {
242                 if (minternalVtkmprbasedata==true)
243                 {
244                    if (mvtkmprbasedata)         { delete mvtkmprbasedata;}
245                 }
246                 
247                 if (mvtk2Dbaseview)             { delete mvtk2Dbaseview; }
248                 if (mvtkmpr2Dview_X)            { delete mvtkmpr2Dview_X;}
249                 if (mvtkmpr2Dview_Y)            { delete mvtkmpr2Dview_Y;}
250                 if (mvtkmpr2Dview_Z)            { delete mvtkmpr2Dview_Z;}
251                 if (mwidgetMesure)              { delete mwidgetMesure;  }
252                 if (mvtkplane2Dview)            { delete mvtkplane2Dview;}
253                 if (mwxsphereview)              { delete mwxsphereview;  }
254                 if (mwxvtkmpr3Dview)            { delete mwxvtkmpr3Dview;}
255                 if (mwxvtkclipping3Dview)       { delete mwxvtkclipping3Dview;}
256                 if (mwxvtk3Dbaseview_Clipping3D){ delete mwxvtk3Dbaseview_Clipping3D; mwxvtk3Dbaseview_Clipping3D=NULL;}
257                 if (vtkmpr3Ddataviewer)                 { delete vtkmpr3Ddataviewer;}
258         }
259         //------------------------------------------------------------------------------------------------------------
260         // Methods
261         //------------------------------------------------------------------------------------------------------------
262
263         //-------------------------------------------------------------------------
264
265         void wxMaracas_ViewerWidget::ConfigureVTK()
266         {
267                 int x=0,y=0,z=0;
268                 /*
269                 int ext[6];
270                 ext[0]=0;
271                 ext[1]=0;
272                 ext[2]=0;
273                 ext[3]=0;
274                 ext[4]=0;
275                 ext[5]=0;
276                 */
277                 int ext[] = {0, 0, 0, 0, 0, 0}; //JPR
278
279                 /*double org[3],spc[3];
280                 org[0]=0;
281                 org[1]=0;
282                 org[2]=0;
283                 spc[0]=0;
284                 spc[1]=0;
285                 spc[2]=0;
286                 */
287                 double org[]={0.0, 0.0, 0.0}; //JPR
288                 double spc[]={0.0, 0.0, 0.0}; //JPR
289                 if (mvtkmprbasedata!=NULL)
290                 {
291                         mvtkmprbasedata->Configure();
292
293                         if(mvtkmprbasedata->GetImageData() != NULL)
294                         {
295                                 mvtkmprbasedata->GetImageData()->GetExtent(ext);
296                                 mvtkmprbasedata->GetImageData()->GetOrigin(org);
297                                 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
298
299                                 x = (ext[0]+ext[1])/2;
300                                 y = (ext[2]+ext[3])/2;
301                                 z = (ext[4]+ext[5])/2;
302
303                                 mvtkmprbasedata->SetX( x );
304                                 mvtkmprbasedata->SetY( y );
305                                 mvtkmprbasedata->SetZ( z );
306                         }
307                         else
308                         {
309                                 mvtkmprbasedata->SetX( 0 );
310                                 mvtkmprbasedata->SetY( 0 );
311                                 mvtkmprbasedata->SetZ( 0 );
312                         }
313                 }
314
315                 if ( mvtk2Dbaseview      !=NULL ) { mvtk2Dbaseview->Configure();                }
316                 if ( mvtkmpr2Dview_X     !=NULL ) { mvtkmpr2Dview_X->Configure();               }
317                 if ( mvtkmpr2Dview_Y     !=NULL ) { mvtkmpr2Dview_Y->Configure();               }
318                 if ( mvtkmpr2Dview_Z     !=NULL ) { mvtkmpr2Dview_Z->Configure();               }
319                 if ( mvtkplane2Dview     !=NULL ) { mvtkplane2Dview->Configure();               }
320                 if ( mwidgetMesure       !=NULL ) { mwidgetMesure->ConfigureA(mvtkplane2Dview); }
321                 if ( mwidgetMesure       !=NULL ) { mwidgetMesure->ConfigureA(mvtkplane2Dview); }
322                 if ( mwidgetMesure       !=NULL ) { mwidgetMesure->SetActiveLink(true);         }
323                 if ( mwidgetMesure       !=NULL ) { mwidgetMesure->SetMesureScale( 1 );         }
324                 if ( mwxsphereview       !=NULL ) { mwxsphereview->Configure();                 }
325
326                 
327                 if (mwxvtk3Dbaseview_Clipping3D !=NULL)
328                 {
329                         mwxvtk3Dbaseview_Clipping3D->Configure();
330                 }
331
332                 if (vtkmpr3Ddataviewer                  !=NULL)
333                 {
334                         vtkmpr3Ddataviewer->Configure();
335
336                 }
337
338                 if (mwxvtkmpr3Dview                     !=NULL)
339                 {
340                         mwxvtkmpr3Dview->Configure();
341 //EED???                        mwxvtkmpr3Dview->ResetCamera(ext,org,spc);
342                 }
343
344                 if (mwxvtkclipping3Dview                !=NULL)
345                 {
346                         mwxvtkclipping3Dview->Configure();
347                 }
348
349                 //if(vtkmpr3Ddataviewer!=NULL){vtkmpr3Ddataviewer->Configure();}
350 //              RefreshView();
351
352                 //if (mwxvtkmpr3Dview                           !=NULL) {
353                 //      mwxvtkmpr3Dview->ResetCamera();
354                 //}
355
356         }
357
358 //-------------------------------------------------------------------------
359 void wxMaracas_ViewerWidget::Refresh(bool eraseBackground ,const wxRect* rect  )  // virtual  eraseBackground=true , rect=NULL
360 {
361         wxPanel::Refresh(false);
362 }
363
364         //-------------------------------------------------------------------------
365         void wxMaracas_ViewerWidget::RefreshView()
366         {
367                 if (mvtk2Dbaseview                              !=NULL ){ mvtk2Dbaseview->Refresh();                            }
368                 if (mvtkmpr2Dview_X                             !=NULL ){ mvtkmpr2Dview_X->Refresh();                           }
369                 if (mvtkmpr2Dview_Y                             !=NULL ){ mvtkmpr2Dview_Y->Refresh();                           }
370                 if (mvtkmpr2Dview_Z                             !=NULL ){ mvtkmpr2Dview_Z->Refresh();                           }
371                 if (mvtkplane2Dview                             !=NULL ){ mvtkplane2Dview->Refresh();                           }
372                 if (mwxsphereview                               !=NULL ){ mwxsphereview ->Refresh();                            }
373                 if (mwxvtkmpr3Dview                             !=NULL ){ mwxvtkmpr3Dview->RefreshView();                       }
374                 if (mwxvtkclipping3Dview                !=NULL ){ mwxvtkclipping3Dview->Refresh();                      }
375                 if (mwxvtk3Dbaseview_Clipping3D !=NULL ){ mwxvtk3Dbaseview_Clipping3D->Refresh();       }
376         }
377
378         //-------------------------------------------------------------------------
379
380         wxVtkBaseView *wxMaracas_ViewerWidget::GetwxVtkBaseView()
381         {
382                 wxVtkBaseView *wxvtkbaseview=NULL;
383                 if (mvtk2Dbaseview!=NULL){
384                         wxvtkbaseview = mvtk2Dbaseview;
385                 }
386                 if (mvtkmpr2Dview_X!=NULL){
387                         wxvtkbaseview = mvtkmpr2Dview_X;
388                 }
389                 if (mvtkmpr2Dview_Y!=NULL){
390                         wxvtkbaseview = mvtkmpr2Dview_Y;
391                 }
392                 if (mvtkmpr2Dview_Z!=NULL){
393                         wxvtkbaseview = mvtkmpr2Dview_Z;
394                 }
395                 if (mvtkplane2Dview!=NULL){
396                         wxvtkbaseview = mvtkplane2Dview;
397                 }
398                 if (mwxsphereview!=NULL){
399                         wxvtkbaseview = mwxsphereview;
400                 }
401                 if (mwxvtk3Dbaseview_Clipping3D!=NULL){
402                         wxvtkbaseview = mwxvtk3Dbaseview_Clipping3D;
403                 }
404                 return wxvtkbaseview   ;
405         }
406
407         void wxMaracas_ViewerWidget::SetImage( vtkImageData *image )
408         {
409                 if(mvtkmprbasedata !=NULL)
410                 {
411                         marImageData* mar = mvtkmprbasedata->GetMarImageData();
412                         mar->removeImageData(0);
413                         mar->AddImageData(image);
414                 }
415
416                 
417                 if (mvtk2Dbaseview!=NULL)
418                 {
419                         mvtk2Dbaseview->SetImageToVtkViewer(image);
420                 }
421                 
422                 if (mvtkmpr2Dview_X!=NULL){
423                         mvtkmpr2Dview_X->SetImageToVtkViewer(image);
424                 }
425                 if (mvtkmpr2Dview_Y!=NULL){
426                         mvtkmpr2Dview_Y->SetImageToVtkViewer(image);
427                 }
428                 if (mvtkmpr2Dview_Z!=NULL){
429                         mvtkmpr2Dview_Z->SetImageToVtkViewer(image);
430                 }
431                 
432                 if (mvtkplane2Dview!=NULL){
433                         // ???  EED 10 oct 2012
434                 }
435                 if (mwxsphereview!=NULL){
436                         // ???  EED 10 oct 2012
437                 }
438                 if (mwxvtk3Dbaseview_Clipping3D!=NULL){
439                         // ???  EED 10 oct 2012
440                 }
441                 
442                 
443                 
444 //EED 26/11/2009
445 //              ConfigureVTK();
446 //              RefreshView();
447         }
448
449         double wxMaracas_ViewerWidget :: GetX()
450         {
451                 double value = -1;
452                 if(mvtkmprbasedata !=NULL)
453                 {
454                         value = mvtkmprbasedata->GetX();
455                 }
456                 return value;
457         }
458
459         double wxMaracas_ViewerWidget::GetY()
460         {
461                 double value = -1;
462                 if(mvtkmprbasedata !=NULL)
463                 {
464                         value = mvtkmprbasedata->GetY();
465                 }
466                 return value;
467         }
468
469         double wxMaracas_ViewerWidget::GetZ()
470         {
471                 double value = -1;
472                 if(mvtkmprbasedata !=NULL)
473                 {
474                         value = mvtkmprbasedata->GetZ();
475                 }
476                 return value;
477 //              return mvtk2Dbaseview->GetVtkBaseData()->GetZ();
478         }
479
480 //-------------------------------------------------------------------------------------------
481 void wxMaracas_ViewerWidget::setColorTransferFunction(vtkColorTransferFunction* colortable)
482 {
483         if(mvtkmpr2Dview_X!=NULL)
484         {
485                 mvtkmpr2Dview_X->setColorTransferFunction(colortable);
486         }
487         
488         if(mvtkmpr2Dview_Y!=NULL)
489         {
490                 mvtkmpr2Dview_Y->setColorTransferFunction(colortable);
491         }
492         
493         if(mvtkmpr2Dview_Z!=NULL)
494         {
495                 mvtkmpr2Dview_Z->setColorTransferFunction(colortable);
496         }
497         
498         if(mwxvtkmpr3Dview!=NULL)
499         {
500                 mwxvtkmpr3Dview->setColorTransferFunction(colortable);
501         }
502 }
503
504 //-------------------------------------------------------------------------------------------
505 void wxMaracas_ViewerWidget::SetColorWindowLevel(double colorWindow, double colorLevel)
506 {
507         mvtkmprbasedata->SetColorWindow(colorWindow);
508         mvtkmprbasedata->SetColorLevel(colorLevel);
509 //EED Borrame   
510 /*      
511  RefreshView();
512         if(mvtk2Dbaseview!=NULL)
513         {
514                 mvtk2Dbaseview->SetColorWindow(level);
515         }
516         
517         if(mvtkmpr2Dview_X!=NULL)
518         {
519                 mvtkmpr2Dview_X->SetColorWindow(level);
520         }
521         
522         if(mvtkmpr2Dview_Y!=NULL)
523         {
524                 mvtkmpr2Dview_Y->SetColorWindow(level);
525         }
526         
527         if(mvtkmpr2Dview_Z!=NULL)
528         {
529                 mvtkmpr2Dview_Z->SetColorWindow(level);
530         }
531         
532         if(mwxvtkmpr3Dview!=NULL)
533         {
534                 mwxvtkmpr3Dview->SetColorWindow(level);
535         }
536  */
537 }
538
539
540