X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DView.cxx;fp=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DView.cxx;h=69ffc56b9d505a6dc4c80d0dd9f9cf6df2dbe4ea;hb=69c806e632999e11e12e8626609f4192d3aec364;hp=1d9ff304bb673656854c3d459791030b54ee880f;hpb=00b3b34355fb96a6cdfcb3502950baac74d0fd0e;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx index 1d9ff30..69ffc56 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx @@ -80,19 +80,15 @@ class vtkWindowLevelImagePlaneWidgetCallback : public vtkCommand _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY(xyzv[1]); _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ(xyzv[2]); } else { - - vtkImageData *image = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); double spc[3]; if(image) { image->GetSpacing(spc); } - double normal[3]; slicePosition = ipw->GetSlicePosition(); ipw->GetNormal(normal); - // FreePlaneX if ((normal[0]==1)&&(normal[1]==0)&&(normal[2]==0)) { @@ -110,28 +106,20 @@ class vtkWindowLevelImagePlaneWidgetCallback : public vtkCommand } }// ipw->GetCursorDataStatus }// ev - if (needRefresh) { vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView(); isbv->SetParent_refresh_waiting(); isbv->EvaluateToRefresh(); } - } // Execute - vtkWindowLevelImagePlaneWidgetCallback(){} wxVtkMPR3DView *_wxvtkmpr3Dview; }; - - //------------------------------------------------------------------- //------------------------------------------------------------------- //------------------------------------------------------------------- - - - wxVtkMPR3DView::wxVtkMPR3DView( wxVtk3DBaseView *wxvtk3Dbaseview ) { _wxvtk3Dbaseview = wxvtk3Dbaseview; @@ -143,7 +131,6 @@ wxVtkMPR3DView::wxVtkMPR3DView( wxVtk3DBaseView *wxvtk3Dbaseview ) _vtkplane = NULL; _probe = NULL; _contourMapper = NULL; - _planeWidgetX = NULL; _planeWidgetY = NULL; _planeWidgetZ = NULL; @@ -151,27 +138,23 @@ wxVtkMPR3DView::wxVtkMPR3DView( wxVtk3DBaseView *wxvtk3Dbaseview ) //Free Planes } - //------------------------------------------------------------------- wxVtkMPR3DView::~wxVtkMPR3DView() { VisiblePointWidget( false ); VisiblePlaneWidget( false ); - if(_pointWidget!=NULL){ _pointWidget->Delete(); } if(_planeWidget!=NULL){ _planeWidget->Delete(); } - if(_vtkplane!=NULL){ _vtkplane->Delete(); _probe->Delete(); _contourMapper->Delete(); _contourPlaneActor->Delete(); } - } //------------------------------------------------------------------- @@ -179,43 +162,29 @@ void wxVtkMPR3DView::RemoveActor(vtkActor* actor) { _wxvtk3Dbaseview->GetRenderer()->RemoveActor(actor); } - - - //------------------------------------------------------------------- void wxVtkMPR3DView::Configure() { vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); - _wxvtk3Dbaseview->Configure(); _wxvtkmpr3DviewCntrlPanel->UpdateControlPanel(); - //EED 27 Mai 2009 // _wxvtk3Dbaseview->GetRenderer()->Clear(); - // Actors are added to the renderer. vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor(); - - _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor ); - // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(0) ); // _saggital // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(1) ); // _axial // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(2) ); // _coronal - - - // vtkPointWidget //if(_myCallback!=NULL){ //_myCallback->Delete(); - //} vtkmyPWCallback_3DPointWidget *_myCallback = vtkmyPWCallback_3DPointWidget::New(); _myCallback->SetWxVtkMPR3DView(this); - - if(imageData){ - if(_pointWidget==NULL){ + if(_pointWidget==NULL) + { _pointWidget = vtkPointWidget::New(); } _pointWidget->SetInput( imageData ); @@ -223,57 +192,40 @@ void wxVtkMPR3DView::Configure() _pointWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); _pointWidget->AllOff(); _pointWidget->PlaceWidget(); - _pointWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback); - if(_planeWidget==NULL) { _planeWidget = vtkPlaneWidget::New(); } _planeWidget->SetInput( imageData ); - _myCallback->SetVtkPlaneWidget(_planeWidget); - _planeWidget->NormalToXAxisOn(); _planeWidget->SetResolution(50); _planeWidget->SetRepresentationToOutline(); - int dim[3]; - imageData->GetDimensions(dim); int px=(dim[0]/2); int py=(dim[1]/2); int pz=(dim[2]/2); int dd=20; _planeWidget->PlaceWidget( px-dd , px+dd , py-dd , py+dd , pz-dd , pz+dd ); - if(_vtkplane==NULL){ _vtkplane = vtkPolyData::New(); - _probe = vtkProbeFilter::New(); _probe->SetInput(_vtkplane); - _contourMapper = vtkPolyDataMapper::New(); - _contourMapper->SetInput( _probe->GetPolyDataOutput() ); - _contourPlaneActor = vtkActor::New(); _contourPlaneActor->SetMapper(_contourMapper); - _contourPlaneActor->VisibilityOff(); - _planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); _planeWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback); - _planeWidget->Off(); _wxvtk3Dbaseview->GetRenderer()->AddActor( _contourPlaneActor ); - } - _planeWidget->GetPolyData(_vtkplane); _probe->SetSource( imageData ); _contourMapper->SetScalarRange( imageData->GetScalarRange() ); - ConfigureFreePlanes(); } @@ -308,26 +260,21 @@ void wxVtkMPR3DView::Configure() // render window (expressed in pixels). _wxvtk3Dbaseview->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 ); //EED 23oct2010 _wxvtk3Dbaseview->GetRenWin()->SetSize(400, 400); - } //------------------------------------------------------------------- void wxVtkMPR3DView::ConfigureFreePlanes() { - // The shared picker enables us to use 3 planes at one time // and gets the picking order right vtkCellPicker* picker = vtkCellPicker::New(); picker->SetTolerance(0.005); - // The 3 image plane widgets _planeWidgetX = GetPlaneWidget('x', 1, 0, 0, picker); _planeWidgetY = GetPlaneWidget('y', 1, 1, 0, picker); _planeWidgetZ = GetPlaneWidget('z', 0, 0, 1, picker); - _planeWidgetY->SetLookupTable(_planeWidgetX->GetLookupTable()); _planeWidgetZ->SetLookupTable(_planeWidgetX->GetLookupTable()); - picker->UnRegister(NULL); // ColorWindow ColorLevel Callback @@ -685,17 +632,13 @@ void wxVtkMPR3DView::VisiblePlaneWidget( bool visible ) //CPR: Method added 30 Nov 2009 void wxVtkMPR3DView::showOutlineActor(bool value) { - vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor(); if(value == true) { _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor ); - } - else - { + } else { _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _outlineActor ); } - } //-------------------------------------------------------------------