User Guide Cancel

mdlnodeimpl | Substance 3D Automation ToolKit

mdlnodeimpl

Module mdlnodeimpl provides the definition of the class MDLImplementation: and all the possible implementations of a MDLNode:

class mdl.mdlnodeimpl.MDLImplConstant(aOperands=None, aIsExposed=None, aTypeModifier=None, aAnnotations=None, aIdentifier='')
class mdl.mdlnodeimpl.MDLImplConstant(aOperands=None, aIsExposed=None, aTypeModifier=None, aAnnotations=None, aIdentifier='')
 class mdl.mdlnodeimpl.MDLImplConstant(aOperands=None, aIsExposed=None, aTypeModifier=None, aAnnotations=None, aIdentifier='')  

Bases: mdl.mdlcommon.MDLImplWithOperands, mdl.mdlcommon.MDLObjectWithAnnotations

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

Members:
  • mOperands (list of MDLOperands): list of parameters available on this node
  • mIsExposed (str, optional): boolean indicating if the node is exposed as an input parameter. Default to ‘0’
  • mTypeModifier (str, optional): enum or bitfield that indicates the type modifier(s) (varying, uniform, const, …) of the constant. Default to no modifier (‘auto’)
  • mAnnotations (list of MDLAnnotation, optional): if this constant is exposed, defines the MDL annotations associated to this input.
classify(aOther)
classify(aOther)
 classify(aOther)  

Compare the path of the two instances to classify them.

Parameters:aOther (MDLNodeImpl) – The filter to compare to.
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.
getAnnotation(aAnnotation)
getAnnotation(aAnnotation)
 getAnnotation(aAnnotation)  

Get the given annotation.

Parameters:aAnnotation (MDLAnnotationEnum or str) – The annotation to look for, as an enumeration or a mdl path
Returns:The annotation as a MDLAnnotation
getAnnotationValue(aAnnotation)
getAnnotationValue(aAnnotation)
 getAnnotationValue(aAnnotation)  

Get the value of the given annotation.

Parameters:aAnnotation (MDLAnnotationEnum or str) – The annotation to look for, as an enumeration or a mdl path
Returns:The annotation value as a string or list of string if found, None otherwise
getConstantOperand()
getConstantOperand()
 getConstantOperand()  

Get the operand corresponding to the constant represented by this node

Returns:The operand as a MDLOperand object if defined, None otherwise
getDefinition()
getDefinition()
 getDefinition()  

Get the definition of the node (Inputs, Outputs, Parameters)

Returns:a MDLNodeDef object
getDisplayName()
getDisplayName()
 getDisplayName()  
Returns:the display name of this node as a string
getGroup()
getGroup()
 getGroup()  

Get the ‘in_group’ annotation value

Returns:The group/subgroup/subsubgroup value if found, None otherwise
getIdentifier()
getIdentifier()
 getIdentifier()  

Get the identifier of this constant node

Returns:The identifier 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 (str, optional) – The identifier to get. If let None, the first input will be returned
Returns:the input definition as a MDLNodeDefInput if found, None otherwise
getOperand(aOperandName)
getOperand(aOperandName)
 getOperand(aOperandName)  

Get the operand with the given name

Returns:a MDLOperand object if found, None otherwise
getOperands()
getOperands()
 getOperands()  

Get the list of operands objects

Returns:a list of MDLOperand
getOutputType(aOutputIdentifier=None)
getOutputType(aOutputIdentifier=None)
 getOutputType(aOutputIdentifier=None)  

Get the output type of this node.

Returns:The node output type as a string if defined, None otherwise
getParameter(aParameter=None)
getParameter(aParameter=None)
 getParameter(aParameter=None)  

