mAlpha = 0.6;
mImage = 0;
mSlicer = 0;
+ mColorLUT = vtkLookupTable::New();
}
//------------------------------------------------------------------------------
DD(numImage);
// how many intensity ?
-
-
vtkImageMapToRGBA * mOverlayMapper = vtkImageMapToRGBA::New();
mOverlayMapper->SetInput(mImage->GetVTKImages()[0]); // DS TODO : to change if it is 4D !!!
- vtkLookupTable * lut = vtkLookupTable::New();
- DD(lut->IsOpaque ());
- lut->SetRange(0,1);
- lut->SetNumberOfTableValues(2);
- lut->SetTableValue(mBackgroundValue, 0, 0, 0, 0.0); // BG
- lut->SetTableValue(1, mColor[0], mColor[1], mColor[2], mAlpha); // FG
+ DD(mColorLUT->IsOpaque ());
+ mColorLUT->SetRange(0,1);
+ mColorLUT->SetNumberOfTableValues(2);
+ mColorLUT->SetTableValue(mBackgroundValue, 0, 0, 0, 0.0); // BG
+ mColorLUT->SetTableValue(1, mColor[0], mColor[1], mColor[2], mAlpha); // FG
DD(mColor[0]);
- mOverlayMapper->SetLookupTable(lut);
+ mOverlayMapper->SetLookupTable(mColorLUT);
vtkImageActor * mOverlayActor = vtkImageActor::New();
mOverlayActor->SetInput(mOverlayMapper->GetOutput());
//------------------------------------------------------------------------------
void vvBinaryImageOverlayActor::SetOpacity(double d) {
mAlpha = d;
- // TODO !!lut->SetTableValue(1, mColor[0], mColor[1], mColor[2], mAlpha); // FG
+ mColorLUT->SetTableValue(1, mColor[0], mColor[1], mColor[2], mAlpha); // FG
+ for (unsigned int numImage = 0; numImage < mSlicer->GetImage()->GetVTKImages().size(); numImage++) {
+ DD(numImage);
+
+ // how many intensity ?
+ vtkImageMapToRGBA * mOverlayMapper = mMapperList[numImage];
+ mOverlayMapper->SetLookupTable(mColorLUT);
+
+ vtkImageActor * mOverlayActor = mImageActorList[numImage];
+ mOverlayActor->SetInput(mOverlayMapper->GetOutput());
+ //mOverlayActor->SetPickable(0);
+ // mOverlayActor->SetVisibility(true);
+ //mOverlayActor->SetOpacity(1.0);
+ }
+ DD("end SetOpacity");
}
//------------------------------------------------------------------------------
std::vector<double> mColor;
double mAlpha;
double mBackgroundValue;
-
+ vtkLookupTable * mColorLUT;
+
std::vector<vtkImageMapToRGBA *> mMapperList;
std::vector<vtkImageActor*> mImageActorList;
mImageContour.clear();
mOverlayActors.clear();
mIsVisible = true;
+ mOpacity = 0.7;
}
//------------------------------------------------------------------------------
mOverlayActors[i]->setColor(mROI->GetDisplayColor()[0],
mROI->GetDisplayColor()[1],
mROI->GetDisplayColor()[2]);
+ mOverlayActors[i]->SetOpacity(mOpacity);
mOverlayActors[i]->setSlicer(mSlicerManager->GetSlicer(i));
mOverlayActors[i]->initialize();
}
//------------------------------------------------------------------------------
void vvROIActor::SetOpacity(double d) {
+ if (d == mOpacity) return;
mOpacity = d;
- for(unsigned int i=0; mOverlayActors.size(); i++) {
+ DD(mOpacity);
+ for(unsigned int i=0; i<mOverlayActors.size(); i++) {
+ DD(i);
mOverlayActors[i]->SetOpacity(d);
}
+ DD("end vvROIActor::SetOpacity");
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+double vvROIActor::GetOpacity() {
+ return mOpacity;
}
//------------------------------------------------------------------------------
void SetVisible(bool b);
bool IsVisible();
void SetOpacity(double x);
+ double GetOpacity();
public slots:
void UpdateSlice(int slicer, int slices);
connect(mTree, SIGNAL(itemSelectionChanged()), this, SLOT(selectedItemChangedInTree()));
connect(mCheckBoxShow, SIGNAL(toggled(bool)), this, SLOT(visibleROIToggled(bool)));
-
- // TODO connect(mOpacitySlider, SIGNAL(valueChanged(int), this, SLOT(opacityChanged(int))));
+ connect(mOpacitySlider, SIGNAL(valueChanged(int)), this, SLOT(opacityChanged(int)));
}
//------------------------------------------------------------------------------
DD(actor);
DD(actor->IsVisible());
mCheckBoxShow->setChecked(actor->IsVisible());
-
+ mOpacitySlider->setValue((int)lrint(actor->GetOpacity()*100));
//actor->SetSelected(true); // remove old selection
DD("ici");
//------------------------------------------------------------------------------
void vvToolStructureSetManager::opacityChanged(int v) {
+ // if (!mCurrentROIActor) return;
DD(v);
mCurrentROIActor->SetOpacity((double)v/100.0);
+ DD("ici");
mCurrentROIActor->Update();
+ // Render !
+ // for(int i=0; i<mCurrentSlicerManager->NumberOfSlicers(); i++) {
+ mCurrentSlicerManager->Render();
+ //}
}
//------------------------------------------------------------------------------