Class implementing various functions, e.g sin, cos, etc. More...
#include <ExpressionParser.h>
Public Types | |
| enum | Function { NONE, ACOS, ASIN, ATAN, ABS, EXP, LOG, LOG10, SIN, SINH, TAN, TANH, SQRT, COS, COSH, ATAN2, MOD, POW, ROUND, TRUNC, CEIL, FLOOR, HYPOT, CATH, LIST, TUPLE, MSCALE, MINVERT, CREATE, AGGREGATES, SUM, AVERAGE, STDDEV, COUNT, MIN, MAX, LAST } |
Public Types inherited from App::Expression | |
| typedef std::vector< Component * > | ComponentList |
Public Member Functions | |
| FunctionExpression (const App::DocumentObject *_owner=0, Function _f=NONE, std::string &&name=std::string(), std::vector< Expression * > _args=std::vector< Expression * >()) | |
| virtual bool | isTouched () const override |
| Determine whether the expressions is considered touched, i.e one or both of its arguments are touched. More... | |
| virtual Expression * | simplify () const override |
| Try to simplify the expression, i.e calculate all constant expressions. More... | |
| virtual | ~FunctionExpression () |
Public Member Functions inherited from App::UnitExpression | |
| const Base::Quantity & | getQuantity () const |
| double | getScaler () const |
| const Base::Unit & | getUnit () const |
| const std::string | getUnitString () const |
| double | getValue () const |
| void | setQuantity (const Base::Quantity &_quantity) |
| void | setUnit (const Base::Quantity &_quantity) |
| Set unit information. More... | |
| UnitExpression (const App::DocumentObject *_owner=0, const Base::Quantity &_quantity=Base::Quantity(), const std::string &_unitStr=std::string()) | |
| ~UnitExpression () | |
Public Member Functions inherited from App::Expression | |
| virtual void | addComponent (Component *component) |
| bool | adjustLinks (const std::set< App::DocumentObject * > &inList) |
| Expression * | copy () const |
| Expression * | eval () const |
| Expression (const App::DocumentObject *_owner) | |
| void | getDepObjects (std::set< App::DocumentObject * > &, std::vector< std::string > *labels=0) const |
| std::set< App::DocumentObject * > | getDepObjects (std::vector< std::string > *labels=0) const |
| ExpressionDeps | getDeps () const |
| void | getDeps (ExpressionDeps &deps) const |
| std::set< App::ObjectIdentifier > | getIdentifiers () const |
| void | getIdentifiers (std::set< App::ObjectIdentifier > &) const |
| App::DocumentObject * | getOwner () const |
| Py::Object | getPyValue () const |
| boost::any | getValueAsAny () const |
| bool | hasComponent () const |
| ExpressionPtr | importSubNames (const std::map< std::string, std::string > &nameMap) const |
| bool | isSame (const Expression &other) const |
| virtual int | priority () const |
| ExpressionPtr | replaceObject (const App::DocumentObject *parent, App::DocumentObject *oldObj, App::DocumentObject *newObj) const |
| std::string | toString (bool persistent=false, bool checkPriority=false, int indent=0) const |
| void | toString (std::ostream &os, bool persistent=false, bool checkPriority=false, int indent=0) const |
| ExpressionPtr | updateLabelReference (App::DocumentObject *obj, const std::string &ref, const char *newLabel) const |
| void | visit (ExpressionVisitor &v) |
| virtual | ~Expression () |
Public Member Functions inherited from Base::BaseClass | |
| BaseClass () | |
| Construction. More... | |
| virtual PyObject * | getPyObject (void) |
| This method returns the Python wrapper for a C++ object. More... | |
| virtual Type | getTypeId (void) const |
| bool | isDerivedFrom (const Type type) const |
| virtual void | setPyObject (PyObject *) |
| virtual | ~BaseClass () |
| Destruction. More... | |
Static Public Member Functions | |
| static Py::Object | evaluate (const Expression *owner, int type, const std::vector< Expression * > &args) |
Static Public Member Functions inherited from App::Expression | |
| static Component * | createComponent (const std::string &n) |
| static Component * | createComponent (Expression *e1, Expression *e2=0, Expression *e3=0, bool isRange=false) |
| static Expression * | parse (const App::DocumentObject *owner, const std::string &buffer) |
Static Public Member Functions inherited from Base::BaseClass | |
| static void * | create (void) |
| static Type | getClassTypeId (void) |
| static void | init (void) |
Static Protected Member Functions | |
| static Py::Object | evalAggregate (const Expression *owner, int type, const std::vector< Expression * > &args) |
Static Protected Member Functions inherited from Base::BaseClass | |
| static void | initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr) |
Protected Attributes | |
| std::vector< Expression * > | args |
| Function | f |
| Function to execute. More... | |
| std::string | fname |
Protected Attributes inherited from App::UnitExpression | |
| PyObject * | cache = 0 |
Protected Attributes inherited from App::Expression | |
| ComponentList | components |
| App::DocumentObject * | owner |
| The document object used to access unqualified variables (i.e local scope) More... | |
Additional Inherited Members | |
Public Attributes inherited from App::Expression | |
| std::string | comment |
| friend | ExpressionVisitor |
Detailed Description
Class implementing various functions, e.g sin, cos, etc.
Member Enumeration Documentation
◆ Function
Constructor & Destructor Documentation
◆ FunctionExpression()
| FunctionExpression::FunctionExpression | ( | const App::DocumentObject * | _owner = 0, |
| Function | _f = NONE, |
||
| std::string && | name = std::string(), |
||
| std::vector< Expression * > | _args = std::vector<Expression*>() |
||
| ) |
◆ ~FunctionExpression()
|
virtual |
Member Function Documentation
◆ evalAggregate()
|
staticprotected |
References Base::BaseClass::getClassTypeId(), App::ExtensionContainer::getPropertyByName(), App::PropertyQuantity::getQuantityValue(), App::RangeExpression::getRange(), App::PropertyInteger::getValue(), App::PropertyFloat::getValue(), App::Expression::owner, App::pyFromQuantity(), and App::pyToQuantity().
◆ evaluate()
|
static |
References Base::fmod(), Base::BaseClass::getClassTypeId(), App::Expression::getOwner(), App::Expression::getPyValue(), Base::pow(), App::pyToQuantity(), Base::MatrixPy::scale(), Base::RotationPy::Type, Base::MatrixPy::Type, and Base::PlacementPy::Type.
Referenced by Spreadsheet_legacy.Spreadsheet::evaluate(), and Spreadsheet_legacy.Spreadsheet::isNumeric().
◆ isTouched()
|
overridevirtual |
Determine whether the expressions is considered touched, i.e one or both of its arguments are touched.
- Returns
- True if touched, false if not.
Reimplemented from App::Expression.
◆ simplify()
|
overridevirtual |
Try to simplify the expression, i.e calculate all constant expressions.
- Returns
- A simplified expression.
Reimplemented from App::UnitExpression.
References App::Expression::eval(), App::Expression::owner, and App::Expression::simplify().
Member Data Documentation
◆ args
|
protected |
Referenced by MengerSponge.MengerThread::run().
◆ f
|
protected |
Function to execute.
◆ fname
|
protected |
The documentation for this class was generated from the following files:
- src/App/ExpressionParser.h
- src/App/Expression.cpp
Public Types inherited from
1.8.17