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 EnvironmentLocator , class Locator , class LuaScriptNode

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.
nil Material RW The dependency on the connected Material
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 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
Material material getmaterial ( ) Get the Material assigned to this primitive
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 can contain instances
nil removeinstance ( The path ) Remove an instance
nil setmaterial ( Material|nil material ) Assign a Material to this primitive
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
nil traverserender ( table traversal , ... ... ) Traverse the hierarchy with a traversal object

Functions:

table attributes getrenderattributes ( string|Node path , boolean origin ) Get the rendering attributes of a node/path


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
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 ) load a file content in this 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
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.


nil Material RW

The dependency on the connected Material


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 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


Material material getmaterial ( )

Get the Material assigned to this primitive

Example : local    material = MyPrimitive:getmaterial ()
if material then
    -- show object to material connection
    print (MyPrimitive:getpath () .. " <-- " .. material:getpath ())
else
end
Return:

  • material The assigned material (or nil if none)


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, although the ShaderNodeShadow may still inherits from the parent transform.
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 can contain instances

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 setmaterial ( Material|nil material )

Assign a Material to this primitive

Arguments:

  • material The new material to assign to this primitive, or nil is none


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 traverserender ( table traversal , ... ... )

Traverse the hierarchy with a traversal object

The traverserender method calls the traversal traverse method on each child and instance of this node. The traverse method of the traversal, in turn, can call the traverserender on the passed node.
Arguments:

  • traversal A traversal object that must implement the traverse(child, ...) method
  • ... Optional arguments given to the traversal


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

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
  • origin if true, the returned value contains information about the origin of the attributes

Return:

  • attributes The resulting attributes