SceneGraphNodeΒΆ

class SceneGraphNode

Base class of all the objects that can be stored in the scene graph like primitives and groups

Hierarchy

class SceneGraphNode < class HostNode < class SelectableNode < class Node

Children classes : class ArchRef , class EnvironmentLocator , class Locator , class LuaScriptNode , class RenderGraphNodeSG , class Scene

Members

Plugs:

types.bool FreezeTransform RW Indicate if the SceneGraphNode's parameters are to be frozen
boolean Hidden RW The visibility state.
types.enum HierarchyMode RW Indicates the transform mode of the node (local, world as PRMan, Maya or Max)
nil Instances RW The dpendencies on instanced SceneGraphNodes
nil InvWBounds R Invalidated when the world transform and/or bounds of the object has changed.
boolean IsHidden R The visibility state. This plug tells if this node is visible, regarding its state and the state of its parents.
types.string Mermbership RW The list of tags the node owns
nil RibAttributes RW The dependency on the additional Rib Attributes to be assigned
transform Transform RW The SceneGraphNode's local to world transform
types.table _TagSet R The full set of tags this node has, containing explicitly defined and inherited tags

Methods:

nil createinstance ( SceneGraphNode instance ) Create an instance at this node
nil fillanimationtemplate ( table template ) Fill a template table with the "Animation" attributes
nil fillarealighttemplate ( table template ) Fill a template table with the "Area Light" attributes
nil fillcurvestemplate ( table template ) Fill a template table with the "Curves" attributes
nil fillgeometrytemplate ( table template ) Fill a template table with the "Geometry" attributes
nil filllinkingtemplate ( table template ) Fill a template table with the "Linking" attributes
nil fillopengltemplate ( table template ) Fill a template table with the "OpenGL" attributes
nil fillparticlestemplate ( table template ) Fill a template table with the "Particles" attributes
nil fillproceduraltemplate ( table template ) Fill a template table with the "Procedural" attributes
nil fillraytracingtemplate ( table template ) Fill a template table with the "Raytracing" attributes
nil fillsamplingtemplate ( table template ) Fill a template table with the "Sampling" attributes
nil fillscenenodetemplate ( table template ) Fill a template table with the "Primitive" attributes
nil fillshadertemplate ( table template ) Fill a template table with the "Surface" attributes
nil fillshadingtemplate ( table template ) Fill a template table with the "Shading" attributes
nil fillsubdivtemplate ( table template ) Fill a template table with the "Subdivision" attributes
nil filltransformtemplate ( table template ) Fill a template table with the "Transform" attributes
nil fillvolumetrictemplate ( table template ) Fill a template table with the "Volumetric" attributes
nil flatteninstance ( string|nil name ) Flatten an instance by name, or all instances if name is nil
matrix m getmatrix ( ) Returns the node's first transform matrix.
matrix pm getparentworldmatrix ( ) Returns the exclusive world matrix of the node
transform pt getparentworldtransform ( ) Returns the exclusive world transform of the node
point3 p getposition ( ) Returns the node's position.
SceneGraphNode parent getsgparent ( ) Returns the node's hierarchical parent.
Node node gettransform ( ) Return the top Transform node of the transform stack of this SceneGraphNode or this if the stack is empty
matrix m getworldmatrix ( ) Returns the node's world transform first matrix.
point3 p getworldposition ( ) Returns the node's world position.
matrix im getworldtolocalmatrix ( ) Returns the inverse of the world matrix
transform it getworldtolocaltransform ( ) Returns the inverse of the world transform
transform t getworldtransform ( ) Returns the node's world transform.
nil isinstance ( string path ) Returns true if the given path contains an instance
nil isleafinstance ( string path ) Returns true if the lath item of the path is an instance
{SceneGraphNode} result listbytags ( string|{string} tags ) List children nodes (include self) that have specified tags
{SceneGraphNode} result listbytags ( string|{string} tags ) List nodes in the hierarchy that have at least one of the given tags
result Node pathtonode ( string path ) Returns a node from a path, this path may be dynamically generated by RenderGraph instancing
result Node realpathtonode ( string path ) Returns a node from a path, this path must be static
nil removeinstance ( The path ) Remove an instance
nil setmatrix ( matrix m ) Set the local matrix of the node
nil setworldmatrix ( matrix world ) Set the world matrix of the node
nil setworldposition ( point3 position ) Set the world position of the node, leaving the rest of the transform unchanged
nil traverse ( function map , ... ... ) Traverse the hierarchy and call a map function on every node

