]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/creaVtkUnMosaicVectorVtkImageData.cpp
#3110 creaVtk Bug New Normal - branch vtk7itk4 compilation with vtk7
[creaVtk.git] / lib / creaVtk / creaVtkUnMosaicVectorVtkImageData.cpp
index c3334e9d1ed5ce08ceca573cc8ec3e3ed862e734..2226f2d4b0b7bd0922235ba6d26579155ab6a06f 100644 (file)
 */
 
 #include "creaVtkUnMosaicVectorVtkImageData.h"
+
+#define _USE_MATH_DEFINES // for C
 #include <math.h>
+
 creaVtkUnMosaicVectorVtkImageData::creaVtkUnMosaicVectorVtkImageData()
 {
 }
@@ -39,15 +42,21 @@ std::vector<vtkImageData*> creaVtkUnMosaicVectorVtkImageData::unMosaicVectorVtkI
 {
        std::vector<int> nbImagesPerRow;
        std::vector<int> nbImagesInMosaic;
+       double imagesInMosaic;
 
-       for(int i = 0; i < NbImagesInMosaicVector.size(); i++){
-               nbImagesPerRow.push_back( ceil(sqrt(NbImagesInMosaicVector[i])) );
+       for(int i = 0; i < NbImagesInMosaicVector.size(); i++)
+       {
+               imagesInMosaic = NbImagesInMosaicVector[i];
+               nbImagesPerRow.push_back( ceil(sqrt(imagesInMosaic)) );
                nbImagesInMosaic.push_back(NbImagesInMosaicVector[i]);
        }
 
-       if(imageInput.size() != NbImagesInMosaicVector.size()){
-               for(int j = NbImagesInMosaicVector.size(); j < imageInput.size(); j++)  {       
-                       nbImagesPerRow.push_back( ceil(sqrt(NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1])) );                
+       if(imageInput.size() != NbImagesInMosaicVector.size())
+       {
+               for(int j = NbImagesInMosaicVector.size(); j < imageInput.size(); j++)  
+               {
+                       imagesInMosaic = NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1];
+                       nbImagesPerRow.push_back( ceil(sqrt(imagesInMosaic)) );         
                        nbImagesInMosaic.push_back( NbImagesInMosaicVector[NbImagesInMosaicVector.size()-1] );
                }
        }
@@ -73,7 +82,13 @@ vtkImageData * creaVtkUnMosaicVectorVtkImageData::unMosaic(vtkImageData *imageIn
    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
+   imageIn->Modified();
+#endif
      
    unsigned int div = (unsigned int)ceil(sqrt( (double)numberOfImagesInMosaic ) );
    outputdims[0] = inputdims[0] / div;
@@ -84,13 +99,20 @@ vtkImageData * creaVtkUnMosaicVectorVtkImageData::unMosaic(vtkImageData *imageIn
     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;