mbxmlutils 1.3.0 Multi-Body XML Utils

xmlflateval.h
1 #ifndef _MBXMLUTILS_XMLFLATEVAL_H_
2 #define _MBXMLUTILS_XMLFLATEVAL_H_
3
4 #include "eval.h"
5
6 namespace MBXMLUtils {
7
12 class XMLFlatEval : public Eval {
13 friend class Eval;
14 protected:
15 XMLFlatEval(std::vector<boost::filesystem::path> *dependencies_=nullptr);
16 public:
17 ~XMLFlatEval() override;
18 static std::string getNameStatic() { return "xmlflat"; }
19 std::string getName() const override { return getNameStatic(); }
20 void addImport(const std::string &code, const xercesc::DOMElement *e) override;
21 bool valueIsOfType(const Value &value, ValueType type) const override;
22 std::map<boost::filesystem::path, std::pair<boost::filesystem::path, bool> >& requiredFiles() const override;
23 void convertIndex(Value &v, bool evalTo1Based) override {}
24 protected:
25 Value createFunctionIndep(int dim) const override;
26 Value callFunction(const std::string &name, const std::vector<Value>& args) const override;
27 Value fullStringToValue(const std::string &str, const xercesc::DOMElement *e, bool skipRet=false) const override;
28 private:
29 double cast_double (const Value &value) const override;
30 std::vector<double> cast_vector_double (const Value &value) const override;
31 std::vector<std::vector<double> >cast_vector_vector_double (const Value &value) const override;
32 std::string cast_string (const Value &value) const override;
33 Value create_double (const double& v) const override;
34 Value create_vector_double (const std::vector<double>& v) const override;
35 Value create_vector_vector_double (const std::vector<std::vector<double> >& v) const override;
36 Value create_string (const std::string& v) const override;
37
38 Value createFunctionDep(const std::vector<Value>& v) const override;
39 Value createFunctionDep(const std::vector<std::vector<Value> >& v) const override;
40 Value createFunction(const std::vector<Value> &indeps, const Value &dep) const override;
41
42 std::string serializeFunction(const Value &x) const override;
43 };
44
45 } // end namespace MBXMLUtils
46
47 #endif
MBXMLUtils::Eval
Definition: eval.h:76
MBXMLUtils::XMLFlatEval::convertIndex
void convertIndex(Value &v, bool evalTo1Based) override
Definition: xmlflateval.h:23
MBXMLUtils::XMLFlatEval::createFunctionIndep
Value createFunctionIndep(int dim) const override
create a function independent variable. If dim == 0 a scalar is created else a vector.
Definition: xmlflateval.cc:32
MBXMLUtils::XMLFlatEval::valueIsOfType
bool valueIsOfType(const Value &value, ValueType type) const override
Definition: xmlflateval.cc:40
MBXMLUtils::XMLFlatEval::createFunction
Value createFunction(const std::vector< Value > &indeps, const Value &dep) const override
create a Function with n independents and a dependent function (scalar, vector or matrix)
Definition: xmlflateval.cc:224
MBXMLUtils::XMLFlatEval::addImport
void addImport(const std::string &code, const xercesc::DOMElement *e) override
Definition: xmlflateval.cc:36
MBXMLUtils::XMLFlatEval
Definition: xmlflateval.h:12
MBXMLUtils::XMLFlatEval::createFunctionDep
Value createFunctionDep(const std::vector< Value > &v) const override
create a vector function dependent
MBXMLUtils::XMLFlatEval::getName
std::string getName() const override
Get the type of this evaluator.
Definition: xmlflateval.h:19
MBXMLUtils::XMLFlatEval::callFunction
Value callFunction(const std::string &name, const std::vector< Value > &args) const override
Definition: xmlflateval.cc:80
MBXMLUtils::XMLFlatEval::requiredFiles
std::map< boost::filesystem::path, std::pair< boost::filesystem::path, bool > > & requiredFiles() const override
return a list of all required files of the evaluator (excluding dependent files of libraries)
Definition: xmlflateval.cc:75
MBXMLUtils::XMLFlatEval::fullStringToValue
Value fullStringToValue(const std::string &str, const xercesc::DOMElement *e, bool skipRet=false) const override
evaluate the string str using the current parameters and return the result.
Definition: xmlflateval.cc:84
MBXMLUtils::Eval::Value
std::shared_ptr< void > Value
Typedef for a shared value.
Definition: eval.h:91
MBXMLUtils::Eval::ValueType
ValueType
Definition: eval.h:82