Functions:

nil displayrenderattribute ( string category , string name , bool show ) Enable/disable the display of a specific attribute in the properties
string parentpath getparentpath ( string path ) Get the parent path of a path
table attribute getrenderattributedefinition ( string category , string name ) Lookup the render attributes definition by for a category and aan attribute name
table attributes getrenderattributes ( string|Node path , boolean full ) Get the rendering attributes of a node/path
nil listrenderattributes ( ) Get the list of available render attributes
transform world pathlocaltransformorient ( string path ) Get the world to local transform a node/path with its local z axis transform applied (lights and cameras can have their z flipped)
transform world pathworldtransform ( string path ) Get the local to world transform a node/path
transform world pathworldtransformorient ( string path ) Get the local to world transform a node/path with its local z axis transform applied (lights and cameras can have their z flipped)
nil setrenderattributeproperty ( string category , string name , string property , any value ) Set a render attribute property


Inherited from class HostNode

Plugs:

types.string HostPath RW The data archive to read HostPlugs value when baked

Methods:

nil deleteinheritedattr ( string plugname ) Delete an inherited attribute plug from the node
nil overrideinheritedattr ( string plugname , any value ) Override the attribute
nil setinheritedattr ( string plugname , [bool|nil] inherited , [ any value ] ) Set the inheritance status of the attribute


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
boolean indocument isindocument ( ) Tells if the node is inside a document, or is pending in the void
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 , [ {} options ] ) 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

types.bool FreezeTransform RW

Indicate if the SceneGraphNode's parameters are to be frozen


boolean Hidden RW

The visibility state.

If true, the primitive and its children are hidden from all the layers, the shadow maps and the trace sets.

types.enum HierarchyMode RW

Indicates the transform mode of the node (local, world as PRMan, Maya or Max)


nil Instances RW

The dpendencies on instanced SceneGraphNodes


nil InvWBounds R

Invalidated when the world transform and/or bounds of the object has changed.

This plug is used to invalidate data the depends on the hierarchy rendering aspect. Notably, this plug is invalidated whenever a parent or child has its own InvWBounds invalidated.

boolean IsHidden R

The visibility state. This plug tells if this node is visible, regarding its state and the state of its parents.


types.string Mermbership RW

The list of tags the node owns


nil RibAttributes RW

The dependency on the additional Rib Attributes to be assigned


transform Transform RW

The SceneGraphNode's local to world transform


types.table _TagSet R

The full set of tags this node has, containing explicitly defined and inherited tags


nil createinstance ( SceneGraphNode instance )

Create an instance at this node

Arguments:

  • instance The SceneGraphNode to instanciate


nil fillanimationtemplate ( table template )

Fill a template table with the "Animation" attributes

Arguments:

  • template The template table to fill


nil fillarealighttemplate ( table template )

Fill a template table with the "Area Light" attributes

Arguments:

  • template The template table to fill


nil fillcurvestemplate ( table template )

Fill a template table with the "Curves" attributes

Arguments:

  • template The template table to fill


nil fillgeometrytemplate ( table template )

Fill a template table with the "Geometry" attributes

Arguments:

  • template The template table to fill


nil filllinkingtemplate ( table template )

Fill a template table with the "Linking" attributes

