From 290807047e4eee6c704edb1b75fb6e8fd75ac162 Mon Sep 17 00:00:00 2001 From: Eduardo DAVILA Date: Thu, 23 Dec 2021 16:55:10 +0100 Subject: [PATCH] #3477 Set Normal in PlaneWidget --- bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx | 2 +- bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h | 2 + lib/creaVtk/creaVtkPlaneWidget.cpp | 12 ++++- lib/creaVtk/creaVtkPlaneWidget.h | 52 ++++++++++--------- 4 files changed, 41 insertions(+), 27 deletions(-) diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx index 833d6be..869a8f7 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.cxx @@ -16,7 +16,6 @@ void boxcreaVtkPlaneWidget::Execute() // virutal box->bbSignalOutputModification(std::string("Center")); box->bbSetOutputNormal( box->_boxcreavtkplanewidget.GetNormal() ); box->bbSignalOutputModification(std::string("Normal")); - } //---------------------------------------------------------------------------------------------- @@ -59,6 +58,7 @@ void PlaneWidget::Process() _boxcreavtkplanewidget.SetRenderer( bbGetInputRenderer() ); _boxcreavtkplanewidget.SetRepresentation( bbGetInputRepresentation() ); _boxcreavtkplanewidget.SetOrigin( bbGetInputOrigin() ); + _boxcreavtkplanewidget.SetNormalIn( bbGetInputNormalIn() ); _boxcreavtkplanewidget.Process(); bbSetOutputOut( _boxcreavtkplanewidget.GetPlaneSource()->GetOutput() ); diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h index 89881fb..e32806b 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkPlaneWidget.h @@ -42,6 +42,7 @@ class bbcreaVtk_EXPORT PlaneWidget BBTK_DECLARE_INPUT(Renderer,vtkRenderer*); BBTK_DECLARE_INPUT(Representation,int); BBTK_DECLARE_INPUT(Origin,std::vector); + BBTK_DECLARE_INPUT(NormalIn,std::vector); BBTK_DECLARE_OUTPUT(Out,vtkDataSet*); BBTK_DECLARE_OUTPUT(Center,std::vector); BBTK_DECLARE_OUTPUT(Normal,std::vector); @@ -69,6 +70,7 @@ BBTK_CATEGORY("empty"); 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_INPUT(PlaneWidget,NormalIn,"Normal [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 39cca10..3750454 100644 --- a/lib/creaVtk/creaVtkPlaneWidget.cpp +++ b/lib/creaVtk/creaVtkPlaneWidget.cpp @@ -158,6 +158,12 @@ void creaVtkPlaneWidget::SetOrigin(std::vector origin) _origin = origin; } +void creaVtkPlaneWidget::SetNormalIn(std::vector normalin) +{ + _normalin = normalin; +} + + //------------------------------------------------------------------------ void creaVtkPlaneWidget::Process() { @@ -185,7 +191,11 @@ void creaVtkPlaneWidget::Process() { _vPlaneWidget->SetCenter( _origin[0] , _origin[1] , _origin[2] ); } // if _origin - if (_firsttime==true ) + if (_normalin.size()==3) + { + _vPlaneWidget->SetNormal( _normalin[0] , _normalin[1] , _normalin[2] ); + } // if _origin + if (_firsttime==true ) { _firsttime = false; _vPlaneWidget->PlaceWidget(); diff --git a/lib/creaVtk/creaVtkPlaneWidget.h b/lib/creaVtk/creaVtkPlaneWidget.h index 043132e..5254cad 100644 --- a/lib/creaVtk/creaVtkPlaneWidget.h +++ b/lib/creaVtk/creaVtkPlaneWidget.h @@ -66,28 +66,29 @@ class creaVtkPlaneWidget //Methods and attributes exposed to other classes //--------------------------------------------- public : - creaVtkPlaneWidget(); - ~creaVtkPlaneWidget(); - - void SetImage(vtkImageData* image); - vtkImageData* GetImage(); - void SetActive(bool active); - bool GetActive(); - void SetRenderer(vtkRenderer* renderer); - vtkRenderer* GetRenderer(); - vtkPlaneSource* GetPlaneSource(); - void SetResolution(int resolution); - int GetResolution(); - void SetRepresentation(int represtation); - int GetRepresentation(); - std::vector GetCenter(); - std::vector GetNormal(); - - void SetOrigin( std::vector origin); - - void Process(); - void UpdatePlane(); - virtual void Execute(); + creaVtkPlaneWidget(); + ~creaVtkPlaneWidget(); + + void SetImage(vtkImageData* image); + vtkImageData* GetImage(); + void SetActive(bool active); + bool GetActive(); + void SetRenderer(vtkRenderer* renderer); + vtkRenderer* GetRenderer(); + vtkPlaneSource* GetPlaneSource(); + void SetResolution(int resolution); + int GetResolution(); + void SetRepresentation(int represtation); + int GetRepresentation(); + std::vector GetCenter(); + std::vector GetNormal(); + + void SetOrigin( std::vector origin); + void SetNormalIn( std::vector normalin); + + void Process(); + void UpdatePlane(); + virtual void Execute(); //--------------------------------------------- @@ -106,10 +107,11 @@ private: vtkRenderer * _renderer; int _resolution; int _representation; - std::vector _origin; + std::vector _origin; + std::vector _normalin; - vtkPlaneWidget *_vPlaneWidget; - vtkPlaneSource *_vPlaneSource; + vtkPlaneWidget *_vPlaneWidget; + vtkPlaneSource *_vPlaneSource; }; //-end of _CREAVTKPLANEWIDGET_H_------------------------------------------------------ -- 2.45.1