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=237725698d51baef628b8c16cabfbef3e7cab672;hpb=ac1d8305b8e48f18d939c5abb7e282fd24fc9c6a;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx index 2377256..32994c7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx @@ -330,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(); @@ -487,7 +511,6 @@ void wxVtkMPR3DView::RefreshView() // virtual { double spc[3]; vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); - if(image) { image->GetSpacing(spc); @@ -496,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 @@ -537,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 @@ -599,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 @@ -609,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 @@ -623,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(); @@ -633,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 @@ -674,7 +690,6 @@ void wxVtkMPR3DView::VisiblePlaneWidget( bool visible ) { _planeWidget->On(); _contourPlaneActor->VisibilityOn(); - } else { _planeWidget->Off(); _contourPlaneActor->VisibilityOff(); @@ -708,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