]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
Merge branch 'master' of ssh://git.creatis.insa-lyon.fr/creaMaracasVisu
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracas_ViewerWidget.cxx
index 53b7f5ff317a9218d6f41adf87aba5b9a5c6c742..b61bb0d52aa096cbbd79d95aa38340ed129b5529 100644 (file)
@@ -1,10 +1,35 @@
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
 /*=========================================================================
 
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracas_ViewerWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/10/23 12:01:32 $
-  Version:   $Revision: 1.31 $
+  Date:      $Date: 2012/11/15 14:14:35 $
+  Version:   $Revision: 1.38 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -23,7 +48,6 @@
 //------------------------------------------------------------------------------------------------------------
 // Other includes
 //------------------------------------------------------------------------------------------------------------
-
        //------------------------------------------------------------------------------------------------------------
        // Constructors & Destructors
        //------------------------------------------------------------------------------------------------------------
 
                        mwxvtkclipping3Dview                    = new wxVtkClipping3DView(mwxvtk3Dbaseview_Clipping3D);
                        vtkClipping3DDataViewer *vtkclipping3Ddataviewer = new vtkClipping3DDataViewer();
-                       vtkclipping3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
+                       vtkclipping3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                    
                        vtkclipping3Ddataviewer->Configure();
                        mwxvtkclipping3Dview->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer);
 
                        panelClipping3D->SplitHorizontally( notebook , window3D , 10  );
                        //panelClipping3D->SetMinimumPaneSize( 15 );
                        panelClipping3D->SetMinimumPaneSize( 70 ); // JPR
+                       //RaC Nov2012 Correctly resize internal panels with the window resize event
+                       panelClipping3D->SetSashGravity(0.5);
 
        /*              EED 04 / Febrary / 2010
                        panelControl                    = new wxPanel(panelClipping3D,-1);
                        panelControl->SetSize(400,350);
                        panelControl->Layout();
                        //panelClipping3D->SetMinimumPaneSize( 5 );
-                       panelClipping3D->SetMinimumPaneSize( 100 );  // JPR
+                       panelClipping3D->SetMinimumPaneSize( 130 );  // FCY
+                       panelClipping3D->SplitHorizontally( panelControl , window3D , 0  );
+                       //panelClipping3D->SetSashSize(10);
 
-                       panelClipping3D->SplitHorizontally( panelControl , window3D , 10  );
+                       //RaC Nov2012 Correctly resize internal panels with the window resize event
+                       panelClipping3D->SetSashGravity(0.5);
+                       panelClipping3D->UpdateSize(); //FCY
                        wxwindow=panelClipping3D;
 
                        vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
                {
                   if (mvtkmprbasedata)         { delete mvtkmprbasedata;}
                }
-
+               
                if (mvtk2Dbaseview)             { delete mvtk2Dbaseview; }
                if (mvtkmpr2Dview_X)            { delete mvtkmpr2Dview_X;}
                if (mvtkmpr2Dview_Y)            { delete mvtkmpr2Dview_Y;}
                if (mwxvtkmpr3Dview)            { delete mwxvtkmpr3Dview;}
                if (mwxvtkclipping3Dview)       { delete mwxvtkclipping3Dview;}
                if (mwxvtk3Dbaseview_Clipping3D){ delete mwxvtk3Dbaseview_Clipping3D; mwxvtk3Dbaseview_Clipping3D=NULL;}
+               if (vtkmpr3Ddataviewer)                 { delete vtkmpr3Ddataviewer;}
        }
        //------------------------------------------------------------------------------------------------------------
        // Methods
                if (mvtkmprbasedata!=NULL)
                {
                        mvtkmprbasedata->Configure();
-                       /*
-                       x = mvtkmprbasedata->GetMaxPositionX()/2;
-                       y = mvtkmprbasedata->GetMaxPositionY()/2;
-                       z = mvtkmprbasedata->GetMaxPositionZ()/2;
-                       */
 
                        if(mvtkmprbasedata->GetImageData() != NULL)
                        {
                if ( mwidgetMesure       !=NULL ) { mwidgetMesure->SetMesureScale( 1 );         }
                if ( mwxsphereview       !=NULL ) { mwxsphereview->Configure();                 }
 
+               
                if (mwxvtk3Dbaseview_Clipping3D !=NULL)
                {
                        mwxvtk3Dbaseview_Clipping3D->Configure();
                if (mwxvtkmpr3Dview                     !=NULL)
                {
                        mwxvtkmpr3Dview->Configure();
-                       mwxvtkmpr3Dview->ResetCamera(ext,org,spc);
+//EED???                       mwxvtkmpr3Dview->ResetCamera(ext,org,spc);
                }
 
                if (mwxvtkclipping3Dview                !=NULL)
                        mwxvtkclipping3Dview->Configure();
                }
 
-
                //if(vtkmpr3Ddataviewer!=NULL){vtkmpr3Ddataviewer->Configure();}
 //             RefreshView();
 
 
        }
 
