/*=========================================================================
Program: vv
-Module: $RCSfile: vvSlicerManager.cxx,v $
Language: C++
-Date: $Date: 2010/01/06 13:31:57 $
-Version: $Revision: 1.1 $
Author : Pierre Seroul (pierre.seroul@gmail.com)
Copyright (C) 2008
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()->
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);
}
}
+void vvSlicerManager::ReloadFusion()
+{
+ mFusionReader->Update();
+ for ( unsigned int i = 0; i < mSlicers.size(); i++)
+ {
+ mSlicers[i]->SetFusion(mFusionReader->GetOutput());
+ mSlicers[i]->Render();
+ }
+}
+
+void vvSlicerManager::ReloadOverlay()
+{
+ mOverlayReader->Update();
+ for ( unsigned int i = 0; i < mSlicers.size(); i++)
+ {
+ mSlicers[i]->SetOverlay(mOverlayReader->GetOutput());
+ mSlicers[i]->Render();
+ }
+}
+
void vvSlicerManager::ReloadVF()
{
mVectorReader->Update(VECTORFIELD); //deletes the old images through the VF::Init() function
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();
}
else
{
+ double range[2];
+ mImage->GetScalarRange(range);
window = range[1] - range[0];
level = (range[1] + range[0])* 0.5;
}
break;
case 7:
window=1.;
- level=1;
+ level=0.;
break;
}
mPreset = 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];
switch (colormap)
{
case -1:
- if (LUT)
- LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
break;
case 0:
LUT = NULL;
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);
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);
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);
break;
}
if (LUT)
+ {
+ LUT->SetTableRange(level-fabs(window)/4,level+fabs(window)/4);
LUT->Build();
+ }
vtkLookupTable* fusLUT = NULL;
if (mSlicers[0]->GetFusion())
{
}
else if (mSlicers[i]->GetOverlay())
{
- dynamic_cast<vvImageMapToWLColors*>(mSlicers[i]->GetWindowLevel())
- ->SetWindowLevelMode(false);
- mSlicers[i]->GetWindowLevel()->SetLookupTable(NULL);
+ //dynamic_cast<vvImageMapToWLColors*>(mSlicers[i]->GetWindowLevel())
+ //->SetWindowLevelMode(false);
+ mSlicers[i]->GetWindowLevel()->SetLookupTable(LUT);
}
else
{