X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvStructureSetActor.cxx;h=b7860d350ced70c255df6c1cafe6de881ed1473c;hb=5a7da4aedae5c204bc55c187717193e5950f9a44;hp=9a9ac8c674f4dd6e61aa84832c1dd260d6f7b30f;hpb=c93a32f96e61514b8b945d515ffcf11c2a12ae66;p=clitk.git diff --git a/vv/vvStructureSetActor.cxx b/vv/vvStructureSetActor.cxx index 9a9ac8c..b7860d3 100644 --- a/vv/vvStructureSetActor.cxx +++ b/vv/vvStructureSetActor.cxx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ #include "vvStructureSetActor.h" #include "vvROIActor.h" @@ -44,7 +44,7 @@ int vvStructureSetActor::GetNumberOfROIs() //------------------------------------------------------------------------------ -std::vector & vvStructureSetActor::GetROIList() +std::vector< QSharedPointer > & vvStructureSetActor::GetROIList() { return mROIActors; } @@ -74,7 +74,7 @@ vvROIActor * vvStructureSetActor::GetROIActor(int n) std::cerr << "No ROI number " << n << std::endl; return NULL; } - return mROIActors[mMapROIIndex[n]]; + return mROIActors[mMapROIIndex[n]].data(); } //------------------------------------------------------------------------------ @@ -83,7 +83,7 @@ vvROIActor * vvStructureSetActor::GetROIActor(int n) void vvStructureSetActor::CreateNewROIActor(int n, bool modeBG) { // Check - clitk::DicomRT_ROI * roi = mStructureSet->GetROI(n); + clitk::DicomRT_ROI * roi = mStructureSet->GetROIFromROINumber(n); if (roi == NULL) { std::cerr << "Error. No ROI number " << n << std::endl; exit(0); @@ -91,19 +91,19 @@ void vvStructureSetActor::CreateNewROIActor(int n, bool modeBG) // If already exist : delete it int old = -1; - if (mMapROIIndex.find(n) != mMapROIIndex.end()) { - delete mROIActors[mMapROIIndex[n]]; + if (mMapROIIndex.find(n) != mMapROIIndex.end()) old = mMapROIIndex[n]; - } // Add ROI Actors - vvROIActor * actor = new vvROIActor; - if (old == -1) mROIActors.push_back(actor); - else mROIActors[old] = actor; + QSharedPointer actor = QSharedPointer(new vvROIActor); + if (old == -1) + mROIActors.push_back(actor); + else + mROIActors[old] = actor; actor->SetBGMode(modeBG); actor->SetROI(roi); actor->SetSlicerManager(mSlicerManager); - actor->Initialize(); + actor->Initialize(n+1); // depth is n+1 to start at 1 mMapROIIndex[n] = mROIActors.size()-1; } //------------------------------------------------------------------------------