]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbcreaMaracasVisuSliceImage.cxx
3483 SliceImage Box with AxisOrigin
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuSliceImage.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