From: Eduardo DAVILA Date: Wed, 30 Mar 2022 14:07:56 +0000 (+0200) Subject: 3483 SliceImage Box with AxisOrigin X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=ac69bf222e6ca5cb211b916ef364962edc750ff8;p=creaMaracasVisu.git 3483 SliceImage Box with AxisOrigin --- diff --git a/bbtk/src/bbcreaMaracasVisuSliceImage.cxx b/bbtk/src/bbcreaMaracasVisuSliceImage.cxx index 48f21fc..d5bd08c 100644 --- a/bbtk/src/bbcreaMaracasVisuSliceImage.cxx +++ b/bbtk/src/bbcreaMaracasVisuSliceImage.cxx @@ -28,8 +28,6 @@ namespace bbcreaMaracasVisu { - - BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,SliceImage) BBTK_BLACK_BOX_IMPLEMENTATION(SliceImage,bbtk::AtomicBlackBox); @@ -73,7 +71,15 @@ void SliceImage::Process() bbGetInputResliceAxesDirectionCosines()[5], // v2z bbGetInputResliceAxesDirectionCosines()[8] // v3z ); - imageReslice->SetResliceAxesOrigin( slice*bbGetInputIn()->GetSpacing()[0] ,0 ,0); + std::vector AxOr = bbGetInputAxisOrigin(); + double spc[3]; + bbGetInputIn()->GetSpacing(spc); + if (AxOr.size()==3) + { + imageReslice->SetResliceAxesOrigin( AxOr[0]*spc[0] , AxOr[1]*spc[1] , AxOr[2]*spc[2] ); + } else { + imageReslice->SetResliceAxesOrigin( slice*bbGetInputIn()->GetSpacing()[0] ,0 ,0); + } } else if (bbGetInputTypeOrientation()==2) { // Orientation 2 = Y-Z @@ -82,7 +88,6 @@ void SliceImage::Process() // v3 = [ -1 ,0 , 0 ] // SetResliceAxesDirectionCosines(v1x,v2x,v3x,v1y,v2y,v3y,v1z,v2z,v3z); imageReslice->SetResliceAxesDirectionCosines( 0,1,0, 0,0,-1, -1,0,0 ); - imageReslice->SetResliceAxesOrigin( slice*bbGetInputIn()->GetSpacing()[0] ,0 ,0); } else if (bbGetInputTypeOrientation()==-2) { // Orientation -2 = ZY diff --git a/bbtk/src/bbcreaMaracasVisuSliceImage.h b/bbtk/src/bbcreaMaracasVisuSliceImage.h index 3d7a753..d7806c6 100644 --- a/bbtk/src/bbcreaMaracasVisuSliceImage.h +++ b/bbtk/src/bbcreaMaracasVisuSliceImage.h @@ -43,6 +43,7 @@ class bbcreaMaracasVisu_EXPORT SliceImage BBTK_DECLARE_INPUT(In,vtkImageData*); BBTK_DECLARE_INPUT(Z, double ); BBTK_DECLARE_INPUT(Slice, double ); + BBTK_DECLARE_INPUT(AxisOrigin, std::vector ); BBTK_DECLARE_INPUT(InterpolationMode,int); BBTK_DECLARE_INPUT(TypeOrientation, int ); BBTK_DECLARE_INPUT(ResliceAxesDirectionCosines, std::vector ); @@ -63,6 +64,7 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(SliceImage,bbtk::AtomicBlackBox); BBTK_INPUT(SliceImage,In,"Input image",vtkImageData *,""); BBTK_INPUT(SliceImage,Slice,"Slice",double,""); + BBTK_INPUT(SliceImage,AxisOrigin,"Axis origin [px py pz] ",std::vector,""); BBTK_INPUT(SliceImage,Z,"Z (deprecated)",double,""); BBTK_INPUT(SliceImage,InterpolationMode,"(default 0) 0=NearestNeighbor 1=Linear 2=Cubic",int,""); BBTK_INPUT(SliceImage,ResliceAxesDirectionCosines,"ResliceAxesDirectionCosines [v1x,v1y,v1z,v2x,v2y,v2z,v3x,v3y,v3z], ",std::vector,""); diff --git a/bbtk/src/bbmaracasvisuImageActor.cxx b/bbtk/src/bbmaracasvisuImageActor.cxx index 8dd6e60..adc7846 100644 --- a/bbtk/src/bbmaracasvisuImageActor.cxx +++ b/bbtk/src/bbmaracasvisuImageActor.cxx @@ -44,7 +44,6 @@ void ImageActor::Process() vtkImageData *img = bbGetInputIn(); vtkLinearTransform* transform = bbGetInputTransform(); - if(img != NULL) { if (bbGetInputLookupTable()==NULL)