User Guide Cancel

mdlnode | Substance 3D Automation ToolKit

mdlnode

Module mdlnode aims to define the class MDLNode which corresponds to the nodes of a MDLGraph.

class mdl.mdlnode.MDLNode(aUID='', aGUILayout=None, aConnections=None, aMDLImplementation=None)
class mdl.mdlnode.MDLNode(aUID='', aGUILayout=None, aConnections=None, aMDLImplementation=None)
 class mdl.mdlnode.MDLNode(aUID='', aGUILayout=None, aConnections=None, aMDLImplementation=None)  

Bases: pysbs.sbscommon.nodes.SBSNode

Class that contains information on a MDL node as defined in a .sbs file

Members:
  • mUID (str): node unique identifier in the MDLGraph context.
  • mGUILayout (SBSGUILayout): GUI position/options
  • mConnections (list of SBSConnection, optional): input connections list.
  • mMDLImplementation (MDLImplementation): implementation of the MDL node.
changeDependencyUID(aSBSDocument, oldDepUID, newDepUID)
changeDependencyUID(aSBSDocument, oldDepUID, newDepUID)
 changeDependencyUID(aSBSDocument, oldDepUID, newDepUID)  

Change the UID of the dependency referenced by this node.

Parameters:
  • aSBSDocument (SBSDocument) – The root document, required to reset all the internal links to the referenced graph
  • oldDepUID (str) – The new dependency UID
  • newDepUID (str) – The previous dependency UID
changeResourcePath(oldPath, newPath)
changeResourcePath(oldPath, newPath)
 changeResourcePath(oldPath, newPath)  

Change the referenced resource path.

Parameters:
  • oldPath (str) – The old resource path
  • newPath (str) – The new resource path
classify(aOther, aParentContainer = None)
classify(aOther, aParentContainer = None)
 classify(aOther, aParentContainer = None)  

Use the definition of the two nodes to classify them, and their GUI position if they have the same definition.

To classify the different kind of MDLImplementation, this order is specify:

Constant < Selector < MDLInstance < MDLGraphInstance < SBSInstance.

For two identical implementation kind, the names or the paths of the nodes are used to compare the lexicographic order.

At a final option, the GUI position is used, and in this case, mostLeft < mostRight and then mostUp < mostDown.

Parameters:
  • aOther (MDLNode) – The node to compare to.
  • aParentContainer (MDLGraph, optional) – The graph containing the nodes to classify
Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

equals(other)
equals(other)
 equals(other)  

Check if this SBSObject is equivalent to the other SBSObject. Some members may be excluded from this check, the UIDs or GUILayout for instance.

Parameters:other (SBSObject) – The SBSObject to compare to
Returns:True if the two SBSObject are similar according to their definition.
getConnectedNodesUID()
getConnectedNodesUID()
 getConnectedNodesUID()  

Get the UIDs of the nodes connected to this node.

Returns:The UIDs as a list of string
getConnectionOnPin(aPinIdentifier)
getConnectionOnPin(aPinIdentifier)
 getConnectionOnPin(aPinIdentifier)  

Get the connection defined on the given input.

Parameters:aPinIdentifier (str) – identifier of the input pin (for SBSCompNode, SBSParamNode and MDLNode) or of the output pin(for SBSParamsGraphNode)
Returns:a SBSConnection object corresponding to the connection defined on the given pin. None otherwise
getConnections()
getConnections()
 getConnections()  

Get the connections defined on this node.

Returns:a list of SBSConnection
getConnectionsFromNode(aLeftNode)
getConnectionsFromNode(aLeftNode)
 getConnectionsFromNode(aLeftNode)  

Get all the connections coming from the given left node.

Parameters:aLeftNode (SBSNode or str) – The node to look for in the incoming connections of this node, as an object or a UID
Returns:a list of SBSConnection
getDefinition()
getDefinition()
 getDefinition()  

Get the node definition (Inputs, Outputs, Parameters) accordingly to the MDL node implementation

Returns:a MDLNodeDef object if defined, None otherwise
getDisplayName()
getDisplayName()
 getDisplayName()  
Returns:the display name of this node as a string
getInputDefinition(self, aInputIdentifier=None)
getInputDefinition(self, aInputIdentifier=None)
 getInputDefinition(self, aInputIdentifier=None)  

Get the input definition corresponding to the given identifier.

Parameters:aInputIdentifier (InputEnum or str, optional) – The identifier to get. If let None, the primary input will be returned
Returns:the input definition as a CompNodeInput if found, None otherwise
getMDLImplConstant()
getMDLImplConstant()
 getMDLImplConstant()  
Returns:the MDLImplConstant object if this node is a MDL constant, None otherwise.
getMDLImplMDLGraphInstance()
getMDLImplMDLGraphInstance()
 getMDLImplMDLGraphInstance()  
