]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp
Merge remote-tracking branch 'origin/vtk7itk4' into vtk7itk4wx3
[creaVtk.git] / lib / creaVtk / creaVtkUnMosaicVectorVtkImageData.cpp
index 3609557e26bdedac789b54c255b7c1809a0a4daf..93faba51325d36df492f786bc2c5283684e52ddc 100644 (file)
@@ -43,14 +43,12 @@ std::vector<vtkImageData*> creaVtkUnMosaicVectorVtkImageData::unMosaicVectorVtkI
        std::vector<int> nbImagesPerRow;
        std::vector<int> 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<vtkImageData*> 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<vtkImageData*> imageIn = imageInput;
-
        std::vector<vtkImageData*> 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;
-}
-*/