1 #ifndef InlineCalculator_h 2 #define InlineCalculator_h 40 class CalculatorVariablePool;
49 #define CALL_MEMBER_FN(object, ptrToMember) ((object).*(ptrToMember)) 105 bool fxExists(
const QString &fxname)
const;
144 virtual bool exists(
const QString &variable)
const;
146 const int &index = 0)
const;
163 QString
name()
const;
172 virtual QVariant
args();
bool fxExists(const QString &fxname) const
Determines whether the given function name exists in the current function pool.
Definition: InlineCalculator.cpp:478
void floatModulus()
Pops the top two vectors off the current stack and performs the floatModulusOperator() on the corresp...
Definition: InlineCalculator.cpp:362
virtual QVector< double > value(const QString &variable, const int &index=0) const
Return vector of doubles for Calculator functions.
Definition: InlineCalculator.cpp:708
CalculatorVariablePool()
Constructs a CalculatorVariablePool object.
Definition: InlineCalculator.cpp:676
void variable(const QVariant &variable)
Pushes the given value onto the stack as a variable.
Definition: InlineCalculator.cpp:326
void(InlineCalculator::* calcOp)()
Defines an InlineCalculator function that takes no arguments.
Definition: InlineCalculator.h:190
virtual void add(const QString &key, QVector< double > &values)
Add a parameter to the variable pool.
Definition: InlineCalculator.cpp:728
void(Calculator::* calcOp)()
Defines a Calculator function that takes no arguments.
Definition: InlineCalculator.h:238
void logicalOr()
Pops the top two vectors off the current stack and performs a logical or on each pair.
Definition: InlineCalculator.cpp:410
void dispatch()
Calls the function corresponding to this object using its stored InlineCalculator, InlineCalculator operator, and arguments.
Definition: InlineCalculator.cpp:851
This is a simple class to model a Calculator Variable Pool.
Definition: InlineCalculator.h:139
virtual ~FxBinder()
Destroys the FxBinder object.
Definition: InlineCalculator.cpp:747
FxBinder(const QString &name)
Constructs a function binder given a name.
Definition: InlineCalculator.cpp:740
void degrees()
Pops the top vector off the current stack and converts from radians to degrees.
Definition: InlineCalculator.cpp:392
int size() const
Accesses the number of functions, operators, variables, and scalars to be executed.
Definition: InlineCalculator.cpp:90
void logicalAnd()
Pops the top two vectors off the current stack and performs a logical and on each pair...
Definition: InlineCalculator.cpp:434
virtual ~InlineCalculator()
Destroys the InlineCalculator object.
Definition: InlineCalculator.cpp:78
Provides a calculator for inline equations.
Definition: InlineCalculator.h:67
virtual bool exists(const QString &variable) const
Returns true so the real error can be reported.
Definition: InlineCalculator.cpp:693
virtual bool orphanTokenHandler(const QString &token)
Default token handler if it is undefined during parsing/compilation.
Definition: InlineCalculator.cpp:529
FxBinder * FxTypePtr
Defintion for a FxTypePtr, a pointer to a function binder (FxBinder)
Definition: InlineCalculator.h:85
bool isScalar(const QString &scalar)
Determines whether the given string contains a scalar value (i.e.
Definition: InlineCalculator.cpp:272
InlineVoidFx(const QString &name, calcOp function, InlineCalculator *calculator)
Constructs an InlineVoid function from the given name, InlineCalculator operator, and InlineCalculato...
Definition: InlineCalculator.cpp:798
virtual ~InlineVoidFx()
Destroys the InlineVoidFx object.
Definition: InlineCalculator.cpp:808
QVector< double > evaluate()
Evaluate compiled equation with existing variable pool.
Definition: InlineCalculator.cpp:235
bool compile(const QString &equation)
Compiles the given equation for evaluation.
Definition: InlineCalculator.cpp:123
double floatModulusOperator(double a, double b)
Determines the remainder of the quotient a/b whose sign is the same as that of a. ...
Definition: InlineCalculator.cpp:352
QString equation() const
Accesses the string representation of the current equation, in postfix format.
Definition: InlineCalculator.cpp:102
QString name() const
The name assigned to this function binder.
Definition: InlineCalculator.cpp:756
virtual QString toPostfix(const QString &equation) const
Converts the given string from infix to postfix format.
Definition: InlineCalculator.cpp:258
bool isVariable(const QString &str)
Determines whether the given string is a variable.
Definition: InlineCalculator.cpp:292
void(InlineCalculator::* calcOp)(const QVariant &arg)
Defines an InlineCalculator function that takes arguments.
Definition: InlineCalculator.h:214
This is the parent class to the various function classes.
Definition: InlineCalculator.h:158
virtual ~ParameterFx()
Destroys the ParameterFx object.
Definition: InlineCalculator.cpp:842
This class is used to bind function names with corresponding Calculator functions that do not take pa...
Definition: InlineCalculator.h:235
void operator()()
Executes the function.
Definition: InlineCalculator.cpp:774
void pi()
Pushes the PI constant onto the current stack.
Definition: InlineCalculator.cpp:454
void radians()
Pops the top vector off the current stack and converts from degrees to radians.
Definition: InlineCalculator.cpp:377
ParameterFx(const QString &name, calcOp function, InlineCalculator *calculator)
Constructs a Parameter function from the given name (containing the appropriate parameters), InlineCalculator operator, and InlineCalculator.
Definition: InlineCalculator.cpp:832
This class is used to bind function names with corresponding InlineCalculator functions that do not t...
Definition: InlineCalculator.h:187
virtual QVariant args()
Accesses the arguments for this function.
Definition: InlineCalculator.cpp:785
virtual ~VoidFx()
Destroys the VoidFx object.
Definition: InlineCalculator.cpp:874
void execute()
Executes the function.
Definition: InlineCalculator.cpp:765
void dispatch()
Calls the function corresponding to this object using its stored Calculator and Calculator operator...
Definition: InlineCalculator.cpp:882
VoidFx(const QString &name, calcOp function, InlineCalculator *calculator)
Constructs a Void function from the given name, Calculator operator, and Calculator.
Definition: InlineCalculator.cpp:864
Definition: BoxcarCachingAlgorithm.h:29
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
InlineCalculator()
Constructs an InlineCalculator object by initializing the operator lookup list.
Definition: InlineCalculator.cpp:58
void eConstant()
Pushes the Euler constant (e) onto the current stack.
Definition: InlineCalculator.cpp:463
virtual void dispatch()=0
This method defines how to execute this function.
FxTypePtr addFunction(FxTypePtr function)
Adds a function to the function pool.
Definition: InlineCalculator.cpp:495
~CalculatorVariablePool()
Destroys the CalculatorVariablePool object.
Definition: InlineCalculator.cpp:683
void scalar(const QVariant &scalar)
Pushes the given value onto the stack as a scalar.
Definition: InlineCalculator.cpp:311
void dispatch()
Calls the function corresponding to this object using its stored InlineCalculator and InlineCalculato...
Definition: InlineCalculator.cpp:816
This class is used to bind function names with corresponding Calculator functions that take a paramet...
Definition: InlineCalculator.h:211
Calculator for arrays.
Definition: Calculator.h:70