SeExpr

Classes | Public Member Functions | Static Private Member Functions | List of all members
SeExpr2::ExprFuncSimple Class Referenceabstract

`#include <ExprFuncX.h>`

Inheritance diagram for SeExpr2::ExprFuncSimple:

## 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

## Detailed Description

Definition at line 72 of file ExprFuncX.h.

## Constructor & Destructor Documentation

## ◆ ExprFuncSimple()

SeExpr2::ExprFuncSimple::ExprFuncSimple | ( | const bool | threadSafe | ) |
| inline

Definition at line 74 of file ExprFuncX.h.

## Member Function Documentation

## ◆ buildInterpreter()

int SeExpr2::ExprFuncSimple::buildInterpreter | ( | const ExprFuncNode * | node,
|  | Interpreter * | interpreter
| ) |  | const
| 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, SeExpr2::ExprFuncNode::setData(), and SeExpr2::ExprNode::type().

## ◆ eval()

virtual void SeExpr2::ExprFuncSimple::eval | ( | ArgHandle | args | ) |
| 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().

## ◆ evalConstant()

virtual ExprFuncNode::Data* SeExpr2::ExprFuncSimple::evalConstant | ( | const ExprFuncNode * | node,
|  | ArgHandle | args
| ) |  | const
| pure virtual

Implemented in BasicExpression::DummyFuncX, SeExpr2::PrintFuncX, SeExpr2::GetVar, SeExpr2::CCurveFuncX, SeExpr2::CurveFuncX, SeExpr2::CachedVoronoiFunc, SeExpr2::TriplanarFuncX, SeExpr2::MapFuncX, and SeExpr2::RandFuncX.

Referenced by buildInterpreter().

## ◆ EvalOp()

int SeExpr2::ExprFuncSimple::EvalOp | ( | int * | opData,
|  | double * | fp,
|  | char ** | c,
|  | std::vector< int > & | callStack
| ) |  |
| static private

Definition at line 24 of file ExprFuncX.cpp.

References eval().

Referenced by buildInterpreter().

## ◆ prep()

virtual ExprType SeExpr2::ExprFuncSimple::prep | ( | ExprFuncNode * | node,
|  | bool | scalarWanted,
|  | ExprVarEnvBuilder & | env
| ) |  | const
| pure virtual

prep the expression by doing all type checking argument checking, etc.

Implements SeExpr2::ExprFuncX.

Implemented in BasicExpression::DummyFuncX, SeExpr2::PrintFuncX, SeExpr2::GetVar, SeExpr2::CCurveFuncX, SeExpr2::TriplanarFuncX, SeExpr2::MapFuncX, SeExpr2::RandFuncX, SeExpr2::CurveFuncX, and SeExpr2::CachedVoronoiFunc.

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

- /build/seexpr/src/SeExpr/src/SeExpr2/ExprFuncX.h
- /build/seexpr/src/SeExpr/src/SeExpr2/ExprFuncX.cpp