ShaderNodeSLΒΆ

class ShaderNodeSL

Special shader node that contains a RenderMan Shading Language script.

Hierarchy

class ShaderNodeSL < class ShaderNode < class SelectableNode < class Node

Members

Plugs:

string Script RW The RenderMan SL script. This script must be written in the RenderMan Shading Languague syntax. The script must contains at least one function. The last function declared in the script will be used as main function for this node. Once evaluated, the node will create inputs and outputs according to the main function's prototype. The following script will create a node with two inputs and two outputs plugs : float addAndMul (float a, b; output float mul) { mul = a * b; return a + b; } Use the setSL method to change this plug.

Methods:

nil setSL ( string value ) Compiles the SL node script


Inherited from class ShaderNode

Plugs:

string Code RW The shader node default BOOTS code
string CodeRT RW The shader node BOOTS code specialized for OpenGL
boolean Collapsed RW The shader node collapse state, true for collapsed, false for expanded
{float,float} NodePos RW The shader node position in shader view

Methods:

ShaderNode result addnode ( string filename ) add a node into a shader node by its filename
ShaderNodeIn input createinput ( string name , type type ) Create a new input
ShaderNodeOut input createoutput ( string name ) Create a new output
nil fillnodefooter ( table template ) Fill the template footer with custom attributes
nil fillnodeinputstemplate ( table template ) Fill the template with inputs and ouputs extended controls
nil fillnodetemplate ( table template ) Fill the template with custom attributes
nil fillnodetemplatefooter ( table template ) Fill the template with standard node template footer, like inputs and outputs settings
nil fillnodetemplateheader ( table template ) Fill the template with standard node template header, like inputs
ShaderNodeIn input getinput ( string name ) Gets a child ShaderNodeIn plug by its display name
ShaderNodeOut input getoutput ( string name ) Gets a child ShaderNodeOut plug by its display name
nil removeinput ( string name ) Remove an input
nil removeoutput ( string name ) Remove an output


Inherited from class SelectableNode

Plugs:

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.


Inherited from class Node

Plugs:

string Name RW The node name

Methods:

bool result belongstoreference ( Reference ref ) Tells if the node belongs to the reference, or a sub reference
nil delete ( ) Delete a node
any value eval ( Plug plug ) Called by the framework when plug (a node's plug) must be evaluated
Node|Plug child findchild ( string path ) Find a child node or plug using a path
Node parent findparent ( string name ) Find the first parent Node of this Node of a specific class
Node result getchild ( string name ) Get a child node by its name
[string|number] name getname ( ) Get the Node name in its parent
Node parent getparent ( ) Get the parent Node of this Node
string path getpath ( ) Returns the node path as a string that can be reused with findchild
Reference reference getreference ( ) Returns the reference node it is connected to
of table getreferences ( [ topref Reference ] ) Returns the references in the document sorted depth first.
string result getstringcopy ( ) Return a copy of the node and its content as a string to be pasted
Reference reference gettopreference ( ) Returns the top reference node it is connected to
boolean editable iseditable ( ) Indicates if the node can be edited by the user in the UI
bool result ismoveable ( ) Tells if the node can be moved
boolean result isparent ( Node child ) Tells if this node is parent of the potential child
boolean result isreference ( ) Tells if a node comes from a reference project
boolean state isselected ( ) Tell if the node is selected
{Node} result loadfile ( string filename , [ table options ] ) load a file content in this node. Possible options are: overrideclass to enforce a specific class for the root node.
Node result loadtemplate ( string template , string name ) load a template file
nil move ( Node parent ) Move a node to a new parent
nil onpathchanged ( ) Called by the framework when the name of this node or of one of its parent is modified
{Node},string result,error pastestringcopy ( string copy ) Paste a string copy into this node
ReferenceBase refnode referencefile ( string name , string refpath , [ table options ] ) reference a file content in this node.
nil rename ( string name ) Rename a node
bool,string success,error savefile ( string filename ) load a node to a file
nil seteditable ( boolean editable ) Change the editable state of the node
nil setflags ( ) Set the node flags

Documentation

string Script RW

The RenderMan SL script. This script must be written in the RenderMan Shading Languague syntax. The script must contains at least one function. The last function declared in the script will be used as main function for this node. Once evaluated, the node will create inputs and outputs according to the main function's prototype. The following script will create a node with two inputs and two outputs plugs : float addAndMul (float a, b; output float mul) { mul = a * b; return a + b; } Use the setSL method to change this plug.


nil setSL ( string value )

Compiles the SL node script

Arguments:

  • value The SL script to update