VTK  9.1.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
vtkExprTkFunctionParser Class Reference

Parse and evaluate a mathematical expression. More...

#include <vtkExprTkFunctionParser.h>

Inheritance diagram for vtkExprTkFunctionParser:
[legend]
Collaboration diagram for vtkExprTkFunctionParser:
[legend]

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.
 
vtkExprTkFunctionParserNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses.
 
vtkMTimeType GetMTime () override
 Return parser's MTime.
 
int IsScalarResult ()
 Check whether the result is a scalar result.
 
int IsVectorResult ()
 Check whether the result is a vector result.
 
double GetScalarResult ()
 Get a scalar result from evaluating the input function.
 
int GetNumberOfScalarVariables ()
 Get the number of scalar variables.
 
int GetScalarVariableIndex (const std::string &name)
 Get scalar variable index or -1 if not found.
 
int GetNumberOfVectorVariables ()
 Get the number of vector variables.
 
int GetVectorVariableIndex (const std::string &name)
 Get scalar variable index or -1 if not found.
 
std::string GetScalarVariableName (int i)
 Get the ith scalar variable name.
 
std::string GetVectorVariableName (int i)
 Get the ith vector variable name.
 
void RemoveAllVariables ()
 Remove all the current variables.
 
void RemoveScalarVariables ()
 Remove all the scalar variables.
 
void RemoveVectorVariables ()
 Remove all the vector variables.
 
void InvalidateFunction ()
 Allow the user to force the function to be re-parsed.
 
void SetFunction (const char *function)
 Set/Get input string to evaluate.
 
const char * GetFunction ()
 Set/Get input string to evaluate.
 
double * GetVectorResult ()
 Get a vector result from evaluating the input function.
 
void GetVectorResult (double result[3])
 Get a vector result from evaluating the input function.
 
void SetScalarVariableValue (const std::string &variableName, double value)
 Set the value of a scalar variable.
 
void SetScalarVariableValue (int i, double value)
 Set the value of a scalar variable.
 
double GetScalarVariableValue (const std::string &variableName)
 Get the value of a scalar variable.
 
double GetScalarVariableValue (int i)
 Get the value of a scalar variable.
 
void SetVectorVariableValue (const std::string &variableName, double xValue, double yValue, double zValue)
 Set the value of a vector variable.
 
void SetVectorVariableValue (const std::string &variableName, double values[3])
 Set the value of a vector variable.
 
void SetVectorVariableValue (int i, double xValue, double yValue, double zValue)
 Set the value of a vector variable.
 
void SetVectorVariableValue (int i, double values[3])
 Set the value of a vector variable.
 
double * GetVectorVariableValue (const std::string &variableName)
 Get the value of a vector variable.
 
void GetVectorVariableValue (const std::string &variableName, double value[3])
 Get the value of a vector variable.
 
double * GetVectorVariableValue (int i)
 Get the value of a vector variable.
 
void GetVectorVariableValue (int i, double value[3])
 Get the value of a vector variable.
 
bool GetScalarVariableNeeded (int i)
 Returns whether a scalar variable is needed for the function evaluation.
 
bool GetScalarVariableNeeded (const std::string &variableName)
 Returns whether a scalar variable is needed for the function evaluation.
 
bool GetVectorVariableNeeded (int i)
 Returns whether a vector variable is needed for the function evaluation.
 
bool GetVectorVariableNeeded (const std::string &variableName)
 Returns whether a vector variable is needed for the function evaluation.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on.
 
virtual void DebugOff ()
 Turn debugging output off.
 
bool GetDebug ()
 Get the value of the debug flag.
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag.
 
virtual void Modified ()
 Update the modification time for this object.
 
virtual vtkMTimeType GetMTime ()
 Return this object's modified time.
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses.
 
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.
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkTypeBool HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkTypeBool HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
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.
 
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.
 
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.
 
int InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not.
 
int InvokeEvent (const char *event, void *callData)
 This method invokes an event and return whether the event was aborted or not.
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string.
 
virtual vtkTypeBool IsA (const char *name)
 Return 1 if this class is the same type of (or a subclass of) the named class.
 
virtual vtkIdType GetNumberOfGenerationsFromBase (const char *name)
 Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class).
 
virtual void Delete ()
 Delete a VTK object.
 
virtual void FastDelete ()
 Delete a reference to this object.
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream.
 
virtual void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object).
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object).
 
int GetReferenceCount ()
 Return the current reference count of this object.
 
void SetReferenceCount (int)
 Sets the reference count.
 
bool GetIsInMemkind () const
 A local state flag that remembers whether this object lives in the normal or extended memory space.
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses.
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses.
 