Get the parameter with the given name among the parameters available on the node. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
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 among the parameters available on the node and return its value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
Returns:The parameter value if found (string or MDLOperand, None 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
getUsage()
getUsage()
 getUsage()  

Get the ‘sampler_usage’ annotation value

Returns:The ‘sampler_usage’ value if found, None otherwise
hasUsage(aUsage)
hasUsage(aUsage)
 hasUsage(aUsage)  

Check if the given usage is defined on this constant node

Parameters:aUsage (str or UsageEnum) – The usage to look for (can be an enum value or a custom string)
Returns:True if the given usage is defined on this param input, False otherwise
isAnInput()
isAnInput()
 isAnInput()  

Check if this node is exposed as an input parameter in its parent graph

Returns:True if this is an input, False otherwise
isAnInputImage()
isAnInputImage()
 isAnInputImage()  

Check if this node is an exposed input parameter of kind image (e.g. texture_2d)

Returns:True if this is an input image, False otherwise
isAnInputParameter()
isAnInputParameter()
 isAnInputParameter()  

Check if this node is an exposed input parameter which is not an image (e.g. texture_2d)

Returns:True if this is an input parameter, False otherwise
isExposed()
isExposed()
 isExposed()  

Check if this node is exposed as an input parameter in its parent graph

Returns:True if this is an input, False otherwise
isVisibleByDefault()
isVisibleByDefault()
 isVisibleByDefault()  

Get the ‘visible_by_default’ annotation value. If None, consider the default visible state as True

Returns:True if the constant is visible by default, 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
removeAnnotation(aAnnotation)
removeAnnotation(aAnnotation)
 removeAnnotation(aAnnotation)  

Remove the given annotation from the list of annotations

Parameters:aAnnotation (MDLAnnotationEnum or str) – The annotation to look for, as an enumeration or a mdl path
resetParameter(aParameter = None)
resetParameter(aParameter = None)
 resetParameter(aParameter = None)  

Reset the given parameter to its default value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str) – identifier of the parameter to reset
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
setAnnotation(aAnnotation, aAnnotationValue)
setAnnotation(aAnnotation, aAnnotationValue)
 setAnnotation(aAnnotation, aAnnotationValue)  

Set the given attribute

Parameters:
  • aAnnotation (MDLAnnotationEnum) – The annotation to set, as an enumeration or a mdl path
  • aAnnotationValue (str or list of str) – The value to set
Raise:

SBSImpossibleActionError

setExposed(aExposed)
setExposed(aExposed)
 setExposed(aExposed)  

Set the ‘mIsExposed’ member of this constant to the given value.

Parameters:aExposed (bool) – True to set this constant as exposed
setGroup(aGroup, aSubGroup=None, aSubSubGroup=None)
setGroup(aGroup, aSubGroup=None, aSubSubGroup=None)
 setGroup(aGroup, aSubGroup=None, aSubSubGroup=None)  

Set the ‘in_group’ annotation value with the given group and subgroups

Parameters:
  • aGroup (str) – The main group
  • aSubGroup (str, optional) – The sub-group
  • aSubSubGroup (str, optional) – The sub-sub-group
setIdentifier(aIdentifier)
setIdentifier(aIdentifier)
 setIdentifier(aIdentifier)  

Set the constant identifier

Parameters:aIdentifier (str) – The identifier to set
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the value of the given parameter to the given value, if compatible with this node.

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

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

setUsage(aUsage)
setUsage(aUsage)
 setUsage(aUsage)  

Set the ‘sampler_usage’ annotation value with the given usage

Parameters:aUsage (str) – The usage to set
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
class mdl.mdlnodeimpl.MDLImplMDLGraphInstance(aPath='', aOperands=None, aRefGraph=None, aRefDependency=None)
class mdl.mdlnodeimpl.MDLImplMDLGraphInstance(aPath='', aOperands=None, aRefGraph=None, aRefDependency=None)
 class mdl.mdlnodeimpl.MDLImplMDLGraphInstance(aPath='', aOperands=None, aRefGraph=None, aRefDependency=None)  

Bases: mdl.mdlcommon.MDLImplWithOperands

Class that contains information on a MDL graph instance implementation as defined in a .sbs file

Members:
  • mPath (string): path of the graph definition this instance refers to.
  • mOperands (list of MDLOperands, optional): list of parameters available on this node
changeDependencyUID(aSBSDocument, newDepUID)
changeDependencyUID(aSBSDocument, newDepUID)
 changeDependencyUID(aSBSDocument, newDepUID)  

