X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracas_ViewerWidget.cxx;h=f5cce0037add3250864e9860351358df39c2f692;hb=97dee12beaba08089198ed7bab9544b8b4c4f240;hp=a0ca639899ac8173d90700ba1658e3bd88ce469d;hpb=40dfa1616e1203ecccb8163e7722c76769eddfe3;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx index a0ca639..f5cce00 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx @@ -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: 2012/10/11 10:45:16 $ - Version: $Revision: 1.36 $ + Date: $Date: 2012/11/15 14:14:35 $ + Version: $Revision: 1.38 $ Copyright: (c) 2002, 2003 License: @@ -30,15 +55,16 @@ wxMaracas_ViewerWidget::wxMaracas_ViewerWidget(wxWindow *parent, vtkImageData* imagedata, int type, vtkMPRBaseData *vtkmprbasedata) : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) { - wxPanel *panel = this; - wxWindow *wxwindow = NULL, *window3D = 0; - wxSplitterWindow *panelClipping3D= 0; -// wxPanel *panelControl = 0; -// wxFlexGridSizer *sizerCtrol = 0; - wxPanel *controlPanelMPR3D = 0; - wxPanel *controlPanelClippingSurf3D = 0; + wxPanel *panel = this; + wxWindow *wxwindow = NULL; + wxWindow *window3D = NULL; + wxSplitterWindow *panelClipping3D = NULL; +// wxPanel *panelControl = NULL; +// wxFlexGridSizer *sizerCtrol = NULL; + wxPanel *controlPanelMPR3D = NULL; + wxPanel *controlPanelClippingSurf3D = NULL; //RaC 03-2010 Adding a tab - wxPanel *controlPanelClippingVol3D = 0; + wxPanel *controlPanelClippingVol3D = NULL; wxBoxSizer *sizer = 0; @@ -55,17 +81,17 @@ mvtkmprbasedata = vtkmprbasedata; } - mvtk2Dbaseview = NULL; - mvtkmpr2Dview_X = NULL; - mvtkmpr2Dview_Y = NULL; - mvtkmpr2Dview_Z = NULL; - mvtkplane2Dview = NULL; - mwidgetMesure = NULL; - mwxsphereview = NULL; - mwxvtkclipping3Dview = NULL; - mwxvtk3Dbaseview_Clipping3D = NULL; - mwxvtkmpr3Dview = NULL; - vtkmpr3Ddataviewer = NULL; + mvtk2Dbaseview = NULL; + mvtkmpr2Dview_X = NULL; + mvtkmpr2Dview_Y = NULL; + mvtkmpr2Dview_Z = NULL; + mvtkplane2Dview = NULL; + mwidgetMesure = NULL; + mwxsphereview = NULL; + mwxvtkclipping3Dview = NULL; + mwxvtk3Dbaseview_Clipping3D = NULL; + mwxvtkmpr3Dview = NULL; + vtkmpr3Ddataviewer = NULL; if (type==-1) { @@ -102,9 +128,9 @@ }else if (type==5) { panelClipping3D = new wxSplitterWindow( panel , -1); - mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panelClipping3D ); + mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panelClipping3D , vtkmprbasedata); - mwxvtkclipping3Dview = new wxVtkClipping3DView(mwxvtk3Dbaseview_Clipping3D); + mwxvtkclipping3Dview = new wxVtkClipping3DView(mwxvtk3Dbaseview_Clipping3D); vtkClipping3DDataViewer *vtkclipping3Ddataviewer = new vtkClipping3DDataViewer(); vtkclipping3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata); vtkclipping3Ddataviewer->Configure(); @@ -137,6 +163,8 @@ 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); @@ -158,19 +186,14 @@ wxwindow=panelClipping3D; } else if (type==6) { - panelClipping3D = new wxSplitterWindow( panel , -1); - mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panelClipping3D ); - - mwxvtkmpr3Dview = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D ); - - vtkmpr3Ddataviewer = new vtkMPR3DDataViewer(); - - wxWindow *window3D = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor(); - - wxPanel *panelControl = new wxPanel(panelClipping3D,-1); - wxPanel *controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true); - - wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1); + panelClipping3D = new wxSplitterWindow( panel , -1); + mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panelClipping3D , vtkmprbasedata); + mwxvtkmpr3Dview = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D ); + vtkmpr3Ddataviewer = new vtkMPR3DDataViewer(); + wxWindow *window3D = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor(); + wxPanel *panelControl = new wxPanel(panelClipping3D,-1); + wxPanel *controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true); + wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1); sizerCtrol->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2); panelControl->SetAutoLayout(true); @@ -181,6 +204,9 @@ panelClipping3D->SetMinimumPaneSize( 130 ); // FCY panelClipping3D->SplitHorizontally( panelControl , window3D , 0 ); //panelClipping3D->SetSashSize(10); + + //RaC Nov2012 Correctly resize internal panels with the window resize event + panelClipping3D->SetSashGravity(0.5); panelClipping3D->UpdateSize(); //FCY wxwindow=panelClipping3D; @@ -191,7 +217,7 @@ }else if (type==7) { - mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panel ); + mwxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panel ,vtkmprbasedata); wxwindow = (wxWindow*) mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor(); } @@ -259,11 +285,6 @@ if (mvtkmprbasedata!=NULL) { mvtkmprbasedata->Configure(); - /* - x = mvtkmprbasedata->GetMaxPositionX()/2; - y = mvtkmprbasedata->GetMaxPositionY()/2; - z = mvtkmprbasedata->GetMaxPositionZ()/2; - */ if(mvtkmprbasedata->GetImageData() != NULL) { @@ -330,12 +351,11 @@ } - //------------------------------------------------------------------------- - - 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() @@ -453,47 +473,64 @@ // 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); - }*/ - }