// std
#include <iterator>
#include <sstream>
+#include <cctype>
+#include <functional>
//--------------------------------------------------------------------
clitk::AnatomicalFeatureDatabase::AnatomicalFeatureDatabase()
//--------------------------------------------------------------------
+//--------------------------------------------------------------------
+//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<int, int>(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<int, int>(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()
{
is >> tag;
std::string value;
std::getline(is,value,'\n');
+ ltrim(value); // remove leading space
m_MapOfTag[tag] = value;
}
}
//--------------------------------------------------------------------
+//--------------------------------------------------------------------
+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)
{
// 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]);
}
/*
boost::tokenizer<boost::char_separator<char> > 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;
+}
+//--------------------------------------------------------------------
+