KSeExpr
4.0.4.0
|
#include <ExprFuncX.h>
Classes | |
class | ArgHandle |
Public Member Functions | |
ExprFuncSimple (const bool threadSafe) | |
int | buildInterpreter (const ExprFuncNode *node, Interpreter *interpreter) const override |
Build an interpreter to evaluate the expression. More... | |
ExprType | prep (ExprFuncNode *node, bool scalarWanted, ExprVarEnvBuilder &envBuilder) const override=0 |
virtual ExprFuncNode::Data * | evalConstant (const ExprFuncNode *node, ArgHandle args) const =0 |
virtual void | eval (ArgHandle args)=0 |
![]() | |
ExprFuncX (const bool threadSafe) | |
ExprFuncX (const ExprFuncX &)=default | |
ExprFuncX (ExprFuncX &&)=default | |
ExprFuncX & | operator= (const ExprFuncX &)=default |
ExprFuncX & | operator= (ExprFuncX &&)=default |
virtual ExprType | type () const |
virtual | ~ExprFuncX ()=default |
bool | isThreadSafe () const |
virtual size_t | sizeInBytes () const |
Return memory usage of a funcX in bytes. More... | |
virtual void | statistics (Statistics &) const |
Give this function a chance to populate its statistics. More... | |
Static Private Member Functions | |
static int | EvalOp (int *opData, double *fp, char **c, std::vector< int > &callStack) |
Additional Inherited Members | |
![]() | |
bool | _isScalar {} |
ExprType | _type |
Definition at line 64 of file ExprFuncX.h.
|
inline |
Definition at line 66 of file ExprFuncX.h.
|
overridevirtual |
Build an interpreter to evaluate the expression.
evaluate the expression. the given node is where in the parse tree the evaluation is for
Implements KSeExpr::ExprFuncX.
Definition at line 22 of file ExprFuncX.cpp.
References KSeExpr::Interpreter::addOp(), KSeExpr::Interpreter::addOperand(), KSeExpr::Interpreter::allocFP(), KSeExpr::Interpreter::allocPtr(), KSeExpr::ExprNode::buildInterpreter(), KSeExpr::Interpreter::callStack, KSeExpr::ExprNode::child(), KSeExpr::Interpreter::d, KSeExpr::ExprType::dim(), KSeExpr::Interpreter::endOp(), evalConstant(), EvalOp(), KSeExpr::ExprType::isFP(), KSeExpr::ExprType::isString(), KSeExpr::Interpreter::nextPC(), KSeExpr::ExprNode::numChildren(), KSeExpr::Interpreter::opData, KSeExpr::Interpreter::ops, KSeExpr::ExprFuncNode::promote(), KSeExpr::Interpreter::s, KSeExpr::ExprFuncNode::setData(), and KSeExpr::ExprNode::type().
|
pure virtual |
|
pure virtual |
|
staticprivate |
Definition at line 14 of file ExprFuncX.cpp.
Referenced by buildInterpreter().
|
overridepure virtual |
prep the expression by doing all type checking argument checking, etc.
Implements KSeExpr::ExprFuncX.
Implemented in BasicExpression::DummyFuncX, KSeExpr::SPrintFuncX, KSeExpr::PrintFuncX, KSeExpr::CCurveFuncX, KSeExpr::CurveFuncX, KSeExpr::CachedVoronoiFunc, KSeExpr::RandFuncX, KSeExpr::TriplanarFuncX, KSeExpr::MapFuncX, and KSeExpr::GetVar.