]> Creatis software - clitk.git/blobdiff - vv/vvStructureSetActor.cxx
cosmetic
[clitk.git] / vv / vvStructureSetActor.cxx
index 16df5122c01f4febe138d33f92e6f213c7cc8520..09fc245758ae8d26de3e84140c424f5df31feb73 100644 (file)
@@ -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
 #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<vvROIActor*> & 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) {
-  DD(n);
+vvROIActor * vvStructureSetActor::GetROIActor(int n)
+{
   if (mMapROIIndex.find(n) == mMapROIIndex.end()) {
     std::cerr << "No ROI number " << n << std::endl;
-    return NULL;    
+    return NULL;
   }
-  DD(mMapROIIndex[n]);
   return mROIActors[mMapROIIndex[n]];
 }
 //------------------------------------------------------------------------------
 
 
 //------------------------------------------------------------------------------
-void vvStructureSetActor::CreateNewROIActor(int n) {
-  DD("AddROIActor");
-  DD(n);
-
+void vvStructureSetActor::CreateNewROIActor(int n)
+{
   // Check
-  const clitk::DicomRT_ROI * roi = mStructureSet->GetROI(n);
+  clitk::DicomRT_ROI * roi = mStructureSet->GetROI(n);
   if (roi == NULL) {
     std::cerr << "Error. No ROI number " << n << std::endl;
     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();
 }
 //------------------------------------------------------------------------------