X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DView.cxx;h=32994c7743cd664add4ba747482f79d945312227;hb=f9901e756bb82bd333310b47607875331616bb29;hp=3703011e6b5c35dbfc04b34c2d52cf076a99ff3c;hpb=25e3adf442d6a8d357d52410267445c54426c525;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx index 3703011..32994c7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx @@ -142,14 +142,17 @@ wxVtkMPR3DView::wxVtkMPR3DView( wxVtk3DBaseView *wxvtk3Dbaseview ) wxVtkMPR3DView::~wxVtkMPR3DView() { VisiblePointWidget( false ); - VisiblePlaneWidget( false ); - if(_pointWidget!=NULL){ +// VisiblePlaneWidget( false ); + if(_pointWidget!=NULL) + { _pointWidget->Delete(); } - if(_planeWidget!=NULL){ + if(_planeWidget!=NULL) + { _planeWidget->Delete(); } - if(_vtkplane!=NULL){ + if(_vtkplane!=NULL) + { _vtkplane->Delete(); _probe->Delete(); _contourMapper->Delete(); @@ -327,22 +330,46 @@ void wxVtkMPR3DView::SetImage() // -- Plane widget _probe->SetSource( imageData ); #else + + + double colorWindow = _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetColorWindow(); + double colorLevel = _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetColorLevel(); + + double spc[3]; + vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); + if(image) + { + image->GetSpacing(spc); + }else{ + spc[0] = 0; + spc[1] = 0; + spc[2] = 0; + } + double x = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX(); + double y = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY(); + double z = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ(); + _planeWidgetX->SetInputData( imageData ); + _planeWidgetX->SetWindowLevel(colorWindow,colorLevel,1); + _planeWidgetX->SetSlicePosition( x*spc[0] ); _planeWidgetY->SetInputData( imageData ); + _planeWidgetY->SetWindowLevel(colorWindow,colorLevel,1); + _planeWidgetY->SetSlicePosition( y*spc[1] ); _planeWidgetZ->SetInputData( imageData ); + _planeWidgetZ->SetWindowLevel(colorWindow,colorLevel,1); + _planeWidgetZ->SetSlicePosition( z*spc[2] ); + // -- Plane widget _probe->SetSourceData( imageData ); #endif - _vtkmpr3Ddataviewer->SetImage(); } //------------------------------------------------------------------- vtkImagePlaneWidget* wxVtkMPR3DView::GetPlaneWidget(unsigned char activationkey, double r, double g, double b, vtkCellPicker* picker) { - vtkProperty* prop1 = 0; - vtkImagePlaneWidget* planeWidget = 0; - planeWidget = vtkImagePlaneWidget::New(); + vtkProperty* prop1 = NULL; + vtkImagePlaneWidget* planeWidget = vtkImagePlaneWidget::New(); planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); planeWidget->EnabledOff(); vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); @@ -458,7 +485,7 @@ void wxVtkMPR3DView::FreePlaneInteraction(bool ok) _planeWidgetY->InteractionOff(); _planeWidgetZ->InteractionOff(); } - } // if _planeWidgetX + } // if _planeWidgetXVisiblePointWidget } @@ -484,7 +511,6 @@ void wxVtkMPR3DView::RefreshView() // virtual { double spc[3]; vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); - if(image) { image->GetSpacing(spc); @@ -493,18 +519,13 @@ void wxVtkMPR3DView::RefreshView() // virtual spc[1] = 0; spc[2] = 0; } - // GetVtkMPR3DDataViewer()->Configure(); - //double nx=1,ny=0,nz=0; // JPRx Refresh(); - double x=GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX(); - double y=GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY(); - double z=GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ(); - - SetColorWindow( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetColorWindow() ); - SetColorLevel( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetColorLevel() ); + double x = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX(); + double y = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY(); + double z = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ(); double normal[3]; // FreePlaneX @@ -534,11 +555,12 @@ void wxVtkMPR3DView::RefreshView() // virtual _planeWidgetZ->GetReslice()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() ); _planeWidgetZ->GetTexture()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() ); } - - x=x*spc[0]; - y=y*spc[1]; - z=z*spc[2]; + SetWindowColorLevel(_vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetColorWindow() , _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetColorLevel() ); + + x = x*spc[0]; + y = y*spc[1]; + z = z*spc[2]; if(_pointWidget) { //EED 2017-01-01 Migration VTK7 @@ -596,7 +618,8 @@ wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() throw (char*) //------------------------------------------------------------------- //------------------------------------------------------------------- -void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible){ +void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible) +{ /*if(visible == false) printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == false \n"); else @@ -606,7 +629,8 @@ void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible){ } */ if (visible!=_vtkmpr3Ddataviewer->GetVisiblePosition(idPosition)){ - if (visible==false){ + if (visible==false) + { _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); } else { //EED 21/07/2013 @@ -620,7 +644,6 @@ void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible){ // This works in ViewerNV with nTymeView=6 // Because the others modules (5) generate also more actors with an OutLineFilter -> Actor //showOutlineActor(false); - // step 1, step 2 vtkActorCollection *tmpCollection = vtkActorCollection::New(); vtkActorCollection *collectionActors = _wxvtk3Dbaseview->GetRenderer()->GetActors(); @@ -630,20 +653,16 @@ void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible){ tmpCollection->AddItem ( (vtkActor*)collectionActors->GetItemAsObject(0) ); _wxvtk3Dbaseview->GetRenderer()->RemoveActor( (vtkProp*)tmpCollection->GetItemAsObject(i) ); } // for - // step 3 _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); - // step 4 for (i=0; iGetRenderer()->AddActor( (vtkProp*)tmpCollection->GetItemAsObject(i) ); } // for tmpCollection->Delete(); - // step 5 Refresh _wxvtk3Dbaseview->GetRenderer()->GetRenderWindow()->Render(); - } // if visible _vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible); } // if visible @@ -671,7 +690,6 @@ void wxVtkMPR3DView::VisiblePlaneWidget( bool visible ) { _planeWidget->On(); _contourPlaneActor->VisibilityOn(); - } else { _planeWidget->Off(); _contourPlaneActor->VisibilityOff(); @@ -705,18 +723,13 @@ void wxVtkMPR3DView::InitOrientationPointWidget() } //------------------------------------------------------------------- -void wxVtkMPR3DView::SetColorWindow(double colorWindow) +void wxVtkMPR3DView::SetWindowColorLevel(double colorWindow , double colorLevel) { - double colorLevel = _planeWidgetX->GetLevel(); _planeWidgetX->SetWindowLevel(colorWindow,colorLevel); + _planeWidgetY->SetWindowLevel(colorWindow,colorLevel); + _planeWidgetZ->SetWindowLevel(colorWindow,colorLevel); } -//------------------------------------------------------------------- -void wxVtkMPR3DView::SetColorLevel(double colorLevel) -{ - double colorWindow = _planeWidgetX->GetWindow(); - _planeWidgetX->SetWindowLevel(colorWindow,colorLevel); -} //------------------------------------------------------------------- // EED 25 Janvier 2007 testLoic