SeExpr
|
#include <ExprFuncX.h>
Classes | |
class | ArgHandle |
Public Member Functions | |
ExprFuncSimple (const bool threadSafe) | |
virtual int | buildInterpreter (const ExprFuncNode *node, Interpreter *interpreter) const |
Build an interpreter to evaluate the expression. More... | |
virtual ExprType | prep (ExprFuncNode *node, bool scalarWanted, ExprVarEnvBuilder &envBuilder) const =0 |
virtual ExprFuncNode::Data * | evalConstant (const ExprFuncNode *node, ArgHandle args) const =0 |
virtual void | eval (ArgHandle args)=0 |
Public Member Functions inherited from SeExpr2::ExprFuncX | |
ExprFuncX (const bool threadSafe) | |
virtual ExprType | type () const |
virtual | ~ExprFuncX () |
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 | |
Protected Attributes inherited from SeExpr2::ExprFuncX | |
bool | _isScalar |
ExprType | _type |
Definition at line 72 of file ExprFuncX.h.
|
inline |
Definition at line 74 of file ExprFuncX.h.
|
virtual |
Build an interpreter to evaluate the expression.
evaluate the expression. the given node is where in the parse tree the evaluation is for
Implements SeExpr2::ExprFuncX.
Definition at line 32 of file ExprFuncX.cpp.
References SeExpr2::Interpreter::addOp(), SeExpr2::Interpreter::addOperand(), SeExpr2::Interpreter::allocFP(), SeExpr2::Interpreter::allocPtr(), SeExpr2::ExprNode::buildInterpreter(), SeExpr2::Interpreter::callStack, SeExpr2::ExprNode::child(), SeExpr2::Interpreter::d, SeExpr2::ExprType::dim(), SeExpr2::Interpreter::endOp(), evalConstant(), EvalOp(), SeExpr2::ExprType::isFP(), SeExpr2::ExprType::isString(), SeExpr2::Interpreter::nextPC(), SeExpr2::ExprNode::numChildren(), SeExpr2::Interpreter::opData, SeExpr2::Interpreter::ops, SeExpr2::ExprFuncNode::promote(), SeExpr2::Interpreter::s, and SeExpr2::ExprNode::type().
|
pure virtual |
Implemented in SeExpr2::PrintFuncX, SeExpr2::GetVar, SeExpr2::CCurveFuncX, SeExpr2::CurveFuncX, SeExpr2::CachedVoronoiFunc, SeExpr2::TriplanarFuncX, SeExpr2::MapFuncX, BasicExpression::DummyFuncX, and SeExpr2::RandFuncX.
Referenced by EvalOp(), and SeExpr2LLVMEvalCustomFunction().
|
pure virtual |
|
staticprivate |
|
pure virtual |
prep the expression by doing all type checking argument checking, etc.
Implements SeExpr2::ExprFuncX.
Implemented in SeExpr2::PrintFuncX, SeExpr2::GetVar, SeExpr2::CCurveFuncX, SeExpr2::CurveFuncX, SeExpr2::CachedVoronoiFunc, SeExpr2::TriplanarFuncX, SeExpr2::MapFuncX, BasicExpression::DummyFuncX, and SeExpr2::RandFuncX.