X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvROIActor.cxx;h=77dc56a7a1a0afc4fb5968d6bfa1575827eeafcf;hb=000ac5b867a708575268c7c823db4fcbe727c2d6;hp=f4db30b67d6111a1c2286734d5400c4c4a120cdf;hpb=e94da8e1a76e3c9bf5301ce46e72074ba01cd1c1;p=clitk.git diff --git a/vv/vvROIActor.cxx b/vv/vvROIActor.cxx index f4db30b..77dc56a 100644 --- a/vv/vvROIActor.cxx +++ b/vv/vvROIActor.cxx @@ -23,6 +23,7 @@ #include #include #include +//#include #include #include #include @@ -33,6 +34,8 @@ vvROIActor::vvROIActor() { mImageContour.clear(); mOverlayActors.clear(); + mIsVisible = true; + mOpacity = 0.7; } //------------------------------------------------------------------------------ @@ -57,12 +60,34 @@ void vvROIActor::SetSlicerManager(vvSlicerManager * s) { //------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +void vvROIActor::SetVisible(bool b) { + mIsVisible = b; + if (!b) { // remove actor + for(unsigned int i= 0; ihideActors(); + } + else { + for(unsigned int i= 0; ishowActors(); + } + Update(); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +bool vvROIActor::IsVisible() { + return mIsVisible; +} +//------------------------------------------------------------------------------ + + //------------------------------------------------------------------------------ void vvROIActor::Initialize() { if (mROI->GetImage()) { mImageContour.clear(); mOverlayActors.clear(); - DD(mSlicerManager->NumberOfSlicers()); for(int i=0;iNumberOfSlicers(); i++) { mImageContour.push_back(new vvImageContour); mImageContour[i]->setSlicer(mSlicerManager->GetSlicer(i)); @@ -74,10 +99,11 @@ void vvROIActor::Initialize() { mImageContour[i]->setPreserveMemoryModeEnabled(false); mOverlayActors.push_back(new vvBinaryImageOverlayActor); - mOverlayActors[i]->setImage(mROI->GetImage()); + mOverlayActors[i]->setImage(mROI->GetImage(), mROI->GetBackgroundValueLabelImage()); 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(); } @@ -92,7 +118,6 @@ void vvROIActor::Initialize() { //------------------------------------------------------------------------------ void vvROIActor::Update() { - DD("vvROIActor::Update"); for(int i=0; iNumberOfSlicers(); i++) { UpdateSlice(i, mSlicerManager->GetSlicer(i)->GetSlice()); } @@ -102,10 +127,9 @@ void vvROIActor::Update() { //------------------------------------------------------------------------------ void vvROIActor::UpdateSlice(int slicer, int slices) { - // DD("UpdateSlice"); - // DD(slicer); - // DD(slices); - if (!mROI->GetImage()) return; + if (!mROI->GetImage()) return; + + if (!mIsVisible) return; if (!mSlicerManager) { std::cerr << "Error. No mSlicerManager ?" << std::endl; @@ -115,10 +139,32 @@ void vvROIActor::UpdateSlice(int slicer, int slices) { // CONTOUR HERE // mImageContour[slicer]->update(1.0); - + // Refresh overlays mOverlayActors[slicer]->update(slicer, slices); - // TOO SLOW !!!!! - // mSlicerManager->GetSlicer(slicer)->Render(); + // Do not used the following line : TOO SLOW. + // mSlicerManager->GetSlicer(slicer)->GetRenderWindow()->Render(); } //------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvROIActor::SetOpacity(double d) { + if (d == mOpacity) return; + mOpacity = d; + DD(mOpacity); + for(unsigned int i=0; iSetOpacity(d); + } + DD("end vvROIActor::SetOpacity"); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +double vvROIActor::GetOpacity() { + return mOpacity; +} +//------------------------------------------------------------------------------ +