- 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
dynamicvalue
Module dynamicvalue provides the definition of the class SBSDynamicValue
: which allows to represent all the function graph in Substance Designer: - A function graph - A function defining the value of a dynamic parameter - The Pixel processor function
class params.dynamicvalue.SBSDynamicValue(aGUILayoutParam=None, aRootNode=None, aParamNodes=None, aGUIObjects=None, aOptions=None, aValueProcessorRef=None)
Bases: pysbs.common_interfaces.sbsobject.SBSObject
Class that contains information on a dynamic value as defined in a .sbs file. A dynamic value allows to define a function, for a dynamic parameter, a pixel processor or a function graph.
- Members:
- mGUILayoutParam (
SBSGUILayoutComp
): GUI flags and options. - mRootNode (str, optional): uid of the output node of the function.
- mParamNodes (list of
SBSParamNode
): function nodes list. - mGUIObjects (list of
SBSGUIObject
): GUI specific objects. - mOptions (list of
SBSOption
): list of specific options. - mValueProcessorRef (
weakref
): Weak Reference to a value processor to keep output type in sync or None
- mGUILayoutParam (
connectNodes(aLeftNode, aRightNode, aRightNodeInput = None)
Connect the given nodes together: aLeftNode -> aRightNode(on the input aRightNodeInput) If the right node input is None, the connection will be done on the first compatible input of the right node.
Parameters: |
|
---|---|
Returns: | The connection if success, None otherwise (in case of type incompatibility for instance) |
Raise: |
|
contains(aNode)
Check if the given node belongs to this function graph
Parameters: | aNode (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 |
copy()
Get deep copy of this SBSDynamicValue
Returns: | A SBSDynamicValue object, identical to this object |
---|
copyNode(aCompNode)
Create a copy of the given node and generate a new uid for it
Parameters: | aCompNode (SBSParamNode ) – the node to copy |
---|---|
Returns: | The new SBSParamNode object |
createComment(aCommentText='Comment', aGUIPos=None, aLinkToNode=None)
Create a new comment. If aLinkToNode is not None, this comment will be linked to the given node, and the given GUI position must be relative to this node.
Parameters: |
|
---|---|
Returns: | The |
createFrame(aSize, aFrameTitle='Frame', aCommentText='', aGUIPos=None, aColor=None, aDisplayTitle=True)
Create a new framed comment.
Parameters: |
|
---|---|
Returns: | The |
createFrameAroundNodes(aNodeList, aFrameTitle='Frame', aCommentText='', aColor=None, aDisplayTitle=True)
Create a new framed comment around the given nodes.
Parameters: |
|
---|---|
Returns: | The |
Raise: |
|
createFunctionInstanceNode(aSBSDocument, aFunction, aGUIPos = None)
Create a new function node of kind ‘instance’ which references the given function.
- Note:
- The function must be defined in the given SBSDocument.
- Use
createFunctionInstanceNodeFromPath()
to add an instance of a function included in an external package.
Parameters: |
|
---|---|
Returns: | The new |
Raise: |
|
createFunctionInstanceNodeFromPath(aSBSDocument, aPath, aGUIPos = None)
Create a new function node of kind ‘instance’ which references the function pointed by the given path.
Parameters: |
|
---|---|
Returns: | The new |
Raise: |
|
createFunctionNode(aFunction, aGUIPos = None, aParameters = None)
Create a new compositing node filter and add it to the CompNodes of the graph.
Parameters: |
|
---|---|
Returns: | The new |
createIterationOnNode(aNbIteration, aNodeUID, aGUIOffset = None)
Duplicate NbIteration times the given node, and connect each created node to the previous one
Parameters: |
|
---|---|
Returns: | The last |
createIterationOnPattern(aNbIteration, aNodeUIDs, aNodeUIDs_NextPatternInput = None, aGUIOffset = None)
Duplicate NbIteration times the given pattern of parameters nodes, and connect each pattern with the previous one.
It allows to completely define the way two successive patterns are connected.
For instance, provide aNodeUIDs = [A, B, C] and aNodeUIDs_NextPatternInput = [A’], if the pattern is A -> B -> C, and if C is connected to A’
If aNodeUIDs_NextPatternInput is let empty, the function will try to connect the successive patterns by the most obvious way, respecting the input / output type (color / grayscale)
Parameters: |
|
---|---|
Returns: | The list of |
createNavigationPin(self, aPinText, aGUIPos)
Create a new navigation pin.
Parameters: |
|
---|---|
Returns: | The |
deleteComment(aComment)
Allows to delete the given comment from the graph.
Parameters: | aComment (SBSGUIObject or str) – The comment to remove, as a Comment or an UID. |
---|---|
Returns: | True if success |
Raise: | api_exceptions.SBSImpossibleActionError |
deleteFrame(aFrame)
Allows to delete the given frame from the graph.
Parameters: | aFrame (SBSGUIObject or str) – The frame to remove, as a Frame or an UID. |
---|---|
Returns: | True if success |
Raise: | api_exceptions.SBSImpossibleActionError |
deleteNavigationPin(aNavigationPin)
Allows to delete the given navigation pin from the graph.
Parameters: | aNavigationPin (SBSGUIObject or str) – The navigation pin to remove, as a NavigationPin or an UID. |
---|---|
Returns: | True if success |
Raise: | api_exceptions.SBSImpossibleActionError |
deleteNode(aNode)
Allows to delete the given node from the graph. It removes it from the ParamNode list, and delete all the connection from and to that node in the function graph.
Parameters: | aNode (SBSParamNode or str) – The node to remove, as a SBSParamNode or an UID. |
---|---|
Returns: | True if success |
Raise: | api_exceptions.SBSImpossibleActionError |
disconnectNodes(self, aLeftNode, aRightNode, aRightNodeInput = None)
Disconnect the given nodes: aLeftNode -> aRightNode(on the input aRightNodeInputIdentifier). If the right node input is None, all connections will be removed.
Parameters: |
|
---|---|
Returns: | Nothing |
Raise: |
|
duplicateNode(aCompNode, aGUIOffset = None)
Duplicate the given node, generate a new UID and add the node to the same node list than the source node.
Parameters: |
|
---|---|
Returns: | The new |
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.
getAllComments()
Get all comments defined in the graph
Returns: | a list of SBSGUIObject |
---|
getAllDependencyUID()
Get the UIDs of the dependencies used by this dynamic function
Returns: | a list of UIDs as strings |
---|
getAllFrames()
Get all frames defined in the graph
Returns: | a list of SBSGUIObject |
---|
getAllFunctionsOfKind(aFunction)
Search for all SBSParamNode which represents the given filter kind.
Parameters: | aFunction (FunctionEnum str) – kind of filters to look for |
---|---|
Returns: | a list of SBSParamNode containing all functions of the given kind. |
getAllGUIObjects()
Get all the GUI objects defined in the graph (Comments, Frames, Navigation Pins)
Returns: | a list of SBSGUIObject |
---|
getAllNavigationPins()
Get all the navigation pins defined in the graph
Returns: | a list of SBSGUIObject |
---|
getAllNodeInstancesOf(aSBSDocument, aPath)
Search for all SBSParamNode of kind ‘instance’, which reference the given function path.
Parameters: |
|
---|---|
Returns: | a list of |
getAllReferencesOnDependency(self, (aDependency)
Get all the SBSParamNode that are referencing the given dependency
Parameters: | aDependency (str or SBSDependency ) – The dependency to look for (UID or object) |
---|---|
Returns: | A list of SBSParamNode |
getCommentsAssociatedToNode(aNode)
Get the list of comments associated to the given node
Parameters: | aNode (SBSParamNode or str) – The node to consider, as a SBSParamNode or given its UID |
---|---|
Returns: | a list of SBSGUIObject |
getConnectionsFromNode(self, aLeftNode)
Get the connections starting from the output of the given left node.
Parameters: | aLeftNode (SBSParamNode or str) – the node to consider, as a SBSCompNode or given its uid |
---|---|
Returns: | a list of SBSConnection |
getConnectionsToNode(self, aRightNode, aRightNodeInput=None)
Get the connections incoming to the given right node, to a particular input or for all its inputs.
Parameters: |
|
---|---|
Returns: | a list of |
getNode(aNode)
Search for the given function node in the node list
Parameters: | aNode (SBSParamNode or str) – node to get, identified by its uid or as a SBSParamNode |
---|---|
Returns: | A SBSParamNode object if found, None otherwise |
getNodeAssociatedToComment(aComment)
Get the node associated to the given comment.
Parameters: | aComment (SBSGUIObject ) – The comment to consider |
---|---|
Returns: | the SBSParamNode if found, None otherwise |
getNodeList(aNodesList = None)
Get all the function nodes of this function, or look for the given nodes if aNodesList is not None
Parameters: | aNodesList (list of str or list of SBSParamNode , optional) – list of node to look for |
---|---|
Returns: | a list of SBSParamNode included in the function graph |
getNodesConnectedFrom(aLeftNode)
Get all the nodes connected to an output of the given node.
Parameters: | aLeftNode (SBSParamNode or str) – the node to consider |
---|---|
Returns: | a list of SBSParamNode |
getNodesConnectedTo(aRightNode, aRightNodeInput=None)
Get all the nodes connected to the given input of the given node. If aInputIdentifier is let None, consider all the inputs of the node.
Parameters: |
|
---|---|
Returns: | a list of |
getNodesDockedTo(aNode)
Get all the nodes that are docked to the given node.
Parameters: | aNode (SBSParamNode or str) – the node to consider |
---|---|
Returns: | a list of SBSParamNode corresponding to the nodes that are docked to the given node. |
getNodesInFrame(aFrame)
Get all the nodes included or partially included in the given frame. The frame must be included in this function, otherwise SBSImpossibleActionError is raised
Parameters: | aFrame (SBSGUIObject ) – The frame to consider |
---|---|
Returns: | a list of SBSParamNode |
getOutputNode()
Get the output node of the function.
Returns: | The SBSParamNode corresponding to the output node, None if there is no output node |
---|
getOutputType()
Get the type of output node of the function.
Returns: | The type to the output node, in the format ParamTypeEnum . VOID_TYPE if there is no output node |
---|
getRect(aNodeList = None)
Get the rectangle occupied by all the nodes of this function, or use only the given nodes if aNodeList is not None
Parameters: | aNodeList (list of str or list of SBSParamNode , optional) – The list of node to take in account for the GUI rectangle. None to consider the node list pointed by itself. |
---|---|
Returns: | A Rect |
getUidIsUsed(aUID)
Parse the node list to find a node with the given uid
Parameters: | aUID (str) – UID to check |
---|---|
Returns: | True if a node has this uid |
getUsedParameters(aParameters)
Get all the input parameters used in the this dynamic value among the given list, meaning the ones that are get by the function.
Parameters: | aParameters (list of SBSParamInput ) – the input parameters to look for |
---|---|
Returns: | the list of useless SBSParamInput |
isAPathBetween(self, aLeftNode, aRightNode)
Check if there is a path from the left node to the right node with the current connections.
Parameters: |
|
---|---|
Returns: | True if a path is found, False otherwise |
moveConnectionOnPinInput(self, aInitialNode, aTargetNode, aInitialNodeInput=None, aTargetNodeInput=None)
Allows to move the connection connected to the given pin input of the given node to the target pin input of the target node.
Parameters: |
|
---|---|
Returns: |
|
Raise: |
|
moveConnectionsOnPinOutput(self, aInitialNode, aTargetNode)
Allows to move all the connections connected to the output of the given node to the output of the target node.
Parameters: |
|
---|---|
Raise: |
|
parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
Parse recursively the given xml node to retrieve the content of the SBSObject.
reframeAroundNodes(aFrame, aNodeList)
Move and resize a frame to be around the given nodes.
Parameters: |
|
---|---|
Raise: | SBSImpossibleActionError |
setOutputNode(aNode)
Set the output node of the function.
Parameters: | aNode (SBSParamNode or str) – the node to set as output, or its UID |
---|---|
Returns: | The SBSParamNode corresponding to the output node, False if not found |
Raise: | api_exceptions.SBSImpossibleActionError |
setToInputParam(aParentGraph, aInputParamIdentifier)
This function will be set to return the value of the given input parameter defined on the given graph
Parameters: |
|
---|---|
Returns: | True if succeed |
Raise: |
|
sortNodesAsDAG()
Sort the ParamNode list of the function to order them as a DAG. The member mParamNodes is updated.
Returns: | the sorted node list. |
---|
updateValueProcessorType()
Updates the value processor type so it represents what is in the dynamic value if there is one
Returns: | None |
---|
write(aSBSWriter, aXmlNode)
Write recursively the content of the SBSObject into the given xml node.
Parameters: |
|
---|