-       //-------------------------------------------------------------------------
-
-  void wxMaracas_ViewerWidget::Refresh(bool eraseBackground ,const wxRect* rect  )  // virtual  eraseBackground=true , rect=NULL
-  {
-    wxPanel::Refresh(false);
-  }
+//-------------------------------------------------------------------------
+void wxMaracas_ViewerWidget::Refresh(bool eraseBackground ,const wxRect* rect  )  // virtual  eraseBackground=true , rect=NULL
+{
+       wxPanel::Refresh(false);
+}
 
        //-------------------------------------------------------------------------
        void wxMaracas_ViewerWidget::RefreshView()
        {
-                       if (mvtk2Dbaseview              !=NULL ){ mvtk2Dbaseview->Refresh();            }
-                       if (mvtkmpr2Dview_X             !=NULL ){ mvtkmpr2Dview_X->Refresh();           }
-                       if (mvtkmpr2Dview_Y             !=NULL ){ mvtkmpr2Dview_Y->Refresh();           }
-                       if (mvtkmpr2Dview_Z             !=NULL ){ mvtkmpr2Dview_Z->Refresh();           }
-                       if (mvtkplane2Dview             !=NULL ){ mvtkplane2Dview->Refresh();           }
-                       if (mwxsphereview               !=NULL ){ mwxsphereview ->Refresh();            }
-
-                       if (mwxvtkmpr3Dview             !=NULL ){ mwxvtkmpr3Dview->RefreshView();       }
-                       if (mwxvtkclipping3Dview        !=NULL ){ mwxvtkclipping3Dview->Refresh();      }
-                       if (mwxvtk3Dbaseview_Clipping3D !=NULL ){ mwxvtk3Dbaseview_Clipping3D->Refresh();}
+               if (mvtk2Dbaseview                              !=NULL ){ mvtk2Dbaseview->Refresh();                            }
+               if (mvtkmpr2Dview_X                             !=NULL ){ mvtkmpr2Dview_X->Refresh();                           }
+               if (mvtkmpr2Dview_Y                             !=NULL ){ mvtkmpr2Dview_Y->Refresh();                           }
+               if (mvtkmpr2Dview_Z                             !=NULL ){ mvtkmpr2Dview_Z->Refresh();                           }
+               if (mvtkplane2Dview                             !=NULL ){ mvtkplane2Dview->Refresh();                           }
+               if (mwxsphereview                               !=NULL ){ mwxsphereview ->Refresh();                            }
+               if (mwxvtkmpr3Dview                             !=NULL ){ mwxvtkmpr3Dview->RefreshView();                       }
+               if (mwxvtkclipping3Dview                !=NULL ){ mwxvtkclipping3Dview->Refresh();                      }
+               if (mwxvtk3Dbaseview_Clipping3D !=NULL ){ mwxvtk3Dbaseview_Clipping3D->Refresh();       }
        }
 
        //-------------------------------------------------------------------------
                        mar->AddImageData(image);
                }
 
+               
+               if (mvtk2Dbaseview!=NULL)
+               {
+                       mvtk2Dbaseview->SetImageToVtkViewer(image);
+               }
+               
+               if (mvtkmpr2Dview_X!=NULL){
+                       mvtkmpr2Dview_X->SetImageToVtkViewer(image);
+               }
+               if (mvtkmpr2Dview_Y!=NULL){
+                       mvtkmpr2Dview_Y->SetImageToVtkViewer(image);
+               }
+               if (mvtkmpr2Dview_Z!=NULL){
+                       mvtkmpr2Dview_Z->SetImageToVtkViewer(image);
+               }
+               
+               if (mvtkplane2Dview!=NULL){
+                       // ???  EED 10 oct 2012
+               }
+               if (mwxsphereview!=NULL){
+                       // ???  EED 10 oct 2012
+               }
+               if (mwxvtk3Dbaseview_Clipping3D!=NULL){
+                       // ???  EED 10 oct 2012
+               }
+               
+               
+               
 //EED 26/11/2009
 //             ConfigureVTK();
 //             RefreshView();
 //             return mvtk2Dbaseview->GetVtkBaseData()->GetZ();
        }
 
