X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FcreaVtkUnMosaicVectorVtkImageData.cpp;h=93faba51325d36df492f786bc2c5283684e52ddc;hb=refs%2Fheads%2Fvtk9itk5wx3-macos;hp=3609557e26bdedac789b54c255b7c1809a0a4daf;hpb=baedf84edee0776111219f64436cc08803ed14c3;p=creaVtk.git diff --git a/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp b/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp index 3609557..93faba5 100644 --- a/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp +++ b/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp @@ -43,14 +43,12 @@ std::vector creaVtkUnMosaicVectorVtkImageData::unMosaicVectorVtkI std::vector nbImagesPerRow; std::vector nbImagesInMosaic; double imagesInMosaic; - for(int i = 0; i < NbImagesInMosaicVector.size(); i++) { imagesInMosaic = NbImagesInMosaicVector[i]; nbImagesPerRow.push_back( ceil(sqrt(imagesInMosaic)) ); nbImagesInMosaic.push_back(NbImagesInMosaicVector[i]); - } - + } // for i if(imageInput.size() != NbImagesInMosaicVector.size()) { for(int j = NbImagesInMosaicVector.size(); j < imageInput.size(); j++) @@ -58,50 +56,56 @@ std::vector creaVtkUnMosaicVectorVtkImageData::unMosaicVectorVtkI imagesInMosaic = NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1]; nbImagesPerRow.push_back( ceil(sqrt(imagesInMosaic)) ); nbImagesInMosaic.push_back( NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1] ); - } - } - + } // for j + } // for imageInput size if (nbImagesPerRow.size() == 0 || nbImagesInMosaic.size() == 0) - { + { std::cout << "VtkUnMosaicVectorVtkImageData ERROR: The number of Images by mosaic is not set " << std::endl; - } - + } // if nbImagesPerRow size std::vector imageIn = imageInput; - std::vector mImageOut; - for (int i = 0 ; i < (unsigned int)imageIn.size() ; i++) { - mImageOut.push_back( unMosaic(imageIn[i], nbImagesPerRow[i], nbImagesInMosaic[i]) ); - } - + for (int i = 0 ; i < (unsigned int)imageIn.size() ; i++) + { + mImageOut.push_back( unMosaic(imageIn[i], nbImagesPerRow[i], nbImagesInMosaic[i]) ); + } // for i return mImageOut; } +//------------------------------------------------------------------------------ vtkImageData * creaVtkUnMosaicVectorVtkImageData::unMosaic(vtkImageData *imageIn, int nbImagesPerRow, int numberOfImagesInMosaic) { - int inputdims[3]; - int outputdims[3]; - imageIn->GetDimensions (inputdims); - unsigned short *input = (unsigned short *)(imageIn->GetScalarPointer()); - imageIn->Update(); - - unsigned int div = (unsigned int)ceil(sqrt( (double)numberOfImagesInMosaic ) ); - outputdims[0] = inputdims[0] / div; - outputdims[1] = inputdims[1] / div; - outputdims[2] = numberOfImagesInMosaic; + int inputdims[3]; + int outputdims[3]; + imageIn->GetDimensions (inputdims); + unsigned short *input = (unsigned short *)(imageIn->GetScalarPointer()); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + imageIn->Update(); +#else + // .. +#endif + unsigned int div = (unsigned int)ceil(sqrt( (double)numberOfImagesInMosaic ) ); + outputdims[0] = inputdims[0] / div; + outputdims[1] = inputdims[1] / div; + outputdims[2] = numberOfImagesInMosaic; vtkImageData *vtkImageOut; vtkImageOut = vtkImageData::New(); vtkImageOut->SetDimensions( outputdims ); vtkImageOut->SetExtent(0,outputdims[0]-1,0,outputdims[1]-1,0,outputdims[2]-1); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 vtkImageOut->SetWholeExtent(0,outputdims[0]-1,0,outputdims[1]-1,0,outputdims[2]-1); vtkImageOut->SetNumberOfScalarComponents(1); //vtkImageOut->SetSpacing( blabla ); vtkImageOut->SetScalarType( VTK_UNSIGNED_SHORT ); vtkImageOut->AllocateScalars(); vtkImageOut->Update(); - +#else + vtkImageOut->AllocateScalars(VTK_UNSIGNED_SHORT,1); +#endif unsigned short *output =(unsigned short *)(vtkImageOut->GetScalarPointer()); - unsigned short *dest = output; int dimXImageElem = outputdims[0]; int dimYImageElem = outputdims[1]; @@ -118,18 +122,8 @@ vtkImageData * creaVtkUnMosaicVectorVtkImageData::unMosaic(vtkImageData *imageIn memcpy(dest, input+debImage, dimXImageElem*sizeof(unsigned short)); debImage += dimXImageElem*nbImagesPerRow; dest += dimXImageElem; - } - } + } // for j + } // for i return vtkImageOut; } -//--------------------------------------------- -//Method template -//--------------------------------------------- -/* -void creaVtkUnMosaicVectorVtkImageData::FunctionName(int& parameterA) -{ - parameterA = 2 * parameterA; - return; -} -*/