X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkAnatomicalFeatureDatabase.cxx;h=8bf17fbb57873f6f37150363512a7675ad9b7455;hb=1fea92ac237c16c1f027ffabdb42066f6f4f6114;hp=dbd05c61a30fcb8a628fef0150a7b6de8dfd3f37;hpb=5668d4a49a5a6b68dc80fa28f0f82b54187cb70c;p=clitk.git diff --git a/segmentation/clitkAnatomicalFeatureDatabase.cxx b/segmentation/clitkAnatomicalFeatureDatabase.cxx index dbd05c6..8bf17fb 100644 --- a/segmentation/clitkAnatomicalFeatureDatabase.cxx +++ b/segmentation/clitkAnatomicalFeatureDatabase.cxx @@ -22,11 +22,13 @@ // std #include #include +#include +#include //-------------------------------------------------------------------- clitk::AnatomicalFeatureDatabase::AnatomicalFeatureDatabase() { - SetFilename("noname.afdb"); + SetFilename("default.afdb"); } //-------------------------------------------------------------------- @@ -69,6 +71,7 @@ static inline std::string &trim(std::string &s) { //-------------------------------------------------------------------- void clitk::AnatomicalFeatureDatabase::Load() { + m_MapOfTag.clear(); // open file std::ifstream is; openFileForReading(is, GetFilename()); @@ -76,11 +79,14 @@ void clitk::AnatomicalFeatureDatabase::Load() while (!is.fail()) { std::string tag; is >> tag; - std::string value; - std::getline(is,value,'\n'); - ltrim(value); // remove leading space - m_MapOfTag[tag] = value; + if (tag != "") { + std::string value; + std::getline(is,value,'\n'); + ltrim(value); // remove leading space + m_MapOfTag[tag] = value; + } } + is.close(); } //-------------------------------------------------------------------- @@ -95,6 +101,16 @@ 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) { @@ -115,7 +131,13 @@ void clitk::AnatomicalFeatureDatabase::GetPoint3D(std::string tag, PointType3D & // parse the string into 3 doubles for(int i=0; i<3; i++) { - p[i] = atof(results[i].c_str()); + + if (!clitk::fromString(p[i], results[i].c_str())) { + clitkExceptionMacro("Error while reading Point3D, could not convert '" + << results[i].c_str() << "' into double."); + } + + // p[i] = atof(results[i].c_str()); } /* @@ -144,3 +166,5 @@ void clitk::AnatomicalFeatureDatabase::SetImageFilename(std::string tag, std::st } //-------------------------------------------------------------------- + +