X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMPRWidget.cxx;h=e1901a1c0dd4a619b2f33a78ce78646cb2b66275;hb=05c4abbebf824bbbbaaab135acf6c888662dff69;hp=8143f0e4c2867cb5a01f54e96ecb1ac7f6b879cf;hpb=a4ee3758aa0477f677fb981e2c4d6e29995e8db8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx index 8143f0e..e1901a1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.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: wxMPRWidget.cxx,v $ Language: C++ - Date: $Date: 2009/05/14 13:54:35 $ - Version: $Revision: 1.14 $ + Date: $Date: 2012/11/15 14:14:35 $ + Version: $Revision: 1.17 $ Copyright: (c) 2002, 2003 License: @@ -143,6 +168,8 @@ wxMPRWidget::wxMPRWidget( wxWindow* parent, wxSplitterWindow *pnlSplitter = new wxSplitterWindow( this , -1); pnlSplitter -> SetMinimumPaneSize( 2 ); + //RaC Nov2012 Correctly resize internal panels with the window resize event + pnlSplitter->SetSashGravity(0.5); wxPanel *MPRPanel = CreateMPRPanel(pnlSplitter,_vtkmprbasedata); wxPanel *controlPanel = CreateControlPanel(pnlSplitter); @@ -181,6 +208,8 @@ void wxMPRWidget::setImageData(vtkImageData * img, double voxelsize){ wxSplitterWindow *pnlSplitter = new wxSplitterWindow( this , -1); pnlSplitter -> SetMinimumPaneSize( 2 ); + //RaC Nov2012 Correctly resize internal panels with the window resize event + pnlSplitter->SetSashGravity(0.5); wxPanel *MPRPanel = CreateMPRPanel(pnlSplitter,_vtkmprbasedata); wxPanel *controlPanel = CreateControlPanel(pnlSplitter); @@ -351,7 +380,7 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm if (type==3) { _widgetMesure_B = new wxWidgetMesure2D_Plane_in_MPR(panel); - _vtkplane2Dview_B = new vtkPlane2DView( _widgetMesure_B->GetWindow2()); + _vtkplane2Dview_B = new vtkPlane2DView( _widgetMesure_B->GetWindow2()); _widgetMesure_B->SetVtkPlane2DView( _vtkplane2Dview_B ); _vtkplane2Dview_B->SetImgSize( 200 ); _vtkplane2Dview_B->SetVtkBaseData(vtkmprbasedata); @@ -366,20 +395,22 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm if (type==5) { wxSplitterWindow *panelMPR3D = new wxSplitterWindow( panel , -1); - _wxvtk3Dbaseview_MPR3D_B = new wxVtk3DBaseView( panelMPR3D ); + _wxvtk3Dbaseview_MPR3D_B = new wxVtk3DBaseView( panelMPR3D , vtkmprbasedata ); - _wxvtkmpr3Dview_B = new wxVtkMPR3DView(_wxvtk3Dbaseview_MPR3D_B); + _wxvtkmpr3Dview_B = new wxVtkMPR3DView(_wxvtk3Dbaseview_MPR3D_B); vtkMPR3DDataViewer *vtkmpr3Ddataviewer = new vtkMPR3DDataViewer(); vtkmpr3Ddataviewer->SetVtkMPRBaseData(vtkmprbasedata); vtkmpr3Ddataviewer->Configure(); _wxvtkmpr3Dview_B->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer); - wxWindow *window3D = _wxvtk3Dbaseview_MPR3D_B->GetWxVTKRenderWindowInteractor(); - wxPanel *controlPanel3D = _wxvtkmpr3Dview_B->CreateControlPanel(panelMPR3D); + wxWindow *window3D = _wxvtk3Dbaseview_MPR3D_B->GetWxVTKRenderWindowInteractor(); + wxPanel *controlPanel3D = _wxvtkmpr3Dview_B->CreateControlPanel(panelMPR3D, false); //EEDxx2.4 panelMPR3D -> SetMinimumPaneSize( 5 ); panelMPR3D -> SplitHorizontally( controlPanel3D,window3D,600 ); + //RaC Nov2012 Correctly resize internal panels with the window resize event + panelMPR3D->SetSashGravity(0.5); wxwindow=panelMPR3D; } @@ -387,7 +418,7 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm if (type==6) { wxSplitterWindow *panelClipping3D = new wxSplitterWindow( panel , -1); - _wxvtk3Dbaseview_Clipping3D_BB = new wxVtk3DBaseView( panelClipping3D ); + _wxvtk3Dbaseview_Clipping3D_BB = new wxVtk3DBaseView( panelClipping3D , vtkmprbasedata ); _wxvtkclipping3Dview_BB = new wxVtkClipping3DView(_wxvtk3Dbaseview_Clipping3D_BB); vtkClipping3DDataViewer *vtkclipping3Ddataviewer = new vtkClipping3DDataViewer(); @@ -401,11 +432,11 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm vtkmpr3Ddataviewer->Configure(); _wxvtkmpr3Dview_BB->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer); - wxWindow *window3D = _wxvtk3Dbaseview_Clipping3D_BB->GetWxVTKRenderWindowInteractor(); + wxWindow *window3D = _wxvtk3Dbaseview_Clipping3D_BB->GetWxVTKRenderWindowInteractor(); wxPanel *panelControl = new wxPanel(panelClipping3D,-1); - wxPanel *controlPanelMPR3D = _wxvtkmpr3Dview_BB->CreateControlPanel(panelControl); - wxPanel *controlPanelClipping3D = _wxvtkclipping3Dview_BB->CreateControlPanel(panelControl); + wxPanel *controlPanelMPR3D = _wxvtkmpr3Dview_BB->CreateControlPanel(panelControl, false); + wxPanel *controlPanelClipping3D = _wxvtkclipping3Dview_BB->CreateSurfControlPanel(panelControl); _btnCutImageData = new wxCheckBox(panelControl,-1,_T("Cut Module")); Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxMPRWidget::OnCutImagaData ); @@ -424,6 +455,8 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm //EEDxx2.4 panelClipping3D -> SetMinimumPaneSize( 5 ); panelClipping3D -> SplitHorizontally( panelControl , window3D , 10 ); + //RaC Nov2012 Correctly resize internal panels with the window resize event + panelClipping3D->SetSashGravity(0.5); wxwindow=panelClipping3D; } @@ -508,10 +541,9 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm wxVTKRenderWindowInteractor *iren3B = _wxsphereview->GetWxVTKRenderWindowInteractor(); notebook->AddPage( iren3B, _T("Sphere") ); - // view 3.2 wxSplitterWindow *panelMPR3D = new wxSplitterWindow( notebook , -1); - _wxvtk3Dbaseview_MPRClipping3D = new wxVtk3DBaseView( panelMPR3D ); + _wxvtk3Dbaseview_MPRClipping3D = new wxVtk3DBaseView( panelMPR3D ,vtkmprbasedata ); _wxvtkmpr3Dview = new wxVtkMPR3DView( _wxvtk3Dbaseview_MPRClipping3D ); vtkMPR3DDataViewer *vtkmpr3Ddataviewer = new vtkMPR3DDataViewer(); @@ -530,8 +562,8 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm wxWindow *window3D = _wxvtk3Dbaseview_MPRClipping3D->GetWxVTKRenderWindowInteractor(); wxPanel *panelControl = new wxPanel(panelMPR3D,-1); - wxPanel *controlPanelMPR3D = _wxvtkmpr3Dview->CreateControlPanel(panelControl); - wxPanel *controlPanelClipping3D = _wxvtkclipping3Dview->CreateControlPanel(panelControl); + wxPanel *controlPanelMPR3D = _wxvtkmpr3Dview->CreateControlPanel(panelControl, false); + wxPanel *controlPanelClipping3D = _wxvtkclipping3Dview->CreateSurfControlPanel(panelControl); @@ -549,7 +581,8 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm //EEDxx2.4 panelMPR3D -> SetMinimumPaneSize( 5 ); - + //RaC Nov2012 Correctly resize internal panels with the window resize event + panelMPR3D->SetSashGravity(0.5); panelMPR3D -> SplitHorizontally( panelControl,window3D,200 ); notebook->AddPage( panelMPR3D, _T("MPR 3D - Clipping") );