Пример #1
0
    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)
Пример #2
0
 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 = ""
Пример #3
0
    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)
Пример #4
0
 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):
     aovs.addAOVChangedCallback(self.updateLayerTolerance,
                                'DeepEXRDriverTranslatorUITolerance')
     aovs.addAOVChangedCallback(self.updateLayerHalfPrecision,
                                'DeepEXRDriverTranslatorUIHalfPrecision')
     aovs.addAOVChangedCallback(self.updateLayerEnableFiltering,
                                'DeepEXRDriverTranslatorUIEnableFiltering')
     super(DeepEXRDriverTranslatorUI, self).__init__(nodeType)
Пример #6
0
    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)])
Пример #7
0
    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)
                     ])
Пример #8
0
 def __init__(self, nodeType):
     aovs.addAOVChangedCallback(self.updateLayerTolerance, 'DeepEXRDriverTranslatorUITolerance')
     aovs.addAOVChangedCallback(self.updateLayerHalfPrecision, 'DeepEXRDriverTranslatorUIHalfPrecision')
     aovs.addAOVChangedCallback(self.updateLayerEnableFiltering, 'DeepEXRDriverTranslatorUIEnableFiltering')
     super(DeepEXRDriverTranslatorUI, self).__init__(nodeType)