From: Eduardo DAVILA Date: Wed, 24 Nov 2021 10:36:40 +0000 (+0100) Subject: #3474 PlaneWidget Box with representation:Wireframe and resolution X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=fbbb28f5a7bfb5aa48b76977df6238774c4512cd;p=creaVtk.git #3474 PlaneWidget Box with representation:Wireframe and resolution --- diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx index 4100723..833d6be 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx @@ -44,7 +44,6 @@ void PlaneWidget::Process() // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') -printf("EED void PlaneWidget::Process Start\n"); if ((bbGetInputIn()==NULL) || (bbGetInputRenderer()==NULL)) { @@ -59,15 +58,13 @@ printf("EED void PlaneWidget::Process Start\n"); _boxcreavtkplanewidget.SetResolution( bbGetInputResolution() ); _boxcreavtkplanewidget.SetRenderer( bbGetInputRenderer() ); _boxcreavtkplanewidget.SetRepresentation( bbGetInputRepresentation() ); -printf("EED void PlaneWidget::Process 1\n"); + _boxcreavtkplanewidget.SetOrigin( bbGetInputOrigin() ); _boxcreavtkplanewidget.Process(); -printf("EED void PlaneWidget::Process 2\n"); bbSetOutputOut( _boxcreavtkplanewidget.GetPlaneSource()->GetOutput() ); bbSetOutputCenter( _boxcreavtkplanewidget.GetCenter() ); bbSetOutputNormal( _boxcreavtkplanewidget.GetNormal() ); } -printf("EED void PlaneWidget::Process End\n"); } //===== diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h index 02dcce0..89881fb 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h @@ -41,6 +41,7 @@ class bbcreaVtk_EXPORT PlaneWidget BBTK_DECLARE_INPUT(Resolution,int); BBTK_DECLARE_INPUT(Renderer,vtkRenderer*); BBTK_DECLARE_INPUT(Representation,int); + BBTK_DECLARE_INPUT(Origin,std::vector); BBTK_DECLARE_OUTPUT(Out,vtkDataSet*); BBTK_DECLARE_OUTPUT(Center,std::vector); BBTK_DECLARE_OUTPUT(Normal,std::vector); @@ -67,6 +68,7 @@ BBTK_CATEGORY("empty"); BBTK_INPUT(PlaneWidget,Resolution,"Resolution (60 default)",int,""); BBTK_INPUT(PlaneWidget,Renderer,"vtkRenderer",vtkRenderer*,""); BBTK_INPUT(PlaneWidget,Representation,"(default 1) 0:OutLine 1:Wireframe 2:Surface",int,""); + BBTK_INPUT(PlaneWidget,Origin,"Origin [x,y,z]",std::vector,""); BBTK_OUTPUT(PlaneWidget,Out,"Dynamic plane result from vtkPlaneSource",vtkDataSet*,""); BBTK_OUTPUT(PlaneWidget,Center,"Center of the plane",std::vector,""); diff --git a/lib/creaVtk/creaVtkPlaneWidget.cpp b/lib/creaVtk/creaVtkPlaneWidget.cpp index 609d425..39cca10 100644 --- a/lib/creaVtk/creaVtkPlaneWidget.cpp +++ b/lib/creaVtk/creaVtkPlaneWidget.cpp @@ -153,6 +153,10 @@ std::vector creaVtkPlaneWidget::GetNormal() return vecNormal; } +void creaVtkPlaneWidget::SetOrigin(std::vector origin) +{ + _origin = origin; +} //------------------------------------------------------------------------ void creaVtkPlaneWidget::Process() @@ -160,36 +164,41 @@ void creaVtkPlaneWidget::Process() if ((GetActive()==true) && (GetRenderer()!=NULL)) { -//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.5); - _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 ); - } - UpdatePlane(); + //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.01); + _vPlaneWidget->On(); + _vPlaneWidget->Print(std::cout); + if (_origin.size()==3) + { + _vPlaneWidget->SetCenter( _origin[0] , _origin[1] , _origin[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 ); + } + UpdatePlane(); } else { - _vPlaneWidget->Off(); - } + _vPlaneWidget->Off(); + } // if Active Render } diff --git a/lib/creaVtk/creaVtkPlaneWidget.h b/lib/creaVtk/creaVtkPlaneWidget.h index 2e87e48..043132e 100644 --- a/lib/creaVtk/creaVtkPlaneWidget.h +++ b/lib/creaVtk/creaVtkPlaneWidget.h @@ -83,6 +83,8 @@ public : std::vector GetCenter(); std::vector GetNormal(); + void SetOrigin( std::vector origin); + void Process(); void UpdatePlane(); virtual void Execute(); @@ -98,12 +100,13 @@ protected: //Methods and attributes only visible by this class //--------------------------------------------- private: - bool _firsttime; - bool _active; - vtkImageData *_image; - vtkRenderer *_renderer; - int _resolution; - int _representation; + bool _firsttime; + bool _active; + vtkImageData* _image; + vtkRenderer * _renderer; + int _resolution; + int _representation; + std::vector _origin; vtkPlaneWidget *_vPlaneWidget; vtkPlaneSource *_vPlaneSource;