Static Public Member Functions

static vtkExprTkFunctionParserNew ()
 
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkExprTkFunctionParserSafeDownCast (vtkObjectBase *o)
 
static std::string SanitizeName (const char *name)
 Sanitize a label/name to remove spaces, delimiters etc.
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes.
 
static void SetGlobalWarningDisplay (int val)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static int GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
- 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.
 
static vtkIdType GetNumberOfGenerationsFromBaseType (const char *name)
 Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class).
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
 
static void SetMemkindDirectory (const char *directoryname)
 The name of a directory, ideally mounted -o dax, to memory map an extended memory space within.
 
static bool GetUsingMemkind ()
 A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space.
 

Protected Types

enum  ParseMode { DetectReturnType , SaveResultInVariable }
 The first mode parses the function and uses a return statement to identify the ReturnType. More...
 
enum  VectorReturningFunction { Cross , Norm }
 Enum that defines the vector returning functions that are not supported by ExprTk. More...
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkExprTkFunctionParser ()
 
 ~vtkExprTkFunctionParser () override
 
int Parse (ParseMode mode)
 Parses the given function, returning true on success, false on failure.
 
std::string FixVectorReturningFunctionOccurrences (VectorReturningFunction vectorReturningFunction)
 ExprTk does not support functions which return a vector.
 
bool CheckOldFormatOfDotProductUsage ()
 Check possible usage of old format of dot product, e.g.
 
bool Evaluate ()
 Evaluate the function, returning true on success, false on failure.
 
void UpdateNeededVariables ()
 Collects meta-data about which variables are needed by the current function.
 
- 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.
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events.
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void RegisterInternal (vtkObjectBase *, vtkTypeBool check)
 
virtual void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

std::string Function
 
std::string FunctionWithUsedVariableNames
 
std::string ExpressionString
 
std::vector< std::string > OriginalScalarVariableNames
 
std::vector< std::string > UsedScalarVariableNames
 
std::vector< std::string > OriginalVectorVariableNames
 
std::vector< std::string > UsedVectorVariableNames
 
std::vector< double * > ScalarVariableValues
 
std::vector< vtkTuple< double, 3 > * > VectorVariableValues
 
std::vector< bool > ScalarVariableNeeded
 
std::vector< bool > VectorVariableNeeded
 
vtkTimeStamp FunctionMTime
 
vtkTimeStamp ParseMTime
 
vtkTimeStamp VariableMTime
 
vtkTimeStamp EvaluateMTime
 
vtkTypeBool ReplaceInvalidValues
 
double ReplacementValue
 
vtkExprTkTools * ExprTkTools
 
int ResultType
 
vtkTuple< double, 3 > Result
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Additional Inherited Members

- Static Protected Member Functions inherited from vtkObjectBase
static vtkMallocingFunction GetCurrentMallocFunction ()
 
static vtkReallocingFunction GetCurrentReallocFunction ()
 
static vtkFreeingFunction GetCurrentFreeFunction ()
 
static vtkFreeingFunction GetAlternateFreeFunction ()
 

Detailed Description

Parse and evaluate a mathematical expression.

vtkExprTkFunctionParser is a wrapper class of the ExprTK library 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.

The detailed documentation of the supported functionality is described in https://github.com/ArashPartow/exprtk. In addition to the documented functionality, the following vector operations have been implemented: 1) cross(v1, v2), cross product of two vectors, 2) mag(v), magnitude of a vector, 3) norm(v), the normalized version of a vector.

Thanks:
Arash Partow for implementing the ExprTk library.

Definition at line 46 of file vtkExprTkFunctionParser.h.

Member Typedef Documentation

◆ Superclass

Definition at line 50 of file vtkExprTkFunctionParser.h.

Member Enumeration Documentation

◆ ParseMode

The first mode parses the function and uses a return statement to identify the ReturnType.

The second mode parses the function and uses a result vector to store the results of the function knowing its return type. The second mode is used because it's a lot faster than the first.

Enumerator
DetectReturnType 
SaveResultInVariable 

Definition at line 281 of file vtkExprTkFunctionParser.h.

◆ VectorReturningFunction

Enum that defines the vector returning functions that are not supported by ExprTk.

Enumerator
Cross 
Norm 

Definition at line 297 of file vtkExprTkFunctionParser.h.

Constructor & Destructor Documentation

◆ vtkExprTkFunctionParser()

vtkExprTkFunctionParser::vtkExprTkFunctionParser ( )
protected

◆ ~vtkExprTkFunctionParser()

vtkExprTkFunctionParser::~vtkExprTkFunctionParser ( )
overrideprotected

Member Function Documentation

