output module

Module graph.output provides the definition of the classes related to the compositing graph output:
class graph.output.SBSGraphOutput(aIdentifier='', aUID='', aAttributes=None, aUsages=None, aChannels=None, aDisabled=None, aGroup=None, aVisibleIf=None, aMetaDataTree=None)

Bases: SBSObject, GraphOutput, SBSMetaDataObject

Class that contains information on a graph output of a graph, as defined in a .sbs file

Members:
  • mIdentifier (str): identifier of this output.

  • mUID (str): unique identifier in the /graph/ context.

  • mAttributes (SBSAttributes): various attributes

  • mDisabled (str, optional): this output is disabled (“1” / None)

  • mVisibleIf (str, optional): string bool expression based on graph inputs values

  • mUsages (list of SBSUsage, optional): usages of this output

  • mChannels (str, optional): channels defined (RGBA, RGB, Grayscale)

  • mGroup (str, optional): string that contains a group name. Can uses path with ‘/’ separators.

addUsage(aUsage, aComponents=sbsenum.ComponentsEnum.RGBA)

Add the given usage on this output

Parameters:
  • aUsage (str or UsageEnum) – The usage to set

  • aComponents (ComponentsEnum, optional) – The components associated to this usage. Default to sbsenum.ComponentsEnum.RGBA

Returns:

the create SBSUsage object

createMetaDataStr(aName, aValue)

Create a metadata of type Str.

Parameters:
Returns:

A SBSMetaDataUrl object

createMetaDataUrl(aName, aResource)

Create a metadata of type Url.

Parameters:
Returns:

A SBSMetaDataUrl object

deleteMetaData(aName)

Delete a metadata, return True if success.

Parameters:

aName (str)

Returns:

bool

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.

getAllMetaData()

Get all MetaData under dictionary form.

Returns:

dict

getAllowedAttributes()

Get the attributes allowed on a SBSGraphOutput

Returns:

the list of attribute enumeration allowed (AttributesEnum)

getAttribute(aAttributeIdentifier)

Get the given attribute value

Parameters:

aAttributeIdentifier (AttributesEnum) – the attribute identifier

Returns:

the attribute value if defined, None otherwise

getIdentifier()
Returns:

SBSGraphOutput’s identifier

Return type:

str

getMetaData(aName)

Get a MetaData by its name

Parameters:

aName (str)

Returns:

SBSMetaDataTreeUrl or SBSMetaDataTreeStr

getOutputChannel(**kwargs)
getSBSMetaDataTree()

Get the SBSMetaDataTree structure.

Returns:

class .SBSMetaDataTree

getType()

Get the output type of this GraphOutput.

Returns:

the output type in the format ParamTypeEnum if found, None otherwise

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

getUsages()

Get the usages of this output

Returns:

the list of SBSUsage defined on this output

hasUsage(aUsage)

Check if the given usage is defined on this output

Parameters:

aUsage (str or UsageEnum) – The usage to look for

Returns:

True if the given usage is defined on this output, False otherwise

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

setAttribute(aAttributeIdentifier, aAttributeValue)

Set the given attribute

Parameters:
  • aAttributeIdentifier (AttributesEnum) – The attribute identifier to set

  • aAttributeValue (str) – The attribute value to set

setAttributes(aAttributes)

Set the given attributes

Parameters:

aAttributes (dictionary in the format {AttributesEnum : value}) – The attributes to set

setMetaDataName(aMetadata, aName)

Set name of a metadata if name is valid

Parameters:
setMetaDataValue(aMetadata, aValue)

Set value of a metadata

Parameters:
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 graph.output.SBSRoot(aDisabled=None, aRootOutputs=None)

Bases: SBSObject

Class that contains information on the root graph as defined in a .sbs file Root graphs outputs are directly computed at runtime, cooking always needed.

Members:
  • mDisabled (str, optional): this root is disabled (“1” / None)

  • mRootOutputs (list of SBSRootOutput): options of the outputs of this root.

deleteRootOutput(aOutputUID)

Delete the SBSRootOutput with the given UID

Parameters:

aOutputUID (str) – the uid of the output to remove in the list of root outputs

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.

getRootOutput(aOutputUID)

Get the SBSRootOutput with the given UID

Parameters:

aOutputUID (str) – the uid of the output to remove in the list of root outputs

Returns:

a SBSRootOutput if found, None otherwise

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 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 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 graph.output.SBSRootOutput(aOutput='', aFormat=None, aMipmaps=None, aUserTag='', aDisabled=None, aStreamingInfo=None)

Bases: SBSObject

Class that contains information on the root output of a graph as defined in a .sbs file

Members:
  • mOutput (str): uid of the graph output.

  • mFormat (str, optional): texture format of the output.

  • mMipmaps (str, optional): Depth of the output, 0: full mipmaps pyramid

  • mUserTag (str): user information useful for the 3D engine using the substance engine (UNICODE string) (e.g. filepath and texture name).

  • mDisabled (str, optional): this output is disabled (“1” / None)

  • mStreamingInfo (str, optional): streaming information

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.

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 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 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 graph.output.SBSUsage(aComponents='', aName='', aColorSpace=None)

Bases: SBSObject

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

Members:
  • mComponents (str): combination of RGBA, among the list defined in sbslibrary.__dict_CommonUsageComponents

  • mName (str): usage hint, among the list defined in sbslibrary.__dict_CommonUsages.

  • mColorSpace (str): color space, custom string or a member from the list defined in sbslibrary.__dict_CommonColorSpaces

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.

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 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 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