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