X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManager.cxx;h=2622c6b9b7459c70c80da89383568216682b0388;hb=61d57d331b0459560f6714c0c6bb8298868a662e;hp=7618bf2ceb7825ae70be3b560d2af2e76acc586b;hpb=c1370c27d5fc65b499d6be1c5dc49a96da0bb8cc;p=clitk.git diff --git a/vv/vvSlicerManager.cxx b/vv/vvSlicerManager.cxx index 7618bf2..2622c6b 100644 --- a/vv/vvSlicerManager.cxx +++ b/vv/vvSlicerManager.cxx @@ -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(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()) {