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:
__plugins3__.NetworkMaterials.v1.NetworkMaterialBaseNode.NetworkMaterialBaseNodeClass implementing the NetworkMaterialEdit SuperTool node type.
- Since
 Katana 4.0v1
- __init__()¶
 Initializes an instance of this class.
- depopulate(processAllEvents=True)¶
 Depopulates the B{NetworkMaterialEdit} node. Changes will only take immediate effect if
processAllEventsis True as changes are executed via the event handling system, otherwise changes will be executed at the nextUtils.EventModule.ProcessAllEventscall.- 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 B{NetworkMaterialEdit}. Edits are represented as
'nodegraph_changed'events that are internal to a B{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 B{material} attribute of this node.
- Return type
 strorNone- Returns
 Hash of the B{material} attribute, or
Noneif the contents of this B{NetworkMaterialEdit} are empty.- Since
 6.0v1
- getMaterialAttr()¶
 Get the resulting B{material} attribute of this node.
- Return type
 FnAttribute.GroupAttributeorNone- Returns
 B{material} attributes, or
Noneif an appropriateGeometryProducercannot be created.- Since
 6.0v1
- getNetworkMaterialEditRequiresUpdate()¶
 Checks if the Upstream Material hash does not match the one stored in this B{NetworkMaterialEdit} node.
- Return type
 bool- Returns
 True if the B{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
 listofNodegraphAPI.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.NodeorNone- Parameters
 nodeName (
str) – Upstream node’s name.- Returns
 Local node that mirrors node with given name, or
Noneif 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 (
floatorNone) – The frame time at which to evaluate the parameter that determines this function’s result, orNoneto 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
 strorNone- Parameters
 node (
NodegraphAPI.Node) – Node to query.- Returns
 Upstream node’s name, or
Noneif 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.B{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 B{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
 Trueifnodeis persistent,Falseotherwise.
- isPopulated()¶
 Checks if B{NetworkMaterialEdit}’s nodegraph is populated from an upstream material.
- Return type
 bool- Returns
 True if the B{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 B{NetworkMaterialEdit}’s nodegraph from the upstream material, determined by the
sceneGraphLocationparameter. Changes will only take immediate effect ifprocessAllEventsis True as changes are executed via the event handling system, otherwise changes will be executed at the nextUtils.EventModule.ProcessAllEventscall.- 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
sceneGraphLocationfor the material to be edited, and repopulates the nodegraph from the upstream material. This callsrepopulate, which may have some side effects detailed in therepopulatefunction.- Return type
 bool- Parameters
 location (
str) – The scene graph location of the material this node will edit.- Returns
 Whether the repopulation of the B{NetworkMaterialEdit} was successful after setting a new scenegraph location.
- See
 - Since
 6.0v1