]> Creatis software - clitk.git/commitdiff
corrected bug in fusion with double values
authorRomulo Pinho <romulo.pinho@lyon.unicancer.fr>
Fri, 27 Jan 2012 15:05:06 +0000 (16:05 +0100)
committerRomulo Pinho <romulo.pinho@lyon.unicancer.fr>
Fri, 27 Jan 2012 15:05:06 +0000 (16:05 +0100)
vv/vvSlicerManager.cxx

index e739eef8e56f866983a78d28a5fbeb0fa3eff33b..813ba2258bc1f2b247b342f9176e5b2be8f91a4b 100644 (file)
@@ -1232,15 +1232,18 @@ void vvSlicerManager::SetColorMap(int colormap)
     }
     
     fusLUT->ForceBuild();
+    double v[4];
     
     // set color table transparency
-    double alpha_range_end = frange[0] + (double)mFusionThresOpacity*(frange[1] - frange[0])/100;
-    for (double i = frange[0]; i < alpha_range_end; i++) {
-      double v[4];
-      vtkIdType index = fusLUT->GetIndex(i);
-      fusLUT->GetTableValue(index, v);
+    double range_end = frange[0] + (double)mFusionThresOpacity*(frange[1] - frange[0])/100;
+    double curr_value = frange[0];
+    int nvalues = fusLUT->GetNumberOfTableValues();
+    //for (double i = frange[0]; i <= alpha_range_end; i++) {
+    for (double i = 0; curr_value < range_end; i++) {  
+      fusLUT->GetTableValue(i, v);
       v[3] = 0;
-      fusLUT->SetTableValue(index, v);
+      fusLUT->SetTableValue(i, v);
+      curr_value += (frange[1] - frange[0])/nvalues;
     }
   }
   for ( unsigned int i = 0; i < mSlicers.size(); i++) {