ProceduralΒΆ

class Procedural

A scriptable procedural 3d renderable object.

A Procedural contains a lua script describing how to subdivide the primitive at render time.

Hierarchy

class Procedural < class Primitive < class Locator < class SceneGraphNode < class HostNode < class SelectableNode < class Node

Children classes : class ProceduralRef , class RenderGraphNodeProcedural

Members

Plugs:

string Script RW The LUA script describing the primitive. This script must be written in the LUA syntax. LUA{ local plugin = {} function plugin:getlaabb () return aabb.create (0, 1, 0, 1, 0, 1) end function plugin:subdivide (parameters) RiPolygon ("P", {0,0,0,0,0,1,1,0,1,1,0,0}, "st", {0,0,0,1,1,1,1,0}, "N", {0,1,0,0,1,0,0,1,0,0,1,0}) end return plugin }

Methods:

nil bake ( ) Bake the procedural and pass it in "Read" mode. This methods is only for the HairAndFur procedural.
nil baketoarchive ( string file ) Write the procedural geometry to the given file (only ghostdata and obj files are supported at the moment)
ref ProceduralRef createref ( Node parent , string name , string filename ) Create a ProceduralRef to a gprocedural file

Functions:

nil bakeall ( ) Bake the procedurals which are marked as Bake
nil forceallbaked ( ) Force all the procedurals as Bake, then bake tham all, and force them all as Read back.
nil forcebake ( [ {Procedural|string} procedurals ] ) Force procedurals to bake their implantation and switch them to Read --


Inherited from class Locator

Plugs:

MeshPlug-compound Geometry - The real time geometry to be displayed


Inherited from class SceneGraphNode

Plugs:

transform Transform RW The SceneGraphNode's local to world transform
types.enum HierarchyMode RW Indicates the transform mode of the node (local, world as PRMan, Maya or Max)
types.bool FreezeTransform RW Indicate if the SceneGraphNode's parameters are to be frozen
nil InvWBounds R Invalidated when the world transform and/or bounds of the object has changed.
boolean Hidden RW The visibility state.
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
types.table _TagSet R The full set of tags this node has, containing explicitly defined and inherited tags
nil Material RW The dependency on the connected Material
nil RibAttributes RW The dependency on the additional Rib Attributes to be assigned
nil Instances RW The dpendencies on instanced SceneGraphNodes
nil _Gizmo RW The gizmos connected to this node Plug (self, "_Gizmos", Plug.NoSerial)

Methods:

{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
SceneGraphNode parent getsgparent ( ) Returns the node's hierarchical parent.
matrix m getmatrix ( ) Returns the node's first transform matrix.
point3 p getposition ( ) Returns the node's position.
transform t getworldtransform ( ) Returns the node's world transform.
matrix m getworldmatrix ( ) Returns the node's world transform first matrix.
point3 p getworldposition ( ) Returns the node's world position.
transform it getworldtolocaltransform ( ) Returns the inverse of the world transform
matrix im getworldtolocalmatrix ( ) Returns the inverse of the world matrix
transform pt getparentworldtransform ( ) Returns the exclusive world transform of the node
matrix pm getparentworldmatrix ( ) Returns the exclusive world 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 setmatrix ( matrix m ) Set the local matrix of the node
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
Node node gettransform ( ) Return the top Transform node of the transform stack of this SceneGraphNode or this if the stack is empty
nil filltransformtemplate ( table template ) Fill a template table with the "Transform" attributes
nil fillscenenodetemplate ( table template ) Fill a template table with the "Primitive" attributes
nil fillgeometrytemplate ( table template ) Fill a template table with the "Geometry" attributes
nil fillsubdivtemplate ( table template ) Fill a template table with the "Subdivision" attributes
nil fillopengltemplate ( table template ) Fill a template table with the "OpenGL" attributes
nil filllinkingtemplate ( table template ) Fill a template table with the "Linking" attributes
nil fillarealighttemplate ( table template ) Fill a template table with the "Area Light" attributes
nil fillraytracingtemplate ( table template ) Fill a template table with the "Raytracing" 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 fillsamplingtemplate ( table template ) Fill a template table with the "Sampling" attributes
nil fillanimationtemplate ( table template ) Fill a template table with the "Animation" attributes
nil fillvolumetrictemplate ( table template ) Fill a template table with the "Volumetric" attributes
nil fillcurvestemplate ( table template ) Fill a template table with the "Curves" attributes
nil fillparticlestemplate ( table template ) Fill a template table with the "Particles" attributes
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
nil createinstance ( SceneGraphNode instance ) Create an instance at this node
nil removeinstance ( The path ) Remove an instance
nil flatteninstance ( string|nil name ) Flatten an instance by name, or all instances if name is nil

Functions:

nil listrenderattributes ( ) Get the list of available render attributes
table attribute getrenderattributedefinition ( string category , string name ) Lookup the render attributes definition by for a category and aan attribute name
nil setrenderattributeproperty ( string category , string name , string property , any value ) Set a render attribute property
nil displayrenderattribute ( string category , string name , bool show ) Enable/disable the display of a specific attribute in the properties


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
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 LUA script describing the primitive. This script must be written in the LUA syntax. LUA{ local plugin = {} function plugin:getlaabb () return aabb.create (0, 1, 0, 1, 0, 1) end function plugin:subdivide (parameters) RiPolygon ("P", {0,0,0,0,0,1,1,0,1,1,0,0}, "st", {0,0,0,1,1,1,1,0}, "N", {0,1,0,0,1,0,0,1,0,0,1,0}) end return plugin }


nil bake ( )

Bake the procedural and pass it in "Read" mode. This methods is only for the HairAndFur procedural.


nil baketoarchive ( string file )

Write the procedural geometry to the given file (only ghostdata and obj files are supported at the moment)

The result of the baking process creates a group containing primitives with the baked shapes.
Arguments:

  • file The file path to write


ref ProceduralRef createref ( Node parent , string name , string filename )

Create a ProceduralRef to a gprocedural file

Arguments:

  • parent The parent to create the ProceduralRef in
  • name The name of the ProceduralRef
  • filename The path to the referenced Procedural

Return:


nil bakeall ( )

Bake the procedurals which are marked as Bake


nil forceallbaked ( )

Force all the procedurals as Bake, then bake tham all, and force them all as Read back.

This function is an alias for Procedural.forcebake with the full list of all bakeable procedurals.

nil forcebake ( [ {Procedural|string} procedurals ] )

Force procedurals to bake their implantation and switch them to Read --

procedurals is a list of path strings or procedural nodes to force baking. When no list is provided (nil/None) then all procedurals which are not already set to Read are forced.
Arguments:

  • procedurals The optional list of procedurals to bake --