Arguments:

  • template The template table to fill


nil fillopengltemplate ( table template )

Fill a template table with the "OpenGL" attributes

Arguments:

  • template The template table to fill


nil fillparticlestemplate ( table template )

Fill a template table with the "Particles" attributes

Arguments:

  • template The template table to fill


nil fillproceduraltemplate ( table template )

Fill a template table with the "Procedural" attributes

Arguments:

  • template The template table to fill


nil fillraytracingtemplate ( table template )

Fill a template table with the "Raytracing" attributes

Arguments:

  • template The template table to fill


nil fillsamplingtemplate ( table template )

Fill a template table with the "Sampling" attributes

Arguments:

  • template The template table to fill


nil fillscenenodetemplate ( table template )

Fill a template table with the "Primitive" attributes

Arguments:

  • template The template table to fill


nil fillshadertemplate ( table template )

Fill a template table with the "Surface" attributes

Arguments:

  • template The template table to fill


nil fillshadingtemplate ( table template )

Fill a template table with the "Shading" attributes

Arguments:

  • template The template table to fill


nil fillsubdivtemplate ( table template )

Fill a template table with the "Subdivision" attributes

Arguments:

  • template The template table to fill


nil filltransformtemplate ( table template )

Fill a template table with the "Transform" attributes

Arguments:

  • template The template table to fill


nil fillvolumetrictemplate ( table template )

Fill a template table with the "Volumetric" attributes

Arguments:

  • template The template table to fill


nil flatteninstance ( string|nil name )

Flatten an instance by name, or all instances if name is nil

Arguments:

  • name The instance name to flatten


matrix m getmatrix ( )

Returns the node's first transform matrix.

Returns the node's first transform matrix. Note that the result is possibly only a part of the whole node transform. The matrix is given in the space of the node, that is is either local or world, depending on the HierarchyMode plug value.
Return:

  • m The node matrix


matrix pm getparentworldmatrix ( )

Returns the exclusive world matrix of the node

Return:

  • pm The parent world matrix


transform pt getparentworldtransform ( )

Returns the exclusive world transform of the node

Return:

  • pt The parent world transform


point3 p getposition ( )

Returns the node's position.

Returns the node's position. Note that the result is possibly only a part of the whole node transform. The position is given in the space of the node, that is is either local or world, depending on the HierarchyMode plug value.
Return:

  • p The node position


SceneGraphNode parent getsgparent ( )

Returns the node's hierarchical parent.

This method returns the parent SceneGraphNode in case the parent is not a SceneGraphNode. For instance, ShaderNodeGizmo may be contained in a ShaderNodeMacro, which is not a SceneGraphNode.
Return:

  • parent The node parent


Node node gettransform ( )

Return the top Transform node of the transform stack of this SceneGraphNode or this if the stack is empty

Return:

  • node


matrix m getworldmatrix ( )

Returns the node's world transform first matrix.

Return:

  • m The node world matrix


point3 p getworldposition ( )

Returns the node's world position.

Return:

  • p The node world position


matrix im getworldtolocalmatrix ( )

Returns the inverse of the world matrix

Return:

  • im The node world to local matrix


transform it getworldtolocaltransform ( )

Returns the inverse of the world transform

Return:

  • it The node world to local transform


transform t getworldtransform ( )

Returns the node's world transform.

Return:

  • t The node transform


nil isinstance ( string path )

Returns true if the given path contains an instance

Arguments:

  • path The path from this node


nil isleafinstance ( string path )

Returns true if the lath item of the path is an instance

Arguments:

  • path The path from this node


{SceneGraphNode} result listbytags ( string|{string} tags )

List children nodes (include self) that have specified tags

Arguments:

  • tags The tag or list of tags to check

Return:


{SceneGraphNode} result listbytags ( string|{string} tags )

List nodes in the hierarchy that have at least one of the given tags

