X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManager.cxx;h=8bcc290ae2b8339c04610de6a3e1a38a5a6acce5;hb=0a29eafc4e4b1ecbbb4580e7f8341751cfc6591c;hp=d9ed42e2deb448f541eaf97993db3f0eb6b1c483;hpb=0436a29e0647a1334e9fcaef8a807708b56fc402;p=clitk.git diff --git a/vv/vvSlicerManager.cxx b/vv/vvSlicerManager.cxx index d9ed42e..8bcc290 100644 --- a/vv/vvSlicerManager.cxx +++ b/vv/vvSlicerManager.cxx @@ -62,7 +62,8 @@ vvSlicerManager::vvSlicerManager(int numberOfSlicers) mFusionColorMap = 3; mFusionWindow = 1000; mFusionLevel = 1000; - + mFusionShowLegend = true; + mLandmarks = NULL; mLinkedId.resize(0); @@ -417,6 +418,15 @@ void vvSlicerManager::LeftButtonReleaseEvent(int slicer) } //---------------------------------------------------------------------------- + +//---------------------------------------------------------------------------- +void vvSlicerManager::EmitMousePositionUpdated(int slicer) +{ + emit MousePositionUpdatedSignal(slicer); +} +//---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- void vvSlicerManager::SetSliceOrientation(int slicer, int orientation) { @@ -845,7 +855,8 @@ void vvSlicerManager::Reload() //---------------------------------------------------------------------------- void vvSlicerManager::ReloadFusion() { - mFusionReader->Update(); + mFusionReader->Update(mImage->GetNumberOfDimensions(),mFusionComponent.c_str(),mType); + for ( unsigned int i = 0; i < mSlicers.size(); i++) { mSlicers[i]->SetFusion(mFusionReader->GetOutput()); mSlicers[i]->Render(); @@ -857,7 +868,7 @@ void vvSlicerManager::ReloadFusion() //---------------------------------------------------------------------------- void vvSlicerManager::ReloadOverlay() { - mOverlayReader->Update(); + mOverlayReader->Update(mImage->GetNumberOfDimensions(),mOverlayComponent.c_str(),mType); for ( unsigned int i = 0; i < mSlicers.size(); i++) { mSlicers[i]->SetOverlay(mOverlayReader->GetOutput()); mSlicers[i]->Render(); @@ -1116,13 +1127,17 @@ void vvSlicerManager::SetLocalColorWindowing(const int slicer, const bool bCtrlK double min, max; int t = this->mSlicers[slicer]->GetTSlice(); if(bCtrlKey && this->mSlicers[slicer]->GetFusion()) { - this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max, this->mSlicers[slicer]->GetFusion()->GetVTKImages()[t]); + this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max, + this->mSlicers[slicer]->GetFusion()->GetVTKImages()[t], + this->mSlicers[slicer]->GetFusion()->GetTransform()); this->SetFusionWindow(max-min); this->SetFusionLevel(0.5*(min+max)); this->SetColorMap(mColorMap); } else if(bCtrlKey && this->mSlicers[slicer]->GetOverlay()) { - this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max, this->mSlicers[slicer]->GetOverlay()->GetVTKImages()[t]); + this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max, + this->mSlicers[slicer]->GetOverlay()->GetVTKImages()[t], + this->mSlicers[slicer]->GetOverlay()->GetTransform()); if(this->mSlicers[slicer]->GetLinkOverlayWindowLevel()){ this->SetColorWindow(max-min); this->SetColorLevel(0.5*(min+max)); @@ -1132,7 +1147,9 @@ void vvSlicerManager::SetLocalColorWindowing(const int slicer, const bool bCtrlK } } else { - this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max, this->mSlicers[slicer]->GetInput()); + this->mSlicers[slicer]->GetExtremasAroundMousePointer(min, max, + this->mSlicers[slicer]->GetImage()->GetVTKImages()[t], + this->mSlicers[slicer]->GetImage()->GetTransform()); this->SetColorWindow(max-min); this->SetColorLevel(0.5*(min+max)); this->SetPreset(6); @@ -1236,15 +1253,17 @@ void vvSlicerManager::SetColorMap(int colormap) double v[4]; // set color table transparency - double range_end = frange[0] + (double)mFusionThresOpacity*(frange[1] - frange[0])/100; - double curr_value = frange[0]; + //double alpha_range=(double)mFusionThresOpacity/10; + double range_end = fusRange[0] + (double)mFusionThresOpacity*(fusRange[1] - fusRange[0])/100; + double curr_value = fusRange[0]; int nvalues = fusLUT->GetNumberOfTableValues(); - //for (double i = frange[0]; i <= alpha_range_end; i++) { for (double i = 0; curr_value < range_end; i++) { fusLUT->GetTableValue(i, v); v[3] = 0; + //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 += (frange[1] - frange[0])/nvalues; + curr_value += (fusRange[1] - fusRange[0])/nvalues; } } for ( unsigned int i = 0; i < mSlicers.size(); i++) { @@ -1277,6 +1296,7 @@ void vvSlicerManager::SetColorMap(int colormap) } if (mSlicers[i]->GetFusion()) { + mSlicers[i]->ShowFusionLegend(mFusionShowLegend); mSlicers[i]->GetFusionMapper()->SetLookupTable(fusLUT); mSlicers[i]->GetFusionActor()->SetOpacity(double(mFusionOpacity)/100); }