def __init__(self, nodeType): self._msgCtrls = [] aovs.addAOVChangedCallback(self.update, 'ShadingEngineTemplate') self.networkCol = None self.otherCol = None # populated by updateNetworkData() self.networkData = {} # mapping from node -> aov list self.networkAOVs = set( [] ) # set of all possible aovs in network, regardless of whether they are active self.networkNodeTypes = set( []) # set of node types in the shading network self.aovNodes = { } # reverse lookup to networkData: aovName -> node list # populated by updateCustomArrayData() self.nameToAttr = { } # mapping from aov name to element plug on aiCustomAOVs self.arrayIndices = set([]) # set of all indices used by aiCustomAOVs self.orphanedAOVs = set( [] ) # set of aov names that appear in aiCustomAOVs that are not in the globals super(ShadingEngineTemplate, self).__init__(nodeType)
def __init__(self, nodeType, attr, label=None, allowCreation=True, includeBeauty=False, allowEmpty=True, allowDisable=False): super(AOVOptionMenuGrp, self).__init__(nodeType) aovs.addAOVChangedCallback(self.update) self.allowCreation = allowCreation self.includeBeauty = includeBeauty self.allowDisable = allowDisable self.allowEmpty = allowEmpty self._attr = attr self._label = label self._defaultLabel = "" self._prevLabel = ""
def __init__(self, nodeType): self._msgCtrls = [] aovs.addAOVChangedCallback(self.update, 'ShadingEngineTemplate') self.networkCol = None self.otherCol = None # populated by updateNetworkData() self.networkData = {} # mapping from node -> aov list self.networkAOVs = set([]) # set of all possible aovs in network, regardless of whether they are active self.networkNodeTypes = set([]) # set of node types in the shading network self.aovNodes = {} # reverse lookup to networkData: aovName -> node list # populated by updateCustomArrayData() self.nameToAttr = {} # mapping from aov name to element plug on aiCustomAOVs self.arrayIndices = set([]) # set of all indices used by aiCustomAOVs self.orphanedAOVs = set([]) # set of aov names that appear in aiCustomAOVs that are not in the globals super(ShadingEngineTemplate, self).__init__(nodeType)
def __init__(self, nodeType): aovs.addAOVChangedCallback(self.updateLayerTolerance, 'DeepEXRDriverTranslatorUITolerance') aovs.addAOVChangedCallback(self.updateLayerHalfPrecision, 'DeepEXRDriverTranslatorUIHalfPrecision') aovs.addAOVChangedCallback(self.updateLayerEnableFiltering, 'DeepEXRDriverTranslatorUIEnableFiltering') super(DeepEXRDriverTranslatorUI, self).__init__(nodeType)
def __init__(self, aovNode=None): self.waitingToRefresh = False self.aovControls = [] self.optionMenus = [] self.aovRows = {} self.renderOptions = aovs.AOVInterface() if aovNode is None else aovNode self.mainCol = pm.cmds.columnLayout('arnoldAOVMainColumn') # global drivers pm.cmds.frameLayout('arnoldDisplayDriverFrame', label='Default Drivers', width=WIDTH, collapsable=True, collapse=True) pm.cmds.columnLayout(adj=True) for attr in self.renderOptions.node.drivers: driver = attr.inputs() if driver: pm.cmds.rowLayout(nc=2, columnAttach2=['both', 'right'], adjustableColumn=1, rowAttach=[2, 'top', 5]) pm.cmds.columnLayout(adj=True) templates.createTranslatorMenu(driver[0], label=utils.prettify(driver[0].name()), nodeType='aiAOVDriver') pm.cmds.setParent('..') pm.cmds.symbolButton(image="navButtonConnected.png", command=Callback(pm.select, driver)) pm.cmds.setParent('..') pm.setParent(self.mainCol) pm.cmds.frameLayout('arnoldAOVBrowserFrame', label='AOV Browser', width=WIDTH, collapsable=True, collapse=False, height=200) self.browser = AOVBrowser(self.renderOptions) pm.setParent(self.mainCol) pm.cmds.frameLayout('arnoldAOVPrimaryFrame', label='AOVs', width=WIDTH, collapsable=True, collapse=False) self.aovCol = pm.cmds.columnLayout('arnoldAOVListColumn', adj=True) pm.cmds.rowLayout('arnoldAOVButtonRow', nc=3, columnWidth3=[140, 100, 100], columnAttach3=['right', 'both', 'both']) pm.cmds.text(label='') pm.cmds.button(label='Add Custom', c=lambda *args: shaderTemplate.newAOVPrompt()) pm.cmds.button(label='Delete All', c=lambda *args: (self.renderOptions.removeAOVs(self.aovRows.keys()), \ hooks.setupDefaultAOVs(self.renderOptions))) pm.setParent('..') # rowLayout pm.cmds.separator(style='in') pm.rowLayout(nc=4, columnWidth4=[130, 66, 80, 40], columnAttach4=['both', 'both', 'both', 'both']) pm.cmds.text(label='name') pm.cmds.text(label='data') pm.cmds.text(label='driver') pm.cmds.text(label='filter') pm.cmds.setParent('..') # rowLayout pm.cmds.separator(style='in') # pm.text(_uiName('prefixLbl'), align='center', label='Prefix', parent=form) # pm.textField(_uiName('prefixFld'), enable=False, text='', parent=form, changeCommand=Callback(setAOVPrefix, aovnode)) self.browser.populate() # add all control rows self.addRows() aovs.addAOVChangedCallback(self.refresh, 'aoveditor') # update AOV imageFormat of all rows when the default imageFormat changes. a scriptJob will suffice here pm.scriptJob(parent=self.aovCol, attributeChange=[self.renderOptions.node.imageFormat.name(), lambda *args: pm.evalDeferred(self.refresh)])
def __init__(self, aovNode=None): self.waitingToRefresh = False self.aovControls = [] self.optionMenus = [] self.aovRows = {} self.renderOptions = aovs.AOVInterface( ) if aovNode is None else aovNode self.mainCol = pm.cmds.columnLayout('arnoldAOVMainColumn') # global drivers pm.cmds.frameLayout('arnoldDisplayDriverFrame', label='Default Drivers', width=WIDTH, collapsable=True, collapse=True) pm.cmds.columnLayout(adj=True) for attr in self.renderOptions.node.drivers: driver = attr.inputs() if driver: pm.cmds.rowLayout(nc=2, columnAttach2=['both', 'right'], adjustableColumn=1, rowAttach=[2, 'top', 5]) pm.cmds.columnLayout(adj=True) templates.createTranslatorMenu(driver[0], label=utils.prettify( driver[0].name()), nodeType='aiAOVDriver') pm.cmds.setParent('..') pm.cmds.symbolButton(image="navButtonConnected.png", command=Callback(pm.select, driver)) pm.cmds.setParent('..') pm.setParent(self.mainCol) pm.cmds.frameLayout('arnoldAOVBrowserFrame', label='AOV Browser', width=WIDTH, collapsable=True, collapse=False, height=200) self.browser = AOVBrowser(self.renderOptions) pm.setParent(self.mainCol) pm.cmds.frameLayout('arnoldAOVPrimaryFrame', label='AOVs', width=WIDTH, collapsable=True, collapse=False) self.aovCol = pm.cmds.columnLayout('arnoldAOVListColumn', adj=True) pm.cmds.rowLayout('arnoldAOVButtonRow', nc=3, columnWidth3=[140, 100, 100], columnAttach3=['right', 'both', 'both']) pm.cmds.text(label='') pm.cmds.button(label='Add Custom', c=lambda *args: shaderTemplate.newAOVPrompt()) pm.cmds.button(label='Delete All', c=lambda *args: (self.renderOptions.removeAOVs(self.aovRows.keys()), \ hooks.setupDefaultAOVs(self.renderOptions))) pm.setParent('..') # rowLayout pm.cmds.separator(style='in') pm.rowLayout(nc=4, columnWidth4=[130, 66, 80, 40], columnAttach4=['both', 'both', 'both', 'both']) pm.cmds.text(label='name') pm.cmds.text(label='data') pm.cmds.text(label='driver') pm.cmds.text(label='filter') pm.cmds.setParent('..') # rowLayout pm.cmds.separator(style='in') # pm.text(_uiName('prefixLbl'), align='center', label='Prefix', parent=form) # pm.textField(_uiName('prefixFld'), enable=False, text='', parent=form, changeCommand=Callback(setAOVPrefix, aovnode)) self.browser.populate() # add all control rows self.addRows() aovs.addAOVChangedCallback(self.refresh, 'aoveditor') # update AOV imageFormat of all rows when the default imageFormat changes. a scriptJob will suffice here pm.scriptJob(parent=self.aovCol, attributeChange=[ self.renderOptions.node.imageFormat.name(), lambda *args: pm.evalDeferred(self.refresh) ])