Arguments:

  • tags The tags to match, as a list of string or a single string to match a single tag

Return:

  • result The list of SceneGraphNode children that share the input tags


result Node pathtonode ( string path )

Returns a node from a path, this path may be dynamically generated by RenderGraph instancing

Arguments:

  • path The path to the node

Return:

  • Node The result node, or nil if the path doesn't represent a valid node


result Node realpathtonode ( string path )

Returns a node from a path, this path must be static

Arguments:

  • path The path to the node

Return:

  • Node The result node, or nil if the path doesn't represent a valid node


nil removeinstance ( The path )

Remove an instance

Arguments:

  • path path to the instance


nil setmatrix ( matrix m )

Set the local matrix of the node

Arguments:

  • m The new local matrix of the node


nil setworldmatrix ( matrix world )

Set the world matrix of the node

Arguments:

  • world The new world matrix of the node


nil setworldposition ( point3 position )

Set the world position of the node, leaving the rest of the transform unchanged

Arguments:

  • position The new world position of the node


nil traverse ( function map , ... ... )

Traverse the hierarchy and call a map function on every node

Arguments:

  • map a function called at every node of the hierarchy
  • ... optional parameters given back to the map function


nil displayrenderattribute ( string category , string name , bool show )

Enable/disable the display of a specific attribute in the properties

This function returns the attribute definition in the given category. Note that not all values in the attribute can be overloaded.
Arguments:

  • category The name of the attribute category
  • name The name of the attribute, either its renderer name, or display name or its plug name
  • show Whether the attribute is displayed or not


string parentpath getparentpath ( string path )

Get the parent path of a path

Arguments:

  • path the path of the node

Return:

  • parentpath The parent path


table attribute getrenderattributedefinition ( string category , string name )

Lookup the render attributes definition by for a category and aan attribute name

This function returns the attribute definition in the given category.
Arguments:

  • category The name of the attribute category
  • name The name of the attribute, either its renderer name, or display name or its plug name

Return:

  • attribute The attribute definition


table attributes getrenderattributes ( string|Node path , boolean full )

Get the rendering attributes of a node/path

-- print the attributes of an object as they would be sent to the renderer
local result = SceneGraphNode.getrenderattributes ("Group|Object")
if result then
    for name, value in pairs (result.attributes) do
        -- name is the attribute name, in the convention of the renderer
        -- user attributes/shader parameters are named 'variable.###', and 
        -- might be subshaders
        if isclassof (value, "subshader"then
            -- the name of a subshader is 
            print (name, value:getname ())
            for subname, subvalue in pairs (value:getparameters ()) do
                print ("   ", subname, subvalue)
            end
        else
            print (name, tostring (value))
        end
    end
end
Arguments:

  • path the path of the node
  • full if true, the returned value also contains information about the origin of the attributes

Return:

  • attributes The resulting attributes


nil listrenderattributes ( )

Get the list of available render attributes

This function returns a dictionary of categories of attributes, each category is a list of attributes.

transform world pathlocaltransformorient ( string path )

Get the world to local transform a node/path with its local z axis transform applied (lights and cameras can have their z flipped)

Arguments:

  • path the path of the node

Return:

  • world The resulting transform


transform world pathworldtransform ( string path )

Get the local to world transform a node/path

Arguments:

  • path the path of the node

Return:

  • world The resulting transform


transform world pathworldtransformorient ( string path )

Get the local to world transform a node/path with its local z axis transform applied (lights and cameras can have their z flipped)

Arguments:

  • path the path of the node

Return:

  • world The resulting transform


nil setrenderattributeproperty ( string category , string name , string property , any value )

Set a render attribute property

The following properties can be modified:
  • ptysheet: bool, the attribute is displayed in the property sheet
Arguments:

  • category The name of the attribute category
  • name The name of the attribute, either its renderer name, or display name or its plug name
  • property The name of the attribute property to set
  • value The value of the attribute property to set