X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FcreaVtkUnMosaicVectorVtkImageData.cpp;h=59a5235a62d63db06fde945bb140f65f683313b2;hb=b352f0ac5f33f441b7ed53cea159c4e5ebd34639;hp=2e7847c5c8141a423c6e897d74951750a262aafa;hpb=284957390f0b4381c970cbcd7b9dd16db9a92ad0;p=creaVtk.git diff --git a/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp b/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp index 2e7847c..59a5235 100644 --- a/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp +++ b/lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp @@ -26,7 +26,7 @@ */ #include "creaVtkUnMosaicVectorVtkImageData.h" - +#include creaVtkUnMosaicVectorVtkImageData::creaVtkUnMosaicVectorVtkImageData() { } @@ -35,21 +35,33 @@ creaVtkUnMosaicVectorVtkImageData::~creaVtkUnMosaicVectorVtkImageData() { } -std::vector creaVtkUnMosaicVectorVtkImageData::unMosaicVectorVtkImageData (int NbImagesPerRow, int NbImagesInMosaic, std::vector bbGetInputIn) +std::vector creaVtkUnMosaicVectorVtkImageData::unMosaicVectorVtkImageData (std::vector imageInput, std::vector NbImagesInMosaicVector) { - int nbImagesPerRow = NbImagesPerRow; - int nbImagesInMosaic = NbImagesInMosaic; + std::vector nbImagesPerRow; + std::vector nbImagesInMosaic; + + for(int i = 0; i < NbImagesInMosaicVector.size(); i++){ + nbImagesInMosaic.push_back(NbImagesInMosaicVector[i]); + nbImagesPerRow.push_back( ceil(sqrt(NbImagesInMosaicVector[i])) ); + } - if (nbImagesPerRow == 0 || nbImagesInMosaic == 0) + if(imageInput.size() != NbImagesInMosaicVector.size()){ + for(int j = NbImagesInMosaicVector.size(); j < imageInput.size(); j++) { + nbImagesInMosaic.push_back( NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1] ); + nbImagesPerRow.push_back( ceil(sqrt(NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1])) ); + } + } + + if (nbImagesPerRow.size() == 0 || nbImagesInMosaic.size() == 0) { std::cout << "VtkUnMosaicVectorVtkImageData ERROR: The number of Images by mosaic is not set " << std::endl; } - std::vector imageIn = bbGetInputIn; + std::vector imageIn = imageInput; std::vector mImageOut; for (int i = 0 ; i < (unsigned int)imageIn.size() ; i++) { - mImageOut.push_back( unMosaic(imageIn[i], NbImagesPerRow, NbImagesInMosaic) ); + mImageOut.push_back( unMosaic(imageIn[i], nbImagesPerRow[i], nbImagesInMosaic[i]) ); } return mImageOut;