X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvStructureSetActor.cxx;h=b6f08f86af87f4b5c05b057894faf37dd2eaa620;hb=58ddf0c584671ec5b42b1d90515218e297b98cc8;hp=ce0060d4e72bf10fe9d462ce98d534774eecfe32;hpb=1e034c70105f0926939acaaa27ddb46e904ae8bf;p=clitk.git diff --git a/vv/vvStructureSetActor.cxx b/vv/vvStructureSetActor.cxx index ce0060d..b6f08f8 100644 --- a/vv/vvStructureSetActor.cxx +++ b/vv/vvStructureSetActor.cxx @@ -34,6 +34,22 @@ vvStructureSetActor::~vvStructureSetActor() //------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +int vvStructureSetActor::GetNumberOfROIs() +{ + return mROIActors.size(); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +std::vector & vvStructureSetActor::GetROIList() +{ + return mROIActors; +} +//------------------------------------------------------------------------------ + + //------------------------------------------------------------------------------ void vvStructureSetActor::SetStructureSet(clitk::DicomRT_StructureSet * s) { @@ -63,7 +79,7 @@ vvROIActor * vvStructureSetActor::GetROIActor(int n) //------------------------------------------------------------------------------ -void vvStructureSetActor::CreateNewROIActor(int n) +void vvStructureSetActor::CreateNewROIActor(int n, bool modeBG) { // Check clitk::DicomRT_ROI * roi = mStructureSet->GetROI(n); @@ -72,15 +88,22 @@ void vvStructureSetActor::CreateNewROIActor(int n) exit(0); } + // If already exist : delete it + int old = -1; + if (mMapROIIndex.find(n) != mMapROIIndex.end()) { + delete mROIActors[mMapROIIndex[n]]; + old = mMapROIIndex[n]; + } + // Add ROI Actors vvROIActor * actor = new vvROIActor; - mROIActors.push_back(actor); + if (old == -1) mROIActors.push_back(actor); + else mROIActors[old] = actor; + actor->SetBGMode(modeBG); actor->SetROI(roi); actor->SetSlicerManager(mSlicerManager); actor->Initialize(); mMapROIIndex[n] = mROIActors.size()-1; - - // actor->Update(); } //------------------------------------------------------------------------------