◆ New()

static vtkExprTkFunctionParser * vtkExprTkFunctionParser::New ( )
static

◆ IsTypeOf()

static vtkTypeBool vtkExprTkFunctionParser::IsTypeOf ( const char *  type)
static

◆ IsA()

virtual vtkTypeBool vtkExprTkFunctionParser::IsA ( const char *  name)
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.

◆ SafeDownCast()

static vtkExprTkFunctionParser * vtkExprTkFunctionParser::SafeDownCast ( vtkObjectBase o)
static

◆ NewInstanceInternal()

virtual vtkObjectBase * vtkExprTkFunctionParser::NewInstanceInternal ( ) const
protectedvirtual

◆ NewInstance()

vtkExprTkFunctionParser * vtkExprTkFunctionParser::NewInstance ( ) const

◆ PrintSelf()

void vtkExprTkFunctionParser::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

◆ GetMTime()

vtkMTimeType vtkExprTkFunctionParser::GetMTime ( )
overridevirtual

Return parser's MTime.

Reimplemented from vtkObject.

◆ SetFunction()

void vtkExprTkFunctionParser::SetFunction ( const char *  function)

Set/Get input string to evaluate.

◆ GetFunction()

const char * vtkExprTkFunctionParser::GetFunction ( )
inline

Set/Get input string to evaluate.

Definition at line 63 of file vtkExprTkFunctionParser.h.

◆ IsScalarResult()

int vtkExprTkFunctionParser::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.

◆ IsVectorResult()

int vtkExprTkFunctionParser::IsVectorResult ( )

Check whether the result is a vector result.

If it isn't, then either the result is scalar or an error has occurred.

◆ GetScalarResult()

double vtkExprTkFunctionParser::GetScalarResult ( )

Get a scalar result from evaluating the input function.

If ReplaceInvalidValues is not set, then the error value that will be return is NaN.

◆ GetVectorResult() [1/2]

double * vtkExprTkFunctionParser::GetVectorResult ( )

Get a vector result from evaluating the input function.

If ReplaceInvalidValues is not set, then the error value that will be return is [NaN, NaN, NaN].

◆ GetVectorResult() [2/2]

void vtkExprTkFunctionParser::GetVectorResult ( double  result[3])
inline

Get a vector result from evaluating the input function.

If ReplaceInvalidValues is not set, then the error value that will be return is [NaN, NaN, NaN].

Definition at line 94 of file vtkExprTkFunctionParser.h.

◆ SetScalarVariableValue() [1/2]

