]> Creatis software - clitk.git/blobdiff - vv/vvLandmarks.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvLandmarks.h
index eecf312699bc981baa057418c838975cc1025bfe..285b24a741033d30cd8be685d5a88c38d1397bc8 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
-======================================================================-====*/
+===========================================================================**/
 #ifndef vvLandmarks_h
 #define vvLandmarks_h
 #include <iostream>
@@ -24,6 +24,8 @@
 #include "vtkPolyData.h"
 #include "vtkPoints.h"
 #include "vvLandmarksGlyph.h"
+#include "vtkStringArray.h"
+#include <vtkAbstractTransform.h>
 
 //typedef
 struct vvLandmark {
@@ -38,16 +40,22 @@ public :
     vvLandmarks(int size);
     ~vvLandmarks();
 
-    void LoadFile(std::string filename);
+    bool LoadFile(std::vector<std::string> filename);
     void SaveFile(std::string filename);
 
     void AddLandmark(float x,float y,float z,float t,double value);
+    void TransformUpdate(vtkAbstractTransform* transform);
     void RemoveLastLandmark();
+    void RemoveLandmarkWithLabel(vtkStdString, int);
+    void RemoveLandmark(int index);
+    void RemoveAll();
+    
     void ChangeComments(int index, std::string comments);
     float* GetCoordinates(int index);
     double GetPixelValue(int index);
     std::string GetComments(int index);
-    unsigned int GetNumberOfPoints() { return (unsigned int) mLandmarks.size(); }
+    vtkStringArray* GetLabels() { return mLabels[mTime]; }
+    unsigned int GetNumberOfPoints() { return (unsigned int) mLandmarks[mTime].size(); }
     //int GetNumberOfSources(){return mText.size();}
 
     vtkPolyData* GetOutput() {
@@ -55,19 +63,30 @@ public :
     }
     //vtkPolyData* GetSources(int i){return mText[i]->GetOutput();}
     void SetTime(int time);
+    int GetTime() {return mTime; }
 
     bool ErrorMsg(int num,const char * text);
 
 private:
     ///Helper function to tackle the use of the comma as the decimal separator
     std::string replace_dots(std::string input);
-    std::vector<vvLandmark> mLandmarks;
+    
+    typedef std::vector<vvLandmark> LandmarkContainerType;
+    std::vector<LandmarkContainerType> mLandmarks;
+    std::vector<LandmarkContainerType> mLandmarksInitial;
+    
     vtkPolyData *mPolyData;
     std::vector<vtkPoints*> mPoints;
-    vtkFloatArray* mIds;
+    std::vector<vtkFloatArray*> mIds;
     //std::vector<vvLandmarksGlyph*> mText;
-    std::string mFilename;
+    std::vector<vtkStringArray*> mLabels;
+    std::vector<std::string> mFilenames;
     int mFormatVersion;
+    int mTime;
+
+    bool LoadTxtFile(std::vector<std::string> filenames);
+    bool LoadPtsFile(std::vector<std::string> filenames);
+  
 };
 
 #endif