Exemplo n.º 1
0
 def layersReplace(self, attribute):
     if attribute is not "none":
         self.thisNode = pm.PyNode(attribute).node()
     log.debug("layersReplace {0}".format(attribute))
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     materialEntries = self.thisNode.materialEntryMtl.numElements()
     #print "layersReplace: node has ", self.thisNode.materialEntryMtl.numElements(), "layers"
     if self.layersUi is not None and pm.columnLayout(self.layersUi, q=True, exists=True):
         pm.deleteUI(self.layersUi)
     with pm.columnLayout(adj=True, parent=self.uiParent) as self.layersUi:
         for layerNumber in range(materialEntries):
             layerIndex = self.thisNode.materialEntryMtl.elementByPhysicalIndex(layerNumber).index()
             with pm.frameLayout(label="Layer {0}".format(layerNumber), collapsable=True, collapse=False, bv=True) as fl:
                 log.debug("create layers UI {0}".format(self.thisNode.materialEntryMtl[layerIndex]))
                 with pm.columnLayout(adj=True):
                     attribute = self.thisNode.materialEntryMtl[layerIndex]
                     if attribute.isConnected():
                         pm.frameLayout(fl, edit=True, label=attribute.inputs(p=1)[0])
                     pm.attrColorSliderGrp(label="Material", at=attribute)
                     attribute = self.thisNode.materialEntryMsk[layerIndex]
                     pm.attrFieldSliderGrp(label="Mask", at=attribute)
                     attribute = self.thisNode.materialEntryMode[layerIndex]
                     pm.attrEnumOptionMenuGrp(label="Mode", at=attribute)
                 with pm.columnLayout(adj=True):
                     pm.button(label="Remove Layer", c=pm.Callback(self.removeLayer, layerIndex), height=18)
                     pm.button(label="Layer Up", c=pm.Callback(self.moveLayerUp, layerIndex), height=18)
                     pm.button(label="Layer Down", c=pm.Callback(self.moveLayerDown, layerIndex), height=18)
                 
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)                
Exemplo n.º 2
0
 def layerCreate(self, attribute):
     print "layerCreate attr", attribute
     pmAttr = pm.Attribute(attribute)
     self.thisNode = pmAttr.node()
     parent = pm.setParent(query=True)
     with pm.columnLayout(adjustableColumn=True, parent=parent):
         pm.button(label="Create New Layer")
         with pm.columnLayout(adjustableColumn=True):
             for i in range(pmAttr.numElements()):
                 with pm.frameLayout(collapsable=False,
                                     label="Layer {0}".format(i)):
                     with pm.columnLayout(adjustableColumn=True):
                         nameCtrl = pm.textFieldGrp(label="Name")
                         pm.connectControl(nameCtrl,
                                           pmAttr[i].layerName,
                                           index=2)
                         weightCtrl = pm.floatFieldGrp(label="Weight",
                                                       value1=0.0)
                         pm.connectControl(weightCtrl,
                                           pmAttr[i].layerWeight,
                                           index=2)
                         texCtrl = pm.attrColorSliderGrp(
                             at=pmAttr[i].layerTexture, label="Texture")
                         shdCtrl = pm.attrColorSliderGrp(
                             at=pmAttr[i].layerShader, label="Shader")
                     with pm.columnLayout(adjustableColumn=True):
                         with pm.rowLayout(nc=3):
                             pm.button(label="Up")
                             pm.button(label="Delete")
                             pm.button(label="Down")
Exemplo n.º 3
0
 def updateList(self, name, lgt, totalLgt, *args):
    
     #create new buttons
     self.text = pm.text(name, label="Name: %s" %name)
     visibilityLgt = pm.getAttr(lgt+'.visibility')
     if visibilityLgt == True:
       
        self.button = pm.button(name, label="ON" ,command = lambda *args: self.turnOn(totalLgt, name))
     else:
        self.button = pm.button(name, label="OFF" ,command = lambda *args: self.turnOn(totalLgt, name)) 
     self.button = pm.button('btnNameS'+str(totalLgt), label="SOLO", command = lambda *args: self.turnSolo(totalLgt, name))
     pm.attrColorSliderGrp(at='%s.color' % name )
     pm.attrFieldSliderGrp( min=0.0, max=10.0, at='%s.intensity' % name )
