X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManager.cxx;h=2622c6b9b7459c70c80da89383568216682b0388;hb=ea61e98aed4316bda8b156aea5980b08eaf4302b;hp=1151a08c88e4aac7bcc46847d78372b7251ea891;hpb=934a64f5b51382ad6bbc78d9c8734691e599cf09;p=clitk.git diff --git a/vv/vvSlicerManager.cxx b/vv/vvSlicerManager.cxx index 1151a08..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()-> @@ -401,7 +402,7 @@ void vvSlicerManager::SetPreviousTSlice(int originating_slicer) void vvSlicerManager::ToggleInterpolation() { - bool interpolate=not (mSlicers[0]->GetImageActor()->GetInterpolate()); + bool interpolate=!(mSlicers[0]->GetImageActor()->GetInterpolate()); for ( unsigned int i = 0; i < mSlicers.size(); i++) { mSlicers[i]->GetImageActor()->SetInterpolate(interpolate); @@ -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; @@ -869,6 +870,20 @@ void vvSlicerManager::SetPreset(int preset) //} } +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); +} + void vvSlicerManager::SetColorMap(int colormap) { double range[2]; @@ -882,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; @@ -891,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); @@ -899,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); @@ -907,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); @@ -922,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()) { @@ -966,9 +979,9 @@ void vvSlicerManager::SetColorMap(int colormap) } else if (mSlicers[i]->GetOverlay()) { - dynamic_cast(mSlicers[i]->GetWindowLevel()) - ->SetWindowLevelMode(false); - mSlicers[i]->GetWindowLevel()->SetLookupTable(NULL); + //dynamic_cast(mSlicers[i]->GetWindowLevel()) + //->SetWindowLevelMode(false); + mSlicers[i]->GetWindowLevel()->SetLookupTable(LUT); } else {