ExpressionΒΆ
class Expression
An Expression is a Lua scriptable control.
Hierarchy
class Expression < class ControlNode < class HostNode < class Node < class SelectableNode
Members
function | Code | R | The expression compiled code, dependent on Script |
nil | Invalid | R | The message plug that dependends on all inputs, and on which all outputs depend |
string | Script | RW | The expression Lua code |
| add | (
|
Add an input/output to the Expression |
| setLua | (
|
Set the expression Lua script |
Inherited from class HostNode
types.string | HostPath | RW | The data archive to read HostPlugs value when baked |
| deleteinheritedattr | (
|
Delete an inherited attribute plug from the node |
| setinheritedattr | (
|
Set the inheritance status of the attribute |
| overrideinheritedattr | (
|
Override the attribute |
Inherited from class Node
string | Name | RW | The node name |
| onpathchanged | ( ) | Called by the framework when the name of this node or of one of its parent is modified |
| eval | (
|
Called by the framework when plug (a node's plug) must be evaluated |
| isselected | ( ) | Tell if the node is selected |
| getparent | ( ) | Get the parent Node of this Node |
| isparent | (
|
Tells if this node is parent of the potential child |
| findparent | (
|
Find the first parent Node of this Node of a specific class |
| getpath | ( ) | Returns the node path as a string that can be reused with findchild |
| findchild | (
|
Find a child node or plug using a path |
| move | (
|
Move a node to a new parent |
| delete | ( ) | Delete a node |
| rename | (
|
Rename a node |
| getname | ( ) | Get the Node name in its parent |
| getchild | (
|
Get a child node by its name |
| isreference | ( ) | Tells if a node comes from a reference project |
| getreference | ( ) | Returns the reference node it is connected to |
| gettopreference | ( ) | Returns the top reference node it is connected to |
| belongstoreference | (
|
Tells if the node belongs to the reference, or a sub reference |
| loadfile | (
|
load a file content in this node. Possible options are: overrideclass to enforce a specific class for the root node. |
| referencefile | (
|
reference a file content in this node. |
| loadtemplate | (
|
load a template file |
| savefile | (
|
load a node to a file |
| getstringcopy | ( ) | Return a copy of the node and its content as a string to be pasted |
| setflags | ( ) | Set the node flags |
| ismoveable | ( ) | Tells if the node can be moved |
| pastestringcopy | (
|
Paste a string copy into this node |
| getreferences | (
[
|
Returns the references in the document sorted depth first. |
| iseditable | ( ) | Indicates if the node can be edited by the user in the UI |
| seteditable | (
|
Change the editable state of the node |
Inherited from class SelectableNode
boolean | Selected | R | True if the node is selected. Don't use this plug directly to select a node, use the Document's modifier select method. |
Documentation
The expression compiled code, dependent on Script
The message plug that dependends on all inputs, and on which all outputs depend
The expression Lua code
An Expression code is a Lua script that evaluates its output values using its input values. The Expression evaluation is dependent only on its inputs, meaning that if you use other values than declared inputs in your script, you might have invalidation problems.
Within the script context, inputs are accessible directly by their names, and output
are also accessible by their names. For instance: Output = Input * 2
is a valid script, where Output and Input have been declared earlier (that is, added
as ExpressionInput and ExpressionOutput to the Expression node).
On the other hand, Output = Document.Time:get ()*0.1
is a syntaxically correct script, though Guerilla won't recompute Output value when
time changes. To do such a thing, you must first create an ExpressionInput (Time, for
instance), and then Time will be available within the script.
Add an input/output to the Expression
Creates an input/output to the Expression. This method fails if a plug of the same name already exists in the Expression.
Here an example of how to use Expression:
local mod = Document:modify ()
local expression = mod.createnode (Document, "Expression", "MyExpression")
local input = expression:add ("Value1", types.string, true, "")
local output = expression:add ("Output", types.string)
expression:setLua ("Output = 'Output value is : ' .. Value")
mod.finish ()
To remove an input or an output, simply use modifier.deleteplug function.
local mod = Document:modify ()
mod.deleteplug (expression.Value1)
mod.finish ()
name The input/output nametype the type of the input/outputisinput True to create an inputvalue The default value to assign to the input
plug
Set the expression Lua script
script a Lua script