SceneGraphNode

class guerilla.SceneGraphNode

Bases: guerilla.HostNode

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

FreezeTransform

Indicate if the SceneGraphNode’s parameters are to be frozen

Type:types.bool
Hidden

The visibility state.

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

Type:bool
HierarchyMode

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

Type:types.enum
Instances

The dpendencies on instanced SceneGraphNodes

Type:None
InvWBounds

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.

Type:None
IsHidden

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

Type:bool
Mermbership

The list of tags the node owns

Type:types.string
RibAttributes

The dependency on the additional Rib Attributes to be assigned

Type:None
Transform

The SceneGraphNode’s local to world transform

Type:transform
createinstance(instance)

Create an instance at this node

Parameters:instance (SceneGraphNode) – The SceneGraphNode to instanciate
static displayrenderattribute(category, name, 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.

param category:The name of the attribute category
type category:str
param name:The name of the attribute, either its renderer name, or display name or its plug name
type name:str
param show:Whether the attribute is displayed or not
type show:bool
fillanimationtemplate(template)

Fill a template table with the “Animation” attributes

Parameters:template (table) – The template table to fill
fillarealighttemplate(template)

Fill a template table with the “Area Light” attributes

Parameters:template (table) – The template table to fill
fillcurvestemplate(template)

Fill a template table with the “Curves” attributes

Parameters:template (table) – The template table to fill
fillgeometrytemplate(template)

Fill a template table with the “Geometry” attributes

Parameters:template (table) – The template table to fill
filllinkingtemplate(template)

Fill a template table with the “Linking” attributes

Parameters:template (table) – The template table to fill
fillopengltemplate(template)

Fill a template table with the “OpenGL” attributes

Parameters:template (table) – The template table to fill
fillparticlestemplate(template)

Fill a template table with the “Particles” attributes

Parameters:template (table) – The template table to fill
fillproceduraltemplate(template)

Fill a template table with the “Procedural” attributes

Parameters:template (table) – The template table to fill
fillraytracingtemplate(template)

Fill a template table with the “Raytracing” attributes

Parameters:template (table) – The template table to fill
fillsamplingtemplate(template)

Fill a template table with the “Sampling” attributes

Parameters:template (table) – The template table to fill
fillscenenodetemplate(template)

Fill a template table with the “Primitive” attributes

Parameters:template (table) – The template table to fill
fillshadertemplate(template)

Fill a template table with the “Surface” attributes

Parameters:template (table) – The template table to fill
fillshadingtemplate(template)

Fill a template table with the “Shading” attributes

Parameters:template (table) – The template table to fill
fillsubdivtemplate(template)

Fill a template table with the “Subdivision” attributes

Parameters:template (table) – The template table to fill
filltransformtemplate(template)

Fill a template table with the “Transform” attributes

Parameters:template (table) – The template table to fill
fillvolumetrictemplate(template)

Fill a template table with the “Volumetric” attributes

Parameters:template (table) – The template table to fill
flatteninstance(name)

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

Parameters:name (str or None) – The instance name to flatten
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.

Returns:The node matrix
Return type:matrix
static getparentpath(path)

Get the parent path of a path

Parameters:path (str) – the path of the node
Returns:The parent path
Return type:str
getparentworldmatrix()

Returns the exclusive world matrix of the node

Returns:The parent world matrix
Return type:matrix
getparentworldtransform()

Returns the exclusive world transform of the node

Returns:The parent world transform
Return type:transform
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.

Returns:The node position
Return type:point3
static getrenderattributedefinition(category, name)

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

This function returns the attribute definition in the given category.

Parameters:
  • category (str) – The name of the attribute category
  • name (str) – The name of the attribute, either its renderer name, or display name or its plug name
Returns:

The attribute definition

Return type:

table

static getrenderattributes(path, origin)

Get the rendering attributes of a node/path

>>> result = guerilla.SceneGraphNode.getrenderattributes ("Group|Object", False)
>>> attributes = result['attributes']
>>> for name, value in attributes.iteritems ():
...     if isinstance (value, guerilla.subshader):
...             print (name, value.getname ())
...             for k, v in value.getparameters ().iteritems ():
...                     print (k, v)
...     else:
...             print (name, value)
Parameters:
  • path (str or Node) – the path of the node
  • origin (bool) – if true, the returned value contains information about the origin of the attributes
Returns:

The resulting attributes

Return type:

dictionary

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:The node parent
rtype:SceneGraphNode
gettransform()

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

Return type:Node
getworldmatrix()

Returns the node’s world transform first matrix.

Returns:The node world matrix
Return type:matrix
getworldposition()

Returns the node’s world position.

Returns:The node world position
Return type:point3
getworldtolocalmatrix()

Returns the inverse of the world matrix

Returns:The node world to local matrix
Return type:matrix
getworldtolocaltransform()

Returns the inverse of the world transform

Returns:The node world to local transform
Return type:transform
getworldtransform()

Returns the node’s world transform.

Returns:The node transform
Return type:transform
isinstance(path)

Returns true if the given path contains an instance

Parameters:path (str) – The path from this node
isleafinstance(path)

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

Parameters:path (str) – The path from this node
listbytags(*args)

List children nodes (include self) that have specified tags

Available arguments:

Parameters:tags (str or {string}) – The tag or list of tags to check
Returns:The list of SceneGraphNode that have this tag.
Return type:{SceneGraphNode}

or

Parameters:tags (str or {string}) – The tags to match, as a list of string or a single string to match a single tag
Returns:The list of SceneGraphNode children that share the input tags
Return type:{SceneGraphNode}
static listrenderattributes()

Get the list of available render attributes

This function returns a dictionary of categories of attributes,

each category is a list of attributes.

static pathlocaltransformorient(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)

Parameters:path (str) – the path of the node
Returns:The resulting transform
Return type:transform
pathtonode(path)

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

Parameters:path (str) – The path to the node
Returns:The result node, or None if the path doesn’t represent a valid node
Return type:result
static pathworldtransform(path)

Get the local to world transform a node/path

Parameters:path (str) – the path of the node
Returns:The resulting transform
Return type:transform
static pathworldtransformorient(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)

Parameters:path (str) – the path of the node
Returns:The resulting transform
Return type:transform
realpathtonode(path)

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

Parameters:path (str) – The path to the node
Returns:The result node, or None if the path doesn’t represent a valid node
Return type:result
removeinstance(path)

Remove an instance

Parameters:path (The) – path to the instance
setmatrix(m)

Set the local matrix of the node

Parameters:m (matrix) – The new local matrix of the node
static setrenderattributeproperty(category, name, property, value)

Set a render attribute property

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

    param category:The name of the attribute category
    type category:str
    param name:The name of the attribute, either its renderer name, or display name or its plug name
    type name:str
    param property:The name of the attribute property to set
    type property:str
    param value:The value of the attribute property to set
    type value:any
setworldmatrix(world)

Set the world matrix of the node

Parameters:world (matrix) – The new world matrix of the node
setworldposition(position)

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

Parameters:position (point3) – The new world position of the node
traverse(map, *args)

Traverse the hierarchy and call a map function on every node

Parameters:
  • map (function) – a function called at every node of the hierarchy
  • *args

    optional parameters given back to the map function