X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManager.cxx;h=2373abab970f69a17df88871a0051470ebe371a9;hb=99a4e52ce46e7018a46e94ad4925858165463c1d;hp=853d4c0b711bdb9f21095e621116c5f7568af673;hpb=df1fe7da56a47ca087ca20ff5bb3c5b74abaad01;p=clitk.git diff --git a/vv/vvSlicerManager.cxx b/vv/vvSlicerManager.cxx index 853d4c0..2373aba 100644 --- a/vv/vvSlicerManager.cxx +++ b/vv/vvSlicerManager.cxx @@ -57,7 +57,7 @@ vvSlicerManager::vvSlicerManager(int numberOfSlicers) mPreset = 0; mOverlayColor = 130; - mFusionOpacity = 70; + mFusionOpacity = 30; mFusionThresOpacity = 1; mFusionColorMap = 3; mFusionWindow = 1000; @@ -763,7 +763,7 @@ double vvSlicerManager::GetColorLevel() //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -double vvSlicerManager::GetOverlayColorWindow() +double vvSlicerManager::GetOverlayColorWindow() const { if (mSlicers.size()) return mSlicers[0]->GetOverlayColorWindow(); @@ -772,7 +772,7 @@ double vvSlicerManager::GetOverlayColorWindow() //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -double vvSlicerManager::GetOverlayColorLevel() +double vvSlicerManager::GetOverlayColorLevel() const { if (mSlicers.size()) return mSlicers[0]->GetOverlayColorLevel(); @@ -781,7 +781,7 @@ double vvSlicerManager::GetOverlayColorLevel() //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -bool vvSlicerManager::GetLinkOverlayWindowLevel() +bool vvSlicerManager::GetLinkOverlayWindowLevel() const { if (mSlicers.size()) return mSlicers[0]->GetLinkOverlayWindowLevel(); @@ -1184,14 +1184,15 @@ void vvSlicerManager::SetColorMap(int colormap) case 4: if (LUT == NULL) LUT = vtkLookupTable::New(); - LUT->SetValueRange(0,1); + LUT->SetValueRange(1,1); LUT->SetSaturationRange(1,1); LUT->SetHueRange(0,1); + LUT->SetAlphaRange(1, 1); break; case 5: if (LUT == NULL) LUT = vtkLookupTable::New(); - LUT->SetValueRange(0.,1); + LUT->SetValueRange(1,1); LUT->SetSaturationRange(1,1); LUT->SetHueRange(1,0.1); //LUT->SetRampToLinear(); @@ -1232,15 +1233,20 @@ 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 alpha_range=(double)mFusionThresOpacity/10; + double range_end = frange[0] + (double)mFusionThresOpacity*(frange[1] - frange[0])/100; + double curr_value = fusRange[0]; + int nvalues = fusLUT->GetNumberOfTableValues(); + for (double i = 0; curr_value < range_end; i++) { + fusLUT->GetTableValue(i, v); v[3] = 0; - fusLUT->SetTableValue(index, v); + //if (curr_value >= -alpha_range && curr_value <= alpha_range) v[3] = pow(fabs(curr_value/alpha_range),2); + //else v[3] = 1; + fusLUT->SetTableValue(i, v); + curr_value += (fusRange[1] - fusRange[0])/nvalues; } } for ( unsigned int i = 0; i < mSlicers.size(); i++) {