void vtkExprTkFunctionParser::SetScalarVariableValue ( const std::string &  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. If the variable name is not sanitized, it should be provided in quotes, and a valid unique string will be used as a replacement by the parser.

Note
A sanitized variable name is accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

◆ SetScalarVariableValue() [2/2]

void vtkExprTkFunctionParser::SetScalarVariableValue ( int  i,
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. If the variable name is not sanitized, it should be provided in quotes, and a valid unique string will be used as a replacement by the parser.

Note
A sanitized variable name is accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

◆ GetScalarVariableValue() [1/2]

double vtkExprTkFunctionParser::GetScalarVariableValue ( const std::string &  variableName)

Get the value of a scalar variable.

◆ GetScalarVariableValue() [2/2]

double vtkExprTkFunctionParser::GetScalarVariableValue ( int  i)

Get the value of a scalar variable.

◆ SetVectorVariableValue() [1/4]

void vtkExprTkFunctionParser::SetVectorVariableValue ( const std::string &  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. If the variable name is not sanitized, it should be provided in quotes, and a valid unique string will be used as a replacement by the parser.

Note
A sanitized variable name is accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

◆ SetVectorVariableValue() [2/4]

void vtkExprTkFunctionParser::SetVectorVariableValue ( const std::string &  variableName,
double  values[3] 
)
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. If the variable name is not sanitized, it should be provided in quotes, and a valid unique string will be used as a replacement by the parser.

Note
A sanitized variable name is accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

Definition at line 139 of file vtkExprTkFunctionParser.h.

◆ SetVectorVariableValue() [3/4]

void vtkExprTkFunctionParser::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. If the variable name is not sanitized, it should be provided in quotes, and a valid unique string will be used as a replacement by the parser.

Note
A sanitized variable name is accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

◆ SetVectorVariableValue() [4/4]

void vtkExprTkFunctionParser::SetVectorVariableValue ( int  i,
double  values[3] 
)
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. If the variable name is not sanitized, it should be provided in quotes, and a valid unique string will be used as a replacement by the parser.

Note
A sanitized variable name is accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

Definition at line 144 of file vtkExprTkFunctionParser.h.

◆ GetVectorVariableValue() [1/4]

double * vtkExprTkFunctionParser::GetVectorVariableValue ( const std::string &  variableName)

Get the value of a vector variable.

◆ GetVectorVariableValue() [2/4]

void vtkExprTkFunctionParser::GetVectorVariableValue ( const std::string &  variableName,
double  value[3] 
)
inline

Get the value of a vector variable.

Definition at line 155 of file vtkExprTkFunctionParser.h.

◆ GetVectorVariableValue() [3/4]

double * vtkExprTkFunctionParser::GetVectorVariableValue ( int  i)

Get the value of a vector variable.

◆ GetVectorVariableValue() [4/4]

void vtkExprTkFunctionParser::GetVectorVariableValue ( int  i,
double  value[3] 
)
inline

Get the value of a vector variable.

Definition at line 163 of file vtkExprTkFunctionParser.h.

◆ GetNumberOfScalarVariables()

int vtkExprTkFunctionParser::GetNumberOfScalarVariables ( )
inline

Get the number of scalar variables.

Definition at line 175 of file vtkExprTkFunctionParser.h.

◆ GetScalarVariableIndex()

int vtkExprTkFunctionParser::GetScalarVariableIndex ( const std::string &  name)

Get scalar variable index or -1 if not found.

◆ GetNumberOfVectorVariables()

int vtkExprTkFunctionParser::GetNumberOfVectorVariables ( )
inline

Get the number of vector variables.

Definition at line 188 of file vtkExprTkFunctionParser.h.

◆ GetVectorVariableIndex()

int vtkExprTkFunctionParser::GetVectorVariableIndex ( const std::string &  name)

Get scalar variable index or -1 if not found.

◆ GetScalarVariableName()

std::string vtkExprTkFunctionParser::GetScalarVariableName ( int  i)

Get the ith scalar variable name.

◆ GetVectorVariableName()

std::string vtkExprTkFunctionParser::GetVectorVariableName ( int  i)

Get the ith vector variable name.

◆ GetScalarVariableNeeded() [1/2]

bool vtkExprTkFunctionParser::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.

◆ GetScalarVariableNeeded() [2/2]

bool vtkExprTkFunctionParser::GetScalarVariableNeeded ( const std::string &  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.

◆ GetVectorVariableNeeded() [1/2]

bool vtkExprTkFunctionParser::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.

◆ GetVectorVariableNeeded() [2/2]

bool vtkExprTkFunctionParser::GetVectorVariableNeeded ( const std::string &  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.

◆ RemoveAllVariables()

void vtkExprTkFunctionParser::RemoveAllVariables ( )

Remove all the current variables.

◆ RemoveScalarVariables()

void vtkExprTkFunctionParser::RemoveScalarVariables ( )

Remove all the scalar variables.

◆ RemoveVectorVariables()

void vtkExprTkFunctionParser::RemoveVectorVariables ( )

Remove all the vector variables.

◆ SetReplaceInvalidValues()

virtual void vtkExprTkFunctionParser::SetReplaceInvalidValues ( vtkTypeBool  )
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

◆ GetReplaceInvalidValues()

virtual vtkTypeBool vtkExprTkFunctionParser::GetReplaceInvalidValues ( )
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

◆ ReplaceInvalidValuesOn()

virtual void vtkExprTkFunctionParser::ReplaceInvalidValuesOn ( )
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

◆ ReplaceInvalidValuesOff()

virtual void vtkExprTkFunctionParser::ReplaceInvalidValuesOff ( )
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

◆ SetReplacementValue()

virtual void vtkExprTkFunctionParser::SetReplacementValue ( double  )
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

◆ GetReplacementValue()

virtual double vtkExprTkFunctionParser::GetReplacementValue ( )
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

◆ InvalidateFunction()

void vtkExprTkFunctionParser::InvalidateFunction ( )

Allow the user to force the function to be re-parsed.

◆ SanitizeName()

static std::string vtkExprTkFunctionParser::SanitizeName ( const char *  name)
static

Sanitize a label/name to remove spaces, delimiters etc.

Once the label/name is sanitized is can be accepted by the following regex: ^[a-zA-Z][a-zA-Z_0-9]*.

Note
taken from vtkSMCoreUtilities

◆ Parse()

int vtkExprTkFunctionParser::Parse ( ParseMode  mode)
protected

Parses the given function, returning true on success, false on failure.

It has 2 modes (see ParseMode). Both modes need to be utilized to extract results of a function.

◆ FixVectorReturningFunctionOccurrences()

std::string vtkExprTkFunctionParser::FixVectorReturningFunctionOccurrences ( VectorReturningFunction  vectorReturningFunction)
protected

ExprTk does not support functions which return a vector.

All the cross(v1,v2) occurrences will be replaced with (iHat*crossX(v1,v2)+jHat*crossY(v1,v2)+kHat*crossZ(v1,v2)).

All the norm(v) occurrences will be replaced with ((v)/mag(v)).

◆ CheckOldFormatOfDotProductUsage()

bool vtkExprTkFunctionParser::CheckOldFormatOfDotProductUsage ( )
protected

Check possible usage of old format of dot product, e.g.

v1.v2

◆ Evaluate()

bool vtkExprTkFunctionParser::Evaluate ( )
protected

Evaluate the function, returning true on success, false on failure.

◆ UpdateNeededVariables()

void vtkExprTkFunctionParser::UpdateNeededVariables ( )
protected

Collects meta-data about which variables are needed by the current function.

This is called only after a successful call to this->Parse().

Member Data Documentation

◆ Function

std::string vtkExprTkFunctionParser::Function
protected

Definition at line 330 of file vtkExprTkFunctionParser.h.

◆ FunctionWithUsedVariableNames

std::string vtkExprTkFunctionParser::FunctionWithUsedVariableNames
protected

Definition at line 331 of file vtkExprTkFunctionParser.h.

◆ ExpressionString

std::string vtkExprTkFunctionParser::ExpressionString
protected

Definition at line 332 of file vtkExprTkFunctionParser.h.

◆ OriginalScalarVariableNames

std::vector<std::string> vtkExprTkFunctionParser::OriginalScalarVariableNames
protected

Definition at line 336 of file vtkExprTkFunctionParser.h.

◆ UsedScalarVariableNames

std::vector<std::string> vtkExprTkFunctionParser::UsedScalarVariableNames
protected

Definition at line 337 of file vtkExprTkFunctionParser.h.

◆ OriginalVectorVariableNames

std::vector<std::string> vtkExprTkFunctionParser::OriginalVectorVariableNames
protected

Definition at line 338 of file vtkExprTkFunctionParser.h.

◆ UsedVectorVariableNames

std::vector<std::string> vtkExprTkFunctionParser::UsedVectorVariableNames
protected

Definition at line 339 of file vtkExprTkFunctionParser.h.

◆ ScalarVariableValues

std::vector<double*> vtkExprTkFunctionParser::ScalarVariableValues
protected

Definition at line 344 of file vtkExprTkFunctionParser.h.

◆ VectorVariableValues

std::vector<vtkTuple<double, 3>*> vtkExprTkFunctionParser::VectorVariableValues
protected

Definition at line 345 of file vtkExprTkFunctionParser.h.

◆ ScalarVariableNeeded

std::vector<bool> vtkExprTkFunctionParser::ScalarVariableNeeded
protected

Definition at line 346 of file vtkExprTkFunctionParser.h.

◆ VectorVariableNeeded

std::vector<bool> vtkExprTkFunctionParser::VectorVariableNeeded
protected

Definition at line 347 of file vtkExprTkFunctionParser.h.

◆ FunctionMTime

vtkTimeStamp vtkExprTkFunctionParser::FunctionMTime
protected

Definition at line 349 of file vtkExprTkFunctionParser.h.

◆ ParseMTime

vtkTimeStamp vtkExprTkFunctionParser::ParseMTime
protected

Definition at line 350 of file vtkExprTkFunctionParser.h.

◆ VariableMTime

vtkTimeStamp vtkExprTkFunctionParser::VariableMTime
protected

Definition at line 351 of file vtkExprTkFunctionParser.h.

◆ EvaluateMTime

vtkTimeStamp vtkExprTkFunctionParser::EvaluateMTime
protected

Definition at line 352 of file vtkExprTkFunctionParser.h.

◆ ReplaceInvalidValues

vtkTypeBool vtkExprTkFunctionParser::ReplaceInvalidValues
protected

Definition at line 354 of file vtkExprTkFunctionParser.h.

◆ ReplacementValue

double vtkExprTkFunctionParser::ReplacementValue
protected

Definition at line 355 of file vtkExprTkFunctionParser.h.

◆ ExprTkTools

vtkExprTkTools* vtkExprTkFunctionParser::ExprTkTools
protected

Definition at line 357 of file vtkExprTkFunctionParser.h.

◆ ResultType

int vtkExprTkFunctionParser::ResultType
protected

Definition at line 359 of file vtkExprTkFunctionParser.h.

◆ Result

vtkTuple<double, 3> vtkExprTkFunctionParser::Result
protected

Definition at line 360 of file vtkExprTkFunctionParser.h.


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