/*=========================================================================
+ Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Program: vv
- Language: C++
- Author : Pierre Seroul (pierre.seroul@gmail.com)
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+ - Léon Bérard cancer center http://www.centreleonberard.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
-Copyright (C) 2008
-Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
-CREATIS-LRMN http://www.creatis.insa-lyon.fr
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the copyright notices for more information.
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 3 of the License.
+ It is distributed under dual licence
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-=========================================================================*/
+ - 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>
#include <vector>
#include "vtkPolyData.h"
#include "vtkPoints.h"
#include "vvLandmarksGlyph.h"
+#include "vtkStringArray.h"
+#include <vtkAbstractTransform.h>
//typedef
struct vvLandmark {
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);
- int GetNumberOfPoints() {
- return mLandmarks.size();
- }
+ vtkStringArray* GetLabels() { return mLabels[mTime]; }
+ unsigned int GetNumberOfPoints() { return (unsigned int) mLandmarks[mTime].size(); }
//int GetNumberOfSources(){return mText.size();}
vtkPolyData* GetOutput() {
}
//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