Returns:the MDLImplMDLGraphInstance object if this node is a MDL graph instance, None otherwise.
getMDLImplMDLInstance()
getMDLImplMDLInstance()
 getMDLImplMDLInstance()  
Returns:the MDLImplMDLInstance object if this node is a native MDL instance, None otherwise.
getMDLImplSBSInstance()
getMDLImplSBSInstance()
 getMDLImplSBSInstance()  
Returns:the MDLImplSBSInstance object if this node is a Substance graph instance, None otherwise.
getMDLImplSelector()
getMDLImplSelector()
 getMDLImplSelector()  
Returns:the MDLImplSelector object if this node is a MDL selector, None otherwise.
getMDLImplementation(self)
getMDLImplementation(self)
 getMDLImplementation(self)  

Get the appropriate implementation depending on the MDL node kind

Returns:A MDLNodeImpl object
getOffsetPosition(aOffset = None)
getOffsetPosition(aOffset = None)
 getOffsetPosition(aOffset = None)  

Compute the position of this node offset by the given offset

Parameters:aOffset (list of 2 float, optional) – the offset to apply to the node’s current position. Default to [0,0]
Returns:the offset position
getOutputType(aOutputIdentifier=None)
getOutputType(aOutputIdentifier=None)
 getOutputType(aOutputIdentifier=None)  

Get the output type of this node given the output identifier.

Parameters:aOutputIdentifier (str, optional) – The output identifier to look for. If None, the first output will be considered
Returns:The node output type as a string (color or float) if found, None otherwise
getParameter(aParameter=None)
getParameter(aParameter=None)
 getParameter(aParameter=None)  

Get a parameter with the given name in the appropriate MDL node implementation. The parameter can be: - None in case of a Constant or Selector node, where there is only one parameter. - Simply the name of the parameter to get - A set of names separated by ‘/’ to access a sub member of the root member, for instance ‘surface/intensity’ - A name with an operator [] to access a particular item of a parameter array, for instance ‘color[2]’

Parameters:aParameter (str, optional) – Parameter identifier (name of the operand). Can be None in case of a MDLImplConstant or a MDLImplSelector
Returns:The parameter if found (MDLParameter or MDLOperand), None otherwise
getParameterValue(aParameter=None)
getParameterValue(aParameter=None)
 getParameterValue(aParameter=None)  

Find a parameter with the given name in the appropriate MDL node implementation, and return its value. The parameter can be: - None in case of a Constant or Selector node, where there is only one parameter. - Simply the name of the parameter to get - A set of names separated by ‘/’ to access a sub member of the root member, for instance ‘surface/intensity’ - A name with an operator [] to access a particular item of a parameter array, for instance ‘color[2]’

Parameters:aParameter (str, optional) – Parameter identifier (name of the operand). Can be None in case of a MDLImplConstant or a MDLImplSelector
Returns:The parameter value if found, None otherwise
getPosition()
getPosition()
 getPosition()  

Get the position of this node in the graph GUI.

Returns:a list of 3 float
getRect()
getRect()
 getRect()  

Return the rectangle of this node.

Returns:The rectangle as a Rect
getResourcesPath()
getResourcesPath()
 getResourcesPath()  

If this node uses resources in its parameters, returns the list of resources used.

Returns:The list of resources used by this node, as internal paths. Return an empty list otherwise.
getUidIsUsed(aUID)
getUidIsUsed(aUID)
 getUidIsUsed(aUID)  

Check if the given uid is already used in the context of this SBSObject.

Parameters:aUID (str) – UID to check
Returns:True if the uid is already used, False otherwise
Raise:AttributeError if the function getUidIsUsed in not properly overloaded on this SBSObject
hasAReferenceOnDependency(aDependency)
hasAReferenceOnDependency(aDependency)
 hasAReferenceOnDependency(aDependency)  

Check if this node directly references the given dependency. For instance if it instantiates a graph or a resource included in this dependency.

Parameters:aDependency (str or SBSDependency) – The dependency to look for (UID or object)
Returns:True if this node references this dependency, False otherwise
hasAReferenceOnInternalPath(aInternalPath)
hasAReferenceOnInternalPath(aInternalPath)
 hasAReferenceOnInternalPath(aInternalPath)  

