]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManager.cxx
- new multiple input selector
[clitk.git] / vv / vvSlicerManager.cxx
index 7618bf2ceb7825ae70be3b560d2af2e76acc586b..2622c6b9b7459c70c80da89383568216682b0388 100644 (file)
@@ -338,8 +338,9 @@ void vvSlicerManager::SetSlicerWindow(int i, vtkRenderWindow* RW)
 
 void vvSlicerManager::SetInteractorStyleNavigator(int i, vtkInteractorStyle* style)
 {
-    vvSlicerManagerCallback *smc = vvSlicerManagerCallback::New();
+    vvSlicerManagerCommand *smc = vvSlicerManagerCommand::New();
     smc->SM = this;
+    smc->SetSlicerNumber(i);
     mSlicers[i]->GetRenderWindow()->GetInteractor()->SetInteractorStyle(style);
 
     mSlicers[i]->GetRenderWindow()->GetInteractor()->
@@ -806,8 +807,6 @@ void vvSlicerManager::UpdateSliceRange(int slicer)
 
 void vvSlicerManager::SetPreset(int preset)
 {
-    double range[2];
-    mImage->GetScalarRange(range);
     //vtkLookupTable* LUT = static_cast<vtkLookupTable*>(mSlicers[0]->GetWindowLevel()->GetLookupTable());
     double window = mSlicers[0]->GetColorWindow();
     double level = mSlicers[0]->GetColorLevel();
@@ -828,6 +827,8 @@ void vvSlicerManager::SetPreset(int preset)
         }
         else
         {
+            double range[2];
+            mImage->GetScalarRange(range);
             window = range[1] - range[0];
             level = (range[1] + range[0])* 0.5;
         }
@@ -856,7 +857,7 @@ void vvSlicerManager::SetPreset(int preset)
         break;
     case 7:
         window=1.;
-        level=1;
+        level=0.;
         break;
     }
     mPreset = preset;
@@ -868,6 +869,16 @@ void vvSlicerManager::SetPreset(int preset)
     //    SetColorMap(-1);
     //}
 }
+
+void vvSlicerManager::SetLocalColorWindowing(const int slicer)
+{
+    double min, max;
+       this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max);
+    this->SetColorWindow(max-min);
+    this->SetColorLevel(0.5*(min+max));
+       this->Render();
+}
+
 void vvSlicerManager::SetColorMap()
 {
     SetColorMap(mColorMap);
@@ -886,8 +897,6 @@ void vvSlicerManager::SetColorMap(int colormap)
     switch (colormap)
     {
     case -1:
-        if (LUT)
-            LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
         break;
     case 0:
         LUT = NULL;
@@ -895,7 +904,6 @@ void vvSlicerManager::SetColorMap(int colormap)
     case 1:
         if (LUT == NULL)
             LUT = vtkLookupTable::New();
-        LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
         LUT->SetValueRange(0,1);
         LUT->SetSaturationRange(1,1);
         LUT->SetHueRange(0,0.18);
@@ -903,7 +911,6 @@ void vvSlicerManager::SetColorMap(int colormap)
     case 2:
         if (LUT == NULL)
             LUT = vtkLookupTable::New();
-        LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
         LUT->SetValueRange(0,1);
         LUT->SetSaturationRange(1,1);
         LUT->SetHueRange(0.4,0.80);
@@ -911,7 +918,6 @@ void vvSlicerManager::SetColorMap(int colormap)
     case 3:
         if (LUT == NULL)
             LUT = vtkLookupTable::New();
-        LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
         LUT->SetValueRange(0,1);
         LUT->SetSaturationRange(1,1);
         LUT->SetHueRange(0,1);
@@ -926,7 +932,10 @@ void vvSlicerManager::SetColorMap(int colormap)
         break;
     }
     if (LUT)
+    {
+        LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
         LUT->Build();
+    }
     vtkLookupTable* fusLUT = NULL;
     if (mSlicers[0]->GetFusion())
     {