mbxmlutils 1.3.0 Multi-Body XML Utils

Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
MBXMLUtils::OctEval Class Reference

`#include <octeval.h>`

Inheritance diagram for MBXMLUtils::OctEval:
[legend]

## Classes

struct | Import

## Public Member Functions

| ~OctEval () override
| Destructor.
std::string | getName () const override
| Get the type of this evaluator.
void | addImport (const std::string &code, const xercesc::DOMElement *e) override
void | addImportHelper (const boost::filesystem::path &dir)
bool | valueIsOfType (const Value &value, ValueType type) const override
| get the type of value
std::map< boost::filesystem::path, std::pair< boost::filesystem::path, bool > > & | requiredFiles () const override
| return a list of all required files of octave (excluding dependent files of libraries)
void | convertIndex (Value &v, bool evalTo1Based) override
Public Member Functions inherited from MBXMLUtils::Eval
| ~Eval () override
| Destructor.
| Eval (const Eval &other)=delete
| Eval (Eval &&other)=delete
Eval & | operator= (const Eval &other)=delete
Eval & | operator= (Eval &&other)=delete
void | addParam (const std::string &paramName, const Value &value)
| Add a value to the current parameters.
void | addParamSet (const xercesc::DOMElement *e)
Value | eval (const xercesc::DOMElement *e)
Value | eval (const xercesc::DOMAttr *a)
Value | eval (const std::string &str, const xercesc::DOMElement *e=nullptr, bool skipRet=false)
template<typename T >
T | cast (const Value &value) const
virtual std::string | getStringRepresentation (const Value &x) const
| Returns a evaluator specific string representation of x. This is only useful for display to the user.
Value | stringToValue (const std::string &str, const xercesc::DOMElement *e=nullptr, bool fullEval=true) const
template<class T >
Value | create (const T &v) const
template<>
string | cast (const Value &value) const
template<>
CodeString | cast (const Value &value) const
template<>
double | cast (const Value &value) const
template<>
int | cast (const Value &value) const
template<>
vector< double > | cast (const Value &value) const
template<>
vector< vector< double > > | cast (const Value &value) const
template<>
Eval::Value | create (const double &v) const
template<>
Eval::Value | create (const vector< double > &v) const
template<>
Eval::Value | create (const vector< vector< double > > &v) const
template<>
Eval::Value | create (const string &v) const
template<>
CodeString | cast (const Value &value) const
template<>
double | cast (const Value &value) const
template<>
int | cast (const Value &value) const
template<>
Eval::Value | create (const double &v) const

## Static Public Member Functions

static std::string | getNameStatic ()
| Get the name of this evaluator.
Static Public Member Functions inherited from MBXMLUtils::Eval
static std::shared_ptr< Eval > | createEvaluator (const std::string &evalName, std::vector< boost::filesystem::path > *dependencies_=nullptr)
| Create a evaluator.
template<class E >
static void | registerEvaluator ()
static void | setValue (xercesc::DOMElement *e, const Value &v)
| Set value on DOMElement (is used by Eval::cast)

## Protected Member Functions

| OctEval (std::vector< boost::filesystem::path > *dependencies_=nullptr)
| Constructor.
Value | createFunctionIndep (int dim) const override
| create a function independent variable. If dim == 0 a scalar is created else a vector.
Value | fullStringToValue (const std::string &str, const xercesc::DOMElement *e, bool skipRet=false) const override
| evaluate str fully and return result as an octave variable
Value | callFunction (const std::string &name, const std::vector< Value > &args) const override
double | cast_double (const Value &value) const override
std::vector< double > | cast_vector_double (const Value &value) const override
std::vector< std::vector< double > > | cast_vector_vector_double (const Value &value) const override
std::string | cast_string (const Value &value) const override
Value | create_double (const double &v) const override
Value | create_vector_double (const std::vector< double > &v) const override
Value | create_vector_vector_double (const std::vector< std::vector< double > > &v) const override
Value | create_string (const std::string &v) const override
Value | createFunctionDep (const std::vector< Value > &v) const override
| create a vector function dependent
Value | createFunctionDep (const std::vector< std::vector< Value > > &v) const override
| create a matrix function dependent
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)
std::string | serializeFunction (const Value &x) const override
Protected Member Functions inherited from MBXMLUtils::Eval
| Eval (std::vector< boost::filesystem::path > *dependencies_)
| Constructor.
void | pushContext ()
| Push the current context to a internal stack.
void | popContext ()
| Overwrite the current context with the top level context from the internal stack.
std::string | partialStringToString (const std::string &str, const xercesc::DOMElement *e) const
| evaluate str partially and return result as an std::string
void | addStaticDependencies (const xercesc::DOMElement *e) const