-       void wxMaracas_ViewerWidget::setColorTransferFunction(vtkColorTransferFunction* colortable){
-               if(mvtkmpr2Dview_X!=NULL){
-                       mvtkmpr2Dview_X->setColorTransferFunction(colortable);
-               }
-               if(mvtkmpr2Dview_Y!=NULL){
-                       mvtkmpr2Dview_Y->setColorTransferFunction(colortable);
-               }
-               if(mvtkmpr2Dview_Z!=NULL){
-                       mvtkmpr2Dview_Z->setColorTransferFunction(colortable);
-               }
-               if(mwxvtkmpr3Dview!=NULL){
-                       mwxvtkmpr3Dview->setColorTransferFunction(colortable);
-               }
+//-------------------------------------------------------------------------------------------
+void wxMaracas_ViewerWidget::setColorTransferFunction(vtkColorTransferFunction* colortable)
+{
+       if(mvtkmpr2Dview_X!=NULL)
+       {
+               mvtkmpr2Dview_X->setColorTransferFunction(colortable);
        }
-
-       void wxMaracas_ViewerWidget::setWindowLevel(double level){
-               if(mvtkmpr2Dview_X!=NULL){
-                       mvtkmpr2Dview_X->setWindowLevel(level);
-               }
-               if(mvtkmpr2Dview_Y!=NULL){
-                       mvtkmpr2Dview_Y->setWindowLevel(level);
-               }
-               if(mvtkmpr2Dview_Z!=NULL){
-                       mvtkmpr2Dview_Z->setWindowLevel(level);
-               }
-               /*if(mwxvtkmpr3Dview!=NULL){
-                       mwxvtkmpr3Dview->setWindowLevel(level);
-               }*/
+       
+       if(mvtkmpr2Dview_Y!=NULL)
+       {
+               mvtkmpr2Dview_Y->setColorTransferFunction(colortable);
+       }
+       
+       if(mvtkmpr2Dview_Z!=NULL)
+       {
+               mvtkmpr2Dview_Z->setColorTransferFunction(colortable);
+       }
+       
+       if(mwxvtkmpr3Dview!=NULL)
+       {
+               mwxvtkmpr3Dview->setColorTransferFunction(colortable);
+       }
+}
+
+//-------------------------------------------------------------------------------------------
+void wxMaracas_ViewerWidget::SetColorWindowLevel(double colorWindow, double colorLevel)
+{
+       mvtkmprbasedata->SetColorWindow(colorWindow);
+       mvtkmprbasedata->SetColorLevel(colorLevel);
+//EED Borrame  
+/*     
+ RefreshView();
+       if(mvtk2Dbaseview!=NULL)
+       {
+               mvtk2Dbaseview->SetColorWindow(level);
+       }
+       
+       if(mvtkmpr2Dview_X!=NULL)
+       {
+               mvtkmpr2Dview_X->SetColorWindow(level);
+       }
+       
+       if(mvtkmpr2Dview_Y!=NULL)
+       {
+               mvtkmpr2Dview_Y->SetColorWindow(level);
+       }
+       
+       if(mvtkmpr2Dview_Z!=NULL)
+       {
+               mvtkmpr2Dview_Z->SetColorWindow(level);
+       }
+       
+       if(mwxvtkmpr3Dview!=NULL)
+       {
+               mwxvtkmpr3Dview->SetColorWindow(level);
        }
+ */
+}
+
+
 
-       void wxMaracas_ViewerWidget::setColorLevel(double level){
-               if(mvtkmpr2Dview_X!=NULL){
-                       mvtkmpr2Dview_X->setColorLevel(level);
-               }
-               if(mvtkmpr2Dview_Y!=NULL){
-                       mvtkmpr2Dview_Y->setColorLevel(level);
-               }
-               if(mvtkmpr2Dview_Z!=NULL){
-                       mvtkmpr2Dview_Z->setColorLevel(level);
-               }
-               /*if(mwxvtkmpr3Dview!=NULL){
-                       mwxvtkmpr3Dview->setColorLevel(level);
-               }*/
-    }