VTK
|
Parse and evaluate a mathematical expression. More...
#include <vtkFunctionParser.h>
Public Types | |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. More... | |
vtkFunctionParser * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. More... | |
vtkMTimeType | GetMTime () override |
Return parser's MTime. More... | |
int | IsScalarResult () |
Check whether the result is a scalar result. More... | |
int | IsVectorResult () |
Check whether the result is a vector result. More... | |
double | GetScalarResult () |
Get a scalar result from evaluating the input function. More... | |
int | GetNumberOfScalarVariables () |
Get the number of scalar variables. More... | |
int | GetScalarVariableIndex (const char *name) |
Get scalar variable index or -1 if not found. More... | |
int | GetNumberOfVectorVariables () |
Get the number of vector variables. More... | |
int | GetVectorVariableIndex (const char *name) |
Get scalar variable index or -1 if not found. More... | |
const char * | GetScalarVariableName (int i) |
Get the ith scalar variable name. More... | |
const char * | GetVectorVariableName (int i) |
Get the ith vector variable name. More... | |
void | RemoveAllVariables () |
Remove all the current variables. More... | |
void | RemoveScalarVariables () |
Remove all the scalar variables. More... | |
void | RemoveVectorVariables () |
Remove all the vector variables. More... | |
void | CheckExpression (int &pos, char **error) |
Check the validity of the function expression. More... | |
void | InvalidateFunction () |
Allow the user to force the function to be re-parsed. More... | |
void | SetFunction (const char *function) |
Set/Get input string to evaluate. More... | |
virtual char * | GetFunction () |
Set/Get input string to evaluate. More... | |
double * | GetVectorResult () |
Get a vector result from evaluating the input function. More... | |
void | GetVectorResult (double result[3]) |
Get a vector result from evaluating the input function. More... | |
void | SetScalarVariableValue (const char *variableName, double value) |
Set the value of a scalar variable. More... | |
void | SetScalarVariableValue (int i, double value) |
Set the value of a scalar variable. More... | |
double | GetScalarVariableValue (const char *variableName) |
Get the value of a scalar variable. More... | |
double | GetScalarVariableValue (int i) |
Get the value of a scalar variable. More... | |
void | SetVectorVariableValue (const char *variableName, double xValue, double yValue, double zValue) |
Set the value of a vector variable. More... | |
void | SetVectorVariableValue (const char *variableName, const double values[3]) |
Set the value of a vector variable. More... | |
void | SetVectorVariableValue (int i, double xValue, double yValue, double zValue) |
Set the value of a vector variable. More... | |
void | SetVectorVariableValue (int i, const double values[3]) |
Set the value of a vector variable. More... | |
double * | GetVectorVariableValue (const char *variableName) |
Get the value of a vector variable. More... | |
void | GetVectorVariableValue (const char *variableName, double value[3]) |
Get the value of a vector variable. More... | |
double * | GetVectorVariableValue (int i) |
Get the value of a vector variable. More... | |
void | GetVectorVariableValue (int i, double value[3]) |
Get the value of a vector variable. More... | |
bool | GetScalarVariableNeeded (int i) |
Returns whether a scalar variable is needed for the function evaluation. More... | |
bool | GetScalarVariableNeeded (const char *variableName) |
Returns whether a scalar variable is needed for the function evaluation. More... | |
bool | GetVectorVariableNeeded (int i) |
Returns whether a vector variable is needed for the function evaluation. More... | |
bool | GetVectorVariableNeeded (const char *variableName) |
Returns whether a vector variable is needed for the function evaluation. More... | |
virtual void | SetReplaceInvalidValues (vtkTypeBool) |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue. More... | |
virtual vtkTypeBool | GetReplaceInvalidValues () |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue. More... | |
virtual void | ReplaceInvalidValuesOn () |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue. More... | |
virtual void | ReplaceInvalidValuesOff () |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue. More... | |
virtual void | SetReplacementValue (double) |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue. More... | |
virtual double | GetReplacementValue () |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue. More... | |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. More... | |
virtual void | DebugOff () |
Turn debugging output off. More... | |
bool | GetDebug () |
Get the value of the debug flag. More... | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. More... | |
virtual void | Modified () |
Update the modification time for this object. More... | |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
vtkTypeBool | HasObserver (unsigned long event) |
vtkTypeBool | HasObserver (const char *event) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Allow user to set the AbortFlagOn() with the return value of the callback method. More... | |
int | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
int | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. More... | |
virtual void | Delete () |
Delete a VTK object. More... | |
virtual void | FastDelete () |
Delete a reference to this object. More... | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. More... | |
virtual void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). More... | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). More... | |
int | GetReferenceCount () |
Return the current reference count of this object. More... | |
void | SetReferenceCount (int) |
Sets the reference count. More... | |
void | PrintRevisions (ostream &) |
Legacy. More... | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
Static Public Member Functions | |
static vtkFunctionParser * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkFunctionParser * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkObject | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. More... | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
Static Public Member Functions inherited from vtkObjectBase | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. More... | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkFunctionParser () | |
~vtkFunctionParser () override | |
int | Parse () |
bool | Evaluate () |
Evaluate the function, returning true on success, false on failure. More... | |
int | CheckSyntax () |
void | CopyParseError (int &position, char **error) |
void | RemoveSpaces () |
char * | RemoveSpacesFrom (const char *variableName) |
int | OperatorWithinVariable (int idx) |
int | BuildInternalFunctionStructure () |
void | BuildInternalSubstringStructure (int beginIndex, int endIndex) |
void | AddInternalByte (unsigned char newByte) |
int | IsSubstringCompletelyEnclosed (int beginIndex, int endIndex) |
int | FindEndOfMathFunction (int beginIndex) |
int | FindEndOfMathConstant (int beginIndex) |
int | IsVariableName (int currentIndex) |
int | IsElementaryOperator (int op) |
int | GetMathFunctionNumber (int currentIndex) |
int | GetMathFunctionNumberByCheckingParenthesis (int currentIndex) |
int | GetMathFunctionStringLength (int mathFunctionNumber) |
int | GetMathConstantNumber (int currentIndex) |
int | GetMathConstantStringLength (int mathConstantNumber) |
unsigned char | GetElementaryOperatorNumber (char op) |
unsigned int | GetOperandNumber (int currentIndex) |
int | GetVariableNameLength (int variableNumber) |
int | DisambiguateOperators () |
void | UpdateNeededVariables () |
Collects meta-data about which variables are needed by the current function. More... | |
virtual void | SetParseError (const char *) |
int | FindPositionInOriginalFunction (const int &pos) |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
~vtkObject () override | |
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) |
These methods allow a command to exclusively grab all events. More... | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. More... | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Protected Attributes | |
char * | Function |
char * | FunctionWithSpaces |
int | FunctionLength |
std::vector< std::string > | ScalarVariableNames |
std::vector< std::string > | VectorVariableNames |
std::vector< double > | ScalarVariableValues |
std::vector< vtkTuple< double, 3 > > | VectorVariableValues |
std::vector< bool > | ScalarVariableNeeded |
std::vector< bool > | VectorVariableNeeded |
unsigned char * | ByteCode |
int | ByteCodeSize |
double * | Immediates |
int | ImmediatesSize |
double * | Stack |
int | StackSize |
int | StackPointer |
vtkTimeStamp | FunctionMTime |
vtkTimeStamp | ParseMTime |
vtkTimeStamp | VariableMTime |
vtkTimeStamp | EvaluateMTime |
vtkTimeStamp | CheckMTime |
vtkTypeBool | ReplaceInvalidValues |
double | ReplacementValue |
int | ParseErrorPositon |
char * | ParseError |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
Protected Attributes inherited from vtkObjectBase | |
vtkAtomicInt32 | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
Parse and evaluate a mathematical expression.
vtkFunctionParser is a class that takes in a mathematical expression as a char string, parses it, and evaluates it at the specified values of the variables in the input string.
You can use the "if" operator to create conditional expressions such as if ( test, trueresult, falseresult). These evaluate the boolean valued test expression and then evaluate either the trueresult or the falseresult expression to produce a final (scalar or vector valued) value. "test" may contain <,>,=,|,&, and () and all three subexpressions can evaluate arbitrary function operators (ln, cos, +, if, etc)
Definition at line 136 of file vtkFunctionParser.h.
Definition at line 140 of file vtkFunctionParser.h.
|
protected |
|
overrideprotected |
|
static |
|
static |
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class.
Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkObjectBase.
|
static |
|
protectedvirtual |
vtkFunctionParser* vtkFunctionParser::NewInstance | ( | ) | const |
|
overridevirtual |
|
overridevirtual |
Return parser's MTime.
Reimplemented from vtkObject.
void vtkFunctionParser::SetFunction | ( | const char * | function | ) |
Set/Get input string to evaluate.
|
virtual |
Set/Get input string to evaluate.
int vtkFunctionParser::IsScalarResult | ( | ) |
Check whether the result is a scalar result.
If it isn't, then either the result is a vector or an error has occurred.
int vtkFunctionParser::IsVectorResult | ( | ) |
Check whether the result is a vector result.
If it isn't, then either the result is scalar or an error has occurred.
double vtkFunctionParser::GetScalarResult | ( | ) |
Get a scalar result from evaluating the input function.
double* vtkFunctionParser::GetVectorResult | ( | ) |
Get a vector result from evaluating the input function.
|
inline |
Get a vector result from evaluating the input function.
Definition at line 178 of file vtkFunctionParser.h.
void vtkFunctionParser::SetScalarVariableValue | ( | const char * | variableName, |
double | value | ||
) |
Set the value of a scalar variable.
If a variable with this name exists, then its value will be set to the new value. If there is not already a variable with this name, variableName will be added to the list of variables, and its value will be set to the new value.
Set the value of a scalar variable.
If a variable with this name exists, then its value will be set to the new value. If there is not already a variable with this name, variableName will be added to the list of variables, and its value will be set to the new value.
double vtkFunctionParser::GetScalarVariableValue | ( | const char * | variableName | ) |
Get the value of a scalar variable.
void vtkFunctionParser::SetVectorVariableValue | ( | const char * | variableName, |
double | xValue, | ||
double | yValue, | ||
double | zValue | ||
) |
Set the value of a vector variable.
If a variable with this name exists, then its value will be set to the new value. If there is not already a variable with this name, variableName will be added to the list of variables, and its value will be set to the new value.
|
inline |
Set the value of a vector variable.
If a variable with this name exists, then its value will be set to the new value. If there is not already a variable with this name, variableName will be added to the list of variables, and its value will be set to the new value.
Definition at line 211 of file vtkFunctionParser.h.
void vtkFunctionParser::SetVectorVariableValue | ( | int | i, |
double | xValue, | ||
double | yValue, | ||
double | zValue | ||
) |
Set the value of a vector variable.
If a variable with this name exists, then its value will be set to the new value. If there is not already a variable with this name, variableName will be added to the list of variables, and its value will be set to the new value.
Set the value of a vector variable.
If a variable with this name exists, then its value will be set to the new value. If there is not already a variable with this name, variableName will be added to the list of variables, and its value will be set to the new value.
Definition at line 216 of file vtkFunctionParser.h.
double* vtkFunctionParser::GetVectorVariableValue | ( | const char * | variableName | ) |
Get the value of a vector variable.
|
inline |
Get the value of a vector variable.
Definition at line 225 of file vtkFunctionParser.h.
Get the value of a vector variable.
Definition at line 229 of file vtkFunctionParser.h.
|
inline |
Get the number of scalar variables.
Definition at line 237 of file vtkFunctionParser.h.
int vtkFunctionParser::GetScalarVariableIndex | ( | const char * | name | ) |
Get scalar variable index or -1 if not found.
|
inline |
Get the number of vector variables.
Definition at line 248 of file vtkFunctionParser.h.
int vtkFunctionParser::GetVectorVariableIndex | ( | const char * | name | ) |
Get scalar variable index or -1 if not found.
const char* vtkFunctionParser::GetScalarVariableName | ( | int | i | ) |
Get the ith scalar variable name.
const char* vtkFunctionParser::GetVectorVariableName | ( | int | i | ) |
Get the ith vector variable name.
bool vtkFunctionParser::GetScalarVariableNeeded | ( | int | i | ) |
Returns whether a scalar variable is needed for the function evaluation.
This is only valid after a successful Parse(). Thus, call GetScalarResult() or IsScalarResult() or similar method before calling this.
bool vtkFunctionParser::GetScalarVariableNeeded | ( | const char * | variableName | ) |
Returns whether a scalar variable is needed for the function evaluation.
This is only valid after a successful Parse(). Thus, call GetScalarResult() or IsScalarResult() or similar method before calling this.
bool vtkFunctionParser::GetVectorVariableNeeded | ( | int | i | ) |
Returns whether a vector variable is needed for the function evaluation.
This is only valid after a successful Parse(). Thus, call GetVectorResult() or IsVectorResult() or similar method before calling this.
bool vtkFunctionParser::GetVectorVariableNeeded | ( | const char * | variableName | ) |
Returns whether a vector variable is needed for the function evaluation.
This is only valid after a successful Parse(). Thus, call GetVectorResult() or IsVectorResult() or similar method before calling this.
void vtkFunctionParser::RemoveAllVariables | ( | ) |
Remove all the current variables.
void vtkFunctionParser::RemoveScalarVariables | ( | ) |
Remove all the scalar variables.
void vtkFunctionParser::RemoveVectorVariables | ( | ) |
Remove all the vector variables.
|
virtual |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue.
Otherwise an error will be reported
|
virtual |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue.
Otherwise an error will be reported
|
virtual |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue.
Otherwise an error will be reported
|
virtual |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue.
Otherwise an error will be reported
|
virtual |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue.
Otherwise an error will be reported
|
virtual |
When ReplaceInvalidValues is on, all invalid values (such as sqrt(-2), note that function parser does not handle complex numbers) will be replaced by ReplacementValue.
Otherwise an error will be reported
void vtkFunctionParser::CheckExpression | ( | int & | pos, |
char ** | error | ||
) |
Check the validity of the function expression.
void vtkFunctionParser::InvalidateFunction | ( | ) |
Allow the user to force the function to be re-parsed.
|
protected |
|
protected |
Evaluate the function, returning true on success, false on failure.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Collects meta-data about which variables are needed by the current function.
This is called only after a successful call to this->Parse().
|
protectedvirtual |
|
protected |
Definition at line 376 of file vtkFunctionParser.h.
|
protected |
Definition at line 377 of file vtkFunctionParser.h.
|
protected |
Definition at line 379 of file vtkFunctionParser.h.
|
protected |
Definition at line 380 of file vtkFunctionParser.h.
|
protected |
Definition at line 381 of file vtkFunctionParser.h.
|
protected |
Definition at line 382 of file vtkFunctionParser.h.
Definition at line 383 of file vtkFunctionParser.h.
|
protected |
Definition at line 384 of file vtkFunctionParser.h.
|
protected |
Definition at line 385 of file vtkFunctionParser.h.
|
protected |
Definition at line 387 of file vtkFunctionParser.h.
|
protected |
Definition at line 388 of file vtkFunctionParser.h.
|
protected |
Definition at line 389 of file vtkFunctionParser.h.
|
protected |
Definition at line 390 of file vtkFunctionParser.h.
|
protected |
Definition at line 391 of file vtkFunctionParser.h.
|
protected |
Definition at line 392 of file vtkFunctionParser.h.
|
protected |
Definition at line 393 of file vtkFunctionParser.h.
|
protected |
Definition at line 395 of file vtkFunctionParser.h.
|
protected |
Definition at line 396 of file vtkFunctionParser.h.
|
protected |
Definition at line 397 of file vtkFunctionParser.h.
|
protected |
Definition at line 398 of file vtkFunctionParser.h.
|
protected |
Definition at line 399 of file vtkFunctionParser.h.
|
protected |
Definition at line 401 of file vtkFunctionParser.h.
|
protected |
Definition at line 402 of file vtkFunctionParser.h.
|
protected |
Definition at line 404 of file vtkFunctionParser.h.
|
protected |
Definition at line 405 of file vtkFunctionParser.h.