]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
ad0572976e277b80db4349fcc4f765a6deab230e
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracas_ViewerWidget.cxx
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: wxMaracas_ViewerWidget.cxx,v $
5   Language:  C++
6   Date:      $Date: 2009/11/30 20:52:51 $
7   Version:   $Revision: 1.20 $
8
9   Copyright: (c) 2002, 2003
10   License:
11   
12      This software is distributed WITHOUT ANY WARRANTY; without even 
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14      PURPOSE.  See the above copyright notice for more information.
15
16 =========================================================================*/
17
18 //------------------------------------------------------------------------------------------------------------
19 // Definition includes
20 //------------------------------------------------------------------------------------------------------------
21 #include "wxMaracas_ViewerWidget.h"
22
23 //------------------------------------------------------------------------------------------------------------
24 // Other includes
25 //------------------------------------------------------------------------------------------------------------
26
27
28         //------------------------------------------------------------------------------------------------------------
29         // Constructors & Destructors
30         //------------------------------------------------------------------------------------------------------------
31
32
33         wxMaracas_ViewerWidget::wxMaracas_ViewerWidget(wxWindow *parent, vtkImageData* imagedata, int type, vtkMPRBaseData *vtkmprbasedata)
34                 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
35         {
36                 wxPanel *panel = this;
37                 wxWindow *wxwindow = NULL;
38
39                 mType = type;
40
41                 
42                 if (vtkmprbasedata==NULL)
43                 {
44                         minternalVtkmprbasedata                 = true;
45                         mvtkmprbasedata                                 = new vtkMPRBaseData(); 
46                         marImageData    *marimagedata   = new marImageData( imagedata );                        
47                         mvtkmprbasedata->SetMarImageData(marimagedata);
48                 } else {
49                         minternalVtkmprbasedata                 = false;
50                         mvtkmprbasedata                                 = vtkmprbasedata; 
51                 }
52                 
53
54                 mvtk2Dbaseview                          = NULL;
55                 mvtkmpr2Dview_X                         = NULL;
56                 mvtkmpr2Dview_Y                         = NULL;
57                 mvtkmpr2Dview_Z                         = NULL;
58                 mvtkplane2Dview                         = NULL;
59                 mwidgetMesure                           = NULL;
60                 mwxsphereview                           = NULL;
61                 mwxvtkclipping3Dview            = NULL;
62                 mwxvtk3Dbaseview_Clipping3D     = NULL;
63                 mwxvtkmpr3Dview                         = NULL;
64                 vtkmpr3Ddataviewer                      = NULL;
65
66
67                 if (type==-1)
68                 {
69                         mvtk2Dbaseview  = new wxVtk2DBaseView(panel);
70                         mvtk2Dbaseview->SetVtkBaseData(mvtkmprbasedata);
71                         wxwindow                = mvtk2Dbaseview->GetWxVTKRenderWindowInteractor();
72                 }
73
74
75                 if (type==0)
76                 {
77                         mvtkmpr2Dview_Z = new wxVtkMPR2DView(panel,2);
78                         mvtkmpr2Dview_Z->SetVtkBaseData(mvtkmprbasedata);
79                         wxwindow                = mvtkmpr2Dview_Z->GetWxVTKRenderWindowInteractor();
80                 }
81                 if (type==1)
82                 {
83                         mvtkmpr2Dview_X = new wxVtkMPR2DView(panel,0);
84                         mvtkmpr2Dview_X->SetVtkBaseData(mvtkmprbasedata);
85                         wxwindow                =       mvtkmpr2Dview_X->GetWxVTKRenderWindowInteractor();
86                 }
87
88                 if (type==2)
89                 {
90                         mvtkmpr2Dview_Y = new wxVtkMPR2DView(panel,1);
91                         mvtkmpr2Dview_Y->SetVtkBaseData(mvtkmprbasedata);
92                         wxwindow                = mvtkmpr2Dview_Y->GetWxVTKRenderWindowInteractor();
93                 }
94
95
96                 if (type==3)
97                 {
98                         mwidgetMesure           = new wxWidgetMesure2D_Plane_in_MPR(panel);
99                         mvtkplane2Dview         = new vtkPlane2DView( mwidgetMesure->GetWindow2());
100                         mwidgetMesure   -> SetVtkPlane2DView( mvtkplane2Dview );
101                         mvtkplane2Dview -> SetImgSize( 200 );
102                         mvtkplane2Dview -> SetVtkBaseData(mvtkmprbasedata);
103                         wxwindow                        = mwidgetMesure;
104                 }
105                 if (type==4)
106                 {
107                         mwxsphereview           = new wxSphereView( panel , mvtkmprbasedata, mvtkmprbasedata->GetImageData() );
108                         wxwindow=mwxsphereview->GetWxVTKRenderWindowInteractor();
109                 }
110
111
112                 if (type==5)
113                 {
114                         wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
115                         mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
116
117                         mwxvtkclipping3Dview                                            = new wxVtkClipping3DView(mwxvtk3Dbaseview_Clipping3D);
118                         vtkClipping3DDataViewer *vtkclipping3Ddataviewer = new vtkClipping3DDataViewer(); 
119                         vtkclipping3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
120                         vtkclipping3Ddataviewer->Configure();
121                         mwxvtkclipping3Dview->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer);
122
123                         mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
124                         vtkMPR3DDataViewer *vtkmpr3Ddataviewer  = new vtkMPR3DDataViewer(); 
125                         vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
126                         vtkmpr3Ddataviewer->Configure();
127                         mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
128
129                         wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
130
131                         wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
132                         wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
133                         wxPanel                 *controlPanelClipping3D = mwxvtkclipping3Dview->CreateControlPanel(panelControl);
134         //                               mbtnCutImageData               = new wxCheckBox(panelControl,-1,_T("Cut Module"));
135         //              Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED  , (wxObjectEventFunction) &wxMPRWidget::OnCutImagaData );
136
137                         wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
138                         sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
139                         sizerCtrol->Add(controlPanelClipping3D  , 1, wxALL|wxEXPAND, 2);
140         //              sizerCtrol->Add( mbtnCutImageData               , 1, wxALL, 2);
141
142                         panelControl->SetAutoLayout(true);
143                         panelControl->SetSizer(sizerCtrol);
144                         panelControl->SetSize(400,350);
145                         panelControl->Layout();
146                         panelClipping3D -> SetMinimumPaneSize( 5 );
147                         panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
148                         wxwindow=panelClipping3D;
149                 }
150
151                 if (type==6)
152                 {
153                         wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
154                         mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
155
156                         mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
157
158
159                         vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();     
160
161                         
162
163                         wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
164
165                         wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
166                         wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
167
168                         wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
169                         sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
170
171                         panelControl->SetAutoLayout(true);
172                         panelControl->SetSizer(sizerCtrol);
173                         panelControl->SetSize(400,350);
174                         panelControl->Layout();
175                         panelClipping3D -> SetMinimumPaneSize( 5 );
176                         panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
177                         wxwindow=panelClipping3D;
178
179
180                         vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                 
181                         //vtkmpr3Ddataviewer->Configure();
182
183                         mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
184                         
185                 }
186
187                 if (type==7)
188                 {
189                         mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panel );
190                         wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
191                         wxwindow=window3D;
192
193 /*Borrame
194                         wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
195                         mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
196                         wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
197                         panelClipping3D ->SetMinimumPaneSize( 5 );
198                         panelClipping3D ->SplitHorizontally( new wxPanel(panelClipping3D,-1) , window3D , 10  );
199                         wxwindow=panelClipping3D;
200 */
201
202 /*Borrame
203                         wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
204                         mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
205                         mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
206                         vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();     
207                         wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
208                         wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
209                         wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl);
210                         wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
211                         sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
212                         panelControl->SetAutoLayout(true);
213                         panelControl->SetSizer(sizerCtrol);
214                         panelControl->SetSize(400,350);
215                         panelControl->Layout();
216                         panelClipping3D -> SetMinimumPaneSize( 5 );
217                         panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
218                         wxwindow=panelClipping3D;
219                         vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                 
220                         //vtkmpr3Ddataviewer->Configure();
221                         mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
222 */
223                 }
224
225    
226         wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
227         sizer->Add( wxwindow , 1, wxGROW);      
228         panel->SetSizer(sizer);
229         panel->SetAutoLayout(true);
230         sizer->Layout();
231         panel->Layout();
232         panel->Refresh();
233
234         //   mbbtkViewerMaracas= NULL;
235         }
236         //-------------------------------------------------------------------------
237           
238         wxMaracas_ViewerWidget::~wxMaracas_ViewerWidget()
239         {
240                 
241                 if (minternalVtkmprbasedata==true)
242                 {
243                         if (mvtkmprbasedata)                    { delete mvtkmprbasedata;  }
244                 }       
245                 
246                 if (mvtk2Dbaseview)                             { delete mvtk2Dbaseview; }
247                 if (mvtkmpr2Dview_X)                    { delete mvtkmpr2Dview_X; }
248                 if (mvtkmpr2Dview_Y)                    { delete mvtkmpr2Dview_Y; }
249                 if (mvtkmpr2Dview_Z)                    { delete mvtkmpr2Dview_Z; }
250                 if (mwidgetMesure)                              { delete mwidgetMesure; }
251                 if (mvtkplane2Dview)                    { delete mvtkplane2Dview; }
252                 if (mwxsphereview)                              { delete mwxsphereview; }
253                 if (mwxvtkmpr3Dview)                    { delete mwxvtkmpr3Dview; }
254                 if (mwxvtkclipping3Dview)               { delete mwxvtkclipping3Dview; }
255                 if (mwxvtk3Dbaseview_Clipping3D){ delete mwxvtk3Dbaseview_Clipping3D; mwxvtk3Dbaseview_Clipping3D=NULL;}
256         }
257         //------------------------------------------------------------------------------------------------------------
258         // Methods
259         //------------------------------------------------------------------------------------------------------------
260
261         //-------------------------------------------------------------------------
262
263         void wxMaracas_ViewerWidget::ConfigureVTK()
264         {
265                 int x=0,y=0,z=0;
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                 double org[3],spc[3];
274                 org[0]=0;
275                 org[1]=0;
276                 org[2]=0;
277                 spc[0]=0;
278                 spc[1]=0;
279                 spc[2]=0;
280                 
281
282
283                 if (mvtkmprbasedata!=NULL)
284                 {
285                         mvtkmprbasedata->Configure();
286                         /*x = mvtkmprbasedata   ->      GetMaxPositionX()/2;
287                         y = mvtkmprbasedata     ->      GetMaxPositionY()/2;
288                         z = mvtkmprbasedata     ->      GetMaxPositionZ()/2;            */      
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
313                 if ( mvtk2Dbaseview                             !=NULL ) { mvtk2Dbaseview                               ->      Configure();                            }
314                 if ( mvtkmpr2Dview_X                    !=NULL ) { mvtkmpr2Dview_X                              ->      Configure();                            }
315                 if ( mvtkmpr2Dview_Y                    !=NULL ) { mvtkmpr2Dview_Y                              ->      Configure();                            }
316                 if ( mvtkmpr2Dview_Z                    !=NULL ) { mvtkmpr2Dview_Z                              ->      Configure();                            }
317                 if ( mvtkplane2Dview                    !=NULL ) { mvtkplane2Dview                              ->      Configure();                            }
318                 if ( mwidgetMesure                              !=NULL ) { mwidgetMesure                                ->      ConfigureA(mvtkplane2Dview);}
319                 if ( mwidgetMesure                              !=NULL ) { mwidgetMesure                                ->      ConfigureA(mvtkplane2Dview);}
320                 if ( mwidgetMesure                              !=NULL ) { mwidgetMesure                                ->      SetActiveLink(true);            }
321                 if ( mwidgetMesure                              !=NULL ) { mwidgetMesure                                ->      SetMesureScale( 1 );            }
322                 if ( mwxsphereview                              !=NULL ) { mwxsphereview                                ->      Configure();                            }
323
324                 printf("CPR wxMaracas_ViewerWidget::ConfigureVTK A \n");
325                 if (mwxvtk3Dbaseview_Clipping3D !=NULL) { mwxvtk3Dbaseview_Clipping3D   ->      Configure();                            
326                 printf("CPR wxMaracas_ViewerWidget::ConfigureVTK B \n");
327 /*Borrame
328                 mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetActiveCamera(mwxvtk3Dbaseview_Clipping3D->GetCamera());
329                 mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCamera ();     
330                 mwxvtk3Dbaseview_Clipping3D->GetCamera()->Dolly(1.5);   
331                 mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 );
332                 mwxvtk3Dbaseview_Clipping3D->GetRenWin()->SetSize(400, 400);
333                 mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCameraClippingRange();
334 */
335                 }
336                 
337                 if (vtkmpr3Ddataviewer                  !=NULL) {                       
338                         vtkmpr3Ddataviewer->Configure();
339                         
340                 }
341                 if (mwxvtkmpr3Dview                             !=NULL) { 
342                         
343                         mwxvtkmpr3Dview                         ->      Configure();
344                         mwxvtkmpr3Dview                         ->ResetCamera(ext,org,spc);
345                         
346                         
347                 }
348
349                 if (mwxvtkclipping3Dview                !=NULL) { mwxvtkclipping3Dview                  ->      Configure();                            }
350                 
351                 
352
353                 
354                 //if(vtkmpr3Ddataviewer!=NULL){vtkmpr3Ddataviewer->Configure();}
355 //              RefreshView();
356
357                 //if (mwxvtkmpr3Dview                           !=NULL) {
358                 //      mwxvtkmpr3Dview->ResetCamera();
359                 //}
360
361         }
362
363         //-------------------------------------------------------------------------
364
365   void wxMaracas_ViewerWidget::Refresh(bool eraseBackground ,const wxRect* rect  )  // virtual  eraseBackground=true , rect=NULL
366   {
367     wxPanel::Refresh(false);
368   }
369
370         //-------------------------------------------------------------------------
371         void wxMaracas_ViewerWidget::RefreshView()
372         {
373                 
374                         if (mvtk2Dbaseview                              !=NULL ){ mvtk2Dbaseview                                -> Refresh();           }
375                         if (mvtkmpr2Dview_X                             !=NULL ){ mvtkmpr2Dview_X                               -> Refresh();           }
376                         if (mvtkmpr2Dview_Y                             !=NULL ){ mvtkmpr2Dview_Y                               -> Refresh();           }
377                         if (mvtkmpr2Dview_Z                             !=NULL ){ mvtkmpr2Dview_Z                               -> Refresh();           }
378                         if (mvtkplane2Dview                             !=NULL ){ mvtkplane2Dview                               -> Refresh();           }
379                         if (mwxsphereview                               !=NULL ){ mwxsphereview                                 -> Refresh();           }
380
381                         if (mwxvtkmpr3Dview                             !=NULL ){ mwxvtkmpr3Dview                               -> RefreshView();       }
382                         if (mwxvtkclipping3Dview                !=NULL ){ mwxvtkclipping3Dview                  -> Refresh();           }
383                         if (mwxvtk3Dbaseview_Clipping3D !=NULL ){ mwxvtk3Dbaseview_Clipping3D   -> Refresh();           }
384
385         }
386
387         //-------------------------------------------------------------------------
388
389         wxVtkBaseView *wxMaracas_ViewerWidget::GetwxVtkBaseView()
390         {
391                 wxVtkBaseView *wxvtkbaseview=NULL;
392                 if (mvtk2Dbaseview!=NULL)                               { 
393                         wxvtkbaseview = mvtk2Dbaseview;                 
394                 }
395                 if (mvtkmpr2Dview_X!=NULL){ 
396                         wxvtkbaseview = mvtkmpr2Dview_X;
397                 }
398                 if (mvtkmpr2Dview_Y!=NULL){ 
399                         wxvtkbaseview = mvtkmpr2Dview_Y;
400                 }
401                 if (mvtkmpr2Dview_Z!=NULL){ 
402                         wxvtkbaseview = mvtkmpr2Dview_Z;                
403                 }
404                 if (mvtkplane2Dview!=NULL){
405                         wxvtkbaseview = mvtkplane2Dview;                
406                 }
407                 if (mwxsphereview!=NULL){ 
408                         wxvtkbaseview = mwxsphereview;
409                 }
410                 if (mwxvtk3Dbaseview_Clipping3D!=NULL)  { 
411                         wxvtkbaseview = mwxvtk3Dbaseview_Clipping3D;
412                 }
413                 return wxvtkbaseview   ;
414         }
415
416         void wxMaracas_ViewerWidget::SetImage( vtkImageData *image      )
417         {
418                 if(mvtkmprbasedata !=NULL)
419                 {
420                         marImageData* mar = mvtkmprbasedata->GetMarImageData();
421                         mar->removeImageData(0);
422                         mar->AddImageData(image);
423                 }
424
425 //EED 26/11/2009
426 //              ConfigureVTK();
427 //              RefreshView();
428         }
429
430         double wxMaracas_ViewerWidget :: GetX()
431         {
432                 double value = -1;
433                 if(mvtkmprbasedata !=NULL)
434                 {
435                         value = mvtkmprbasedata->GetX();
436                 }
437                 return value;
438         }
439
440         double wxMaracas_ViewerWidget :: GetY()
441         {
442                 double value = -1;
443                 if(mvtkmprbasedata !=NULL)
444                 {
445                         value = mvtkmprbasedata->GetY();
446                 }
447                 return value;
448         }
449
450         double wxMaracas_ViewerWidget :: GetZ()
451         {
452                 double value = -1;
453                 if(mvtkmprbasedata !=NULL)
454                 {
455                         value = mvtkmprbasedata->GetZ();
456                 }
457                 return value;
458 //              return mvtk2Dbaseview->GetVtkBaseData()->GetZ();
459         }
460
461         void wxMaracas_ViewerWidget::setColorTransferFunction(vtkColorTransferFunction* colortable){            
462                 if(mvtkmpr2Dview_X!=NULL){
463                         mvtkmpr2Dview_X->setColorTransferFunction(colortable);
464                 }
465                 if(mvtkmpr2Dview_Y!=NULL){
466                         mvtkmpr2Dview_Y->setColorTransferFunction(colortable);
467                 }
468                 if(mvtkmpr2Dview_Z!=NULL){
469                         mvtkmpr2Dview_Z->setColorTransferFunction(colortable);
470                 }
471                 if(mwxvtkmpr3Dview!=NULL){
472                         mwxvtkmpr3Dview->setColorTransferFunction(colortable);
473                 }
474         }
475
476         void wxMaracas_ViewerWidget::setWindowLevel(double level){
477                 if(mvtkmpr2Dview_X!=NULL){
478                         mvtkmpr2Dview_X->setWindowLevel(level);
479                 }
480                 if(mvtkmpr2Dview_Y!=NULL){
481                         mvtkmpr2Dview_Y->setWindowLevel(level);
482                 }
483                 if(mvtkmpr2Dview_Z!=NULL){
484                         mvtkmpr2Dview_Z->setWindowLevel(level);
485                 }
486                 /*if(mwxvtkmpr3Dview!=NULL){
487                         mwxvtkmpr3Dview->setWindowLevel(level);
488                 }*/
489         }
490
491         void wxMaracas_ViewerWidget::setColorLevel(double level){
492                 if(mvtkmpr2Dview_X!=NULL){
493                         mvtkmpr2Dview_X->setColorLevel(level);
494                 }
495                 if(mvtkmpr2Dview_Y!=NULL){
496                         mvtkmpr2Dview_Y->setColorLevel(level);
497                 }
498                 if(mvtkmpr2Dview_Z!=NULL){
499                         mvtkmpr2Dview_Z->setColorLevel(level);
500                 }
501                 /*if(mwxvtkmpr3Dview!=NULL){
502                         mwxvtkmpr3Dview->setColorLevel(level);
503                 }*/
504     }
505