Exemplo n.º 4
0
def addUIElement(uiType, attribute, uiLabel, callback, renderGlobalsNodeName):
    ui = None
    if uiType == 'bool':
        ui = pm.checkBoxGrp(label=uiLabel)
        if callback is not None:
            pm.checkBoxGrp(ui, edit=True, cc=callback)
    if uiType == 'int':
        ui = pm.intFieldGrp(label=uiLabel, numberOfFields=1)
        if callback is not None:
            pm.intFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'float':
        ui = pm.floatFieldGrp(label=uiLabel, numberOfFields=1)
        if callback is not None:
            pm.floatFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'enum':
        ui = pm.attrEnumOptionMenuGrp(label=uiLabel,
                                      at=attribute,
                                      ei=getEnumList(attribute))
        # attrEnumOptionGrp has no cc callback, so I create a script job
        if callback is not None:
            attribute = pm.Attribute(renderGlobalsNodeName + "." + attribute)
            pm.scriptJob(attributeChange=[attribute, callback], parent=ui)
    if uiType == 'color':
        ui = pm.attrColorSliderGrp(label=uiLabel, at=attribute)
    if uiType == 'string':
        ui = pm.textFieldGrp(label=uiLabel)
        if callback is not None:
            pm.textFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'vector':
        ui = pm.floatFieldGrp(label=uiLabel, nf=3)
        if callback is not None:
            pm.floatFieldGrp(ui, edit=True, cc=callback)
    return ui
Exemplo n.º 5
0
    def customCreateRgb(self, attr):
        pname = attr.split('.')[-1]
        ptype = self.params[pname].ptype
        plabel = self.params[pname].label
        pann = self.params[pname].annotation
        presets = self.params[pname].presets
        controlName = pname + 'Ctrl'

        l = plabel
        if presets is not None:
            l += ' <span>&#8801;</span>' # fix unicode problem in Windows using html
        pm.attrColorSliderGrp(controlName, attribute=attr, label=l, annotation=pann)
        if presets is not None:
            # pm.attrColorSliderGrp(controlName, edit=True)
            # pm.popupMenu()
            attrChildren = pm.layout(controlName, query=True, childArray=True)
            pm.popupMenu(button=1, parent=attrChildren[0])
            for k in sorted(presets):
                pm.menuItem(label=k, command=pm.Callback(setPresetRgb, controlName, presets[k]))
Exemplo n.º 6
0
 def customCreateRgb(self, attr):
     pname = attr.split('.')[-1]
     ptype = self.params[pname].ptype
     plabel = self.params[pname].label
     pann = self.params[pname].annotation
     presets = self.params[pname].presets
     l = plabel
     if presets is not None:
         l = unicode(plabel) + u' \u1392'
     self.controls[pname] = pm.attrColorSliderGrp(pname + 'Ctrl',
                                                  attribute=attr,
                                                  label=l,
                                                  annotation=pann)
     if presets is not None:
         pm.attrColorSliderGrp(self.controls[pname], edit=True)
         pm.popupMenu()
         for k in sorted(presets):
             pm.menuItem(label=k,
                         command=pm.Callback(setPresetRgb,
                                             self.controls[pname],
                                             presets[k]))
Exemplo n.º 7
0
    def _deleteExisting(self):

        for key, value in self.controller.iteritems():
            slider, name = value

            if slider == 'lcColorSlider' and pmc.attrColorSliderGrp(slider,
                                                                    ex=True):
                pmc.deleteUI(slider)
            elif slider == 'lcScaleSlider' and pmc.attrFieldGrp(slider,
                                                                ex=True):
                pmc.deleteUI(slider)
            else:
                if pmc.attrFieldSliderGrp(slider, ex=True):
                    pmc.deleteUI(slider)
