X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkAnatomicalFeatureDatabase.cxx;h=539e17012806a970984f667cd0df786acacf56b0;hb=164e784d773cef093f46b6aed156269fe46bf676;hp=afd082e0d1c9453dedfef87aaa003d970a275a6b;hpb=44ebb81a500e42cf19964d209e14a59812a0dd4d;p=clitk.git diff --git a/segmentation/clitkAnatomicalFeatureDatabase.cxx b/segmentation/clitkAnatomicalFeatureDatabase.cxx index afd082e..539e170 100644 --- a/segmentation/clitkAnatomicalFeatureDatabase.cxx +++ b/segmentation/clitkAnatomicalFeatureDatabase.cxx @@ -22,6 +22,8 @@ // std #include #include +#include +#include //-------------------------------------------------------------------- clitk::AnatomicalFeatureDatabase::AnatomicalFeatureDatabase() @@ -47,6 +49,25 @@ void clitk::AnatomicalFeatureDatabase::Write() //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +//http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring +// trim from start +static inline std::string <rim(std::string &s) { + s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun(std::isspace)))); + return s; +} +// trim from end +static inline std::string &rtrim(std::string &s) { + s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun(std::isspace))).base(), s.end()); + return s; +} +// trim from both ends +static inline std::string &trim(std::string &s) { + return ltrim(rtrim(s)); +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::AnatomicalFeatureDatabase::Load() { @@ -59,6 +80,7 @@ void clitk::AnatomicalFeatureDatabase::Load() is >> tag; std::string value; std::getline(is,value,'\n'); + ltrim(value); // remove leading space m_MapOfTag[tag] = value; } } @@ -75,6 +97,15 @@ void clitk::AnatomicalFeatureDatabase::SetPoint3D(std::string tag, PointType3D & //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +double clitk::AnatomicalFeatureDatabase::GetPoint3D(std::string tag, int dim) +{ + PointType3D p; + GetPoint3D(tag, p); + return p[dim]; +} +//-------------------------------------------------------------------- + //-------------------------------------------------------------------- void clitk::AnatomicalFeatureDatabase::GetPoint3D(std::string tag, PointType3D & p) { @@ -95,9 +126,7 @@ void clitk::AnatomicalFeatureDatabase::GetPoint3D(std::string tag, PointType3D & // parse the string into 3 doubles for(int i=0; i<3; i++) { - DD(results[i]); p[i] = atof(results[i].c_str()); - DD(p[i]); } /* @@ -109,12 +138,20 @@ void clitk::AnatomicalFeatureDatabase::GetPoint3D(std::string tag, PointType3D & boost::tokenizer > tokens(s, sep); int i=0; BOOST_FOREACH(std::string t, tokens) { - std::cout << t << "." << std::endl; - p[i] = atof(t.c_str()); - i++; + std::cout << t << "." << std::endl; + p[i] = atof(t.c_str()); + i++; } */ } } //-------------------------------------------------------------------- + +//-------------------------------------------------------------------- +void clitk::AnatomicalFeatureDatabase::SetImageFilename(std::string tag, std::string f) +{ + m_MapOfTag[tag] = f; +} +//-------------------------------------------------------------------- +