]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/pHistogram.cxx
#3418 creaMaracasVisu Feature New Normal - ManualPaint_model with openmp
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / pHistogram.cxx
index cbfee52eeac8aedf549fbf9c1f1a37af899b9699..4bac5fba7d5e09ce09047fd6f213698d32a6ced3 100644 (file)
@@ -74,14 +74,6 @@ pHistogram::pHistogram(vtkImageData* imageData)
        points          = vtkImageData::New();
        size                    = 100;
        sizeImage       = 0;
-       //cast
-       /*
-       vtkImageCast* cast= vtkImageCast::New();
-       cast->SetInput(imageData);
-       cast->SetOutputScalarTypeToInt();
-       cast->Update();
-       */
-       //build the histogram
        buildHistogram(imageData);
 }
 
@@ -143,9 +135,16 @@ void pHistogram::initializePoints(int xDimension)
        //setting image data of the points
        points->SetDimensions(xDimension,1,1);
 //EED  points->SetScalarTypeToUnsignedShort();
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
        points->SetScalarTypeToDouble();
        points->AllocateScalars();
        points->Update();
+#else
+       points->AllocateScalars(VTK_DOUBLE,1);
+#endif
+
 }
 
 /*
@@ -154,7 +153,6 @@ void pHistogram::initializePoints(int xDimension)
 void pHistogram::setPoints(vtkImageData* imageData)
 {
 
-printf("EED pHistogram::setPoints Trinng new histogram ..\n");
 /*
 printf("EED pHistogram::setPoints Test: vtkPComputeHistogram2DOutliers\n");
 vtkComputeHistogram2DOutliers *vtkhist = vtkComputeHistogram2DOutliers::New();
@@ -171,13 +169,12 @@ printf("EED pHistogram::setPoints colums:%d\n", (int)(resulttable->GetNumberOfCo
        */
 
        char*                           dataImagePointerC               = (char*)imageData->GetScalarPointer(0,0,0);
-       unsigned char*  dataImagePointerUC      = (unsigned char*)imageData->GetScalarPointer(0,0,0);
+       unsigned char*          dataImagePointerUC              = (unsigned char*)imageData->GetScalarPointer(0,0,0);
        short*                          dataImagePointerS               = (short*)imageData->GetScalarPointer(0,0,0);
-       unsigned short*         dataImagePointerUS      = (unsigned short*)imageData->GetScalarPointer(0,0,0);
+       unsigned short*         dataImagePointerUS              = (unsigned short*)imageData->GetScalarPointer(0,0,0);
        float*                          dataImagePointerF               = (float*)imageData->GetScalarPointer(0,0,0);
-       double*                                 dataImagePointerD               = (double*)imageData->GetScalarPointer(0,0,0);
-
-       double* dataHistogramPointer                            = (double*)points->GetScalarPointer(0,0,0);
+       double*                         dataImagePointerD               = (double*)imageData->GetScalarPointer(0,0,0);
+       double*                         dataHistogramPointer    = (double*)points->GetScalarPointer(0,0,0);
        
        /*
         Range of greys
@@ -202,9 +199,9 @@ printf("EED pHistogram::setPoints colums:%d\n", (int)(resulttable->GetNumberOfCo
        int ext[6];
        imageData->GetExtent(ext);
        int sx,sy,sz;
-       sx=ext[1]-ext[0]+1;
-       sy=ext[3]-ext[2]+1;
-       sz=ext[5]-ext[4]+1;
+       sx = ext[1]-ext[0]+1;
+       sy = ext[3]-ext[2]+1;
+       sz = ext[5]-ext[4]+1;
 
        sizeImage=sx*sy*sz;
 
@@ -217,7 +214,7 @@ printf("EED pHistogram::setPoints colums:%d\n", (int)(resulttable->GetNumberOfCo
                dataHistogramPointer[i]=0;
        }
        
-       int j=0;
+       long int j=0;
 
 
        if (imageData->GetScalarType()==VTK_CHAR)
@@ -301,8 +298,14 @@ image
 */
 int pHistogram::getIndex(double gValue)
 {
-
-       double p=((double)gValue-minLevelOfGrey)/(maxLevelOfGrey-minLevelOfGrey);
+       double p;
+       double diff=maxLevelOfGrey-minLevelOfGrey;
+       if (diff!=0)
+       {
+               p=((double)gValue-minLevelOfGrey)/(maxLevelOfGrey-minLevelOfGrey);
+       } else {
+               p=0;
+       }
        double k=p*(size-1);
        //std::cout<<"gValue "<<gValue<<" k "<<k<<std::endl;
        return (int)k;