X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMPRWidget.cxx;h=99fad9d0c4426b44050d5452c4c7294b7389dd8c;hb=5634a5c573f547422027d38e0da591feafc3460e;hp=a8b83ccf7b37c4e2f798fd5c5a19c2ea83c26b83;hpb=fc5b599e2f9a94153549471b67aaefa2afd015ea;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx index a8b83cc..99fad9d 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: 2010/03/17 16:52:51 $ - Version: $Revision: 1.16 $ + Date: $Date: 2012/11/15 14:14:35 $ + Version: $Revision: 1.17 $ Copyright: (c) 2002, 2003 License: @@ -93,7 +118,7 @@ END_EVENT_TABLE( ); wxMPRWidget::wxMPRWidget( wxWindow* parent, - marImageData *marimageData , double voxelSize) + marImageData *marimageData ) : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) { @@ -134,7 +159,6 @@ wxMPRWidget::wxMPRWidget( wxWindow* parent, if(marimageData!=NULL){ _marImageData = marimageData; - _voxelSize = voxelSize; _vtkmprbasedata = new vtkMPRBaseData(); _vtkmprbasedata->SetMarImageData(_marImageData); @@ -143,6 +167,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); @@ -164,36 +190,36 @@ wxMPRWidget::wxMPRWidget( wxWindow* parent, _refreshBPage=0; } -void wxMPRWidget::setImageData(vtkImageData * img, double voxelsize){ + +//---------------------------------------------------------------------------- +void wxMPRWidget::setImageData(vtkImageData * img) +{ if(_marImageData!=NULL){ _marImageData->removeImageData(0); _marImageData->AddImageData(img); }else{ - _marImageData = new marImageData(img); + _marImageData = new marImageData(img); } - _voxelSize = voxelsize; - if(_vtkmprbasedata==NULL){ _vtkmprbasedata = new vtkMPRBaseData(); _vtkmprbasedata->SetMarImageData(_marImageData); - wxSplitterWindow *pnlSplitter = new wxSplitterWindow( this , -1); + 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 *MPRPanel = CreateMPRPanel(pnlSplitter,_vtkmprbasedata); wxPanel *controlPanel = CreateControlPanel(pnlSplitter); pnlSplitter -> SplitVertically( MPRPanel, controlPanel, 550 ); this->GetSizer() -> Add( pnlSplitter ,1,wxGROW ,0); } - - - } -//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- wxMPRWidget::~wxMPRWidget( ) { //EEDxx2.4 DELETE @@ -351,7 +377,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); @@ -359,27 +385,31 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm } if (type==4) { - _wxsphereview_B = new wxSphereView( panel , vtkmprbasedata, vtkmprbasedata->GetImageData() ); +//EED +// _wxsphereview_B = new wxSphereView( panel , vtkmprbasedata, vtkmprbasedata->GetImageData() ); + _wxsphereview_B = new wxSphereView( panel , vtkmprbasedata ); wxwindow=_wxsphereview_B->GetWxVTKRenderWindowInteractor(); } 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, false); + 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 +417,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,7 +431,7 @@ 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, false); @@ -424,6 +454,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; } @@ -504,14 +536,15 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm notebook->AddPage( _widgetMesure, _T("Plane") ); // view 3.1 - _wxsphereview = new wxSphereView( notebook , vtkmprbasedata, vtkmprbasedata->GetImageData()); +// EED +// _wxsphereview = new wxSphereView( notebook , vtkmprbasedata, vtkmprbasedata->GetImageData()); + _wxsphereview = new wxSphereView( notebook , vtkmprbasedata ); 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(); @@ -549,7 +582,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") ); @@ -645,7 +679,6 @@ void wxMPRWidget::ConfigureVTK(){ if (_vtkplane2Dview!=NULL){_vtkplane2Dview -> Configure();} if (_widgetMesure!=NULL){_widgetMesure -> ConfigureA(_vtkplane2Dview);} if (_widgetMesure!=NULL){_widgetMesure -> SetActiveLink(true);} - if (_widgetMesure!=NULL){_widgetMesure -> SetMesureScale( _voxelSize );} if (_wxsphereview!=NULL){_wxsphereview -> Configure();} if (_wxvtk3Dbaseview_MPRClipping3D!=NULL){_wxvtk3Dbaseview_MPRClipping3D -> Configure();} @@ -665,8 +698,6 @@ void wxMPRWidget::ConfigureVTK(){ // imageData->GetSpacing(spc); // _widgetMesure_B->SetMesureScale(spc[0]); - if (_widgetMesure_B!=NULL) {_widgetMesure_B->SetMesureScale( _voxelSize );} - if (_wxsphereview_B!=NULL) {_wxsphereview_B -> Configure();}