X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvStructureSetActor.cxx;h=09fc245758ae8d26de3e84140c424f5df31feb73;hb=668abd5376f649fba792239768eec55f3783613d;hp=7ea1ef94a4b8cdeffad8bc6994560a31d4b78943;hpb=5a80d16b4dc2ad2d825c443f39ae6276786e72e4;p=clitk.git diff --git a/vv/vvStructureSetActor.cxx b/vv/vvStructureSetActor.cxx index 7ea1ef9..09fc245 100644 --- a/vv/vvStructureSetActor.cxx +++ b/vv/vvStructureSetActor.cxx @@ -1,7 +1,7 @@ /*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Authors belong to: + Authors belong to: - University of LYON http://www.universite-lyon.fr/ - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr @@ -20,37 +20,58 @@ #include "vvROIActor.h" //------------------------------------------------------------------------------ -vvStructureSetActor::vvStructureSetActor() { +vvStructureSetActor::vvStructureSetActor() +{ } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -vvStructureSetActor::~vvStructureSetActor() { +vvStructureSetActor::~vvStructureSetActor() +{ } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvStructureSetActor::SetStructureSet(clitk::DicomRT_StructureSet * s) { +int vvStructureSetActor::GetNumberOfROIs() +{ + return mROIActors.size(); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +std::vector & vvStructureSetActor::GetROIList() +{ + return mROIActors; +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvStructureSetActor::SetStructureSet(clitk::DicomRT_StructureSet * s) +{ mStructureSet = s; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvStructureSetActor::SetSlicerManager(vvSlicerManager * s) { +void vvStructureSetActor::SetSlicerManager(vvSlicerManager * s) +{ mSlicerManager = s; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -vvROIActor * vvStructureSetActor::GetROIActor(int n) { +vvROIActor * vvStructureSetActor::GetROIActor(int n) +{ if (mMapROIIndex.find(n) == mMapROIIndex.end()) { std::cerr << "No ROI number " << n << std::endl; - return NULL; + return NULL; } return mROIActors[mMapROIIndex[n]]; } @@ -58,7 +79,8 @@ vvROIActor * vvStructureSetActor::GetROIActor(int n) { //------------------------------------------------------------------------------ -void vvStructureSetActor::CreateNewROIActor(int n) { +void vvStructureSetActor::CreateNewROIActor(int n) +{ // Check clitk::DicomRT_ROI * roi = mStructureSet->GetROI(n); if (roi == NULL) { @@ -66,15 +88,21 @@ 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->SetROI(roi); actor->SetSlicerManager(mSlicerManager); actor->Initialize(); mMapROIIndex[n] = mROIActors.size()-1; - - // actor->Update(); } //------------------------------------------------------------------------------