Exemplo n.º 8
0
    def _updateSlider(self, sliderName, lightShape, attribute, state):
        # Checking for hidden attributes and skipping
        try:
            if pmc.Attribute('%s.%s' % (lightShape, attribute)).isHidden():
                pmc.attrFieldSliderGrp(sliderName, edit=True, visible=False)
                return
        except pmc.MayaAttributeError:
            pass

        if sliderName == 'lcColorSlider':
            pmc.attrColorSliderGrp(sliderName,
                                   edit=True,
                                   visible=True,
                                   at='%s.%s' % (lightShape, attribute))
            pmc.attrColorSliderGrp(sliderName, edit=True, cw4=[60, 70, 10, 10])
            pmc.attrColorSliderGrp(sliderName, edit=True, en=state)
            return

        if sliderName == 'lcScaleSlider':
            pmc.attrFieldGrp(sliderName,
                             edit=True,
                             cw4=[60, 65, 65, 65],
                             visible=True,
                             at='%s.%s' % (lightShape, attribute))
            pmc.attrFieldGrp(sliderName, edit=True, en=state)
            return

        pmc.attrFieldSliderGrp(sliderName, edit=True, cw=[1, 60])
        pmc.attrFieldSliderGrp(sliderName, edit=True, cw=[2, 70])

        try:
            pmc.attrFieldSliderGrp(sliderName,
                                   edit=True,
                                   visible=True,
                                   at='%s.%s' % (lightShape, attribute))
        except RuntimeError:
            pmc.attrFieldSliderGrp(sliderName, edit=True, visible=False)

        pmc.attrFieldSliderGrp(sliderName, edit=True, en=state)
Exemplo n.º 9
0
 def customUpdateRgb(self, attr):
     pname = attr.split('.')[-1]
     ptype = self.params[pname].ptype
     controlName = pname + 'Ctrl'
     pm.attrColorSliderGrp(controlName, edit=True, attribute=attr)
Exemplo n.º 10
0
def setPresetRgb(ctrl, value):
    attr = pm.attrColorSliderGrp(ctrl, query=True, attribute=True)
    pm.setAttr(attr + 'R', value[0])
    pm.setAttr(attr + 'G', value[1])
    pm.setAttr(attr + 'B', value[2])
Exemplo n.º 11
0
    def _addControls(self):
        self._deleteExisting()

        # Converting and Adding maya slider
        self.controlBoxLayout.addWidget(LightControl._addSeparator())
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrColorSliderGrp('lcColorSlider',
                                       label='{:>10}'.format('Color:'),
                                       cw4=[55, 60, 60, 40],
                                       visible=False)))

        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcTemperatureSlider',
                                       label='{:>10}'.format('Kelvin:'),
                                       pre=0,
                                       visible=False,
                                       min=-99999,
                                       max=99999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcIntensitySlider',
                                       label='{:>10}'.format('Intensity:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcExposureSlider',
                                       label='{:>10}'.format('Exposure:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcSpreadSlider',
                                       label='{:>10}'.format('Spread:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcRoundnessSlider',
                                       label='{:>10}'.format('Roundness:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcSoftEdgeSlider',
                                       label='{:>10}'.format('Soft Edge:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcConeAngleSlider',
                                       label='{:>10}'.format('Cone:'),
                                       pre=2,
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcPenumbraAngleSlider',
                                       label='{:>10}'.format('Penumbra:'),
                                       pre=2,
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcDropoffSlider',
                                       label='{:>10}'.format('Dropoff:'),
                                       pre=2,
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcSampleSlider',
                                       label='{:>10}'.format('Samples:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(LightControl._addSeparator())
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcDiffuseSlider',
                                       label='{:>10}'.format('Diffuse:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lsSpecularSlider',
                                       label='{:>10}'.format('Specular:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcSssSlider',
                                       label='{:>10}'.format('SSS:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcIndirectSlider',
                                       label='{:>10}'.format('Indirect:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldSliderGrp('lcVolumeSlider',
                                       label='{:>10}'.format('Volume:'),
                                       visible=False,
                                       min=-9999,
                                       max=9999)))
        self.controlBoxLayout.addWidget(LightControl._addSeparator())
        self.controlBoxLayout.addWidget(
            getQObject(
                pmc.attrFieldGrp('lcScaleSlider',
                                 label='{:>10}'.format('Scale:'),
                                 pre=3,
                                 visible=False)))
        self.controlBoxLayout.addWidget(LightControl._addSeparator())
        self.controlBoxLayout.addItem(
            QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding,
                                  QtWidgets.QSizePolicy.Expanding))
Exemplo n.º 12
0
 def customUpdateRgb(self, attr):
     pname = attr.split('.')[-1]
     ptype = self.params[pname].ptype
     pm.attrColorSliderGrp(self.controls[pname], edit=True, attribute=attr)