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.NetworkMaterialBaseNode
Class 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
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 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
str
orNone
- Returns
Hash of the B{material} attribute, or
None
if the contents of this B{NetworkMaterialEdit} are empty.- Since
6.0v1
- getMaterialAttr()¶
Get the resulting B{material} attribute of this node.
- Return type
FnAttribute.GroupAttribute
orNone
- Returns
B{material} attributes, or
None
if an appropriateGeometryProducer
cannot be created.- Since
6.0v1
- getNetworkMaterialEditMIRequiresUpdate()¶
Checks if the upstream material’s interface attribute hash does not match the one stored in this B{NetworkMaterialEdit} node. :rtype:
bool
:return: True if the B{NetworkMaterialEdit}’s material’s interface attribute hash does notmatch the upstream material’s interface attribute hash, otherwise False.
- Since
6.0v1
- getNetworkMaterialEditRequiresUpdate()¶
Checks if the Upstream Material hash does not match the one stored in this B{NetworkMaterialEdit} node. :rtype:
bool
:return: True if the B{NetworkMaterialEdit}’s material hash does not match the upstreammaterial 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.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
True
ifnode
is persistent,False
otherwise.
- 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
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 B{NetworkMaterialEdit} was successful after setting a new scenegraph location.
- See
- Since
6.0v1