Пример #1
0
        Populate the UI with an attrNavigationControlGrp for each AOV in the network
        '''
        for aov in aovList:
            if aov.name in self.networkAOVs:
                at = self.getAOVAttr(nodeAttr, aov.name)
                #at = nodeAttr[aov.index]
                #at.aovName.set(aov.name)
                ctrl = pm.cmds.attrNavigationControlGrp(at=at.aovInput.name(),
                                                        label=aov.name)
                self._msgCtrls.append(ctrl)
                pm.popupMenu(parent=ctrl)
                pm.menuItem(subMenu=True, label="Goto Node")
                for node in self.aovNodes[aov.name]:
                    pm.cmds.menuItem(
                        label=node.name(),
                        command=lambda arg, node=node: pm.select(node))

    def buildOtherAOVs(self, nodeAttr, aovList):
        '''
        Populate the UI with an attrNavigationControlGrp for each AOV not in the network
        '''
        for aov in aovList:
            if aov.name not in self.networkAOVs:
                at = self.getAOVAttr(nodeAttr, aov.name)
                ctrl = pm.cmds.attrNavigationControlGrp(at=at.aovInput.name(),
                                                        label=aov.name)
                self._msgCtrls.append(ctrl)


templates.registerAETemplate(ShadingEngineTemplate, "shadingEngine")
Пример #2
0
        '''
        Populate the UI with an attrNavigationControlGrp for each AOV in the network
        '''
        for aov in aovList:
            if aov.name in self.networkAOVs:
                at = self.getAOVAttr(nodeAttr, aov.name)
                #at = nodeAttr[aov.index]
                #at.aovName.set(aov.name)
                ctrl = pm.cmds.attrNavigationControlGrp(at=at.aovInput.name(),
                                                   label=aov.name)
                self._msgCtrls.append(ctrl)
                pm.popupMenu(parent=ctrl);
                pm.menuItem(subMenu=True, label="Goto Node")
                for node in self.aovNodes[aov.name]:
                    pm.cmds.menuItem(label=node.name(), command=lambda arg, node=node: pm.select(node))

    def buildOtherAOVs(self, nodeAttr, aovList):
        '''
        Populate the UI with an attrNavigationControlGrp for each AOV not in the network
        '''
        for aov in aovList:
            if aov.name not in self.networkAOVs:
                at = self.getAOVAttr(nodeAttr, aov.name)
                ctrl = pm.cmds.attrNavigationControlGrp(at=at.aovInput.name(),
                                                        label=aov.name)
                self._msgCtrls.append(ctrl)


templates.registerAETemplate(ShadingEngineTemplate, "shadingEngine")

Пример #3
0
            except:
                pass
        try:                                              
            args['usedAsColor']      = pm.attributeQuery(attrName, node=srcNode, usedAsColor=True)
        except:
            pass            
        try:
            args['usedAsFilename']   = pm.attributeQuery(attrName, node=srcNode, usedAsFilename=True)
        except:
            pass           
        args['keyable']          = pm.attributeQuery(attrName, node=srcNode, keyable=True) 
        # connectable            = pm.attributeQuery(attrName, node=srcNode, connectable=True)     
        
        # print "Add %s.%s with options: %s" % (dstNode, attrName, args)
        pm.addAttr(dstNode, **args)
        for child in children:
            self._doAdd(srcNode, child, args['longName'])       

              
    def removeAttr(self, attrs):
        # print "removeAttr %r" % attrs
        for attr in attrs:
            # Can only delete top parent of compound / multi attributes
            parent = ObjectSetTemplate.getAttrParent(attr)
            # print "remove %r will need to remove %r" % (attr, parent)
            parent.delete()
            
            
templates.registerAETemplate(ObjectSetTemplate, "objectSet")

Пример #4
0
import pymel.core as pm
import mtoa.aovs as aovs
import mtoa.ui.ae.templates as templates
import mtoa.ui.ae.shaderTemplate as shaderTemplate
import mtoa.ui.aoveditor as aoveditor
from collections import defaultdict

class DisplacementShaderTemplate(templates.AttributeTemplate):
    def setup(self):
        self.addControl('aiDisplacementPadding', label='Bounds Padding')
        self.addControl('aiDisplacementZeroValue', label='Scalar Zero Value')
        self.addControl('aiDisplacementAutoBump', label='Auto Bump')

templates.registerAETemplate(DisplacementShaderTemplate, 'displacementShader')

class FileTemplate(templates.AttributeTemplate):
    def setup(self):
        self.addControl('aiFilter', label='Filter Type')
        self.addControl('aiMipBias', label='Mip-map Bias')
        self.addControl('aiUseDefaultColor', label='Use Default Color')

templates.registerAETemplate(FileTemplate, 'file')
        
class Bump2dTemplate(templates.AttributeTemplate):
    def setup(self):
        self.addControl('aiFlipR', label='Flip R Channel')
        self.addControl('aiFlipG', label='Flip G Channel')
        self.addControl('aiSwapTangents', label='Swap Tangents')
        self.addControl('aiUseDerivatives', label='Use Derivatives')
        self.addControl('aiGammaCorrect', label='Gamma Correct')
Пример #5
0
        self.addControl("castsShadows")
        self.addSeparator()
        self.commonShapeAttributes()
        self.addSeparator()
        self.addControl("aiExportHairIDs", label="Export Hair IDs")
        self.addControl("aiExportHairUVs", label="Export Hair UVs")
        self.addControl("aiExportHairColors", label="Export Hair Colors")
        self.addControl("aiOverrideHair", label="Override Hair")
        self.addCustom("aiHairShader", self.shaderCreate, self.shaderUpdate)
        self.addSeparator()
        self.addCustom("aiMinPixelWidth", self.minPixelCreate, self.minPixelUpdate)
        self.addCustom("aiIndirectDiffuse", self.indirectDiffuseCreate, self.indirectDiffuseUpdate)
        self.addControl("aiMode", label="Mode", changeCommand=self.modeChanged)
        self.addSeparator()
        self.addControl("aiUserOptions", label="User Options")
templates.registerAETemplate(HairSystemTemplate, "hairSystem")

class FLuidShapeTemplate(templates.ShapeTranslatorTemplate):
    def volumeNoiseCreate(self, attrName):
        cmds.setUITemplate('attributeEditorPresetsTemplate', pushTemplate=True)
        cmds.attrNavigationControlGrp("FluidTemplateVolumeTexture", attribute=attrName, label="Texture")
        cmds.setUITemplate(popTemplate=True)

    def volumeNoiseUpdate(self, attrName):
        cmds.attrNavigationControlGrp("FluidTemplateVolumeTexture", edit=True, attribute=attrName)
        
    def setup(self):
        self.addControl("aiStepSize", label="Step Size")
        self.addControl("aiEnableDeformationBlur", label="Enable Deformation Blur")
        self.addControl("aiMotionVectorScale", label="Motion Vector Scale")
        self.addControl("aiFilterType", label="Filter Type")
        self.addControl("lightVisible")
        
        self.addSeparator()
        
        self.addCommonParameters()

        self.addSeparator()

        self.commonLightAttributes(False)

        self.beginLayout('Subdivision', collapse=True)
        self.addControl("aiSubdivType", label="Type")
        self.addControl("aiSubdivIterations", label="Iterations")
        self.addControl("aiSubdivAdaptiveMetric", label="Adaptive Metric")
        self.addControl("aiSubdivPixelError", label="Pixel Error")
        # TODO: add dicing camera UI
        self.addControl("aiSubdivDicingCamera", label="Dicing Camera")
        self.addControl("aiSubdivUvSmoothing", label="UV Smoothing")
        self.addControl("aiSubdivSmoothDerivs", label="Smooth Tangents")
        self.endLayout()

        self.addControl("aiUserOptions", "User Options")


templates.registerAETemplate(templates.TranslatorControl, "aiAreaLight", label="Light Shape")
templates.registerTranslatorUI(QuadAreaLightTemplate, "aiAreaLight", "quad")
templates.registerTranslatorUI(BaseAreaLightTemplate, "aiAreaLight", "cylinder")
templates.registerTranslatorUI(BaseAreaLightTemplate, "aiAreaLight", "disk")
templates.registerDefaultTranslator('aiAreaLight', "quad")
templates.registerTranslatorUI(MeshLightTemplate, "mesh", "mesh_light")
Пример #7
0
        self.beginLayout('Skip Options', collapse=False)
        self.addControl('skipJson', label='Skip JSON')
        self.addControl('skipShaders', label='Skip Shaders')
        self.addControl('skipDisplacements', label='Skip Displacements')
        self.addControl('skipOverrides', label='Skip Overrides')
        self.addControl('skipUserAttributes', label='Skip User Attributes')
        self.endLayout()

        self.addSeparator()

        self.beginLayout('Points', collapse=False)
        self.addControl('radiusPoint', label='Point Radius')
        self.endLayout()

        self.beginLayout('Curves', collapse=False)
        self.addControl('radiusCurve', label='Curve Radius')
        self.addControl('modeCurve', label='Curve Mode')
        self.endLayout()

        self.beginLayout('Advanced', collapse=False)
        self.addControl('makeInstance', label='Make Instance')
        self.addControl('flipv', label='Flip V Coord')
        self.addControl('invertNormals', label='Invert Normals')
        self.addControl('scaleVelocity', label='Scale Velocity')
        self.endLayout()
        self.addControl('aiUserOptions', label='User Options')


templates.registerAETemplate(GpuCacheTemplate, 'gpuCache')
        
        self.beginLayout('Skip Options', collapse=False)
        self.addControl('skipJson', label='Skip JSON')
        self.addControl('skipShaders', label='Skip Shaders')
        self.addControl('skipDisplacements', label='Skip Displacements')
        self.addControl('skipOverrides', label='Skip Overrides')
        self.addControl('skipUserAttributes', label='Skip User Attributes')
        self.endLayout()

        self.addSeparator()        

        self.beginLayout('Points', collapse=False)
        self.addControl('radiusPoint', label='Point Radius')
        self.endLayout()

        self.beginLayout('Curves', collapse=False)
        self.addControl('radiusCurve', label='Curve Radius')
        self.addControl('modeCurve', label='Curve Mode')
        self.endLayout()

        self.beginLayout('Advanced', collapse=False)
        self.addControl('makeInstance', label='Make Instance')
        self.addControl('flipv', label='Flip V Coord')
        self.addControl('invertNormals', label='Invert Normals')
        self.addControl('scaleVelocity', label='Scale Velocity')
        self.endLayout()
        self.addControl('aiUserOptions', label='User Options')


templates.registerAETemplate(GpuCacheTemplate, 'gpuCache')
        self.addControl("aiExportHairIDs", label="Export Hair IDs")
        self.addControl("aiExportHairUVs", label="Export Hair UVs")
        self.addControl("aiExportHairColors", label="Export Hair Colors")
        self.addControl("aiOverrideHair", label="Override Hair")
        self.addCustom("aiHairShader", self.shaderCreate, self.shaderUpdate)
        self.addSeparator()
        self.addCustom("aiMinPixelWidth", self.minPixelCreate,
                       self.minPixelUpdate)
        self.addCustom("aiIndirectDiffuse", self.indirectDiffuseCreate,
                       self.indirectDiffuseUpdate)
        self.addControl("aiMode", label="Mode", changeCommand=self.modeChanged)
        self.addSeparator()
        self.addControl("aiUserOptions", label="User Options")


templates.registerAETemplate(HairSystemTemplate, "hairSystem")


class FLuidShapeTemplate(templates.ShapeTranslatorTemplate):
    def volumeNoiseCreate(self, attrName):
        cmds.setUITemplate('attributeEditorPresetsTemplate', pushTemplate=True)
        cmds.attrNavigationControlGrp("FluidTemplateVolumeTexture",
                                      attribute=attrName,
                                      label="Texture")
        cmds.setUITemplate(popTemplate=True)

    def volumeNoiseUpdate(self, attrName):
        cmds.attrNavigationControlGrp("FluidTemplateVolumeTexture",
                                      edit=True,
                                      attribute=attrName)