]> Creatis software - clitk.git/blobdiff - vv/vvLandmarks.cxx
remove tools (now in tests_dav)
[clitk.git] / vv / vvLandmarks.cxx
index f092729606f6b9a88d22d7caac6232b7c6f45818..d44c3be86f13e904e53e09429d2d00eb7e9c4372 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>
@@ -29,6 +29,7 @@
 #include "vtkPointData.h"
 #include "clitkCommon.h"
 
+//--------------------------------------------------------------------
 vvLandmarks::vvLandmarks(int size)
 {
   mLandmarks.resize(0);
@@ -41,7 +42,10 @@ vvLandmarks::vvLandmarks(int size)
   mPolyData = vtkPolyData::New();
   mIds = vtkFloatArray::New();
 }
+//--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
 vvLandmarks::~vvLandmarks()
 {
   for (unsigned int i = 0; i < mPoints.size(); i++) {
@@ -55,7 +59,10 @@ vvLandmarks::~vvLandmarks()
   if (mPolyData)
     mPolyData->Delete();
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 void vvLandmarks::AddLandmark(float x,float y,float z,float t,double value)
 {
   vvLandmark point;
@@ -66,48 +73,70 @@ 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));
 }
+//--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
 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::ChangeComments(int index, std::string comments)
 {
   mLandmarks[index].comments = comments;
 }
+//--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
 double vvLandmarks::GetPixelValue(int index)
 {
   return mLandmarks[index].pixel_value;
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 float* vvLandmarks::GetCoordinates(int index)
 {
   return mLandmarks[index].coordinates;
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 std::string vvLandmarks::GetComments(int index)
 {
   return mLandmarks[index].comments;
 }
+//--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
 void vvLandmarks::LoadFile(std::string filename)
 {
   std::ifstream fp(filename.c_str(), std::ios::in|std::ios::binary);
@@ -122,6 +151,7 @@ void vvLandmarks::LoadFile(std::string filename)
     mPoints[i]->SetNumberOfPoints(0);
   bool first_line=true;
   while (fp.getline(line,255)) {
+    //    DD(line);
     std::string stringline = line;
     if (first_line) {
       first_line=false;
@@ -152,6 +182,7 @@ void vvLandmarks::LoadFile(std::string filename)
         continue;
       }
       point.coordinates[0] = atof(replace_dots(stringline.substr(previousSpace,space - previousSpace)).c_str());
+      //      DD(point.coordinates[0]);
       previousSpace = space;
       space = stringline.find(" ", previousSpace+1);
       if (space < -1 || space > (int)stringline.size()) {
@@ -159,6 +190,7 @@ void vvLandmarks::LoadFile(std::string filename)
         continue;
       }
       point.coordinates[1] = atof(replace_dots(stringline.substr(previousSpace,space - previousSpace)).c_str());
+      //      DD(point.coordinates[1]);
       previousSpace = space;
       space = stringline.find(" ", previousSpace+1);
       if (space < -1 || space > (int)stringline.size()) {
@@ -181,6 +213,7 @@ void vvLandmarks::LoadFile(std::string filename)
           continue;
         }
         point.pixel_value = atof(replace_dots(stringline.substr(previousSpace,space - previousSpace)).c_str());
+        //        DD(point.pixel_value);
       } else {
         point.pixel_value=0.; //Not in file
         point.coordinates[3]=0.;
@@ -188,7 +221,10 @@ void vvLandmarks::LoadFile(std::string filename)
       previousSpace = space;
       //this is the maximum size of comments
       space = (stringline.find("\n", previousSpace+1) < 254 ? stringline.find("\n", previousSpace+1) : 254);
-      point.comments = stringline.substr(previousSpace,space - (previousSpace)).c_str();
+      if (previousSpace != -1) {
+        point.comments = stringline.substr(previousSpace,space - (previousSpace)).c_str();
+      }
+      //      DD(point.comments);
       mLandmarks.push_back(point);
       mIds->InsertNextTuple1(0.55);
       mPoints[int(point.coordinates[3])]->InsertNextPoint(
@@ -197,13 +233,19 @@ void vvLandmarks::LoadFile(std::string filename)
   }
   SetTime(0);
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 bool vvLandmarks::ErrorMsg(int num,const char * text)
 {
   std::cerr << "error when loading point " << num << " at " << text << std::endl;
   return false;
 }
+//--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
 void vvLandmarks::SaveFile(std::string filename)
 {
   std::string fileContent = "LANDMARKS1\n"; //File format version identification
@@ -231,7 +273,10 @@ void vvLandmarks::SaveFile(std::string filename)
   fp << fileContent.c_str()<< std::endl;
   fp.close();
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 void vvLandmarks::SetTime(int time)
 {
   if (time >= 0 && time <= ((int)mPoints.size() -1)) {
@@ -241,7 +286,10 @@ void vvLandmarks::SetTime(int time)
     mPolyData->Update();
   }
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 std::string vvLandmarks::replace_dots(std::string input)
 {
   ///Replaces the dots used in the file with the decimal separator in use on the platform
@@ -253,3 +301,4 @@ std::string vvLandmarks::replace_dots(std::string input)
   }
   return input;
 }
+//--------------------------------------------------------------------