Change the UID of the dependency referenced by this instance.

Parameters:
  • aSBSDocument (SBSDocument) – The root document, required to reset all the internal links to the referenced graph
  • newDepUID (str) – The new dependency UID
changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)
changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)
 changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)  

Change the MDL graph referenced by this instance. If aInstanceDocument is not already declared as a dependency, the dependency will be added to aParentDocument.

Parameters:
  • aParentDocument (SBSDocument) – The parent document of this node
  • aInstanceDocument (SBSDocument) – The document containing the MDL graph to reference by this instance (can be equal to parent document)
  • aGraphRelPath (str) – The graph path, relatively to its parent package aInstanceDocument (pkg:///myGroup/myGraph)
classify(aOther)
classify(aOther)
 classify(aOther)  

Compare the path of the two instances to classify them.

Parameters:aOther (MDLNodeImpl) – The filter to compare to.
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.
getDefinition()
getDefinition()
 getDefinition()  

Get the definition of the node (Inputs, Outputs, Parameters)

Returns:a MDLNodeDef object
getDependencyUID()
getDependencyUID()
 getDependencyUID()  

Get the UID of the dependency referenced by this instance

Returns:The dependency UID as a string if found, 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 (str, optional) – The identifier to get. If let None, the first input will be returned
Returns:the input definition as a MDLNodeDefInput if found, None otherwise
getOperand(aOperandName)
getOperand(aOperandName)
 getOperand(aOperandName)  

Get the operand with the given name

Returns:a MDLOperand object if found, None otherwise
getOperands()
getOperands()
 getOperands()  

Get the list of operands objects

Returns:a list of MDLOperand
getOutputType(aOutputIdentifier=None)
getOutputType(aOutputIdentifier=None)
 getOutputType(aOutputIdentifier=None)  

Get the output type of this node.

Returns:The node output type as a string if it exists, None otherwise
getParameter(aParameter=None)
getParameter(aParameter=None)
 getParameter(aParameter=None)  

Get the parameter with the given name among the parameters available on the node. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
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 among the parameters available on the node and return its value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
Returns:The parameter value if found (string or MDLOperand, None otherwise
getReferenceAbsPath()
getReferenceAbsPath()
 getReferenceAbsPath()  

Get the absolute path of the graph referenced by this instance.

Returns:The absolute path of the graph referenced by this instance, in the format absolutePath/filename.sbs/graphIdentifier, as a string
getReferenceInternalPath()
getReferenceInternalPath()
 getReferenceInternalPath()  

Get the path of the referenced graph relatively to the package (pkg:///).

Returns:The path as a string
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
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
resetParameter(aParameter = None)
resetParameter(aParameter = None)
 resetParameter(aParameter = None)  

Reset the given parameter to its default value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str) – identifier of the parameter to reset
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
resolveDependency(aSBSDocument)
resolveDependency(aSBSDocument)
 resolveDependency(aSBSDocument)  

Allow to resolve the dependency of the MDL graph instance node with the graph it references.

Parameters:aSBSDocument (SBSDocument) – The root document
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the value of the given parameter to the given value, if compatible with this node.

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

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

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
class mdl.mdlnodeimpl.MDLImplMDLInstance(aPath='', aOperands=None)
class mdl.mdlnodeimpl.MDLImplMDLInstance(aPath='', aOperands=None)
 class mdl.mdlnodeimpl.MDLImplMDLInstance(aPath='', aOperands=None)  

Bases: mdl.mdlcommon.MDLImplWithOperands

Class that contains information on a MDL native function or material node implementation as defined in a .sbs file

Members:
  • mPath (string): path of the graph definition this instance refers to.
  • mOperands (list of MDLOperands, optional): list of parameters available on this node
classify(aOther)
classify(aOther)
 classify(aOther)  

Compare the path of the two instances to classify them.

Parameters:aOther (MDLNodeImpl) – The filter to compare to.
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.
getDefinition()
getDefinition()
 getDefinition()  

Get the definition of the node (Inputs, Outputs, Parameters)

Returns:a MDLNodeDef object
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 (str, optional) – The identifier to get. If let None, the first input will be returned
Returns:the input definition as a MDLNodeDefInput if found, None otherwise
getOperand(aOperandName)
getOperand(aOperandName)
 getOperand(aOperandName)  

Get the operand with the given name

Returns:a MDLOperand object if found, None otherwise
getOperands()
getOperands()
 getOperands()  

Get the list of operands objects

Returns:a list of MDLOperand
getOutputType(aOutputIdentifier=None)
getOutputType(aOutputIdentifier=None)
 getOutputType(aOutputIdentifier=None)  

Get the output type of this node.

Returns:The node output type as a string
getParameter(aParameter=None)
getParameter(aParameter=None)
 getParameter(aParameter=None)  

Get the parameter with the given name among the parameters available on the node. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
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 among the parameters available on the node and return its value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
Returns:The parameter value if found (string or MDLOperand, None 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
isAnInstanceOf(aPath)
isAnInstanceOf(aPath)
 isAnInstanceOf(aPath)  

Get the absolute path of the graph referenced by this instance.

Parameters:aPath (str) – The path to look for, with a complete signature (‘mdl::material_surface(bsdf,material_emission)’) or a simple path (‘mdl::material_surface’)
Returns:The absolute path of the graph referenced by this instance, in the format absolutePath/filename.sbs/graphIdentifier, as a string
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
resetParameter(aParameter = None)
resetParameter(aParameter = None)
 resetParameter(aParameter = None)  

Reset the given parameter to its default value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str) – identifier of the parameter to reset
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the value of the given parameter to the given value, if compatible with this node.

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

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

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
class mdl.mdlnodeimpl.MDLImplPassThrough
class mdl.mdlnodeimpl.MDLImplPassThrough
 class mdl.mdlnodeimpl.MDLImplPassThrough  
classify(aOther)
classify(aOther)
 classify(aOther)  

Compare the path of the two instances to classify them.

Parameters:aOther (MDLNodeImpl) – The filter to compare to.
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.
getDefinition()
getDefinition()
 getDefinition()  

Get the definition of the node (Inputs, Outputs, Parameters)

Returns:a MDLNodeDef object
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 (str, optional) – The identifier to get. If let None, the first input will be returned
Returns:the input definition as a MDLNodeDefInput if found, None otherwise
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 the parameter with the given name among the parameters available on the node. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
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 among the parameters available on the node and return its value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
Returns:The parameter value if found (string or MDLOperand, None 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
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
resetParameter(aParameter = None)
resetParameter(aParameter = None)
 resetParameter(aParameter = None)  

Reset the given parameter to its default value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str) – identifier of the parameter to reset
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the value of the given parameter to the given value, if compatible with this node.

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

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

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
class mdl.mdlnodeimpl.MDLImplSBSInstance(aPath='', aRefGraph=None, aRefDependency=None)
class mdl.mdlnodeimpl.MDLImplSBSInstance(aPath='', aRefGraph=None, aRefDependency=None)
 class mdl.mdlnodeimpl.MDLImplSBSInstance(aPath='', aRefGraph=None, aRefDependency=None)  

Bases: mdl.mdlcommon.MDLNodeImpl

Class that contains information on a Substance graph instance implementation as defined in a .sbs file

Members:
  • mPath (string): package’s url to the referenced graph
  • mParameters (list of MDLParameter): list of custom parameters used for the integration of Substance Graph in MDL.
  • mSBSParameters (list of MDLParameter): parameters holding the values of the Graph’s input tweaks. See SBSGraph.mParamInputs.
  • mSBSBaseParameters (list of MDLParameter): parameters that are common to all Substance Graphs. See SBSGraph.mBaseParameters.
  • mInputBridgings (list of MDLInputBridging): list of input bridgings of this SBS graph instance
  • mOutputBridgings (list of MDLOutputBridging): list of output bridgings of this SBS graph instance
changeDependencyUID(aSBSDocument, newDepUID)
changeDependencyUID(aSBSDocument, newDepUID)
 changeDependencyUID(aSBSDocument, newDepUID)  

Change the UID of the dependency referenced by this instance.

Parameters:
  • aSBSDocument (SBSDocument) – The root document, required to reset all the internal links to the referenced graph
  • newDepUID (str) – The new dependency UID
changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)
changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)
 changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)  

