From 4e639a77332569de9321dc84c7788811828d4711 Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Wed, 4 Jul 2012 08:38:21 +0000 Subject: [PATCH] Future 1454 -bbvtkImagePlane Interpolation option --- packages/vtk/src/bbvtkImagePlanes.cxx | 18 ++++++++----- packages/vtk/src/bbvtkImagePlanes.h | 37 +++++++++++++++------------ 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/packages/vtk/src/bbvtkImagePlanes.cxx b/packages/vtk/src/bbvtkImagePlanes.cxx index c31a38d..746492a 100644 --- a/packages/vtk/src/bbvtkImagePlanes.cxx +++ b/packages/vtk/src/bbvtkImagePlanes.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImagePlanes.cxx,v $ Language: C++ - Date: $Date: 2010/08/18 12:36:45 $ - Version: $Revision: 1.35 $ + Date: $Date: 2012/07/04 08:38:21 $ + Version: $Revision: 1.36 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -136,7 +136,7 @@ namespace bbvtk }; //================================================================ - //vtkCxxRevisionMacro(ImagePlanes::VtkCallbackType, "$Revision: 1.35 $"); + //vtkCxxRevisionMacro(ImagePlanes::VtkCallbackType, "$Revision: 1.36 $"); //================================================================ @@ -170,6 +170,8 @@ namespace bbvtk image = NULL; _transform = NULL; _matrix = NULL; + + bbSetInputInterpolation(1); } @@ -285,6 +287,10 @@ namespace bbvtk updateInteractor(); } // UPDATE DES SORTIES + bbGetOutputPlaneX()->SetResliceInterpolate( bbGetInputInterpolation() ); + bbGetOutputPlaneY()->SetResliceInterpolate( bbGetInputInterpolation() ); + bbGetOutputPlaneZ()->SetResliceInterpolate( bbGetInputInterpolation() ); + bbGetOutputPlaneX()->GetResliceOutput()->Update(); bbGetOutputPlaneY()->GetResliceOutput()->Update(); bbGetOutputPlaneZ()->GetResliceOutput()->Update(); @@ -343,10 +349,10 @@ namespace bbvtk if (_imageReslicer==NULL){ _imageReslicer = vtkImageReslice::New(); _imageReslicer->SetOutputDimensionality(2); - _imageReslicer->SetInterpolationModeToLinear(); _transform = vtkTransform::New(); _matrix = vtkMatrix4x4::New(); } + _imageReslicer->SetInterpolationMode( bbGetInputInterpolation() ); _imageReslicer->SetInput( bbGetInputIn() ); _imageReslicer->SetInformationInput(bbGetInputIn()); //fill out the information with the created vectors and using the spacing of the image @@ -378,8 +384,8 @@ namespace bbvtk //set the transformation out to be used by other bbBoxes bbSetOutputTransform3Pts((vtkLinearTransform*)_transform); - } - } + } // pointsx pointsy pointsz + } // bbGetInputIn } void ImagePlanes::updateInteractor(){ diff --git a/packages/vtk/src/bbvtkImagePlanes.h b/packages/vtk/src/bbvtkImagePlanes.h index eae6bc9..3f0c3a8 100644 --- a/packages/vtk/src/bbvtkImagePlanes.h +++ b/packages/vtk/src/bbvtkImagePlanes.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImagePlanes.h,v $ Language: C++ - Date: $Date: 2010/06/01 13:48:14 $ - Version: $Revision: 1.22 $ + Date: $Date: 2012/07/04 08:38:21 $ + Version: $Revision: 1.23 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -68,21 +68,22 @@ namespace bbvtk public: BBTK_BLACK_BOX_INTERFACE(ImagePlanes,bbtk::AtomicBlackBox); // BBTK_DECLARE_INPUT(Contour, int); - BBTK_DECLARE_INPUT(In, vtkImageData*); - BBTK_DECLARE_INPUT(WindowLevel, winLevel); - BBTK_DECLARE_INPUT(PointsX, std::vector); - BBTK_DECLARE_INPUT(PointsY, std::vector); - BBTK_DECLARE_INPUT(PointsZ, std::vector); - BBTK_DECLARE_INPUT(Interactor, vtkRenderWindowInteractor*); - - BBTK_DECLARE_OUTPUT(PlaneX, vtkImagePlaneWidget*); - BBTK_DECLARE_OUTPUT(PlaneY, vtkImagePlaneWidget*); - BBTK_DECLARE_OUTPUT(PlaneZ, vtkImagePlaneWidget*); - BBTK_DECLARE_OUTPUT(Plane3Pts, vtkInteractorObserver*); - BBTK_DECLARE_OUTPUT(ImageX, vtkImageData*); - BBTK_DECLARE_OUTPUT(ImageY, vtkImageData*); - BBTK_DECLARE_OUTPUT(ImageZ, vtkImageData*); - BBTK_DECLARE_OUTPUT(Image3Pts, vtkImageData*); + BBTK_DECLARE_INPUT(In, vtkImageData*); + BBTK_DECLARE_INPUT(WindowLevel, winLevel); + BBTK_DECLARE_INPUT(PointsX, std::vector); + BBTK_DECLARE_INPUT(PointsY, std::vector); + BBTK_DECLARE_INPUT(PointsZ, std::vector); + BBTK_DECLARE_INPUT(Interactor, vtkRenderWindowInteractor*); + BBTK_DECLARE_INPUT(Interpolation, int); + + BBTK_DECLARE_OUTPUT(PlaneX, vtkImagePlaneWidget*); + BBTK_DECLARE_OUTPUT(PlaneY, vtkImagePlaneWidget*); + BBTK_DECLARE_OUTPUT(PlaneZ, vtkImagePlaneWidget*); + BBTK_DECLARE_OUTPUT(Plane3Pts, vtkInteractorObserver*); + BBTK_DECLARE_OUTPUT(ImageX, vtkImageData*); + BBTK_DECLARE_OUTPUT(ImageY, vtkImageData*); + BBTK_DECLARE_OUTPUT(ImageZ, vtkImageData*); + BBTK_DECLARE_OUTPUT(Image3Pts, vtkImageData*); BBTK_DECLARE_OUTPUT(Transform3Pts, vtkLinearTransform*); BBTK_PROCESS(Process); @@ -123,7 +124,9 @@ namespace bbvtk BBTK_INPUT(ImagePlanes, PointsY, "Points in Y", std::vector, ""); BBTK_INPUT(ImagePlanes, PointsZ, "Points in Z", std::vector, ""); BBTK_INPUT(ImagePlanes, Interactor, "Interactor for the planes", vtkRenderWindowInteractor*, ""); + BBTK_INPUT(ImagePlanes, Interpolation, "Interpolation (default 1) 0=NEAREST_RESLICE 1=LINEAR_RESLICE 2=CUBIC_RESLICE", int, ""); + BBTK_OUTPUT(ImagePlanes,PlaneX, "The image plane in X direction", vtkImagePlaneWidget*, ""); BBTK_OUTPUT(ImagePlanes,PlaneY, "The image plane in Y direction", vtkImagePlaneWidget*, ""); BBTK_OUTPUT(ImagePlanes,PlaneZ, "The image plane in Z direction", vtkImagePlaneWidget*, ""); -- 2.45.1