]> Creatis software - clitk.git/blobdiff - vv/vvLandmarks.cxx
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / vv / vvLandmarks.cxx
index d9dfa65ed47f13b55eac96de6b1699c463817b33..682398f49deca17954a5dc95ed25a8364a17c699 100644 (file)
@@ -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 "vvLandmarks.h"
 
 #include <ios>
@@ -73,13 +73,17 @@ void vvLandmarks::AddLandmark(float x,float y,float z,float t,double value)
   point.pixel_value=value;
   mLandmarks.push_back(point);
   mPoints[int(t)]->InsertNextPoint(x,y,z);
+  
+  std::stringstream numberVal;
+  numberVal << (mLandmarks.size()-1);
+  /*
+  vvLandmarksGlyph *number = vvLandmarksGlyph::New();
+  number->SetText(numberVal.str().c_str());
+  number->BackingOff();
+  DD(numberVal.str().c_str());
+  mText.push_back(number);
+  */
 
-  /*std::stringstream numberVal;
-    numberVal << (mLandmarks.size()-1);
-    vvLandmarksGlyph *number = vvLandmarksGlyph::New();
-    number->SetText(numberVal.str().c_str());
-    number->BackingOff();
-    mText.push_back(number);*/
   mIds->InsertNextTuple1(0.55);
   //mIds->InsertTuple1(mLandmarks.size(),mLandmarks.size());
   SetTime(int(t));
@@ -93,13 +97,32 @@ void vvLandmarks::RemoveLastLandmark()
   mPoints[mLandmarks.back().coordinates[3]]->SetNumberOfPoints(
                                                                mPoints[mLandmarks.back().coordinates[3]]->GetNumberOfPoints()-1);
   mPolyData->Modified();
-  //mText.pop_back();
+  //  mText.pop_back();
   mLandmarks.pop_back();
   mIds->RemoveLastTuple();
 }
 //--------------------------------------------------------------------
 
 
+//--------------------------------------------------------------------
+void vvLandmarks::RemoveLandmark(int index)
+{
+  // erase a vtkPoint by shifiting the array .
+  // not a problem here because there are no 
+  // pologyons linking the points
+  int npoints = mPoints[mLandmarks[index].coordinates[3]]->GetNumberOfPoints();
+  int t = mLandmarks[index].coordinates[3];
+  for (int i = index; i < npoints - 1; i++)
+    mPoints[t]->InsertPoint(i, mPoints[t]->GetPoint(i+1));
+  mPoints[t]->SetNumberOfPoints(npoints-1);
+  mPolyData->Modified();
+
+  mLandmarks.erase(mLandmarks.begin() + index);
+  mIds->RemoveLastTuple();
+}
+//--------------------------------------------------------------------
+
+
 //--------------------------------------------------------------------
 void vvLandmarks::ChangeComments(int index, std::string comments)
 {