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 Expressionsimplify () 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::QuantitygetQuantity () const
 
double getScaler () const
 
const Base::UnitgetUnit () 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)
 
Expressioncopy () const
 
Expressioneval () 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::ObjectIdentifiergetIdentifiers () const
 
void getIdentifiers (std::set< App::ObjectIdentifier > &) const
 
App::DocumentObjectgetOwner () 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 PyObjectgetPyObject (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 ComponentcreateComponent (const std::string &n)
 
static ComponentcreateComponent (Expression *e1, Expression *e2=0, Expression *e3=0, bool isRange=false)
 
static Expressionparse (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
PyObjectcache = 0
 
- Protected Attributes inherited from App::Expression
ComponentList components
 
App::DocumentObjectowner
 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

Enumerator
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 

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()

FunctionExpression::~FunctionExpression ( )
virtual

Member Function Documentation

◆ evalAggregate()

◆ evaluate()

◆ isTouched()

bool FunctionExpression::isTouched ( void  ) const
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()

Expression * FunctionExpression::simplify ( ) const
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

std::vector<Expression *> App::FunctionExpression::args
protected

◆ f

Function App::FunctionExpression::f
protected

Function to execute.

◆ fname

std::string App::FunctionExpression::fname
protected

The documentation for this class was generated from the following files:
  • Sources/FreeCAD/src/App/ExpressionParser.h
  • Sources/FreeCAD/src/App/Expression.cpp