X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkInversCrop.cxx;h=29be94cabe1ed7bd18a5b9e3f2b6b89130773987;hb=19dda39fbfb4f8e1019c4f0dd37aa3afc8a3d1d6;hp=df0e5db77a7fb89aca6abd724ed8710a079dd1cd;hpb=2afbd2b3d643e0bc34d695805d0ea09e6e98a5ce;p=bbtk.git diff --git a/packages/vtk/src/bbvtkInversCrop.cxx b/packages/vtk/src/bbvtkInversCrop.cxx index df0e5db..29be94c 100644 --- a/packages/vtk/src/bbvtkInversCrop.cxx +++ b/packages/vtk/src/bbvtkInversCrop.cxx @@ -36,12 +36,82 @@ void InversCrop::Process() int dim[3]; int ext[6]; - bbGetInputImageFix()->GetWholeExtent(ext); - dim[0]= ext[1]-ext[0]+1; - dim[1]= ext[3]-ext[2]+1; - dim[2]= ext[5]-ext[4]+1; - - if (bbGetInputType()==0) +//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; + + if (bbGetInputType()==0) + { + _imageoutput = vtkImageData::New(); + _imageoutput->Initialize(); + _imageoutput->SetSpacing( bbGetInputImageFix()->GetSpacing() ); + _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 + } + 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); +#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 = ext[5]-ext[4]+1; + + int spxM=0; // start px MoveImage + int sizeXM=0; // sizeX MoveImage + + px=bbGetInputOrigin()[0]; + spxM=0; + if (px<=0) + { + spxM=px*(-1); + px=0; + } + sizeXM = dimMoveX-spxM; + if (px+sizeXM>=dim[0]) sizeXM=dim[0]-px; + + sizeXM=sizeXM*bbGetInputImageFix()->GetScalarSize(); + for (k=0; k=0) && (pz>=0) && + (sizeXM>0) ) { _imageoutput = vtkImageData::New(); _imageoutput->Initialize(); @@ -64,8 +134,6 @@ void InversCrop::Process() int j,k; int px,py,pz; -// bbGetInputImageMove()->Modified(); -// bbGetInputImageMove()->Update(); bbGetInputImageMove()->GetWholeExtent(ext); int dimMoveX = ext[1]-ext[0]+1; int dimMoveY = ext[3]-ext[2]+1;