X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMPRWidget.cxx;h=67606299255f14f666ae5337dec6a3314de33f35;hb=f9901e756bb82bd333310b47607875331616bb29;hp=a11e073be9d68c5a42ebb8133576a21c84b8a30c;hpb=3d8f194f91b97f9fa8cc3b5a78a1d297f83fc107;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx index a11e073..6760629 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx @@ -81,7 +81,7 @@ #include "wxMPRWidget.h" -#include "wxVTKRenderWindowInteractor.h" +#include "creawxVTKRenderWindowInteractor.h" #include "UtilVtk3DGeometriSelection.h" #include "../kernel/marDicomBase.h" @@ -118,7 +118,7 @@ END_EVENT_TABLE( ); wxMPRWidget::wxMPRWidget( wxWindow* parent, - marImageData *marimageData , double voxelSize) + marImageData *marimageData ) : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) { @@ -159,7 +159,6 @@ wxMPRWidget::wxMPRWidget( wxWindow* parent, if(marimageData!=NULL){ _marImageData = marimageData; - _voxelSize = voxelSize; _vtkmprbasedata = new vtkMPRBaseData(); _vtkmprbasedata->SetMarImageData(_marImageData); @@ -191,38 +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 @@ -380,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); @@ -388,23 +385,25 @@ 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 ); @@ -418,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(); @@ -432,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); @@ -511,17 +510,17 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm // view 0 _vtkmpr2Dview[0] = new wxVtkMPR2DView(panel,0); _vtkmpr2Dview[0]->SetVtkBaseData(vtkmprbasedata); - wxVTKRenderWindowInteractor *iren0 = _vtkmpr2Dview[0]->GetWxVTKRenderWindowInteractor(); + crea::wxVTKRenderWindowInteractor *iren0 = _vtkmpr2Dview[0]->GetWxVTKRenderWindowInteractor(); // view 1 _vtkmpr2Dview[1] = new wxVtkMPR2DView(panel,1); _vtkmpr2Dview[1]->SetVtkBaseData(vtkmprbasedata); - wxVTKRenderWindowInteractor *iren1 = _vtkmpr2Dview[1]->GetWxVTKRenderWindowInteractor(); + crea::wxVTKRenderWindowInteractor *iren1 = _vtkmpr2Dview[1]->GetWxVTKRenderWindowInteractor(); // view 2 _vtkmpr2Dview[2] = new wxVtkMPR2DView(panel,2); _vtkmpr2Dview[2]->SetVtkBaseData(vtkmprbasedata); - wxVTKRenderWindowInteractor *iren2 = _vtkmpr2Dview[2]->GetWxVTKRenderWindowInteractor(); + crea::wxVTKRenderWindowInteractor *iren2 = _vtkmpr2Dview[2]->GetWxVTKRenderWindowInteractor(); // view 3 wxNotebook *notebook = new wxNotebook( panel, -1 ); @@ -537,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()); - wxVTKRenderWindowInteractor *iren3B = _wxsphereview->GetWxVTKRenderWindowInteractor(); +// EED +// _wxsphereview = new wxSphereView( notebook , vtkmprbasedata, vtkmprbasedata->GetImageData()); + _wxsphereview = new wxSphereView( notebook , vtkmprbasedata ); + crea::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(); @@ -560,21 +560,16 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm _wxvtkclipping3Dview->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer); - wxWindow *window3D = _wxvtk3Dbaseview_MPRClipping3D->GetWxVTKRenderWindowInteractor(); - + wxWindow *window3D = _wxvtk3Dbaseview_MPRClipping3D->GetWxVTKRenderWindowInteractor(); wxPanel *panelControl = new wxPanel(panelMPR3D,-1); wxPanel *controlPanelMPR3D = _wxvtkmpr3Dview->CreateControlPanel(panelControl, false); wxPanel *controlPanelClipping3D = _wxvtkclipping3Dview->CreateSurfControlPanel(panelControl); - - - // wxBoxSizer *sizerCtrol = new wxBoxSizer(wxVERTICAL); wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1); sizerCtrol->Add(controlPanelMPR3D , 1, wxALL|wxEXPAND, 2); sizerCtrol->Add(controlPanelClipping3D , 1, wxALL|wxEXPAND, 2); - panelControl->SetAutoLayout(true); panelControl->SetSizer(sizerCtrol); panelControl->SetSize(400,150); @@ -585,12 +580,8 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm //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") ); - - Connect(notebook->GetId() , wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED , (wxObjectEventFunction) &wxMPRWidget::OnPageBChanged ); - wxBoxSizer *sizerV = new wxBoxSizer(wxVERTICAL); wxBoxSizer *sizerH1= new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *sizerH2= new wxBoxSizer(wxHORIZONTAL); @@ -655,42 +646,35 @@ void wxMPRWidget::ConfigureVTK(){ if (_vtkmprbasedata!=NULL) { _vtkmprbasedata->Configure(); - x=_vtkmprbasedata -> GetMaxPositionX()/2; - y=_vtkmprbasedata -> GetMaxPositionY()/2; - z=_vtkmprbasedata -> GetMaxPositionZ()/2; + x = _vtkmprbasedata->GetMaxPositionX()/2; + y = _vtkmprbasedata->GetMaxPositionY()/2; + z = _vtkmprbasedata->GetMaxPositionZ()/2; _vtkmprbasedata->SetX( x ); _vtkmprbasedata->SetY( y ); _vtkmprbasedata->SetZ( z ); } - if(_vtkmpr2Dview[0]!=NULL) {_vtkmpr2Dview[0] -> Configure();} - if(_vtkmpr2Dview[1]!=NULL) {_vtkmpr2Dview[1] -> Configure();} - if(_vtkmpr2Dview[2]!=NULL) {_vtkmpr2Dview[2] -> Configure();} + if(_vtkmpr2Dview[0]!=NULL) { _vtkmpr2Dview[0]->Configure(); } + if(_vtkmpr2Dview[1]!=NULL) { _vtkmpr2Dview[1]->Configure(); } + if(_vtkmpr2Dview[2]!=NULL) { _vtkmpr2Dview[2]->Configure(); } + if (_vtkmpr2Dview_B[0]!=NULL) { _vtkmpr2Dview_B[0]->Configure(); } + if (_vtkmpr2Dview_B[1]!=NULL) { _vtkmpr2Dview_B[1]->Configure(); } + if (_vtkmpr2Dview_B[2]!=NULL) { _vtkmpr2Dview_B[2]->Configure(); } - if (_vtkmpr2Dview_B[0]!=NULL) { _vtkmpr2Dview_B[0] -> Configure(); } - if (_vtkmpr2Dview_B[1]!=NULL) { _vtkmpr2Dview_B[1] -> Configure(); } - if (_vtkmpr2Dview_B[2]!=NULL) { _vtkmpr2Dview_B[2] -> Configure(); } + if (_vtkplane2Dview!=NULL) { _vtkplane2Dview->Configure(); } + if (_widgetMesure!=NULL) { _widgetMesure->ConfigureA(_vtkplane2Dview); } + if (_widgetMesure!=NULL) { _widgetMesure->SetActiveLink(true); } + if (_wxsphereview!=NULL) { _wxsphereview->Configure(); } + if (_wxvtk3Dbaseview_MPRClipping3D!=NULL){_wxvtk3Dbaseview_MPRClipping3D->Configure();} + if (_wxvtkmpr3Dview!=NULL) { _wxvtkmpr3Dview->Configure(); } + if (_wxvtkclipping3Dview!=NULL) { _wxvtkclipping3Dview->Configure(); } - - - 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();} - if (_wxvtkmpr3Dview!=NULL){ - _wxvtkmpr3Dview -> Configure(); - } - if (_wxvtkclipping3Dview!=NULL){_wxvtkclipping3Dview -> Configure();} - - if (_vtkplane2Dview_B!=NULL){ _vtkplane2Dview_B -> Configure(); } - if (_widgetMesure_B!=NULL){ _widgetMesure_B -> ConfigureA( _vtkplane2Dview_B ); } - if (_widgetMesure_B!=NULL){ _widgetMesure_B -> SetActiveLink(true); } + if (_vtkplane2Dview_B!=NULL) { _vtkplane2Dview_B->Configure(); } + if (_widgetMesure_B!=NULL) { _widgetMesure_B->ConfigureA( _vtkplane2Dview_B ); } + if (_widgetMesure_B!=NULL) { _widgetMesure_B->SetActiveLink(true); } //EEDx3 // double spc[3]; @@ -699,8 +683,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();}