X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FcreaVtkPlaneWidget.cpp;h=2081fb0277ceb89826f115fb1d9bd1436b854a54;hb=refs%2Fheads%2Fvtk9itk5wx3-macos;hp=f770d77d865f83d2f2fdcee6bf774dccc32b942e;hpb=41a74698bb0203749248628baa1503144e1f12f7;p=creaVtk.git diff --git a/lib/creaVtk/creaVtkPlaneWidget.cpp b/lib/creaVtk/creaVtkPlaneWidget.cpp index f770d77..2081fb0 100644 --- a/lib/creaVtk/creaVtkPlaneWidget.cpp +++ b/lib/creaVtk/creaVtkPlaneWidget.cpp @@ -37,7 +37,7 @@ void creaVtkCallbackPlaneWidget::Execute(vtkObject *caller, unsigned long, void* { creavtkplanewidget->UpdatePlane(); creavtkplanewidget->Execute(); - } + } // if creavtkplanewidget != NULL } @@ -48,7 +48,8 @@ void creaVtkCallbackPlaneWidget::Execute(vtkObject *caller, unsigned long, void* //------------------------------------------------------------------------ creaVtkPlaneWidget::creaVtkPlaneWidget() { - _firsttime = true; + _firsttime = true; + _representation = 1; _vPlaneWidget = vtkPlaneWidget::New(); _vPlaneSource = vtkPlaneSource::New(); } @@ -113,38 +114,123 @@ int creaVtkPlaneWidget::GetResolution() return _resolution; } + +//------------------------------------------------------------------------ +void creaVtkPlaneWidget::SetRepresentation(int representation) +{ + _representation = representation; +} + +//------------------------------------------------------------------------ +int creaVtkPlaneWidget::GetRepresentation() +{ + return _representation; +} + + + +//------------------------------------------------------------------------ +std::vector creaVtkPlaneWidget::GetCenter() +{ + std::vector vecCenter; + double point[3]; + _vPlaneWidget->GetCenter(point); + vecCenter.push_back(point[0]); + vecCenter.push_back(point[1]); + vecCenter.push_back(point[2]); + return vecCenter; +} + +//------------------------------------------------------------------------ +std::vector creaVtkPlaneWidget::GetNormal() +{ + std::vector vecNormal; + double point[3]; + _vPlaneWidget->GetNormal(point); + vecNormal.push_back(point[0]); + vecNormal.push_back(point[1]); + vecNormal.push_back(point[2]); + return vecNormal; +} + +void creaVtkPlaneWidget::SetOrigin(std::vector origin) +{ + _origin = origin; +} + +void creaVtkPlaneWidget::SetNormalIn(std::vector normalin) +{ + _normalin = normalin; +} + + //------------------------------------------------------------------------ void creaVtkPlaneWidget::Process() -{ -printf("EED creaVtkPlaneWidget::Process Start\n"); - if ((GetActive()==true) && (GetRenderer()!=NULL)) - { - _vPlaneWidget->SetInput( GetImage() ); - _vPlaneWidget->SetInteractor( GetRenderer()->GetRenderWindow()->GetInteractor() ); - _vPlaneWidget->NormalToXAxisOn(); - _vPlaneWidget->NormalToZAxisOn(); - _vPlaneWidget->SetResolution(10); - _vPlaneWidget->SetRepresentationToOutline(); - _vPlaneWidget->SetPlaceFactor(1); //defini zoom initial - _vPlaneWidget->On(); - if (_firsttime==true ) - { - _firsttime = false; - _vPlaneWidget->PlaceWidget(); - creaVtkCallbackPlaneWidget *creavtkcallbackplanewidget = creaVtkCallbackPlaneWidget::New(); - creavtkcallbackplanewidget->creavtkplanewidget = this ; - _vPlaneWidget->AddObserver( vtkCommand::InteractionEvent , creavtkcallbackplanewidget ); - _vPlaneWidget->AddObserver( vtkCommand::StartInteractionEvent , creavtkcallbackplanewidget ); - _vPlaneWidget->AddObserver( vtkCommand::EnableEvent , creavtkcallbackplanewidget ); - } -printf("EED creaVtkPlaneWidget::Process up\n"); - UpdatePlane(); +{ + if ((GetActive()==true) && (GetRenderer()!=NULL)) + { + if (_origin.size()==0) + { + _origin.push_back(0); + _origin.push_back(0); + _origin.push_back(0); + } + if (_origin.size()==0) + { + _normalin.push_back(0); + _normalin.push_back(0); + _normalin.push_back(1); + } + + //EED 2017-01-01 Migration VTK7 + #if VTK_MAJOR_VERSION <= 5 + _vPlaneWidget->SetInput( GetImage() ); + #else + _vPlaneWidget->SetInputData( GetImage() ); + #endif + _vPlaneWidget->SetInteractor( GetRenderer()->GetRenderWindow()->GetInteractor() ); + _vPlaneWidget->NormalToXAxisOn(); + _vPlaneWidget->NormalToZAxisOn(); + _vPlaneWidget->SetResolution(_resolution); + if (_representation==0){ _vPlaneWidget->SetRepresentationToOutline(); } + if (_representation==1){ _vPlaneWidget->SetRepresentationToWireframe(); } + if (_representation==2){ _vPlaneWidget->SetRepresentationToSurface(); } + _vPlaneWidget->SetPlaceFactor(1); //defini zoom initial + _vPlaneWidget->SetHandleSize(0.001); + _vPlaneWidget->On(); +// _vPlaneWidget->Print(std::cout); + if (_origin.size()==3) + { + _vPlaneWidget->SetCenter( _origin[0] , _origin[1] , _origin[2] ); + } // if _origin + if (_normalin.size()==3) + { + _vPlaneWidget->SetNormal( _normalin[0] , _normalin[1] , _normalin[2] ); + } // if _origin + if (_firsttime==true ) + { + _firsttime = false; + _vPlaneWidget->PlaceWidget(); + creaVtkCallbackPlaneWidget *creavtkcallbackplanewidget = creaVtkCallbackPlaneWidget::New(); + creavtkcallbackplanewidget->creavtkplanewidget = this ; + _vPlaneWidget->AddObserver( vtkCommand::InteractionEvent , creavtkcallbackplanewidget ); + _vPlaneWidget->AddObserver( vtkCommand::StartInteractionEvent , creavtkcallbackplanewidget ); + _vPlaneWidget->AddObserver( vtkCommand::EnableEvent , creavtkcallbackplanewidget ); + + _vPlaneWidget->SetOrigin( _origin[0] , _origin[1] , _origin[2] ); + _vPlaneWidget->SetPoint1( _origin[0]+20 , _origin[1] , _origin[2] ); + _vPlaneWidget->SetPoint2( _origin[0] , _origin[1]+20 , _origin[2] ); + + } + UpdatePlane(); } else { - _vPlaneWidget->Off(); - } -printf("EED creaVtkPlaneWidget::Process End\n"); + _vPlaneWidget->Off(); + } // if Active Render } + + + //------------------------------------------------------------------------ void creaVtkPlaneWidget::UpdatePlane() {