]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManager.cxx
Added new functionality: local windowing around mouse pointer. Now with "z".
[clitk.git] / vv / vvSlicerManager.cxx
index 4aa48cf562d8d92e36ec2aacbce888062bb0a6dd..9e408e24f56438671f4badf2400a7ad0c21a33fe 100644 (file)
@@ -338,8 +338,10 @@ void vvSlicerManager::SetSlicerWindow(int i, vtkRenderWindow* RW)
 
 void vvSlicerManager::SetInteractorStyleNavigator(int i, vtkInteractorStyle* style)
 {
-    vvSlicerManagerCallback *smc = vvSlicerManagerCallback::New();
+    vvSlicerManagerCommand *smc = vvSlicerManagerCommand::New();
+    std::cerr << smc << ":" << i << "  " << this << endl;
     smc->SM = this;
+    smc->SetSlicerNumber(i);
     mSlicers[i]->GetRenderWindow()->GetInteractor()->SetInteractorStyle(style);
 
     mSlicers[i]->GetRenderWindow()->GetInteractor()->
@@ -806,8 +808,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 +828,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;
         }
@@ -868,6 +870,15 @@ 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));
+}
+
 void vvSlicerManager::SetColorMap()
 {
     SetColorMap(mColorMap);