]> Creatis software - clitk.git/blobdiff - vv/vvStructureSetActor.cxx
constraint a binary image to be at a relative position of an object
[clitk.git] / vv / vvStructureSetActor.cxx
index ce0060d4e72bf10fe9d462ce98d534774eecfe32..09fc245758ae8d26de3e84140c424f5df31feb73 100644 (file)
@@ -34,6 +34,22 @@ vvStructureSetActor::~vvStructureSetActor()
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+int vvStructureSetActor::GetNumberOfROIs() 
+{ 
+  return mROIActors.size(); 
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+std::vector<vvROIActor*> & vvStructureSetActor::GetROIList() 
+{ 
+  return mROIActors; 
+}
+//------------------------------------------------------------------------------
+
+
 //------------------------------------------------------------------------------
 void vvStructureSetActor::SetStructureSet(clitk::DicomRT_StructureSet * s)
 {
@@ -72,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();
 }
 //------------------------------------------------------------------------------