]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkInversCrop.cxx
#3472 merge vtk8itk5wx3-mingw64
[bbtk.git] / packages / vtk / src / bbvtkInversCrop.cxx
index 1170d5c570c1335201c22e8c042a8260a2323017..9064a09d20cce394198cdd96199bf18c550db20d 100644 (file)
@@ -28,7 +28,6 @@ void InversCrop::Process()
 
        if (bbGetInputActive()==true)
        {
-printf("EED %p InversCrop::Process %d %d %d\n", this,bbGetInputOrigin()[0], bbGetInputOrigin()[1], bbGetInputOrigin()[2]);
            if ( (bbGetInputImageFix()!=NULL) && (bbGetInputImageMove()!=NULL) )
            {
             if ( bbGetInputImageFix()->GetScalarType()==bbGetInputImageMove()->GetScalarType() ) 
@@ -37,84 +36,123 @@ printf("EED %p InversCrop::Process %d %d %d\n", this,bbGetInputOrigin()[0], bbGe
                int dim[3];
                int ext[6];
        
-               bbGetInputImageFix()->GetWholeExtent(ext);
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5) 
+       bbGetInputImageFix()->GetWholeExtent(ext);
+#endif
+#if (VTK_MAJOR_VERSION >= 6) 
+       bbGetInputImageFix()->GetExtent(ext);
+#endif
                dim[0]= ext[1]-ext[0]+1;
                dim[1]= ext[3]-ext[2]+1;
-               dim[2]= ext[5]-ext[4]+1;
-
+               dim[2] = 1;
+               if (bbGetInputImageFix()->GetDataDimension()==3) 
+               {
+                       dim[2] = ext[5]-ext[4]+1;
+               } 
                if (bbGetInputType()==0)
                {
                        _imageoutput = vtkImageData::New();
                        _imageoutput->Initialize();
-                       _imageoutput->SetScalarType( bbGetInputImageFix()->GetScalarType() );
                        _imageoutput->SetSpacing( bbGetInputImageFix()->GetSpacing() );
-                       _imageoutput->SetDimensions(  dim[0], dim[1], dim[2] );
+                       _imageoutput->SetDimensions(  dim[0], dim[1], dim[2] );                 
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5) 
+                       _imageoutput->SetScalarType( bbGetInputImageFix()->GetScalarType() );
                        _imageoutput->AllocateScalars();
+#endif
+#if (VTK_MAJOR_VERSION >= 6) 
+                       _imageoutput->AllocateScalars(bbGetInputImageFix()->GetScalarType() , 1);
+#endif
+               
+                       // Duplicating Fix Image
+                       long sizeimage = dim[0]*dim[1]*dim[2]*bbGetInputImageFix()->GetScalarSize();    
+                       memcpy( _imageoutput->GetScalarPointer() , bbGetInputImageFix()->GetScalarPointer() , sizeimage);
                }
                if (bbGetInputType()==1)
                {
                        _imageoutput=bbGetInputImageFix();
                }
 
-
-               // Duplicating Fix Image
-               long sizeimage = dim[0]*dim[1]*dim[2]*bbGetInputImageFix()->GetScalarSize();    
-               memcpy( _imageoutput->GetScalarPointer() , bbGetInputImageFix()->GetScalarPointer() , sizeimage);
-
                // Copy the Move Image
                int j,k; 
                int px,py,pz;
 
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5) 
                bbGetInputImageMove()->GetWholeExtent(ext);
-               int dimMoveX = ext[1]-ext[0]+1;
-               int dimMoveY = ext[3]-ext[2]+1;
-               int dimMoveZ = ext[5]-ext[4]+1;
-
-               int spxM=0;  // start px MoveImage
-               int sizeXM=0;  // sizeX MoveImage
-
-               px=bbGetInputOrigin()[0];
-               spxM=0;
-               if (px<=0)
+#endif
+#if (VTK_MAJOR_VERSION >= 6) 
+               bbGetInputImageMove()->GetExtent(ext);
+#endif
+               int dimMoveX    = ext[1]-ext[0]+1;
+               int dimMoveY    = ext[3]-ext[2]+1;
+               int dimMoveZ    = 1;
+               if (bbGetInputImageMove()->GetDataDimension()==3) 
+               {
+                       dimMoveZ = ext[5]-ext[4]+1;
+               } 
+               double org[3];
+               org[0]=0;
+               org[1]=0;
+               org[2]=0;               
+               if (bbGetInputOrigin().size()==3)
+               {
+                       org[0]=bbGetInputOrigin()[0];
+                       org[1]=bbGetInputOrigin()[1];
+                       org[2]=bbGetInputOrigin()[2];
+               }
+               if (bbGetInputOrigin().size()==2)
+               {
+                       org[0]=bbGetInputOrigin()[0];
+                       org[1]=bbGetInputOrigin()[1];
+               }
+               if (bbGetInputOrigin().size()==1)
+               {
+                       org[0]=bbGetInputOrigin()[0];
+               }
+               int spxM                = 0;  // start px MoveImage
+               int sizeXM              = 0;  // sizeX MoveImage
+               px                              = org[0];
+               spxM                    = 0;
+               if (px<0)
                { 
-                  spxM=px*(-1);
-                  px=0;
+                  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 ( (py<dim[1]) && (pz<dim[2]) &&
-                            (py>=0)    && (pz>=0)      &&
-                            (sizeXM>0) ) 
-                       {
-                               memcpy( _imageoutput->GetScalarPointer(px,py,pz) , bbGetInputImageMove()->GetScalarPointer(spxM,j,k) , sizeXM );
-                       }
-
+                       py = j+org[1];
+                               if (bbGetInputImageMove()->GetDataDimension()==3) 
+                               {
+                                       pz = k+org[2];
+                               } else {
+                                       pz = k;
+                               }// Dimension 3
+                               if ( (py<dim[1]) && (pz<dim[2]) &&
+                                (py>=0)    && (pz>=0)  &&
+                                        (sizeXM>0) ) 
+                               {
+                                       memcpy( _imageoutput->GetScalarPointer(px,py,pz) , bbGetInputImageMove()->GetScalarPointer(spxM,j,k) , sizeXM );
+                               }
                   } // for j
                } // for k
                _imageoutput->Modified();
-             } // If Image Fixe Move the same GetScalarType
-               else {
+       } else { // If Image Fixe Move the same GetScalarType
                   printf ("ERROR: InversCrop  both ImageFixe and ImageMove need the same format.\n");
                   printf ("       type ImageFix:%d   type ImageMove:%d\n", bbGetInputImageFix()->GetScalarType(), bbGetInputImageMove()->GetScalarType() );
 
              }  
-           } // If Image Fixe Move != NULL   
-            else {
-               printf ("ERROR: InversCrop  need ImageFixe and ImageMove to run.\n");
-           } 
-           bbSetOutputOut(_imageoutput);
-
+           } else { // If Image Fixe Move != NULL
+                       printf ("ERROR: InversCrop  need ImageFixe and ImageMove to run.\n");
+          } 
+        bbSetOutputOut(_imageoutput);
        } // if Active
-
 }
 
 //=====