]> Creatis software - creaMaracasVisu.git/commitdiff
3483 SliceImage Box with AxisOrigin
authorEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Wed, 30 Mar 2022 14:07:56 +0000 (16:07 +0200)
committerEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Wed, 30 Mar 2022 14:07:56 +0000 (16:07 +0200)
bbtk/src/bbcreaMaracasVisuSliceImage.cxx
bbtk/src/bbcreaMaracasVisuSliceImage.h
bbtk/src/bbmaracasvisuImageActor.cxx

index 48f21fc501a196392888f4c40db08a8cf7d71754..d5bd08cdd35d11ea16f4229371e5a7222debe955 100644 (file)
@@ -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<double> 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
index 3d7a75322f1410dd74638f56544a6398d4f210a6..d7806c6ca5931ea73f1fa5498394d3d7fa044c91 100644 (file)
@@ -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<double> );
   BBTK_DECLARE_INPUT(InterpolationMode,int);
   BBTK_DECLARE_INPUT(TypeOrientation, int );
   BBTK_DECLARE_INPUT(ResliceAxesDirectionCosines, std::vector<double> );
@@ -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<double>,"");
   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<double>,"");
index 8dd6e609521117740806491c8b5dec91eb50d21b..adc7846f53d7e28ff32778eca5f479e1fe7e3847 100644 (file)
@@ -44,7 +44,6 @@ void ImageActor::Process()
                vtkImageData *img                               = bbGetInputIn();
                vtkLinearTransform* transform   = bbGetInputTransform();
                                
-                               
        if(img != NULL)
                {
                        if (bbGetInputLookupTable()==NULL)