## Static Protected Member Functions

static octave_value_list | fevalThrow (octave_function *func, const octave_value_list &arg, int n=0, const std::string &msg=std::string())
static void * | getSwigPtr (const octave_value &v)
static Value | createSwigByTypeName (const std::string &name)
static std::string | getSwigType (const octave_value &value)
Static Protected Member Functions inherited from MBXMLUtils::Eval
template<class E >
static std::shared_ptr< Eval > | newEvaluator (std::vector< boost::filesystem::path > *dependencies_)
static void | printEvaluatorMsg (const std::ostringstream &str, MsgType msgType)

## Friends

class | Eval

## Additional Inherited Members

Public Types inherited from MBXMLUtils::Eval
enum | ValueType { ScalarType, VectorType, MatrixType, StringType, FunctionType }
using | Value = std::shared_ptr< void >
| Typedef for a shared value.
Static Public Attributes inherited from MBXMLUtils::Eval
static boost::filesystem::path | installPath
Protected Attributes inherited from MBXMLUtils::Eval
std::vector< boost::filesystem::path > * | dependencies
std::unordered_map< std::string, Value > | currentParam
std::stack< std::unordered_map< std::string, Value > > | paramStack
Value | currentImport
std::stack< Value > | importStack

## Detailed Description

A evaluator based on octave.

See measurementToHtml.xsl for details.

## Member Function Documentation

## ◆ addImport()

void MBXMLUtils::OctEval::addImport | ( | const std::string & | code,
|  | const xercesc::DOMElement * | e
| ) |  |

override virtual

Add octave search path to the current evaluator context. `code` must evaluate to a string representing a directory/path. A relative path is expanded to an absolute path using the path of e as current directory. The absolute path is then added using "addpath" to the octave search path.

Implements MBXMLUtils::Eval.

## ◆ callFunction()

Eval::Value MBXMLUtils::OctEval::callFunction | ( | const std::string & | name,
|  | const std::vector< Value > & | args
| ) |  | const

override protected virtual

Return the value of a call to name using the arguments args. The following functions must be implemented by the evaluator:

- rotateAboutX(alpha): returns a 3x3 rotation matrix about the x-axis by angle alpha which is given in rad.
- rotateAboutY(beta): returns a 3x3 rotation matrix about the y-axis by angle beta which is given in rad.
- rotateAboutZ(gamma): returns a 3x3 rotation matrix about the z-axis by angle gamma which is given in rad.
- cardan(alpha, beta, gamma): returns a 3x3 rotation matrix of a cardan rotation about the angles alpha, beta and gamma which are given in rad.
- euler(PHI, theta, phi): returns a 3x3 rotation matrix of a euler rotation about the angles PHI, theta and phi which are given in rad.
- load(filename): returns a NxM matrix of the data stored in the file filename. filename may be a absolute or relative path. A relative path is interprete relative to the location of the XML file with the load statement. (The abstract Eval class guarantees that the current path is at the XML file if load is called)

Implements MBXMLUtils::Eval.

## ◆ convertIndex()

void MBXMLUtils::OctEval::convertIndex | ( | Value & | v,
|  | bool | evalTo1Based
| ) |  |

inline override virtual

convert a index (scalar or vector). if evalTo1Based == true: convert from the script language 0/1 base to 1 base. if evalTo1Based == false: convert from 1 base to the script language 0/1 base.

Implements MBXMLUtils::Eval.

The documentation for this class was generated from the following files:

- /mbsim-env/openmbv/mbxmlutils/mbxmlutils/octeval.h
- /mbsim-env/openmbv/mbxmlutils/mbxmlutils/octeval.cc