MaterialΒΆ

class Material

A Material, contains a Surface Shader, a Displacement Shader and a Line Shader

Hierarchy

class Material < class Shader < class HostNode < class Node < class SelectableNode

Children classes : class MaterialRef

Members

Methods:

ref MaterialRef createref ( Node parent , string name , string filename ) Create a MaterialRef to a gmaterial file
table result getprimitives ( ) Get the list of primitives or subprimitives connected to this material.


Inherited from class Shader

Methods:

ShaderNode result addnode ( string filename ) add a node into a shader by its filename
table definition getinputsdef ( ) Get the definition of the shader inputs
{GraphInput} inputs getinputs ( ) List the node's inputs
it iterator inputs ( ) An iterator on node's inputs
{GraphOutput} outputs getoutputs ( ) List the node's outputs
it iterator inputs ( ) An iterator on node's outputs
ShaderNode result getoutput ( string outputclass ) Get the first shader output node of the given type in the shader. If no outputclass is given, looks for "ShaderNodeOutputLight" in a light shader, "ShaderNodeOutputCompo" in a compositing, or "ShaderNodeSurface" otherwise.


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 Node

Plugs:

string Name RW The node name

Methods:

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


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.

Documentation

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

Create a MaterialRef to a gmaterial file

Arguments:

  • parent The parent to create the MaterialRef in
  • name The name of the MaterialRef
  • filename The path to the referenced Material

Return:


table result getprimitives ( )

Get the list of primitives or subprimitives connected to this material.

Example :

-- show all connected primitive and subprimitives
local    primitivesorsubs = MyMaterial:getprimitives ()
for primorsub, state in pairs (primitivesorsubs) do
    print (MyMaterial:getpath () .. --> " .. primorsub:getpath ())
end
Return:

  • result the connected primitives and subprimitives