NetworkMaterialEdit
A NetworkMaterialEdit node enables the editing of material locations using the NodegraphAPI. Since Katana 6.0v1 the NetworkMaterialEdit node has been scriptable.
NetworkMaterialEdit API
- class NetworkMaterialEdit.NetworkMaterialEditNode
Bases:
NetworkMaterialBaseNode
Class implementing the NetworkMaterialEdit SuperTool node type.
- Since:
Katana 4.0v1
- __init__()
Initializes an instance of this class.
- depopulate(processAllEvents=True)
Depopulates the NetworkMaterialEdit node. Changes will only take immediate effect if
processAllEvents
is True as changes are executed via the event handling system, otherwise changes will be executed at the nextUtils.EventModule.ProcessAllEvents
call.- Parameters:
processAllEvents (
bool
) – Whether to internally callUtils.EventModule.ProcessAllEvents
, defaults to True.- Note:
Calling this method clears the internals of the NetworkMaterialEdit node, therefore any references to nodes inside this group created before this call may be orphaned.
- Since:
6.0v1
- flushEdits(processAllEvents=True)
Flushes all edits that are saved and are relevant this NetworkMaterialEdit. Edits are represented as
'nodegraph_changed'
events that are internal to a NetworkMaterialEdit (i.e a node has been added or a param has been edited), and contain the original event which was deemed to be relevant.- Parameters:
processAllEvents (
bool
) – Whether to internally callUtils.EventModule.ProcessAllEvents
, defaults to True.- Note:
Calling this method regenerates the internals of the NetworkMaterialEdit node, therefore any references to nodes inside this group created before this call may be orphaned.
- Since:
6.0v1
- getContentsLayoutAttributes(**kwargs)
Construct the layout attributes of child nodes (and their descendents)
- Return type:
- Parameters:
kwargs – Ignored
- Returns:
Layout attributes
- getLastUpstreamMaterialHash()
Get the last upstream hash of the material attribute of this node.
- Return type:
str
orNone
- Returns:
Hash of the material attribute, or
None
if the contents of this NetworkMaterialEdit are empty.- Since:
6.0v1
- getMaterialAttr()
Get the resulting material attribute of this node.
- Return type:
FnAttribute.GroupAttribute
orNone
- Returns:
material attributes, or
None
if an appropriateGeometryProducer
cannot be created.- Since:
6.0v1
- getNetworkMaterialEditRequiresUpdate()
Checks if the Upstream Material hash does not match the one stored in this NetworkMaterialEdit node.
- Return type:
bool
- Returns:
True if the NetworkMaterialEdit’s material hash does not match the upstream material hash, otherwise False.
- See:
- Since:
6.0v1
- getNetworkMaterials()
Get the (only) NetworkMaterial node.
- Return type:
list
ofNodegraphAPI.Node
- Returns:
List containing a single element, the internal NetworkMaterial.
- Since:
Katana 4.0v1
- getNodeFromSourceNodeName(nodeName)
Get node within NetworkMaterialEdit that mirrors upstream node with given name.
- Return type:
NodegraphAPI.Node
orNone
- Parameters:
nodeName (
str
) – Upstream node’s name.- Returns:
Local node that mirrors node with given name, or
None
if not found.
- getNodeStates()
Returns the “EditState” of all the internal interactive child nodes of this node.
- Return type:
dict
- Returns:
A dictionary of all child nodes keyed on their current “EditState”.
- getScenegraphLocation(frameTime=None)
This implementation ensures that the default value of the “sceneGraphLocation” parameter is always used for a NetworkMaterialEdit node.
- Return type:
str
- Parameters:
frameTime (
float
orNone
) – The frame time at which to evaluate the parameter that determines this function’s result, orNone
to evaluate the parameter at the current time (meaning the result ofNodegraphAPI.GetCurrentTime()
).- Returns:
The path of the scene graph location that this node primarily works with.
- getSourceNodeNameFromNode(node)
Get the name of the upstream node that the given node mirrors.
- Return type:
str
orNone
- Parameters:
node (
NodegraphAPI.Node
) – Node to query.- Returns:
Upstream node’s name, or
None
if not found.- Since:
6.0v1
- handleNetworkMaterialNodeCreate(networkMaterialNode)
Handles the creation of a NetworkMaterial node’s utility nodes (GroupStack and Material).
This is called with a newly created NetworkMaterial immediately after
_setupInternalNetwork
.- Parameters:
networkMaterialNode (
NodegraphAPI.Node
) – The NetworkMaterial node being created.- Since:
Katana 4.0v1
- invalidateLayout()
Flag that
material.**layout**
attributes need to be reconstructed.Override base class to prevent cooking layout attributes if NME is currently populating.
- isAutoUpdateDisabled()
Returns whether auto-update is disabled for this NetworkMaterialEdit.
- Return type:
bool
- Returns:
True if auto update is diabled, False if not.
- See:
- Note:
Auto update is only available in UI mode, so this will only have an effect in that mode.
- Since:
6.0v1
- isChildNodePersistent(node)
Check if given node should not be deleted when the NetworkMaterialEdit contents are cleared pending a re-population.
- Return type:
bool
- Parameters:
node (
NodegraphAPI.Node
) – Node to check.- Returns:
True
ifnode
is persistent,False
otherwise.
- isPopulated()
Checks if NetworkMaterialEdit’s nodegraph is populated from an upstream material.
- Return type:
bool
- Returns:
True if the NetworkMaterialEdit’s nodegraph is populated, otherwise False.
- See:
- Since:
6.0v1
- isUserParameterEditingAllowed()
- Return type:
bool
- Returns:
False
. The NetworkMaterialEdit node type does not support user parameters.- Since:
Katana 4.5v1
- polish()
This method is automatically called on the SuperTool after it has finished loading and initialization.
It will only be called once.
Initialize members and event handlers.
- repopulate(processAllEvents=True)
Repopulates the NetworkMaterialEdit’s nodegraph from the upstream material, determined by the
sceneGraphLocation
parameter. Changes will only take immediate effect ifprocessAllEvents
is True as changes are executed via the event handling system, otherwise changes will be executed at the nextUtils.EventModule.ProcessAllEvents
call.- Return type:
bool
- Parameters:
processAllEvents (
bool
) – Whether to internally callUtils.EventModule.ProcessAllEvents
, defaults to True.- Returns:
True if this update was successful, otherwise False.
- Note:
Calling this method regenerates the internals of the NetworkMaterialEdit node, therefore any references to nodes inside this group created before this call may be orphaned.
- Since:
6.0v1
- setDisableAutoUpdate(forceDisableAutoUpdate)
Passing True to forceDisableAutoUpdate will stop the internal nodegraph change flush functionality that is triggered by a timer to be registered. This means all NME nodegraph change events need to be flushed manually to take effect, see
flushEdits
.- Parameters:
forceDisableAutoUpdate (
bool
) – If set to true, auto updates are turned off in UI mode.- See:
- Note:
Auto update is only available in UI mode, so setting this will only have an effect in that mode.
- Since:
6.0v1
- setSceneGraphLocation(location)
Sets the
sceneGraphLocation
for the material to be edited, and repopulates the nodegraph from the upstream material. This callsrepopulate
, which may have some side effects detailed in therepopulate
function.- Return type:
bool
- Parameters:
location (
str
) – The scene graph location of the material this node will edit.- Returns:
Whether the repopulation of the NetworkMaterialEdit was successful after setting a new scenegraph location.
- See:
- Since:
6.0v1