]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkInversCrop.cxx
#3467 Bug: InvertCrop Dimension of 2D or 3D
[bbtk.git] / packages / vtk / src / bbvtkInversCrop.cxx
index 68b2b1c4797895febcef1449f6f40a6a74030f32..8a4bb337ccdb73000ddea1a68143c6d06c1fb42b 100644 (file)
@@ -113,15 +113,20 @@ printf("EED InversCrop::Process 2   %d %d  %d \n",dim[0],dim[1],dim[2]  );
                   spxM = px*(-1);
                   px   = 0;
                }
-               sizeXM = dimMoveX-spxM;
-               if (px+sizeXM>=dim[0]) sizeXM=dim[0]-px;
-               sizeXM = sizeXM * bbGetInputImageFix()->GetScalarSize();
+               sizeXM  = dimMoveX-spxM;
+               if (px+sizeXM>=dim[0]) { sizeXM=dim[0]-px; }
+               sizeXM  = sizeXM * bbGetInputImageFix()->GetScalarSize();
                for (k=0; k<dimMoveZ; k++)
                {
                   for (j=0; j<dimMoveY; j++)
                   {
                        py = j+bbGetInputOrigin()[1];
-                               pz = k+bbGetInputOrigin()[2];
+                               if (bbGetInputImageMove()->GetDataDimension()==3) 
+                               {
+                                       pz = k+bbGetInputOrigin()[2];
+                               } else {
+                                       pz = k;
+                               }// Dimension 3
                                if ( (py<dim[1]) && (pz<dim[2]) &&
                                 (py>=0)    && (pz>=0)  &&
                                         (sizeXM>0) ) 
@@ -131,6 +136,8 @@ printf("EED InversCrop::Process 2   %d %d  %d \n",dim[0],dim[1],dim[2]  );
 
                   } // for j
                } // for k
+printf("EED InversCrop::Process 4   %d %d  %d \n",px,py,pz  );
+
                _imageoutput->Modified();
        } else { // If Image Fixe Move the same GetScalarType
                   printf ("ERROR: InversCrop  both ImageFixe and ImageMove need the same format.\n");