ObjectModelParser.h
Go to the documentation of this file.
00001 /*
00002  * ObjectModelParser.h
00003  *
00004  *  Created on: Mar 6, 2012
00005  *      Author: sdries
00006  */
00007 
00008 #ifndef OBJECTMODELPARSER_H_
00009 #define OBJECTMODELPARSER_H_
00010 
00011 #include "wire/core/IStateEstimator.h"
00012 
00013 // xml parser
00014 #include <tinyxml.h>
00015 
00016 #include <pluginlib/class_loader.h>
00017 
00018 #include <map>
00019 
00020 namespace mhf {
00021 
00022 class ClassModel;
00023 class KnowledgeDatabase;
00024 
00025 class ObjectModelParser {
00026 
00027 public:
00028 
00029     ObjectModelParser(const std::string& filename);
00030 
00031     virtual ~ObjectModelParser();
00032 
00033     bool parse(KnowledgeDatabase& obj_models);
00034 
00035     std::string getErrorMessage() const;
00036 
00037 protected:
00038 
00039     std::string filename_;
00040 
00041     std::stringstream parse_errors_;
00042 
00043     pluginlib::ClassLoader<IStateEstimator>* object_model_loader_;
00044 
00045     std::string getPropertyValue(const TiXmlElement* elem, std::string prop_name, double& value, std::stringstream& error, bool optional = false);
00046 
00047     bool getAttributeValue(const TiXmlElement* elem, std::string att_name, std::string& att_value, std::stringstream& error);
00048 
00049     bool getAttributeValue(const TiXmlElement* elem, std::string att_name, double& att_value, std::stringstream& error);
00050 
00051     bool hasAttributeValue(const TiXmlElement* elem, std::string att_name, std::string att_value);
00052 
00053     bool parseStateEstimator(ClassModel* obj_model, const TiXmlElement* elem, std::stringstream& error);
00054 
00055     pbl::PDF* parsePDF(const TiXmlElement* elem, std::stringstream& error);
00056 
00057     bool getStateEstimatorParameter(const TiXmlElement* elem, const std::string& param_name, double& value);
00058 
00059 };
00060 
00061 }
00062 
00063 #endif /* OBJECTMODELPARSER_H_ */


wire_core
Author(s): Sjoerd van den Dries, Jos Elfring
autogenerated on Tue Jan 7 2014 11:43:19