sbsargraph module

Module sbsargraph aims to define SBSARObjects that are relative to a graph as saved in a .sbsar file, mostly SBSARGraph, SBSARInput, SBSAROutput, SBSARPreset and SBSARPresetInput.

class sbsarchive.sbsargraph.SBSARGraph(aLabel='', aPkgUrl='', aGuiGroups=None, aParamInputs=None, aGraphOutputs=None, aPresets=None, aAuthor=None, aAuthorUrl=None, aCategory=None, aDescription=None, aHideInLibrary=None, aKeywords=None, aPhysicalSize=None, aPrimaryInput=None, aUserData=None, aMetaDataTree=None, aIcon=None, aGraphType=None, aMaterialModel=None)

Bases: SBSARObject, Graph, SBSARMetaDataObject

Class that contains information on a compositing graph as defined in a .sbsar file

Members:
  • mLabel (str): label of the graph.

  • mPkgUrl (str): URL of the graph relatively to the package (pkg://graphIdentifier).

  • mGuiGroups (list of SBSARGuiGroup): List of parameters groups.

  • mParamInputs (list of SBSARInput): list of parameters and compositing inputs of the graph.

  • mGraphOutputs (list of SBSAROutput): list of compositing outputs of the graph.

  • mPresets (list of SBSARPreset): list of presets.

  • mAuthor (str, optional): Author.

  • mAuthorUrl (str, optional): Author URL.

  • mCategory (str, optional): Category.

  • mDescription (str, optional): Textual graph description.

  • mHideInLibrary (str, optional): Define if the graph is hidden in the library or not. Default to ‘off’

  • mKeywords (str, optional): List of tags separated by a space.

  • mPhysicalSize (str, optional): Physical Size attribute

  • mPrimaryInput (str, optional): The identifier of the primary (image) input.

  • mUserData (str, optional): Textual user data.

  • mIcon (str, optional): Icon filename

  • mGraphType (str, optional): Graph type

  • mMaterialModel (str, optional): Material model

createMetaDataStr(aName, aValue)
createMetaDataUrl(aName, aResource)
deleteMetaData(aName)
extractSbsarMetaDataPack(aDestFolderPath)

Extract all metadata resource files present in the sbsar.

Parameters:

aDestFolderPath (str) – a directory path

Returns:

a complete file path

extractSbsarMetaDataResource(aDestFolderPath, aSbsarResourcePath)

Extract a resource file present in the sbsar. The sbsar resource path is the sbsar relative path to the resource file.

Parameters:
  • aDestFolderPath (str) – a directory path

  • aSbsarResourcePath (str) – sbsar relative path to the resource file, ex: “resources/1/untitled.blend”

Returns:

a complete file path

getAllGuiGroups()

Get the list of all parameter groups defined on this graph

Returns:

a list of SBSARGuiGroup

getAllInputGroups()

Get the list of all groups used for the inputs of the graph.

Returns:

a list of groups as strings

getAllInputs()

Get the list of all inputs (images and parameters) defined on this graph

Returns:

a list of SBSARInput

getAllInputsInGroup(aGroup)
Get the list of all inputs (images and parameters) contained in the given group.
If aGroup is None, returns all the parameters that are not included in a group.
Parameters:

aGroup (SBSARGuiGroup or str) – The group of parameter to consider, given a SBSARGuiGroup object or a Group identifier

Returns:

a list of SBSARInput

getAllMetaData()

Get all MetaData under dictionary form.

Returns:

dict

getAllMetaDataIter()

Extract the metadata from sbsar and return an iterator

Returns:

a metadata dict

getAllPresets()

Get all the presets defined on this graph

Returns:

a list of Preset

getAttribute(aAttributeIdentifier)

Get the given attribute value

Parameters:

aAttributeIdentifier (AttributesEnum) – the attribute identifier

Returns:

the attribute value if defined, None otherwise

getGraphOutput(aOutputIdentifier)

Get the graph output with the given identifier

Parameters:

aOutputIdentifier (str) – identifier of the output

Returns:

a SBSAROutput object if found, None otherwise

getGraphOutputType(aOutputIdentifier)

Get the output type of the GraphOutput with the given identifier

Parameters:

aOutputIdentifier (str) – identifier of the output

Returns:

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

getGraphOutputWithUsage(aUsage)

Get the first GraphOutput which has the given usage defined

Parameters:

aUsage (UsageEnum or str) – usage to look for

Returns:

a SBSAROutput if found, None otherwise

getGraphOutputs()

Get all the graph outputs

Returns:

the list of SBSAROutput defined on this graph

getGraphType()

Get the graph type

Returns:

The graph type as a string if it exists, None otherwise

getGuiGroup(aGroupIdentifier)

Get the SBSARGuiGroup with the given identifier

Parameters:

aGroupIdentifier (str) – group identifier

Returns:

a SBSARGuiGroup if found, None otherwise

getIdentifier()

getIdentifer()

Returns:

str identifier

getInput(aInputIdentifier)

Get the SBSARInput with the given identifier, among the input images and parameters

Parameters:

aInputIdentifier (str) – input parameter identifier

Returns:

the corresponding SBSARInput object if found, None otherwise

getInputFromUID(aInputUID)

Get the SBSARInput with the given UID, among the input images and parameters

Parameters:

aInputUID (str) – input parameter UID

Returns:

the corresponding SBSARInput object if found, None otherwise

getInputImage(aInputImageIdentifier)

Get the SBSARInput of kind image with the given identifier

Parameters:

aInputImageIdentifier (str) – input image identifier

Returns:

a SBSARInput if found, None otherwise

getInputImageWithUsage(aUsage)

Get the first SBSARInput of kind image which has the given usage defined

Parameters:

aUsage (UsageEnum or str) – usage to look for

Returns:

a SBSARInput if found, None otherwise

getInputImages()

Get the list of image inputs

Returns:

a list of SBSARInput

getInputParameter(aInputParamIdentifier)

Get the SBSARInput with the given identifier

Parameters:

aInputParamIdentifier (str) – input parameter identifier

Returns:

the corresponding SBSARInput object if found, None otherwise

getInputParameterFromUID(aInputParamUID)

Get the SBSARInput with the given UID

Parameters:

aInputParamUID (str) – input parameter UID

Returns:

the corresponding SBSARInput object if found, None otherwise

getInputParameters()

Get the list of inputs parameters that are not input entries but numerical values

Returns:

a list of SBSARInput

getMetaData(aName)

Get a MetaData by its name

Parameters:

aName (str)

Returns:

SBSMetaDataTreeUrl or SBSMetaDataTreeStr

getOutputFormat(aOutputIdentifier)

getFormat() Get the output format of this GraphOutput.

Parameters:

aOutputNode – an Identifier

Returns:

the output format TextureFormatEnum or ParamTypeEnum if Value output, None otherwise.

getOutputMipmaps()

Get the output format of this GraphOutput.

Parameters:

aOutputNode – an Identifier

Returns:

mipmaps level MipmapEnum

getPreset(aPresetLabel)

Get the preset with the given label

Returns:

a Preset object if found, None otherwise

getPrimaryInput()

Get the identifier of the primary input of the graph

Returns:

The identifier of the primary input as a string if it exists, None otherwise

getSBSMetaDataTree()

Get the SBSMetaDataTree structure.

Returns:

class .SBSMetaDataTree

hasIcon()
isPrimaryInput(aInput)

Check if the given input is the primary input for this graph or not

Parameters:

aInput (SBSARInput) – The input to check

Returns:

True if this is the primary input, 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

setMetaDataName(aMetadata, aName)
setMetaDataValue(aMetadata, aValue)
class sbsarchive.sbsargraph.SBSARInput(aUID='', aIdentifier='', aType=0, aAlterOutputs='', aAlterNodes='', aDefault=None, aUserTag=None, aInputGui=None, aMetaDataTree=None)

Bases: SBSARObject, ParamInput, SBSARMetaDataObject

Class that contains information on a graph input as defined in a .sbsar file

Members:
  • mIdentifier (str): identifier of the input.

  • mUID (str): uid of the input.

  • mType (SBSARTypeEnum): data type, among the enumeration SBSARTypeEnum

  • mAlterOutputs (List[str]): collection of graph outputs UID which are impacted anytime this input value is modified.

  • mAlterNodes (str): ???.

  • mDefault (str, optional): Default value.

  • mUserTag (str, optional): user textual tags

  • mInputGui (SBSARInputGui, optional): GUI widget of the input

createMetaDataStr(aName, aValue)
createMetaDataUrl(aName, aResource)
deleteMetaData(aName)
formatValueToType(aValue)

Return the given value formatted in the appropriate type for this parameter (bool, int or float)

Parameters:

aValue (string, bool, int, or float) – The value to format

Returns:

The value as a bool, int of float depending on the parameter type

getAllMetaData()

Get all MetaData under dictionary form.

Returns:

dict

getAttribute(aAttributeIdentifier)

Get the given attribute value

Parameters:

aAttributeIdentifier (AttributesEnum) – the attribute identifier

Returns:

the attribute value if defined, None otherwise

getClamp()
Returns:

the clamp as a boolean if defined for this parameter, None if not defined

getDefaultValue()
Returns:

the default value as a value or a list of values in the type of the parameter (bool, int or float), None if not defined

getDimension()

Get the dimension of the parameter type (1, 2, 3, or 4 values)

Returns:

The dimension as an integer

getDropDownList()
Returns:

the map{value(int):label(str)} corresponding to the drop down definition if defined for this parameter, None otherwise.

getGroup()

Get the input GUI group containing this input

Returns:

the GUI group as a string if defined, None otherwise

getInputGui()

Get the input GUI associated to this input

Returns:

a SBSARInputGui object if defined, None otherwise

getIsConnectable()

Check if this input is connectable as an input.

Returns:

True if it’s connectable, False otherwise

getLabelFalse()

Returns the label for the false option if it’s valid for this input

Returns:

str with the label if it’s a button, otherwise None

getLabelTrue()

Returns the label for the true option if it’s valid for this input

Returns:

str with the label if it’s a button, otherwise None

getLabels()
Returns:

the list of all labels defined for this parameter, in the right order, as a list of strings. None if not defined

getMaxValue(asList=False)
Parameters:

asList (bool, optional) – True to get the result as a list of maximum values accordingly to the number of values of this parameter, False to have only one value returned. Default to False

Returns:

the maximum parameter value in the type of the parameter (int or float), as a list or not, None if not defined

getMetaData(aName)

Get a MetaData by its name

Parameters:

aName (str)

Returns:

SBSMetaDataTreeUrl or SBSMetaDataTreeStr

getMinValue(asList=False)
Parameters:

asList (bool, optional) – True to get the result as a list of minimum values accordingly to the number of values of this parameter, False to have only one value returned. Default to False

Returns:

the minimum parameter value in the type of the parameter (int or float), as a list or not, None if not defined

getSBSMetaDataTree()

Get the SBSMetaDataTree structure.

Returns:

class .SBSMetaDataTree

getStep()
Returns:

the step value (in the type of the parameter) of the widget for this parameter, None if not defined

getType()

Get the type of the input among the list defined in ParamTypeEnum. Please be careful, it does not match the enumeration of type in a .sbsar format. To get the type as a SBSARTypeEnum, just access the mType member

Returns:

The type of the parameter as a ParamTypeEnum

getUsages()

Get the usages of this param input

Returns:

the list of SBSARUsage defined on this image input

getWidget()

Get the widget associated to this input

Returns:

a SBSARObject object if defined, None otherwise

hasUsage(aUsage)

Check if the given usage is defined on this image input

Parameters:

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

Returns:

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

isAnInputImage()

Check if this input is of kind image.

Returns:

True if this is an input image, False otherwise

isAnInputParameter()

Check if this input is a parameter.

Returns:

True if this is an input parameter, 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

setMetaDataName(aMetadata, aName)
setMetaDataValue(aMetadata, aValue)
class sbsarchive.sbsargraph.SBSAROutput(aUID='', aIdentifier='', aType='', aFormat='', aWidth='', aHeight='', aMipMaps='', aDynamicSize=None, aUserData=None, aOutputGui=None, aMetaDataTree=None)

Bases: SBSARObject, GraphOutput, SBSARMetaDataObject

Class that contains information on a graph output as defined in a .sbsar file

Members:
  • mUID (str): uid of the output.

  • mIdentifier (str): identifier of the output.

  • mType (SBSARTypeEnum): data type, among the enumeration SBSARTypeEnum

  • mFormat (TextureFormatEnum): format type, among the enumeration TextureFormatEnum or ParamTypeEnum if value output.

  • mWidth (str): width of the output.

  • mHeight (str): height of the output.

  • mMipMaps (str): mipmap level.

  • mDynamicSize (str): dynamic size.

  • mUserData (str): user textual tags

  • mOutputGui (SBSAROutputGui): GUI widget of the output

createMetaDataStr(aName, aValue)
createMetaDataUrl(aName, aResource)
deleteMetaData(aName)
getAllMetaData()

Get all MetaData under dictionary form.

Returns:

dict

getAttribute(aAttributeIdentifier)

Get the given attribute value

Parameters:

aAttributeIdentifier (AttributesEnum) – the attribute identifier

Returns:

the attribute value if defined, None otherwise

getFormat()

Get the output format of this GraphOutput.

Returns:

the output format TextureFormatEnum or ParamTypeEnum if Value output, None otherwise.

getMetaData(aName)

Get a MetaData by its name

Parameters:

aName (str)

Returns:

SBSMetaDataTreeUrl or SBSMetaDataTreeStr

getMipmaps()

Get the output format of this GraphOutput.

Returns:

mipmaps level MipmapEnum

getOutputType(**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

getUsages()

Get the usages of this graph output

Returns:

the list of SBSARUsage defined on this graph output

hasUsage(aUsage)

Check if the given usage is defined on this graph output

Parameters:

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

Returns:

True if the given usage is defined on this graph 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

setMetaDataName(aMetadata, aName)
setMetaDataValue(aMetadata, aValue)
class sbsarchive.sbsargraph.SBSARPreset(aLabel='', aUsertags=None, aPresetInputs=None)

Bases: SBSARObject, Preset

Class that contains information on a graph parameter preset as defined in a .sbsar file

Members:
  • mLabel (str): identifier of the preset.

  • mPresetInputs (list of SBSARPresetInput): list of preset parameters.

getInputValue(aInputUID)

Get the value of the given ParamInput in this preset

Parameters:

aInputUID (str) – UID of the input to get

Returns:

the input value in this preset if defined, None otherwise

getPresetInput(aInputParam)

Get the preset of the given input parameter

Parameters:

aInputParam (ParamInput or str) – the input parameter as ParamInput or identified by its uid

Returns:

a PresetInput if found, None otherwise

getPresetInputFromIdentifier(aInputParamIdentifier)

Get the preset of the given input parameter

Parameters:

aInputParamIdentifier (str) – the input parameter identified by its identifier

Returns:

a PresetInput if found, None otherwise

getPresetInputs()

Get the list of preset inputs defined in this preset

Returns:

a list of PresetInput

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

class sbsarchive.sbsargraph.SBSARPresetInput(aUID=None, aIdentifier=None, aValue=None, aType=None)

Bases: SBSARObject, PresetInput

Class for manipulating embedded user-defined preset input inside a .sbs file

Members:
  • mUID (str): uid of the input parameter targeted by this preset input

  • mIdentifier (str): identifier of the input parameter targeted by this preset input

  • mValue (SBSConstantValue): value, depend on the type.

  • mType (SBSParamValue): type of the input

getType()

Get the type of the input among the list defined in ParamTypeEnum. Please be careful, it does not match the enumeration of type in a .sbsar format. To get the type as a SBSARTypeEnum, just access the mType member

Returns:

The type of the parameter as a ParamTypeEnum

getTypedValue()

Get the value of this preset input correctly formatted in the type of this preset (e.g. bool, int, float, list of int, …)

Returns:

The input value in the appropriate type

getValue()

Get the value of this preset input as it is saved in the file

Returns:

the input value in this preset input

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