Check if this node references the given internal path (pkg:///). For instance if it instantiates the graph or the resource pointed at the given path.

Parameters:aInternalPath (str) – The internal path to look for
Returns:True if this node references the given internal path, False otherwise
isAConstant()
isAConstant()
 isAConstant()  
Returns:True if the MDLNode is a constant node implementation, False otherwise.
isAPassthrough()
isAPassthrough()
 isAPassthrough()  
Returns:True if the MDLNode is passthrough (e.g. an implementation of a special node that allows to organize graph connection layout), False otherwise.
isAPotentialOutput()
isAPotentialOutput()
 isAPotentialOutput()  

Check if this node can be set as an output of the MDLGraph

Returns:True if the MDLNode is a MDL instance of kind ‘mdl::material(bool,material_surface,material_surface,color,material_volume,material_geometry)’
isASelector()
isASelector()
 isASelector()  
Returns:True if the MDLNode is selector (e.g. an implementation of a special node that allows access to struct members), False otherwise.
isAnInput()
isAnInput()
 isAnInput()  
Returns:True if the MDLNode is an input of the graph (e.g. exposed constant node), False otherwise.
isConnectedTo(aLeftNode)
isConnectedTo(aLeftNode)
 isConnectedTo(aLeftNode)  

Check if the node is connected to the given node, in the direction aLeftNode -> self

Parameters:aLeftNode (SBSNode or str (UID)) – The node to look for in the connections of this node.
Returns:True if the nodes are connected, False otherwise
isDocked()
isDocked()
 isDocked()  

Check if this node is docked.

Returns:True if this node is docked, None otherwise
isMDLGraphInstance()
isMDLGraphInstance()
 isMDLGraphInstance()  
Returns:True if the MDLNode is a MDL graph instance, False otherwise.
isMDLInstance()
isMDLInstance()
 isMDLInstance()  
Returns:True if the MDLNode is a native function or native material node implementation, False otherwise.
isSBSInstance()
isSBSInstance()
 isSBSInstance()  
Returns:True if the MDLNode is a Substance graph instance, False otherwise.
parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
 parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)  

Parse recursively the given xml node to retrieve the content of the SBSObject.

Parameters:
  • aContext (Context) – execution context
  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)
  • aSBSParser (SBSParser) – the substance parser
  • aXmlNode (xml.etree.ElementTree) – the xml node to parse
removeConnectionOnPin(aInput)
removeConnectionOnPin(aInput)
 removeConnectionOnPin(aInput)  

Remove the connection on the given input pin.

Parameters:aPinIdentifier (InputEnum or FunctionInputEnum or str) – identifier of the input pin (for SBSCompNode and SBSParamNode) or of the output pin(for SBSParamsGraphNode) to disconnect
Returns:True if a connection is removed, False otherwise
removeConnectionsFrom(aLeftNode)
removeConnectionsFrom(aLeftNode)
 removeConnectionsFrom(aLeftNode)  

Remove all the connections from aLeftNode to this node (in the direction aLeftNode -> self)

Parameters:aLeftNode (SBSNode or str (UID)) – The node to look for in the connections of this node.
Returns:Nothing
resetParameter(aParameter=None)
resetParameter(aParameter=None)
 resetParameter(aParameter=None)  

Reset the given parameter to its default value. The parameter can be: - None in case of a Constant or Selector node, where there is only one parameter. - Simply the name of the parameter to get - A set of names separated by ‘/’ to access a sub member of the root member, for instance ‘surface/intensity’ - A name with an operator [] to access a particular item of a parameter array, for instance ‘color[2]’

Parameters:aParameter (str, optional) – identifier of the parameter to set
Returns:True if succeed, False otherwise
Raise:SBSImpossibleActionError if the node has no implementation
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the parameter to the appropriate MDL node implementation The parameter can be: - Simply the name of the parameter to set - A set of names separated by ‘/’ to access a sub member of the root member, for instance ‘surface/intensity’ - A name with an operator [] to access a particular item of a parameter array, for instance ‘color[2]’

Parameters:
  • aParameter (str) – identifier of the parameter to set
  • aParamValue (any parameter type) – value of the parameter
Returns:

True if success, False otherwise

Raise:

SBSImpossibleActionError if the node has no implementation

setPinVisibilityForParameter(aParameter, aVisible)
setPinVisibilityForParameter(aParameter, aVisible)
 setPinVisibilityForParameter(aParameter, aVisible)  

Set the visibility of the input pin associated to the given parameter. Only available for MDL instances and MDL Graph instances

Parameters:
  • aParameter (str) – The parameter to edit
  • aVisible (bool) – The visibility to set
Raise:

SBSImpossibleActionError

setPosition(aPosition)
setPosition(aPosition)
 setPosition(aPosition)  

Set the position of this node in the graph GUI.

Parameters:aPosition (a list of 3 float) – The position to set
useResource(aResourcePath)
useResource(aResourcePath)
 useResource(aResourcePath)  
Returns:True if the node uses the given resource (bsdf measurement, ies profile or texture), False otherwise.
write(aSBSWriter, aXmlNode)
write(aSBSWriter, aXmlNode)
 write(aSBSWriter, aXmlNode)  

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer
  • aXmlNode (xml.etree.ElementTree) – the xml node to fill

Get help faster and easier

New user?