- Substance 3D home
- Home
- Command Line Tools
- Command Line overview
- sbsbaker
- sbscooker
- sbsmtools
- sbsmutator
- sbsrender
- sbsupdater
- Command Line overview
- Pysbs - Python API
- Pysbs - Python API overview
- Getting started
- General topics
- Examples
- API Content
- API Content overview
- Substance definitions
- Common interfaces
- compnode
- context projectmgr
- graph
- mdl
- modelgraphindex
- modelannotationnames
- modelgraph
- modelgraphgenerator
- modelgraphimplementation
- modelnodenames
- modeloperand
- modulegraphindex
- moduleannotation
- moduleconnection
- modulegraph
- modulegraphgenerator
- modulegraphimplementation
- modulegraphlibrary
- modulegraphregister
- modulenode
- modulenodeimplementation
- modulenodeinstance
- moduleoperand
- moduleoutputbridging
- moduleparaminput
- params
- projectmgrdoc
- sbsarchive
- sbscommon
- sbspreset
- sbsproject
- substance
- Libraries
- sbsenum
- sbslibrary
- sbsbakerslibrary
- Helpers
- Execution context
- API Change log
- Samples
- Setup and Getting Started
- Integrations
- Substance Maya toolset
- Changelog overview
nodes
class sbscommon.nodes.NodeList(aParentObject, aNodeType, aNodesAttribute)
Bases: object
Class used to provide common methods to SBSObjects that contains a list of nodes: SBSGraph
and SBSDynamicValue
- Members:
- mParentObject (
SBSObject
): Parent object that contains the node list. - mNodeType (class): type of node (compnode.SBSCompNode for instance).
- mNodesAttr (str): attribute member name in the parent object that corresponds to the node list.
- mParentObject (
computeConnectionsInsidePattern(aNodeList)
Compute the input and output connections of the nodes included in the list. It uses the node definition to order the nodes, and the GUI position in case of equality.
Parameters: | aNodeList (list of tuple(int, SBSNode ).) – The list of node to take in account for the topological sort. |
---|---|
Returns: | The input and output connections of each node, as a list of tuple (list of inputs, list of outputs) of the same size than aNodeList, where each element of a list describe a connection with three elements:
|
computePatternInputsAndOutputs(aNodeList, connectionsInsidePattern)
- Compute the input and output pins that corresponds to the input and output of the whole pattern.
- An input pin is connected to a node that does not belong to the pattern.
- An output pin is never referenced by the connections inside the pattern.
Parameters: |
|
---|---|
Returns: |
The list of input and output pins as a tuple (list of inputs, list of outputs), where each element of a list describe a pin with three elements:
|
Raise: |
|
computeSortedIndicesOfDAG(aNodeList = None)
Sort topologically the nodes included in the list.
Parameters: |
|
---|---|
Returns: | The sorted node list |
contains(aNode)
Check if the given node belongs to this node list
Parameters: | aNode (SBSCompNode , SBSParamNode or str) – The node to check, as a, object or an UID |
---|---|
Returns: | True if the given node belongs to the node list, False otherwise |
copyNode(aNode)
Create a copy of the given node and generate a new uid for it
deleteNode(aNode)
Allows to delete the given node from the graph. It removes it from the nodes list, and delete all the connections from and to that node in the graph.
Parameters: | aNode (SBSNode or str) – The node to remove, as a SBSNode or an UID. |
---|---|
Returns: | True if success |
Raise: | api_exceptions.SBSImpossibleActionError |
duplicateNode(aNode, aGUIOffset = None)
Duplicate the given node, generate a new UID and add the node to the same node list than the source node.
getConnectionsFromNode(aNode)
Get all the connections coming from the given left node.
Parameters: | aNode (SBSNode or str) – the node to consider, as an object or a UID |
---|---|
Returns: | a list of SBSConnection |
getConnectionsToNode(self, aNode, aPinIdentifier=None)
Get the connections incoming to the given node, to a particular input or for all its inputs.
Parameters: |
|
---|---|
Returns: | a list of |
getNode(aNode)
Search for the given node in the node list
getNodeList(aNodesList = None)
Get all the nodes of this NodeList, or look for the given nodes if aNodesList is not None.
getNodesConnectedFrom(aNode)
Get all the nodes connected to an output of the given node.
getNodesConnectedTo(aNode, aPinIdentifier=None)
Get all the nodes connected to the given pin of the given node. If aPinIdentifier is let None, consider all the pins.
getNodesDockedTo(aNode)
Get all the nodes that are docked to the given node.
getRect(aNodeList = None)
Get the rectangle occupied by all the nodes in the list, or use only the given nodes if aNodeList is not None
isAPathBetween(self, aLeftNode, aRightNode)
Check if there is a path from the left node to the right node with the current connections.
sortListLexicographically(aNodeList)
Sort ‘lexicographically’ the nodes included in the list. It uses the node definition to classify the nodes, and the GUI position in case of equality.
Parameters: | aNodeList (list of tuple(int, SBSNode ).) – The list of node to take in account for the lexicographical sort. |
---|---|
Returns: | The sorted node list |
sortNodesAsDAG(aUpdateNodeListMember = True)
Sort the node list of the graph to order them as a DAG. The node list is updated and returned.
Parameters: | aUpdateNodeListMember (bool) – True to update the node list member with the sorted nodes, False to just get the sorted list. Default to True. |
---|---|
Returns: | the sorted node list. |
class sbscommon.nodes.SBSNode(aGUIName=None, aUID='', aDisabled=None, aConnections=None, aGUILayout=None)
Bases: pysbs.common_interfaces.sbsobject.SBSObject
Class used to gather common information of a SBSCompNode
, SBSParamNode
, SBSParamsGraphNode
and MDLNode
- Members:
- mGUIName (str, optional): name of the node.
- mUID (str): node unique identifier in the /compNodes/ context.
- mDisabled (str, optional): this node is disabled.
- mGUILayout (
SBSGUILayout
): GUI position/options - mConnections (list of
SBSConnection
, optional): input connections list.
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.
getConnectedNodesUID()
Get the UIDs of the nodes connected to this node.
Returns: | The UIDs as a list of string |
---|
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()
Get the connections defined on this node.
Returns: | a list of SBSConnection |
---|
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()
Get the node definition (Inputs, Outputs, Parameters) accordingly to the node implementation
Returns: | a NodeDef object if defined, None otherwise |
---|
getDisplayName()
Get the display name of this node
Returns: | the display name as a string |
---|
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 |
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 |
getPosition()
Get the position of this node in the graph GUI.
Returns: | a list of 3 float |
---|
getRect()
Return the rectangle of this node.
Returns: | The rectangle as a Rect |
---|
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)
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)
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 |
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()
Check if this node is docked.
Returns: | True if this node is docked, None otherwise |
---|
parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
Parse recursively the given xml node to retrieve the content of the SBSObject.
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)
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 |
setPosition(aPosition)
Set the position of this node in the graph GUI.
Parameters: | aPosition (a list of 3 float) – The position to set |
---|
write(aSBSWriter, aXmlNode)
Write recursively the content of the SBSObject into the given xml node.
Parameters: |
|
---|