Change the Substance graph referenced by this instance. If aInstanceDocument is not already declared as a dependency, the dependency will be added to aParentDocument.

Parameters:
  • aParentDocument (SBSDocument) – The parent document of this node
  • aInstanceDocument (SBSDocument) – The document containing the Substance graph to reference by this instance (can be equal to parent document)
  • aGraphRelPath (str) – The graph path, relatively to its parent package aInstanceDocument (pkg:///myGroup/myGraph)
classify(aOther)
classify(aOther)
 classify(aOther)  

Compare the path of the two instances to classify them.

Parameters:aOther (MDLNodeImpl) – The filter to compare to.
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.
getDefinition()
getDefinition()
 getDefinition()  

Get the definition of the node (Inputs, Outputs, Parameters)

Returns:a MDLNodeDef object
getDependencyUID()
getDependencyUID()
 getDependencyUID()  

Get the UID of the dependency referenced by this instance

Returns:The dependency UID as a string if found, None otherwise
getDisplayName()
getDisplayName()
 getDisplayName()  
Returns:the display name of this node as a string
getInputBridgeUID(aInputIdentifier)
getInputBridgeUID(aInputIdentifier)
 getInputBridgeUID(aInputIdentifier)  

Get the input bridge UID (e.g. local identifier) of the input with the given identifier

Parameters:aInputIdentifier (str) – The input identifier to look for.
Returns:The UID of the input bridging corresponding to the given input identifier, 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 (str, optional) – The identifier to get. If let None, the first input will be returned
Returns:the input definition as a MDLNodeDefInput if found, None otherwise
getInputIdentifier(aInputBridgeUID)
getInputIdentifier(aInputBridgeUID)
 getInputIdentifier(aInputBridgeUID)  

Get the identifier of the input with the given bridge UID (e.g. local identifier)

Parameters:aInputBridgeUID (str) – The input bridge UID to look for.
Returns:The identifier of the input bridging corresponding to the given UID, as a string
getOutputBridgeUID(aOutputIdentifier)
getOutputBridgeUID(aOutputIdentifier)
 getOutputBridgeUID(aOutputIdentifier)  

Get the output bridge UID of the output with the given identifier

Parameters:aOutputIdentifier (str) – The output identifier to look for.
Returns:The UID of the output bridging corresponding to the given output identifier, as a string
getOutputIdentifier(aOutputBridgeUID)
getOutputIdentifier(aOutputBridgeUID)
 getOutputIdentifier(aOutputBridgeUID)  

Get the identifier of the output with the given bridge UID

Parameters:aOutputBridgeUID (str) – The output bridge UID to look for.
Returns:The identifier of the output bridging corresponding to the given UID, as a string
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 the parameter with the given name among the parameters available on the node. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
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 among the parameters available on the node and return its value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
Returns:The parameter value if found (string or MDLOperand, None otherwise
getReferenceAbsPath()
getReferenceAbsPath()
 getReferenceAbsPath()  

Get the absolute path of the graph referenced by this instance.

Returns:The absolute path of the graph referenced by this instance, in the format absolutePath/filename.sbs/graphIdentifier, as a string
getReferenceInternalPath()
getReferenceInternalPath()
 getReferenceInternalPath()  

Get the path of the referenced graph relatively to the package (pkg:///).

Returns:The path as a string
getUidIsUsed(aUID)
getUidIsUsed(aUID)
 getUidIsUsed(aUID)  

Check if the given uid is already used in the context of this MDL node

return: True if the uid is already used, 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
resetParameter(aParameter = None)
resetParameter(aParameter = None)
 resetParameter(aParameter = None)  

Reset the given parameter to its default value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str) – identifier of the parameter to reset
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
resolveDependency(aSBSDocument)
resolveDependency(aSBSDocument)
 resolveDependency(aSBSDocument)  

Allow to resolve the dependency of the SBS graph instance node with the graph it references.

Parameters:aSBSDocument (SBSDocument) – The root document
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the value of the given parameter to the given value, if compatible with this node.

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

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

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
class mdl.mdlnodeimpl.MDLImplSelector(aStructType='', aName='', aType='')
class mdl.mdlnodeimpl.MDLImplSelector(aStructType='', aName='', aType='')
 class mdl.mdlnodeimpl.MDLImplSelector(aStructType='', aName='', aType='')  

Bases: mdl.mdlcommon.MDLNodeImpl

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

Members:
  • mStructType (string): The struct’s MDL path from which we want to extract a member. It should match the type of what is connected to the unique input of this node.
  • mName (string): The selected member name.
  • mType (string): The selected member type (its MDL path).
classify(aOther)
classify(aOther)
 classify(aOther)  

Compare the path of the two instances to classify them.

Parameters:aOther (MDLNodeImpl) – The filter to compare to.
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.
getDefinition()
getDefinition()
 getDefinition()  

Get the definition of the node (Inputs, Outputs, Parameters)

Returns:a MDLNodeDef object
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 (str, optional) – The identifier to get. If let None, the first input will be returned
Returns:the input definition as a MDLNodeDefInput if found, None otherwise
getMemberList()
getMemberList()
 getMemberList()  

Get the list of available members and their types for this Selector

Returns:a list of tuple(member name(str), member type(str))
getOutputType(aOutputIdentifier=None)
getOutputType(aOutputIdentifier=None)
 getOutputType(aOutputIdentifier=None)  

Get the output type of this node.

Returns:The node output type as a string
getParameter(aParameter=None)
getParameter(aParameter=None)
 getParameter(aParameter=None)  

Get the parameter with the given name among the parameters available on the node. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
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 among the parameters available on the node and return its value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str, optional) – Parameter identifier
Returns:The parameter value if found (string or MDLOperand, None 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
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
resetParameter(aParameter = None)
resetParameter(aParameter = None)
 resetParameter(aParameter = None)  

Reset the given parameter to its default value. aParameter can be None in case of a Constant or Selector node, where there is only one parameter.

Parameters:aParameter (str) – identifier of the parameter to reset
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
setParameterValue(aParameter, aParamValue)
setParameterValue(aParameter, aParamValue)
 setParameterValue(aParameter, aParamValue)  

Set the value of the given parameter to the given value, if compatible with this node.

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

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

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
class mdl.mdlnodeimpl.MDLImplementation(aImplConstant=None, aImplSelector=None, aImplMDLInstance=None, aImplMDLGraphInstance=None, aImplSBSInstance=None, aImplPassThrough=None)
class mdl.mdlnodeimpl.MDLImplementation(aImplConstant=None, aImplSelector=None, aImplMDLInstance=None, aImplMDLGraphInstance=None, aImplSBSInstance=None, aImplPassThrough=None)
 class mdl.mdlnodeimpl.MDLImplementation(aImplConstant=None, aImplSelector=None, aImplMDLInstance=None, aImplMDLGraphInstance=None, aImplSBSInstance=None, aImplPassThrough=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Class that contains information on the implementation of a MDL node as defined in a .sbs file. The implementation is exclusive, only one member of the MDLImplementation is defined.

Members:
classify(aOther, aParentContainer = None)
classify(aOther, aParentContainer = None)
 classify(aOther, aParentContainer = None)  

Use the definition of the two MDLImplementation to classify them.

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

Constant < Selector < MDL instance < MDL graph instance < SBS graph instance.

In case of equality, the appropriate classify function is called, depending on the kind of implementation.

Parameters:aOther (MDLImplementation) – The filter to compare to.
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.
getImplementation()
getImplementation()
 getImplementation()  

Get the implementation kind of this node, among the list defined in MDLImplementationKindEnum

getImplementationKind()
getImplementationKind()
 getImplementationKind()  

Get the implementation kind of this node, among the list defined in MDLImplementationKindEnum

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
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.
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.
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.
isSBSPassThrough()
isSBSPassThrough()
 isSBSPassThrough()  

isSBSInstance()

Returns:True if the MDLNode is a passthrough 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
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?