X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR3DView.cxx;h=e67cc22c0b5b7b4898c38685eaf9de4657c8f699;hb=60238e95450685ecb14f7e6d77247fa9e15b7441;hp=6bdef1c10575013b16d158e0aee15f168e9ccc89;hpb=d341ae08f29d0b48044dcee9b4d7399c4b895e52;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx index 6bdef1c..e67cc22 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.cxx @@ -387,6 +387,9 @@ vtkImagePlaneWidget* wxVtkMPR3DView::GetPlaneWidget(unsigned char activationkey, //------------------------------------------------------------------- void wxVtkMPR3DView::SetFreePlanesOrtho() { + + + _planeWidgetX->SetPlaneOrientationToXAxes(); _planeWidgetY->SetPlaneOrientationToYAxes(); _planeWidgetZ->SetPlaneOrientationToZAxes(); @@ -400,13 +403,44 @@ void wxVtkMPR3DView::FreePlaneVisible(int plane, bool ok) { if(_planeWidgetX) { - if ((plane==1) && (ok==true)) _planeWidgetX->EnabledOn(); - if ((plane==2) && (ok==true)) _planeWidgetY->EnabledOn(); - if ((plane==3) && (ok==true)) _planeWidgetZ->EnabledOn(); + if (ok==true) + { +//EED 21/07/2013 +// 1. Make backup of actors +// 2. Putting out all the actors +// 3. Add vtkImagageActor in first place +// 4. Putting again the originals actors +// 5. Refresh + + // step 1, step 2 + vtkActorCollection *tmpCollection = vtkActorCollection::New(); + vtkActorCollection *collectionActors = _wxvtk3Dbaseview->GetRenderer()->GetActors(); + int i,size=collectionActors->GetNumberOfItems(); + for (i=0; iAddItem ( (vtkActor*)collectionActors->GetItemAsObject(0) ); + _wxvtk3Dbaseview->GetRenderer()->RemoveActor( (vtkProp*)tmpCollection->GetItemAsObject(i) ); + } // for + + // step 3 + if ((plane==1) && (ok==true)) _planeWidgetX->EnabledOn(); + if ((plane==2) && (ok==true)) _planeWidgetY->EnabledOn(); + if ((plane==3) && (ok==true)) _planeWidgetZ->EnabledOn(); + + // step 4 + for (i=0; iGetRenderer()->AddActor( (vtkProp*)tmpCollection->GetItemAsObject(i) ); + } // for + tmpCollection->Delete(); + + // step 5 Refresh + _wxvtk3Dbaseview->GetRenderer()->GetRenderWindow()->Render(); + } // if ok if ((plane==1) && (ok==false)) _planeWidgetX->EnabledOff(); if ((plane==2) && (ok==false)) _planeWidgetY->EnabledOff(); if ((plane==3) && (ok==false)) _planeWidgetZ->EnabledOff(); - } + } // if _planeWidgetX } //------------------------------------------------------------------- @@ -544,7 +578,36 @@ void wxVtkMPR3DView::VisibleImageActor(int idPosition, bool visible){ if (visible==false){ _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); } else { +//EED 21/07/2013 +// 1. Make backup of actors +// 2. Putting out all the actors +// 3. Add vtkImagageActor in first place +// 4. Putting again the originals actors +// 5. Refresh + + // step 1, step 2 + vtkActorCollection *tmpCollection = vtkActorCollection::New(); + vtkActorCollection *collectionActors = _wxvtk3Dbaseview->GetRenderer()->GetActors(); + int i,size=collectionActors->GetNumberOfItems(); + for (i=0; iAddItem ( (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(); + } _vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible); }