Exemplo n.º 1
0
    def initUI(self):
        pm.setUITemplate("DefaultTemplate", pushTemplate=True)
        form = pm.formLayout()

        binMeshExportPath = pm.optionVar.get('mtap_binMeshExportPath', pm.workspace.path + "/geo/export.binarymesh")
        prefix = pm.optionVar.get('mtap_binMeshExportPathPrefix', "prefix")
        createProxy = pm.optionVar.get('mtap_binMeshCreateProxy', True)
        percentage = pm.optionVar.get('mtap_binMeshPercentage', 0.1)
        createStandin = pm.optionVar.get('mtap_binMeshCreateStandin', True)
        oneFilePerMesh = pm.optionVar.get('mtap_binMeshOneFilePerMesh', False)
        useTransform = pm.optionVar.get('mtap_binMeshUseTransform', False)

        with pm.columnLayout('StandinLayout') as StandinLayout:
            with pm.frameLayout('StandinLayout', label="Standin export options", collapsable=False):
                with pm.columnLayout('StandinColumnLayout'):
                    self.pathUI = pm.textFieldButtonGrp(label="Standin directory", text=binMeshExportPath, buttonLabel="File", buttonCommand=self.fileBrowser)
                    self.prefixUI = pm.textFieldGrp(label="Prefix", text=prefix)
                    self.createProxyUI = pm.checkBoxGrp(label="Create proxy", value1=createProxy)
                    self.percentageUI = pm.floatFieldGrp(label="Percentage", value1=percentage)
                    self.createStdInUI = pm.checkBoxGrp(label="Create StandIn", value1=createStandin)
                    self.oneFilePerMeshUI = pm.checkBoxGrp(label="One File Per Mesh", value1=oneFilePerMesh)
                    self.doTransformUI = pm.checkBoxGrp(label="Use Transform", value1=useTransform)
            with pm.rowColumnLayout(numberOfColumns=2):
                pm.button(label="Create BinaryMesh", c=self.doit)
                pm.button(label="Cancel", c=self.cancel)

        pm.formLayout(form, edit=True, attachForm=[(StandinLayout, 'top', 5), (StandinLayout, 'bottom', 5), (StandinLayout, 'right', 5), (StandinLayout, 'left', 5)])
        pm.setUITemplate("DefaultTemplate", popTemplate=True)
 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:
         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):
                 print "create layer", layerNumber
                 with pm.columnLayout(adj=True):
                     attribute = self.thisNode.materialEntryMtl[layerIndex]
                     tf = pm.textFieldGrp(label="Shader", editable=False)
                     if attribute.isConnected():
                         tf.setText(attribute.inputs(p=1)[0])
                     pm.attrColorSliderGrp(label="Material", at=attribute)
                     attribute = self.thisNode.materialEntryAmount[layerIndex]
                     pm.attrColorSliderGrp(label="Amount", 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.º 3
0
 def create_vdb_path(self, param_name):
     pm.setUITemplate("attributeEditorPresetsTemplate", pushTemplate=True)
     pm.textFieldButtonGrp("OpenVDBPathGrp",
                           label="VDB Path",
                           buttonLabel="...")
     self.update_vdb_path(param_name)
     pm.setUITemplate(popTemplate=True)
Exemplo n.º 4
0
    def create_widgets(self):
        pm.setParent(pm.mel.globals['gPreferenceWindow'])

        # Stop if this already exists.
        if pm.columnLayout(_layout_name, q=True, numberOfChildren=True) > 0:
            return

        # Create the UI
        pm.setParent(_layout_name)
        pm.setUITemplate('prefsTemplate', pushTemplate=True)
        try:
            # This is used to force the width to fill the window
            pm.separator(style='none', h=1)

            pm.frameLayout(label='zMayaTools')
            pm.columnLayout(adj=True)

            for pref_handler in self.preference_handlers:
                pref_handler.create_widgets()

        finally:
            pm.setUITemplate(popTemplate=True)

        # Load the optvars into the window.
        self.all_optvars_to_window()
Exemplo n.º 5
0
 def buildUI(self):
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)                
     with pm.frameLayout(label="Components", collapsable=False):
         with pm.columnLayout(adj=True):
             self.scrollList = pm.textScrollList(doubleClickCommand=self.componentClicked)
             pm.textScrollList(self.scrollList, edit=True, append=self.getComponentList())
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)                
Exemplo n.º 6
0
    def TheaEnvironmentCreateTab(self):
        log.debug("TheaEnvironmentCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "EnvScrollLayout"

        if self.rendererTabUiDict.has_key('environment'):
            self.rendererTabUiDict.pop('environment')        
        uiDict = {}
        self.rendererTabUiDict['environment'] = uiDict
        cb = self.TheaEnvironmentUpdateTab
        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                with pm.frameLayout(label="Environment Lighting", collapsable=False):
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):                    
                        self.addRenderGlobalsUIElement(attName = 'illumination', uiType = 'enum', displayName = 'Illumination', default='0', data='NoIllumination:DomeIllumination:IBLIllumination:PhysicalSkyIllumination', uiDict=uiDict, callback=cb)
                        self.addRenderGlobalsUIElement(attName='backgroundColor', uiType='color', displayName='Background Color', default='0.4:0.4:1.0', uiDict=uiDict)
                    
                with pm.frameLayout(label="Physical Sky", collapsable=False) as uiDict['physSkyFrame']:
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):                    
                        self.addRenderGlobalsUIElement(attName = 'turbidity', uiType = 'float', displayName = 'Turbidity', default='2.5', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'ozone', uiType = 'float', displayName = 'Ozone', default='0.35', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'waterVapor', uiType = 'float', displayName = 'Water Vapour', default='2.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'turbidityCoefficient', uiType = 'float', displayName = 'Turbidity Coeff', default='0.046', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'wavelengthExponent', uiType = 'float', displayName = 'Wavelength Exponent', default='1.3', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'albedo', uiType = 'float', displayName = 'Albedo', default='0.5', uiDict=uiDict)

                with pm.frameLayout(label="Physical Sun", collapsable=False) as uiDict['physSunFrame']: 
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):                    
                        self.addRenderGlobalsUIElement(attName = 'sunPolarAngle', uiType = 'float', displayName = 'Sun Polar Angle', default='-1.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'sunAzimuth', uiType = 'float', displayName = 'Sun Azimuth', default='-1.0', uiDict=uiDict)
                        #self.addRenderGlobalsUIElement(attName = 'sunDirection', uiType = 'vector', displayName = 'Sun Direction', default='0:0:0', uiDict=uiDict)

                with pm.frameLayout(label="Time Zone", collapsable=False) as uiDict['timeZoneFrame']:              
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):                    
                        self.addRenderGlobalsUIElement(attName = 'latitude', uiType = 'float', displayName = 'Latitude', default='0.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'longitude', uiType = 'float', displayName = 'Longitude', default='0.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'timezone', uiType = 'int', displayName = 'Timezone', default='0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'date', uiType = 'string', displayName = 'Date', default='"1/6/2014"', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'localtime', uiType = 'string', displayName = 'Localtime', default='"12:00:00"', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'ior', uiType = 'float', displayName = 'IOR', default='1.0', uiDict=uiDict)
                
                with pm.frameLayout(label="IBL", collapsable=False) as uiDict['iblFrame']:                   
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):                    
                        self.addRenderGlobalsUIElement(attName = 'illuminationMap', uiType = 'color', displayName = 'Illumination Map', default='0:0:0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'backgroundMap', uiType = 'color', displayName = 'Background Map', default='0:0:0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'reflectionMap', uiType = 'color', displayName = 'Reflection Map', default='0:0:0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'RefractionMap', uiType = 'color', displayName = 'Refraction Map', default='0:0:0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'medium', uiType = 'message', displayName = 'Medium', default='', uiDict=uiDict)

#                     self.addRenderGlobalsUIElement(attName='useSunLightConnection', uiType='bool', displayName='Use Sun', uiDict=uiDict)
#                     buttonLabel = "Create Sun"
#                     suns = pm.ls("CoronaSun")
#                     if len(suns) > 0:
#                         buttonLabel = "Delete Sun"
#                     uiDict['sunButton'] = pm.button(label=buttonLabel, command=self.editSun)
        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
        self.TheaEnvironmentUpdateTab()
Exemplo n.º 7
0
    def buildUI(self):

        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)

        self.passesParent = pm.setParent(query=True)
        frameLayout = None
        with pm.frameLayout(label="Passes",
                            collapsable=False,
                            parent=self.parent) as frameLayout:
            with pm.columnLayout(adj=True):
                with pm.rowLayout(adj=True,
                                  nc=2,
                                  cw=((1, 200), (2, 200)),
                                  h=350):
                    with pm.frameLayout(label="Existing Passes",
                                        collapsable=False,
                                        h=350):
                        self.availableAOVsListUI = pm.textScrollList(
                            doubleClickCommand=self.AOVdoubleClicked)
                        pm.textScrollList(self.availableAOVsListUI,
                                          edit=True,
                                          append=self.getAOVs())

                    with pm.frameLayout(label="Active Passes",
                                        collapsable=False,
                                        h=350):
                        self.activeAOVsListUI = pm.textScrollList(
                            selectCommand=self.exsistingAOVclicked,
                            doubleClickCommand=self.exsistingAOVdoubleClicked)
                        self.updateExistingAOVList()

        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.scriptJob(event=("NameChanged", self.nameChangedCallback),
                     parent=frameLayout)
Exemplo n.º 8
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.º 9
0
 def initUI(self):
     pm.setUITemplate("DefaultTemplate", pushTemplate=True)
     form = pm.formLayout()
     versionData = pm.mayatoCorona(version=True)
     license = versionData[7].split("\r\n")
     with pm.columnLayout('AboutLayout') as StandinLayout:
         with pm.rowColumnLayout('AboutColumnLayout', nc=2, columnWidth=((1, 160), (2, 220)), co=(2, "left", 10)):
             pm.text(label="mayaToCorona:", align="right")
             pm.text(label=versionData[0], align="left")
             pm.text(label="Corna version:", align="right")
             pm.text(label=versionData[1], align="left")
             pm.text(label="OIIO:", align="right")
             pm.text(label=versionData[2], align="left")
             pm.text(label="OSL:", align="right")
             pm.text(label=versionData[3], align="left")
             pm.text(label="BOOST:", align="right")
             pm.text(label=versionData[4], align="left")
             pm.text(label="OpenEXR:", align="right")
             pm.text(label=versionData[5], align="left")
             pm.text(label="License type:", align="right")
             pm.text(label=license[0], align="left")
             pm.text(label="Valid until:", align="right")
             pm.text(label=license[1].replace("Activated until: ", ""), align="left")
         pm.separator()
         with pm.columnLayout():
             pm.text(label="Corona Renderer\n(c) Render Legion s.r.o., 2014-2015", align="center")
             #pm.textField(text="Corona Renderer (c) Render Legion s.r.o., 2014-2015") 
     pm.formLayout(form, edit=True, attachForm=[(StandinLayout, 'top', 5), (StandinLayout, 'bottom', 5), (StandinLayout, 'right', 5), (StandinLayout, 'left', 5)])
     pm.setUITemplate("DefaultTemplate", popTemplate=True)
Exemplo n.º 10
0
 def buildUI(self):
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     with pm.frameLayout(label="Components", collapsable=False):
         with pm.columnLayout(adj=True):
             self.scrollList = pm.textScrollList(
                 doubleClickCommand=self.componentClicked)
             pm.textScrollList(self.scrollList,
                               edit=True,
                               append=self.getComponentList())
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
Exemplo n.º 11
0
    def FujiRendererCreateTab(self):
        log.debug("FujiRendererCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query = True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate = True)
        scLo = self.rendererName + "ScrollLayout"

        if self.rendererTabUiDict.has_key('common'):
            self.rendererTabUiDict.pop('common')
        
        parentForm = pm.setParent(query = True)
        uiDict = {}
        self.rendererTabUiDict['common'] = uiDict
        
        with pm.scrollLayout(scLo, horizontalScrollBarThickness = 0):
            with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn = True, width = 400):
                with pm.frameLayout(label="Sampling", collapsable = True, collapse=False):                
                    self.addRenderGlobalsUIElement(attName = 'sampleJitter', uiType = 'float', displayName = 'SampleJitter', default='1.0', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'sample_time_range_min', uiType = 'float', displayName = 'Sample Time Range Min', default='0.0', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'sample_time_range_max', uiType = 'float', displayName = 'Sample Time Range Max', default='1.0', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'samplesX', uiType = 'int', displayName = 'Pixel Samples x', default=3, uiDict=uiDict)
                    self.addRenderGlobalsUIElement(attName = 'samplesY', uiType = 'int', displayName = 'Pixel Samples y', default=3, uiDict=uiDict)
                    pm.separator()
                    self.addRenderGlobalsUIElement(attName = 'cast_shadow', uiType = 'bool', displayName = 'Cast Shadows', default='true', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'max_reflect_depth', uiType = 'int', displayName = 'Max Reflection Depth', default='3', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'max_refract_depth', uiType = 'int', displayName = 'Max Refraction Depth', default='3', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'raymarch_step', uiType = 'float', displayName = 'Raymarching Stepsize', default='0.05', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'raymarch_shadow_step', uiType = 'float', displayName = 'Raymarching Shadow Stepsize', default='0.1', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'raymarch_reflect_ste', uiType = 'float', displayName = 'Raymarching Reflection Stepsize', default='0.1', uiDict=uiDict)                    
                    self.addRenderGlobalsUIElement(attName = 'raymarch_refract_ste', uiType = 'float', displayName = 'Raymarching Refraction Stepsize', default='0.1', uiDict=uiDict)                                        
                    pm.separator()
                    self.addRenderGlobalsUIElement(attName = 'doMotionBlur', uiType = 'bool', displayName = 'Motionblur:', default=False, uiDict=uiDict)
                    self.addRenderGlobalsUIElement(attName = 'doDof', uiType = 'bool', displayName = 'Depth of Field:', default=False, uiDict=uiDict)
                    
                with pm.frameLayout(label="Output", collapsable = True, collapse=False):
                    attr = pm.Attribute(self.renderGlobalsNodeName + ".imageFormat")
                    ui = pm.attrEnumOptionMenuGrp(label = "Image Format", at=self.renderGlobalsNodeName + ".imageFormat", ei = self.getEnumList(attr)) 
                    
                with pm.frameLayout(label="Filtering", collapsable = True, collapse=False):
                    attr = pm.Attribute(self.renderGlobalsNodeName + ".filtertype")
                    ui = pm.attrEnumOptionMenuGrp(label = "Filter Type", at=self.renderGlobalsNodeName + ".filtertype", ei = self.getEnumList(attr)) 
                    ui = pm.intFieldGrp(label="Filter Size:", numberOfFields = 1)
                    pm.connectControl(ui, self.renderGlobalsNodeName + ".filtersize", index = 2 )

                with pm.frameLayout(label="Renderer", collapsable = True, collapse=False):
                    self.addRenderGlobalsUIElement(attName = 'use_max_thread', uiType = 'bool', displayName = 'Use Max Threads', default='true', uiDict=uiDict)
                    self.addRenderGlobalsUIElement(attName = 'threads', uiType = 'int', displayName = 'Threads', default=8, uiDict=uiDict)
                    self.addRenderGlobalsUIElement(attName = 'tilesize', uiType = 'int', displayName = 'Tile Size', default=64, uiDict=uiDict)
                    ui = pm.intFieldGrp(label="Verbosity:", numberOfFields = 1)
                    pm.connectControl(ui, self.renderGlobalsNodeName + ".rendererVerbosity", index = 2 )
                    
                    
        pm.setUITemplate("attributeEditorTemplate", popTemplate = True)
        pm.formLayout(parentForm, edit = True, attachForm = [ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
        self.FujiRendererUpdateTab()
Exemplo n.º 12
0
    def AppleseedEnvironmentCreateTab(self):
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "AOScrollLayout"
        envDict = {}
        self.rendererTabUiDict['environment'] = envDict
        uiDict = envDict
        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                with pm.frameLayout(label="Environment Lighting", collapsable=False):
                    with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                        attr = pm.Attribute(self.renderGlobalsNodeName + ".environmentType")
                        envDict['environmentType'] = pm.attrEnumOptionMenuGrp(label="Environment Type", at=self.renderGlobalsNodeName + ".environmentType", ei=self.getEnumList(attr))

                with pm.frameLayout(label="Environment Colors", collapsable=False) as envDict['commonEnvFrame']:
                    with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                        ui = pm.floatFieldGrp(label="Environment Intensity:", value1=1.0, numberOfFields=1)
                        pm.connectControl(ui, self.renderGlobalsNodeName + ".environmentIntensity", index=2)
                        envDict['environmentColor'] = pm.attrColorSliderGrp(label="Environment Color:", at=self.renderGlobalsNodeName + ".environmentColor")
                        envDict['gradientHorizon'] = pm.attrColorSliderGrp(label="Gradient Horizon Color:", at=self.renderGlobalsNodeName + ".gradientHorizon")
                        envDict['gradientZenit'] = pm.attrColorSliderGrp(label="Gradient Zenith Color:", at=self.renderGlobalsNodeName + ".gradientZenit")
                        envDict['environmentMap'] = pm.attrColorSliderGrp(label="Environment Map:", at=self.renderGlobalsNodeName + ".environmentMap")
                        self.addRenderGlobalsUIElement(attName='latlongHoShift', uiType='float', displayName='Lat-Long Horizontal Shift:', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName='latlongVeShift', uiType='float', displayName='Lat-Long Vertical Shift:', uiDict=uiDict)

                with pm.frameLayout(label="Physical Sky", collapsable=False) as envDict['pysSkyFrame']:
                    with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                        attr = pm.Attribute(self.renderGlobalsNodeName + ".skyModel")
                        envDict['pskModel'] = pm.attrEnumOptionMenuGrp(label="Sky Model:", at=self.renderGlobalsNodeName + ".skyModel", ei=self.getEnumList(attr))
                        uiDict['sunLightOptionMenu'] = pm.optionMenuGrp(label="Sun Light:", changeCommand=self.updateSunLightOptionMenu)
                        envDict['pskGrAlbedo'] = pm.floatFieldGrp(label="Ground Albedo:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskGrAlbedo'], self.renderGlobalsNodeName + ".ground_albedo", index=2)
                        envDict['pskGrHShit'] = pm.floatFieldGrp(label="Horizon Shift:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskGrHShit'], self.renderGlobalsNodeName + ".horizon_shift", index=2)
                        envDict['pskLumMulti'] = pm.floatFieldGrp(label="Luminance Multiplier:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskLumMulti'], self.renderGlobalsNodeName + ".luminance_multiplier", index=2)
                        envDict['pskSatMulti'] = pm.floatFieldGrp(label="Saturation Multiplier:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskSatMulti'], self.renderGlobalsNodeName + ".saturation_multiplier", index=2)
                        envDict['pskTurb'] = pm.floatFieldGrp(label="Turbidity:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskTurb'], self.renderGlobalsNodeName + ".turbidity", index=2)
                        envDict['pskTurbMin'] = pm.floatFieldGrp(label="Turbidity Min:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskTurbMin'], self.renderGlobalsNodeName + ".turbidity_min", index=2)
                        envDict['pskTurbMax'] = pm.floatFieldGrp(label="Turbidity Max:", value1=1.0, numberOfFields=1)
                        pm.connectControl(envDict['pskTurbMax'], self.renderGlobalsNodeName + ".turbidity_max", index=2)

                with pm.frameLayout(label="OSL", collapsable=False) as envDict['oslFrame']:
                    with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                        envDict['environmentOSL'] = pm.attrColorSliderGrp(label="OSL Background", at=self.renderGlobalsNodeName + ".environmentOSL")

        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
        pm.scriptJob(attributeChange=[self.renderGlobalsNode.environmentType, pm.Callback(self.uiCallback, tab="environment")])
        pm.scriptJob(attributeChange=[self.renderGlobalsNode.skyModel, pm.Callback(self.uiCallback, tab="environment")])
        self.updateEnvironment()
Exemplo n.º 13
0
    def buildAOVFrame(self, nodeAttr):
        # TODO: move this into AttributeEditorTemplate
        self._setActiveNodeAttr(nodeAttr)
        nodeAttr = pm.Attribute(nodeAttr)

        aovList = aovs.getAOVs()
        self.updateNetworkData()
        self.updateCustomArrayData(nodeAttr, aovList)

        pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)

        pm.cmds.frameLayout(label='AOVs', collapse=False)
        pm.cmds.columnLayout(adjustableColumn=True)

        pm.cmds.frameLayout(label='Surface Shader AOVs', collapse=False)
        pm.cmds.columnLayout(adjustableColumn=True)

        pm.cmds.rowLayout(nc=2)
        pm.cmds.text(label='')
        pm.cmds.button(
            label='AOV Browser',
            c=lambda *args: aoveditor.arnoldAOVBrowser(
                listAOVGroups=True, nodeTypes=self.networkNodeTypes))
        pm.setParent('..')  # rowLayout

        pm.cmds.frameLayout(labelVisible=False, collapsable=False)
        self.networkCol = pm.cmds.columnLayout(adjustableColumn=True)
        self.buildNetworkAOVs(nodeAttr, aovList)
        pm.setParent('..')  # columnLayout
        pm.setParent('..')  # frameLayout

        pm.setParent('..')  # columnLayout
        pm.setParent('..')  # frameLayout

        pm.cmds.frameLayout(label='Other AOVs', collapse=False)
        pm.cmds.columnLayout(adjustableColumn=True)

        pm.cmds.rowLayout(nc=2)
        pm.cmds.text(label='')
        pm.cmds.button(label='Add Custom',
                       c=lambda *args: shaderTemplate.newAOVPrompt())
        pm.setParent('..')  # rowLayout

        pm.cmds.frameLayout(labelVisible=False, collapsable=False)
        self.otherCol = pm.cmds.columnLayout(adjustableColumn=True)
        self.buildOtherAOVs(nodeAttr, aovList)
        pm.setParent('..')  # columnLayout
        pm.setParent('..')  # frameLayout

        pm.setParent('..')  # columnLayout
        pm.setParent('..')  # frameLayout

        pm.setParent('..')  # columnLayout
        pm.setParent('..')  # frameLayout
        pm.setUITemplate('attributeEditorTemplate', popTemplate=True)
Exemplo n.º 14
0
 def MantraTranslatorCreateTab(self):
     log.debug("MantraTranslatorCreateTab()")
     self.createGlobalsNode()
     parentForm = pm.setParent(query=True)
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     scLo = self.rendererName + "TrScrollLayout"
     
     with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
         with pm.columnLayout(self.rendererName + "TrColumnLayout", adjustableColumn=True):
             mantraAttributes.mantraTranslatorATList.createUi(self.renderGlobalsNodeName)
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
     pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 15
0
    def buildAOVFrame(self, nodeAttr):
        # TODO: move this into AttributeEditorTemplate
        self._setActiveNodeAttr(nodeAttr)
        nodeAttr = pm.Attribute(nodeAttr)

        aovList = aovs.getAOVs()
        self.updateNetworkData()
        self.updateCustomArrayData(nodeAttr, aovList)

        pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)

        pm.cmds.frameLayout(label='AOVs', collapse=False)
        pm.cmds.columnLayout(adjustableColumn=True)

        pm.cmds.frameLayout(label='Surface Shader AOVs', collapse=False)
        pm.cmds.columnLayout(adjustableColumn=True)
        
        pm.cmds.rowLayout(nc=2)
        pm.cmds.text(label='')
        pm.cmds.button(label='AOV Browser',
                       c=lambda *args: aoveditor.arnoldAOVBrowser(listAOVGroups=True,
                                                                  nodeTypes=self.networkNodeTypes))
        pm.setParent('..') # rowLayout

        pm.cmds.frameLayout(labelVisible=False, collapsable=False)
        self.networkCol = pm.cmds.columnLayout(adjustableColumn=True)
        self.buildNetworkAOVs(nodeAttr, aovList)
        pm.setParent('..') # columnLayout
        pm.setParent('..') # frameLayout

        pm.setParent('..') # columnLayout
        pm.setParent('..') # frameLayout

        pm.cmds.frameLayout(label='Other AOVs', collapse=False)
        pm.cmds.columnLayout(adjustableColumn=True)

        pm.cmds.rowLayout(nc=2)
        pm.cmds.text(label='')
        pm.cmds.button(label='Add Custom', c=lambda *args: shaderTemplate.newAOVPrompt())
        pm.setParent('..') # rowLayout

        pm.cmds.frameLayout(labelVisible=False, collapsable=False)
        self.otherCol = pm.cmds.columnLayout(adjustableColumn=True)
        self.buildOtherAOVs(nodeAttr, aovList)
        pm.setParent('..') # columnLayout
        pm.setParent('..') # frameLayout

        pm.setParent('..') # columnLayout
        pm.setParent('..') # frameLayout
        
        pm.setParent('..') # columnLayout
        pm.setParent('..') # frameLayout
        pm.setUITemplate('attributeEditorTemplate', popTemplate=True)
Exemplo n.º 16
0
 def KrayFinalGatheringCreateTab(self):
     log.debug("KrayFinalGatheringCreateTab()")
     self.createGlobalsNode()
     parentForm = pm.setParent(query=True)
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     scLo = self.rendererName + "PhotonsScrollLayout"
     with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
         with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
             with pm.frameLayout(label="Photons frame", collapsable=True, collapse=False):
                 with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                     ui = pm.floatFieldGrp(label="Threshold:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgThreshold", index=2)
                     pm.separator()                     
                     ui = pm.intFieldGrp(label="Min Rays:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgMinRays", index=2) 
                     ui = pm.intFieldGrp(label="Max Rays:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgMaxRays", index=2) 
                     ui = pm.floatFieldGrp(label="Prerender:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgPrerender", index=2)                     
                     ui = pm.intFieldGrp(label="Passes:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgPasses", index=2) 
                     pm.separator()                     
                     ui = pm.floatFieldGrp(label="Sploth Detect:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgSplotchDetect", index=2)                     
                     ui = pm.floatFieldGrp(label="Sensitivity:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgSensitivity", index=2)  
                     pm.separator()                     
                     ui = pm.checkBoxGrp(label="FG Reflections:", value1=False)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgReflections", index=2) 
                     ui = pm.checkBoxGrp(label="FG Refractions:", value1=False)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgRefractions", index=2)                   
                     pm.separator()                     
                     ui = pm.floatFieldGrp(label="Spatial Tolerance:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgSpatialTolerance", index=2)  
                     ui = pm.floatFieldGrp(label="Angular Tolerance:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgAngularTolerance", index=2)  
                     ui = pm.floatFieldGrp(label="FG Min Dist:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgDistMin", index=2)  
                     ui = pm.floatFieldGrp(label="FG Dist Max:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgDistMax", index=2)  
                     ui = pm.floatFieldGrp(label="Density/Brightness:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgBrightness", index=2)  
                     pm.separator()                     
                     ui = pm.intFieldGrp(label="Path Passes:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgPathPasses", index=2)  
                     ui = pm.floatFieldGrp(label="Corner Dist:", numberOfFields=1)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgCornerDist", index=2)  
                     ui = pm.checkBoxGrp(label="Show Samples:", value1=False)
                     pm.connectControl(ui, self.renderGlobalsNodeName + ".fgShowSamples", index=2) 
                     
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
     pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 17
0
def createArnoldAOVTab():
    parentForm = cmds.setParent(query=True)

    aovNode = aovs.AOVInterface()
    pm.columnLayout('enableAOVs', adjustableColumn=True)

    pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)

    pm.attrControlGrp(attribute=aovNode.node.aovMode, label='Mode')

    # the tab gets recreated from scratch each time rather than updated and each
    # time the AOVOptionMenuGrp adds itself to the AOVChanged callback list.
    # we must remove it or we'll leave behind invalid copies
    global _aovDisplayCtrl
    if _aovDisplayCtrl is not None:
        aovs.removeAOVChangedCallback(_aovDisplayCtrl.update)

    _aovDisplayCtrl = shaderTemplate.AOVOptionMenuGrp('aiOptions',
                                                      'displayAOV',
                                                      label='Render View AOV',
                                                      allowCreation=False,
                                                      includeBeauty=True,
                                                      allowEmpty=False,
                                                      allowDisable=False)
    _aovDisplayCtrl._setToChildMode()
    _aovDisplayCtrl._doSetup(aovNode.node.name() + '.displayAOV')

    pm.setParent(parentForm)

    cmds.scrollLayout('arnoldAOVsScrollLayout', horizontalScrollBarThickness=0)

    cmds.columnLayout('arnoldTabColumn', adjustableColumn=True)

    ed = ArnoldAOVEditor(aovNode)

    cmds.formLayout(parentForm,
                    edit=True,
                    af=[('enableAOVs', "top", 5), ('enableAOVs', "left", 0),
                        ('enableAOVs', "right", 0),
                        ('arnoldAOVsScrollLayout', "bottom", 0),
                        ('arnoldAOVsScrollLayout', "left", 0),
                        ('arnoldAOVsScrollLayout', "right", 0)],
                    an=[('enableAOVs', "bottom")],
                    ac=[('arnoldAOVsScrollLayout', "top", 5, 'enableAOVs')])

    pm.setUITemplate('attributeEditorTemplate', popTemplate=True)

    cmds.setParent(parentForm)
    pm.evalDeferred(ed.fixOptionMenus)
    ed.setEnabledState()
    pm.scriptJob(attributeChange=(aovNode.node.aovMode, ed.setEnabledState),
                 parent=ed.mainCol)
Exemplo n.º 18
0
 def update(self):
     pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)
     try:
         for attr, updateFunc, parent in self._controls:
             pm.setParent(parent)
             updateFunc(self.nodeAttr(attr))
     except:
         # print some useful info
         print("[mtoa] Template %r failed to update attribute '%s'" % (self.template, attr))
         # re-raise the last exception
         raise
     finally:
         pm.setUITemplate(popTemplate=True)
Exemplo n.º 19
0
 def componentsListRebuild(self, node):
     if node.passType.get() == 2:
         self.componentsButton = pm.button(label="Add Component", c=pm.Callback(self.showComponentList, node), parent=self.uiParent)
     componentString = node.components.get()
     if componentString is None or len(componentString) == 0:
         return
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     with pm.frameLayout(labelVisible=False, collapsable=False, w=240, parent=self.uiParent) as self.componentsListUI:
         with pm.rowColumnLayout(nc=2, cw=((1,200), (2, 30))):
             for c in componentString.split(","):
                 pm.text(label=c, align="right")
                 pm.symbolButton(image="smallTrash.png", c=pm.Callback(self.removeComponent, node, c))
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)                
Exemplo n.º 20
0
 def __init__(self):
     #pm.scriptJob(event = ["SelectionChanged", pm.Callback(self.updateObjectSelection)], parent=self)
     self.title = "MantraAttributeManager"
     pm.setUITemplate("DefaultTemplate", pushTemplate=True)
     self.height = 500
     #with pm.paneLayout( configuration='vertical2') as pane:
     with pm.frameLayout(collapsable = False, labelVisible = False) as frame:
         self.objectTree = pm.treeView(abr=False, height = 150)
         self.fillObjectTree()
         pm.button(label = "Assign Selected Attributes", c = pm.Callback(self.setAttributes, "assignSelected"))            
         pm.button(label = "Remove Selected Attributes", c = pm.Callback(self.setAttributes, "removeSelected"))        
         pm.button(label = "Remove All Attributes from Scene", c = pm.Callback(self.setAttributes, "removeAllAttr"))           
     self.show()
Exemplo n.º 21
0
def createArnoldAOVTab():
    parentForm = cmds.setParent(query=True)

    aovNode = aovs.AOVInterface()
    pm.columnLayout('enableAOVs', adjustableColumn=True)
    
    pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)

    pm.attrControlGrp(attribute=aovNode.node.aovMode, label='Mode')

    # the tab gets recreated from scratch each time rather than updated and each
    # time the AOVOptionMenuGrp adds itself to the AOVChanged callback list. 
    # we must remove it or we'll leave behind invalid copies
    global _aovDisplayCtrl
    if _aovDisplayCtrl is not None:
        aovs.removeAOVChangedCallback(_aovDisplayCtrl.update)

    _aovDisplayCtrl = shaderTemplate.AOVOptionMenuGrp('aiOptions', 'displayAOV', label='Render View AOV',
                                           allowCreation=False,
                                           includeBeauty=True,
                                           allowEmpty=False,
                                           allowDisable=False)
    _aovDisplayCtrl._setToChildMode()
    _aovDisplayCtrl._doSetup(aovNode.node.name() + '.displayAOV')
    
    pm.setParent(parentForm)

    cmds.scrollLayout('arnoldAOVsScrollLayout', horizontalScrollBarThickness=0)

    cmds.columnLayout('arnoldTabColumn', adjustableColumn=True)

    ed = ArnoldAOVEditor(aovNode)

    cmds.formLayout(parentForm,
               edit=True,
                    af=[('enableAOVs',"top", 5),
                        ('enableAOVs', "left", 0),
                        ('enableAOVs', "right", 0),
                        ('arnoldAOVsScrollLayout', "bottom", 0),
                        ('arnoldAOVsScrollLayout', "left", 0),
                        ('arnoldAOVsScrollLayout', "right", 0)],
                    an=[('enableAOVs', "bottom")],
                    ac=[('arnoldAOVsScrollLayout', "top", 5, 'enableAOVs')])

    pm.setUITemplate('attributeEditorTemplate', popTemplate=True)

    cmds.setParent(parentForm)
    pm.evalDeferred(ed.fixOptionMenus)
    ed.setEnabledState()
    pm.scriptJob(attributeChange = (aovNode.node.aovMode, ed.setEnabledState), parent=ed.mainCol)
Exemplo n.º 22
0
 def update(self):
     pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)
     try:
         for attr, updateFunc, parent in self._controls:
             pm.setParent(parent)
             updateFunc(self.nodeAttr(attr))
     except:
         # print some useful info
         print("[mtoa] Template %r failed to update attribute '%s'" %
               (self.template, attr))
         # re-raise the last exception
         raise
     finally:
         pm.setUITemplate(popTemplate=True)
Exemplo n.º 23
0
 def createAttributesButtons(self, attr):
     # print "ObjectSetTemplate Create Buttons %r for %r" % (self.nodeName, attr)
     # print "ObjectSetTemplate Created Buttons %r for %r" % (self.nodeName, attr)
     pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)
     pm.rowLayout(numberOfColumns=3,
                    columnWidth3=(140, 80, 80),
                    columnAttach3=("both", "both", "both"),
                    columnAlign3=("center", "center", "center"),
                    columnOffset3=(2, 2, 2))
     pm.text(label="")
     pm.button('attr_add_button', label="Add", c=lambda *args: AttributeListWindow(self, mode='add'))
     pm.button('attr_remove_button', label="Remove", c=lambda *args: AttributeListWindow(self, mode='remove'))
     # pm.button('attr_remove_button', label="Remove", c=Callback(self.removeAttrWin))
     pm.setUITemplate('attributeEditorTemplate', popTemplate=True)
Exemplo n.º 24
0
    def run(self):
        pm.setParent(pm.mel.eval('getOptionBox()'))

        pm.setUITemplate('DefaultTemplate', pushTemplate=True)

        pm.waitCursor(state=1)

        pm.tabLayout(tabsVisible=False, scrollable=True)

        self.options_box_setup()
        self.option_box_load()

        pm.waitCursor(state=0)

        pm.setUITemplate(popTemplate=True)

        # We need to set both apply and apply and close explicitly.  Maya breaks apply and close
        # if apply is set to a Python function.
        def apply(unused):
            self.option_box_save()
            self.option_box_apply()

        def apply_and_close(unused):
            self.option_box_save()
            self.option_box_apply()
            pm.mel.eval('hideOptionBox()')

        pm.button(pm.mel.eval('getOptionBoxApplyBtn()'),
                  edit=True,
                  command=apply)
        pm.button(pm.mel.eval('getOptionBoxApplyAndCloseBtn()'),
                  edit=True,
                  command=apply_and_close)

        # XXX: Is there a way for us to add a help link?
        pm.mel.eval('setOptionBoxCommandName("%s")' % self.title)
        # pm.mel.eval('setOptionBoxHelpTag "%s"' % self.title)
        pm.mel.eval('setOptionBoxTitle("%s");' % self.title)

        pm.mel.eval('showOptionBox()')

        # These need to be set directly to the menu item after showing the option box to
        # work around a Maya bug that breaks these when they're connected to Python functions.
        pm.menuItem(pm.mel.globals['gOptionBoxEditMenuSaveItem'],
                    edit=True,
                    command=lambda unused: self.option_box_save())
        pm.menuItem(pm.mel.globals['gOptionBoxEditMenuResetItem'],
                    edit=True,
                    command=lambda unused: self.option_box_reset())
Exemplo n.º 25
0
    def initialize_nodzgraph_button(self, attr):
        """ adds our custom widgets

        """
        pmc.setUITemplate('attributeEditorTemplate', pushTemplate=True)

        pmc.cmds.columnLayout(adj=True)
        maya_button = pmc.button("nodegraph_eval",
                                 label=self.nodegraph_button_title)
        ptr = omui.MQtUtil.findControl(maya_button)
        button = Qt.QtCompat.wrapInstance(long(ptr), Qt.QtWidgets.QPushButton)
        button.setIcon(Qt.QtGui.QPixmap(COCONODZ_ICON))
        button.clicked.connect(self.open_nodzgraph)

        pmc.setUITemplate('attributeEditorTemplate', popTemplate=True)
Exemplo n.º 26
0
 def __init__(self):
     #pm.scriptJob(event = ["SelectionChanged", pm.Callback(self.updateObjectSelection)], parent=self)
     self.title = "MantraAttributeManager"
     pm.setUITemplate("DefaultTemplate", pushTemplate=True)
     self.height = 500
     #with pm.paneLayout( configuration='vertical2') as pane:
     with pm.frameLayout(collapsable=False, labelVisible=False) as frame:
         self.objectTree = pm.treeView(abr=False, height=150)
         self.fillObjectTree()
         pm.button(label="Assign Selected Attributes",
                   c=pm.Callback(self.setAttributes, "assignSelected"))
         pm.button(label="Remove Selected Attributes",
                   c=pm.Callback(self.setAttributes, "removeSelected"))
         pm.button(label="Remove All Attributes from Scene",
                   c=pm.Callback(self.setAttributes, "removeAllAttr"))
     self.show()
Exemplo n.º 27
0
    def CoronaEnvironmentCreateTab(self):
        log.debug("CoronaEnvironmentCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "EnvScrollLayout"

        if self.rendererTabUiDict.has_key('environment'):
            self.rendererTabUiDict.pop('environment')        
        uiDict = {}
        self.rendererTabUiDict['environment'] = uiDict
                
        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                self.addRenderGlobalsUIElement(attName = 'bgType', uiType = 'enum', displayName = 'Background', default='0', data='Color/Image:PhysicalSky', uiDict=uiDict, callback=self.CoronaEnvironmentUpdateTab)
                envLightingFrame = None
                physSkyFrame = None
                physSkyPreetham = None
                physSkyRawafake = None
                self.addRenderGlobalsUIElement(attName='useSunLightConnection', uiType='bool', displayName='Use Sun', uiDict=uiDict, callback=self.editSun)
                self.addRenderGlobalsUIElement(attName = 'sunSizeMulti', uiType = 'float', displayName = 'Sun Size Multiplier', default='1.0', uiDict=uiDict)
                with pm.frameLayout(label="Color/Image", collapsable=False) as envLightingFrame:
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):
                        self.addRenderGlobalsUIElement(attName='bgColor', uiType='color', displayName='Background Color', default='0.4:0.4:1.0', uiDict=uiDict)
                with pm.frameLayout(label="Physical Sky", collapsable=True, collapse=False) as physSkyFrame:
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn=True, width=400):
                        self.addRenderGlobalsUIElement(attName = 'pSkyModel', uiType = 'enum', displayName = 'Sky Model', default='0', data='Preetham:Rawafake:Hosek', uiDict=uiDict, callback=self.CoronaEnvironmentUpdateTab)
                        self.addRenderGlobalsUIElement(attName = 'pSkyMultiplier', uiType = 'float', displayName = 'Sky Multiplier', default='1.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkyHorizBlur', uiType = 'float', displayName = 'Sky Horizon Blur', default='0.1', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkyGroundColor', uiType = 'color', displayName = 'Ground Color', default='0.25:0.25:0.25', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkyAffectGround', uiType = 'bool', displayName = 'Sky Affect Ground', default='true', uiDict=uiDict)
                    with pm.columnLayout(self.rendererName + 'ColumnLayoutphysSkyPreetham', adjustableColumn=True, width=400) as physSkyPreetham:
                        self.addRenderGlobalsUIElement(attName = 'pSkyPreethamTurb', uiType = 'float', displayName = 'Turbidity', default='2.5', uiDict=uiDict)
                    with pm.columnLayout(self.rendererName + 'ColumnLayoutphysSkyRawafake', adjustableColumn=True, width=400) as physSkyRawafake:
                        self.addRenderGlobalsUIElement(attName = 'pSkySunFalloff', uiType = 'float', displayName = 'Sun Falloff', default='3.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkyZenith', uiType = 'color', displayName = 'Zenith Color', default='0.1:0.1:0.5', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkyHorizon', uiType = 'color', displayName = 'Horizon Color', default='0.25:0.5:0.5', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkySunGlow', uiType = 'float', displayName = 'Sun Glow', default='1.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkySunSideGlow', uiType = 'float', displayName = 'Sun Side Glow', default='0.2', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'pSkySunBleed', uiType = 'float', displayName = 'Sun Bleed', default='1.0', uiDict=uiDict)
                uiDict['envLightingFrame'] = envLightingFrame
                uiDict['physSkyFrame'] = physSkyFrame
                uiDict['physSkyPreetham'] = physSkyPreetham
                uiDict['physSkyRawafake'] = physSkyRawafake
        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])        
        self.CoronaEnvironmentUpdateTab()
Exemplo n.º 28
0
    def initUI(self):
        pm.setUITemplate("DefaultTemplate", pushTemplate=True)
        form = pm.formLayout()

        binMeshExportPath = pm.optionVar.get(
            'mtap_binMeshExportPath',
            pm.workspace.path + "/geo/export.binarymesh")
        prefix = pm.optionVar.get('mtap_binMeshExportPathPrefix', "prefix")
        createProxy = pm.optionVar.get('mtap_binMeshCreateProxy', True)
        percentage = pm.optionVar.get('mtap_binMeshPercentage', 0.1)
        createStandin = pm.optionVar.get('mtap_binMeshCreateStandin', True)
        oneFilePerMesh = pm.optionVar.get('mtap_binMeshOneFilePerMesh', False)
        useTransform = pm.optionVar.get('mtap_binMeshUseTransform', False)

        with pm.columnLayout('StandinLayout') as StandinLayout:
            with pm.frameLayout('StandinLayout',
                                label="Standin export options",
                                collapsable=False):
                with pm.columnLayout('StandinColumnLayout'):
                    self.pathUI = pm.textFieldButtonGrp(
                        label="Standin directory",
                        text=binMeshExportPath,
                        buttonLabel="File",
                        buttonCommand=self.fileBrowser)
                    self.prefixUI = pm.textFieldGrp(label="Prefix",
                                                    text=prefix)
                    self.createProxyUI = pm.checkBoxGrp(label="Create proxy",
                                                        value1=createProxy)
                    self.percentageUI = pm.floatFieldGrp(label="Percentage",
                                                         value1=percentage)
                    self.createStdInUI = pm.checkBoxGrp(label="Create StandIn",
                                                        value1=createStandin)
                    self.oneFilePerMeshUI = pm.checkBoxGrp(
                        label="One File Per Mesh", value1=oneFilePerMesh)
                    self.doTransformUI = pm.checkBoxGrp(label="Use Transform",
                                                        value1=useTransform)
            with pm.rowColumnLayout(numberOfColumns=2):
                pm.button(label="Create BinaryMesh", c=self.doit)
                pm.button(label="Cancel", c=self.cancel)

        pm.formLayout(form,
                      edit=True,
                      attachForm=[(StandinLayout, 'top', 5),
                                  (StandinLayout, 'bottom', 5),
                                  (StandinLayout, 'right', 5),
                                  (StandinLayout, 'left', 5)])
        pm.setUITemplate("DefaultTemplate", popTemplate=True)
Exemplo n.º 29
0
    def addOneTabToGlobalsWindow(self, renderer, tabLabel, createProc):
        # no windows no need to call
        if not pm.window('unifiedRenderGlobalsWindow', exists=True):
            return

        displayAllTabs = pm.mel.isDisplayingAllRendererTabs()
        if not displayAllTabs and pm.SCENE.defaultRenderGlobals.currentRenderer.get() != renderer:
            return
        # Set the correct tabLayout parent.
        if displayAllTabs:
            tabLayoutName = pm.mel.getRendererTabLayout(pm.melGlobals['gMasterLayerRendererName'])
        else:
            tabLayoutName = pm.mel.getRendererTabLayout(renderer)

        # Hide the tabForm while updating.
        tabFormManagedStatus = pm.formLayout('tabForm', q=True, manage=True)
        pm.formLayout('tabForm', edit=True, manage=False)
        pm.setParent('tabForm')

        if displayAllTabs:
            tabLayoutName = pm.mel.getRendererTabLayout(pm.melGlobals['gMasterLayerRendererName'])
        else:
            tabLayoutName = pm.mel.getRendererTabLayout(renderer)
        pm.setParent(tabLayoutName)
        tabName = pm.mel.rendererTabName(renderer, tabLabel)

        commonTabNames = {
            'Common'             : "m_unifiedRenderGlobalsWindow.kCommon",
            'Passes'             : "m_unifiedRenderGlobalsWindow.kPassesTab",
            'Maya Software'      : "m_unifiedRenderGlobalsWindow.kMayaSoftware",
            'Maya Hardware'      : "m_unifiedRenderGlobalsWindow.kMayaHardware",
            'Maya Vector'        : "m_unifiedRenderGlobalsWindow.kMayaVector",
            'Features'           : "m_unifiedRenderGlobalsWindow.kFeatures",
            'Quality'            : "m_unifiedRenderGlobalsWindow.kQuality",
            'Indirect Lighting'  : "m_unifiedRenderGlobalsWindow.kIndirectLighting",
            'Options'            : "m_unifiedRenderGlobalsWindow.kOptions"
        }
        if commonTabNames.has_key(tabLabel):
            tabLabel = pm.mel.uiRes(commonTabNames[tabLabel])

        if not pm.layout(tabName, exists=True):
            pm.setUITemplate('renderGlobalsTemplate', pushTemplate=True)
            pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)
            pm.formLayout(tabName)
            createProcs = ['createMayaSoftwareCommonGlobalsTab', 'createMayaSoftwareGlobalsTab']
            try:
                createProcs.extend(pm.renderer(renderer, q=True, globalsTabCreateProcNames=True))
            except:
                pass
            if createProc in createProcs:
                pm.mel.eval(createProc)

            pm.setParent('..')
            pm.setUITemplate(popTemplate=True)
            pm.setUITemplate(popTemplate=True)
            pm.tabLayout(tabLayoutName, edit=True, tabLabel=(tabName, tabLabel))
        pm.formLayout('tabForm', edit=True, manage=tabFormManagedStatus)
Exemplo n.º 30
0
    def addOneTabToGlobalsWindow(self, renderer, tabLabel, createProc):
        # no windows no need to call
        if not pm.window('unifiedRenderGlobalsWindow', exists=True):
            return

        displayAllTabs = pm.mel.isDisplayingAllRendererTabs()
        if not displayAllTabs and pm.SCENE.defaultRenderGlobals.currentRenderer.get() != renderer:
            return
        # Set the correct tabLayout parent.
        if displayAllTabs:
            tabLayoutName = pm.mel.getRendererTabLayout(pm.melGlobals['gMasterLayerRendererName'])
        else:
            tabLayoutName = pm.mel.getRendererTabLayout(renderer)
    
        # Hide the tabForm while updating.
        tabFormManagedStatus = pm.formLayout('tabForm', q=True, manage=True)
        pm.formLayout('tabForm', edit=True, manage=False)
        pm.setParent('tabForm')

        if displayAllTabs:
            tabLayoutName = pm.mel.getRendererTabLayout(pm.melGlobals['gMasterLayerRendererName'])
        else:
            tabLayoutName = pm.mel.getRendererTabLayout(renderer)
        pm.setParent(tabLayoutName)
        tabName = pm.mel.rendererTabName(renderer, tabLabel)

        commonTabNames = {
            'Common'             : "m_unifiedRenderGlobalsWindow.kCommon",
            'Passes'             : "m_unifiedRenderGlobalsWindow.kPassesTab",
            'Maya Software'      : "m_unifiedRenderGlobalsWindow.kMayaSoftware",
            'Maya Hardware'      : "m_unifiedRenderGlobalsWindow.kMayaHardware",
            'Maya Vector'        : "m_unifiedRenderGlobalsWindow.kMayaVector",
            'Features'           : "m_unifiedRenderGlobalsWindow.kFeatures",
            'Quality'            : "m_unifiedRenderGlobalsWindow.kQuality",
            'Indirect Lighting'  : "m_unifiedRenderGlobalsWindow.kIndirectLighting",
            'Options'            : "m_unifiedRenderGlobalsWindow.kOptions"
        }
        if commonTabNames.has_key(tabLabel):
            tabLabel = pm.mel.uiRes(commonTabNames[tabLabel])

        if not pm.layout(tabName, exists=True):
            pm.setUITemplate('renderGlobalsTemplate', pushTemplate=True)
            pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)
            pm.formLayout(tabName)
            createProcs = ['createMayaSoftwareCommonGlobalsTab', 'createMayaSoftwareGlobalsTab']
            try:
                createProcs.extend(pm.renderer(renderer, q=True, globalsTabCreateProcNames=True))
            except:
                pass
            if createProc in createProcs:
                pm.mel.eval(createProc)

            pm.setParent('..')
            pm.setUITemplate(popTemplate=True)
            pm.setUITemplate(popTemplate=True)
            pm.tabLayout(tabLayoutName, edit=True, tabLabel=(tabName, tabLabel))
        pm.formLayout('tabForm', edit=True, manage=tabFormManagedStatus)
Exemplo n.º 31
0
    def KrayQualityCreateTab(self):
        log.debug("KrayFinalGatheringCreateTab()")
        self.createGlobalsNode()
        qDict = {}
        self.rendererTabUiDict['quality'] = qDict        
        
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "PhotonsScrollLayout"
        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn=True, width=400):
                with pm.frameLayout(label="Quality", collapsable=True, collapse=False):
                    with pm.columnLayout(self.rendererName + "ColumnLayoutA", adjustableColumn=True, width=400):
                        attr = pm.Attribute(self.renderGlobalsNodeName + ".qLuminosityModel")
                        ui = pm.attrEnumOptionMenuGrp(label="Luminosity Model", at=self.renderGlobalsNodeName + ".qLuminosityModel", ei=self.getEnumList(attr)) 

                        attr = pm.Attribute(self.renderGlobalsNodeName + ".qAreaLights")
                        ui = pm.attrEnumOptionMenuGrp(label="Area Lights Computation", at=self.renderGlobalsNodeName + ".qAreaLights", ei=self.getEnumList(attr)) 

                        attr = pm.Attribute(self.renderGlobalsNodeName + ".qAreaLightVisibility")
                        ui = pm.attrEnumOptionMenuGrp(label="Area Light Visibility", at=self.renderGlobalsNodeName + ".qAreaLightVisibility", ei=self.getEnumList(attr)) 

                        pm.separator()
                        attr = pm.Attribute(self.renderGlobalsNodeName + ".qOctreeDetail")
                        ui = pm.attrEnumOptionMenuGrp(label="Octree Detail", at=self.renderGlobalsNodeName + ".qOctreeDetail", ei=self.getEnumList(attr)) 

#    float qLevel; // float
#    bool qDoubleSided; // bool
#    bool qSpotlightsToArea; // bool
#    float qAreaLightsThreshold; // float
#    int qAMinRecursion; // int
#    int qAMaxRecursion; // int
#    float qLinearLightsThreshold; // float
#    int qLMinRecursion; // int
#    int qLMaxRecursion; // int
#    float qLuminosityThreshold; // float
#    int qLumMinRays; // int
#    int qLumMaxRays; // int
#    float qBlurringThreshold; // float
#    int qBLumMinRays; // int
#    int qBLumMaxRays; // int
#    float qBAccuracyLimit; // float
#    bool qTraceDirectLightReflections; // bool
#                        
        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 32
0
    def show(self):
        self.layout = pm.mel.getOptionBox()

        pm.setParent( self.layout )
        pm.setUITemplate( 'DefaultTemplate', pushTemplate=True )

        self.parentCol = pm.columnLayout( adjustableColumn=1 )
        self._buildWidgets( parent=self.parentCol )
        self._updateWidgets()

        pm.setUITemplate( popTemplate=True )

        pm.mel.setOptionBoxTitle( self._title )
        pm.mel.setOptionBoxHelpTag( self._help_tag )

        pm.mel.showOptionBox()
        self._updateButtons()
Exemplo n.º 33
0
    def MantraTranslatorCreateTab(self):
        log.debug("MantraTranslatorCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "TrScrollLayout"

        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "TrColumnLayout",
                                 adjustableColumn=True):
                mantraAttributes.mantraTranslatorATList.createUi(
                    self.renderGlobalsNodeName)
        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm,
                      edit=True,
                      attachForm=[(scLo, "top", 0), (scLo, "bottom", 0),
                                  (scLo, "left", 0), (scLo, "right", 0)])
Exemplo n.º 34
0
    def AppleseedTranslatorCreateTab(self):
        log.debug("AppleseedTranslatorCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "TrScrollLayout"
        
        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "TrColumnLayout", adjustableColumn=True, width=400):
                with pm.frameLayout(label="Translator", collapsable=True, collapse=False):
                    attr = pm.Attribute(self.renderGlobalsNodeName + ".translatorVerbosity")
                    ui = pm.attrEnumOptionMenuGrp(label="Translator Verbosity", at=self.renderGlobalsNodeName + ".translatorVerbosity", ei=self.getEnumList(attr)) 
                
                with pm.frameLayout(label="{0} export".format(self.rendererName), collapsable=True, collapse=False):
                    ui = pm.checkBoxGrp(label="Export {0} Scene file:".format(self.rendererName), value1=False)
                    pm.connectControl(ui, self.renderGlobalsNodeName + ".exportSceneFile", index=2)
#                     xmlDict = {}
#                     self.rendererTabUiDict['xml'] = xmlDict
#                     defaultXMLPath = pm.workspace.path + "/" + pm.sceneName().basename().split(".")[0] + ".appleseed"
#                     if not defaultXMLPath.dirname().exists():
#                         defaultXMLPath.dirname().makedirs()
#                     with pm.rowLayout(nc=3):
#                         xmlDict['xmlFileText'] = pm.text(label="Export to")
#                         xmlDict['xmlFile'] = pm.textField(text=defaultXMLPath)
#                         pm.symbolButton(image="navButtonBrowse.png", c=self.xmlFileBrowse)
#                         pm.connectControl(xmlDict['xmlFile'], self.renderGlobalsNodeName + ".exportSceneFileName", index=2)
                        
                with pm.frameLayout(label="Optimize Textures", collapsable=True, collapse=False):
                    optiDict = {}
                    ui = pm.checkBoxGrp(label="Use Optimized Textures:", value1=False)
                    pm.connectControl(ui, self.renderGlobalsNodeName + ".useOptimizedTextures", index=2)
                    with pm.rowLayout(nc=3):
                        self.rendererTabUiDict['opti'] = optiDict
                        pm.text(label="OptimizedTex Dir:")
                        optiDict['optiField'] = pm.textField(text=self.renderGlobalsNode.optimizedTexturePath.get())
                        pm.symbolButton(image="navButtonBrowse.png", c=self.dirBrowse)
                        pm.connectControl(optiDict['optiField'], self.renderGlobalsNodeName + ".optimizedTexturePath", index=2)
                        
                with pm.frameLayout(label="Additional Settings", collapsable=True, collapse=False):
                    ui = pm.floatFieldGrp(label="Scene scale:", value1=1.0, numberOfFields=1)
                    pm.connectControl(ui, self.renderGlobalsNodeName + ".sceneScale", index=2)
                         
        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 35
0
 def buildUI(self):
     
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)        
     
     self.passesParent = pm.setParent(query=True)
     frameLayout = None
     with pm.frameLayout(label="Passes", collapsable=False, parent=self.parent) as frameLayout:
         with pm.columnLayout(adj=True):
             with pm.rowLayout(adj=True, nc=2, cw=((1,200), (2, 200)), h=350):
                 with pm.frameLayout(label="Existing Passes", collapsable=False, h=350):
                     self.availableAOVsListUI = pm.textScrollList(doubleClickCommand=self.AOVdoubleClicked)
                     pm.textScrollList(self.availableAOVsListUI, edit=True, append=self.getAOVs())
                           
                 with pm.frameLayout(label="Active Passes", collapsable=False, h=350):
                     self.activeAOVsListUI = pm.textScrollList( selectCommand=self.exsistingAOVclicked, doubleClickCommand=self.exsistingAOVdoubleClicked)
                     self.updateExistingAOVList()
             
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
     pm.scriptJob(event=("NameChanged", self.nameChangedCallback), parent=frameLayout)
Exemplo n.º 36
0
 def AppleseedAOVsCreateTab(self):
     log.debug("AppleseedAOVsCreateTab()")
     aovDict = {}
     self.rendererTabUiDict['aovs'] = aovDict
     pm.setUITemplate("attributeEditorTemplate", pushTemplate = True)
     with pm.window() as win:
         scLo = "AOScrollLayout"
         with pm.scrollLayout(scLo, horizontalScrollBarThickness = 0):
             with pm.columnLayout("ColumnLayout", adjustableColumn = True, width = 400):
                 with pm.frameLayout(label="AOVs", collapsable = True, collapse=False):
                     with pm.columnLayout():
                         with pm.paneLayout(configuration="vertical2", paneSize=(1, 25, 100)):
                             aovDict['aovSourceField'] = pm.textScrollList("AOVSource", ams=True, append=self.aovShaders, selectCommand = pm.Callback(self.AppleseedAOVSelectCommand,"source"))
                             aovList = self.AppleseedGetAOVConnections()
                             aovDict['aovDestField'] = pm.textScrollList("AOVDest", append=aovList, ams=True, dcc=self.AppleseedDoubleClickCommand, selectCommand = pm.Callback(self.AppleseedAOVSelectCommand,"dest"))
                         aovDict['aovButton'] = pm.button(label="Selection", enable=False, c=self.AppleseedAOVButtonCommand)
     
     win.show()
     pm.setUITemplate("attributeEditorTemplate", popTemplate = True)
Exemplo n.º 37
0
def AEzFileSwitchPathNew(fileAttribute):
    pm.setUITemplate('attributeEditorTemplate', pst=True)
    pm.columnLayout(adj=True)
    pm.rowLayout(nc=3)

    if fileAttribute.split('.')[-1] == 'highResolution':
        label = 'High-resolution'
    else:
        label = 'Low-resolution'

    pm.text('filenameName', label=label)
    pm.textField('filenameField', fileName='')
    pm.symbolButton('browseFileSwitch', image='navButtonBrowse.png')
    pm.setParent('..')
    pm.setParent('..')

    pm.setUITemplate(ppt=True)

    AEzFileSwitchPathReplace(fileAttribute)
Exemplo n.º 38
0
    def AppleseedAOVsCreateTab(self):
        aovDict = {}
        self.rendererTabUiDict['aovs'] = aovDict
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "AOScrollLayout"
        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout("ColumnLayout", adjustableColumn=True, width=400):
                with pm.frameLayout(label="AOVs", collapsable=True, collapse=False):
                    with pm.columnLayout():
                        with pm.paneLayout(configuration="vertical2", paneSize=(1, 25, 100)):
                            aovDict['aovSourceField'] = pm.textScrollList("AOVSource", ams=True, append=self.aovShaders, selectCommand=pm.Callback(self.AppleseedAOVSelectCommand, "source"))
                            aovList = self.AppleseedGetAOVConnections()
                            aovDict['aovDestField'] = pm.textScrollList("AOVDest", append=aovList, ams=True, dcc=self.AppleseedDoubleClickCommand, selectCommand=pm.Callback(self.AppleseedAOVSelectCommand, "dest"))
                        aovDict['aovButton'] = pm.button(label="Selection", enable=False, c=self.AppleseedAOVButtonCommand)

        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 39
0
 def __init__(self):
     self.title = "Mantra Standin"
     self.fileName = ""
     self.density = .3
     self.pointSize = 1
     self.showPoints = False
     self.boundingBox = [-.5, -.5, -.5, .5, .5, .5]
     
     pm.setUITemplate("DefaultTemplate", pushTemplate=True)
     self.height = 500
     with pm.frameLayout(collapsable=False, labelVisible=False) as frame:
         pm.textFieldButtonGrp("stdingfilename", label="GeoFileName", text="", buttonLabel="Select", bc=pm.Callback(self.selectGeoFile), cc=pm.Callback(self.setValue, "stdingfilename"))
         #string $b = `symbolButton -image "navButtonBrowse.xpm" browser`;
         with pm.frameLayout(collapsable=False, label="Points"):
             pm.checkBoxGrp("stdinshowpoints", label="Show Points", value1=False, cc=pm.Callback(self.setValue, "stdinshowpoints"))
             pm.floatFieldGrp("stdinptdensity", label="PointDensity", value1=0.3, cc=pm.Callback(self.setValue, "stdinptdensity"))
             pm.intFieldGrp("stdinptsize", label="PointSize", value1=1, cc=pm.Callback(self.setValue, "stdinptsize"))
         with pm.rowLayout(nc=2):
             pm.button(label="Create Standin", c=pm.Callback(self.createStandin))            
             pm.button(label="Cancel", c=pm.Callback(self.delete))        
     self.show()
Exemplo n.º 40
0
    def AppleseedAOVsCreateTab(self):
        log.debug("AppleseedAOVsCreateTab()")
        aovDict = {}
        self.rendererTabUiDict['aovs'] = aovDict
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        with pm.window() as win:
            scLo = "AOScrollLayout"
            with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
                with pm.columnLayout("ColumnLayout",
                                     adjustableColumn=True,
                                     width=400):
                    with pm.frameLayout(label="AOVs",
                                        collapsable=True,
                                        collapse=False):
                        with pm.columnLayout():
                            with pm.paneLayout(configuration="vertical2",
                                               paneSize=(1, 25, 100)):
                                aovDict['aovSourceField'] = pm.textScrollList(
                                    "AOVSource",
                                    ams=True,
                                    append=self.aovShaders,
                                    selectCommand=pm.Callback(
                                        self.AppleseedAOVSelectCommand,
                                        "source"))
                                aovList = self.AppleseedGetAOVConnections()
                                aovDict['aovDestField'] = pm.textScrollList(
                                    "AOVDest",
                                    append=aovList,
                                    ams=True,
                                    dcc=self.AppleseedDoubleClickCommand,
                                    selectCommand=pm.Callback(
                                        self.AppleseedAOVSelectCommand,
                                        "dest"))
                            aovDict['aovButton'] = pm.button(
                                label="Selection",
                                enable=False,
                                c=self.AppleseedAOVButtonCommand)

        win.show()
        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
Exemplo n.º 41
0
    def AppleseedTranslatorCreateTab(self):
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "TrScrollLayout"
        uiDict = {}
        self.rendererTabUiDict['translator'] = uiDict

        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "TrColumnLayout", adjustableColumn=True, width=400):
                with pm.frameLayout(label="Translator", collapsable=True, collapse=False):
                    with pm.columnLayout(adjustableColumn=True, width=400):
                        self.addRenderGlobalsUIElement(attName='translatorVerbosity', uiType='enum', displayName='Verbosity:', default='0', uiDict=uiDict)
                with pm.frameLayout(label="appleseed Output", collapsable=True, collapse=False):
                    with pm.columnLayout(adjustableColumn=True, width=400):
                        self.addRenderGlobalsUIElement(attName='exportMode', uiType='enum', displayName='Output Mode:', default='0', uiDict=uiDict, callback=self.AppleseedTranslatorUpdateTab)
                    with pm.rowLayout(nc=3) as uiDict['outputFilenameLayout']:
                        pm.text(label="Output Filename:")
                        uiDict['fileNameField'] = pm.textField(text=self.renderGlobalsNode.exportSceneFileName.get())
                        pm.symbolButton(image="navButtonBrowse.png", c=self.outputFileBrowse)
                        pm.connectControl(uiDict['fileNameField'], self.renderGlobalsNodeName + ".exportSceneFileName", index=2)
                with pm.frameLayout(label="Optimize Textures", collapsable=True, collapse=False):
                    with pm.columnLayout(adjustableColumn=True, width=400):
                        optiDict = {}
                        ui = pm.checkBoxGrp(label="Use Optimized Textures:", value1=False)
                        pm.connectControl(ui, self.renderGlobalsNodeName + ".useOptimizedTextures", index=2)
                    with pm.rowLayout(nc=3):
                        self.rendererTabUiDict['opti'] = optiDict
                        pm.text(label="Optimized Textures Dir:")
                        optiDict['optiField'] = pm.textField(text=self.renderGlobalsNode.optimizedTexturePath.get())
                        pm.symbolButton(image="navButtonBrowse.png", c=self.dirBrowse)
                        pm.connectControl(optiDict['optiField'], self.renderGlobalsNodeName + ".optimizedTexturePath", index=2)

                with pm.frameLayout(label="Additional Settings", collapsable=True, collapse=False):
                    ui = pm.floatFieldGrp(label="Scene Scale:", value1=1.0, numberOfFields=1)
                    pm.connectControl(ui, self.renderGlobalsNodeName + ".sceneScale", index=2)

        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm, edit=True, attachForm=[ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
        self.AppleseedTranslatorUpdateTab()
Exemplo n.º 42
0
 def IndigoTranslatorCreateTab(self):
     log.debug("IndigoTranslatorCreateTab()")
     self.createGlobalsNode()
     parentForm = pm.setParent(query = True)
     pm.setUITemplate("attributeEditorTemplate", pushTemplate = True)
     scLo = self.rendererName + "TrScrollLayout"
     
     with pm.scrollLayout(scLo, horizontalScrollBarThickness = 0):
         with pm.columnLayout(self.rendererName + "TrColumnLayout", adjustableColumn = True, width = 400):
             with pm.frameLayout(label="Translator", collapsable = True, collapse=False):
                 attr = pm.Attribute(self.renderGlobalsNodeName + ".translatorVerbosity")
                 ui = pm.attrEnumOptionMenuGrp(label = "Translator Verbosity", at=self.renderGlobalsNodeName + ".translatorVerbosity", ei = self.getEnumList(attr)) 
             with pm.frameLayout(label="Indigo Scene File export", collapsable = True, collapse=False):
                 ui = pm.checkBoxGrp(label="Export Indigo Scene file:", value1 = False)
                 pm.connectControl(ui, self.renderGlobalsNodeName + ".exportSceneFile", index = 2 )
                 xmlDict = {}
                 self.rendererTabUiDict['xml'] = xmlDict
                 defaultXMLPath = pm.workspace.path + "/" + pm.sceneName().basename().split(".")[0] + ".igs"
                 if not defaultXMLPath.dirname().exists():
                     defaultXMLPath.dirname().makedirs()
                 with pm.rowLayout(nc=3):
                     xmlDict['xmlFileText'] = pm.text(label = "Export to")
                     xmlDict['xmlFile'] = pm.textField(text = defaultXMLPath)
                     pm.symbolButton(image="navButtonBrowse.png", c=self.xmlFileBrowse)
                     pm.connectControl(xmlDict['xmlFile'], self.renderGlobalsNodeName + ".exportSceneFileName", index = 2 )
             with pm.frameLayout(label="Optimize Textures", collapsable = True, collapse=False):
                 optiDict = {}
                 ui = pm.checkBoxGrp(label="Use Optimized Textures:", value1 = False)
                 with pm.rowLayout(nc=3):
                     self.rendererTabUiDict['opti'] = optiDict
                     pm.text(label="OptimizedTex Dir:")
                     optiDict['optiField'] = pm.textField(text = self.renderGlobalsNode.optimizedTexturePath.get())
                     pm.symbolButton(image="navButtonBrowse.png", c=self.dirBrowse)
                     pm.connectControl(optiDict['optiField'], self.renderGlobalsNodeName + ".optimizedTexturePath", index = 2 )
             with pm.frameLayout(label="Additional Settings", collapsable = True, collapse=False):
                 ui = pm.floatFieldGrp(label="Scene scale:", value1 = 1.0, numberOfFields = 1)
                 pm.connectControl(ui, self.renderGlobalsNodeName + ".sceneScale", index = 2 )
                      
     pm.setUITemplate("attributeEditorTemplate", popTemplate = True)
     pm.formLayout(parentForm, edit = True, attachForm = [ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 43
0
    def updateAOVFrame(self, nodeAttr):
        # TODO: move this into AttributeEditorTemplate
        self._setActiveNodeAttr(nodeAttr)
        nodeAttr = pm.Attribute(nodeAttr)

        self.updateNetworkData()
        for ctrl in self._msgCtrls:
            pm.deleteUI(ctrl)
        self._msgCtrls = []

        pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)

        aovList = aovs.getAOVs()
        self.updateCustomArrayData(nodeAttr, aovList)

        pm.setParent(self.networkCol)
        self.buildNetworkAOVs(nodeAttr, aovList)

        pm.setParent(self.otherCol)
        self.buildOtherAOVs(nodeAttr, aovList)

        pm.setUITemplate('attributeEditorTemplate', popTemplate=True)
Exemplo n.º 44
0
    def __init__(self):
        self.title = "Mantra Standin"
        self.fileName = ""
        self.density = .3
        self.pointSize = 1
        self.showPoints = False
        self.boundingBox = [-.5, -.5, -.5, .5, .5, .5]

        pm.setUITemplate("DefaultTemplate", pushTemplate=True)
        self.height = 500
        with pm.frameLayout(collapsable=False, labelVisible=False) as frame:
            pm.textFieldButtonGrp("stdingfilename",
                                  label="GeoFileName",
                                  text="",
                                  buttonLabel="Select",
                                  bc=pm.Callback(self.selectGeoFile),
                                  cc=pm.Callback(self.setValue,
                                                 "stdingfilename"))
            #string $b = `symbolButton -image "navButtonBrowse.xpm" browser`;
            with pm.frameLayout(collapsable=False, label="Points"):
                pm.checkBoxGrp("stdinshowpoints",
                               label="Show Points",
                               value1=False,
                               cc=pm.Callback(self.setValue,
                                              "stdinshowpoints"))
                pm.floatFieldGrp("stdinptdensity",
                                 label="PointDensity",
                                 value1=0.3,
                                 cc=pm.Callback(self.setValue,
                                                "stdinptdensity"))
                pm.intFieldGrp("stdinptsize",
                               label="PointSize",
                               value1=1,
                               cc=pm.Callback(self.setValue, "stdinptsize"))
            with pm.rowLayout(nc=2):
                pm.button(label="Create Standin",
                          c=pm.Callback(self.createStandin))
                pm.button(label="Cancel", c=pm.Callback(self.delete))
        self.show()
Exemplo n.º 45
0
    def createMenu(self, nodeAttr):
        pm.setUITemplate(popTemplate=1)
        
        if self.allowDisable:
            kwargs = dict(nc=3,
                          columnWidth3=[145, 20, 200],
                          columnAttach3=['right', 'both', 'both'])
        else:
            kwargs = dict(nc=2,
                          columnWidth2=[145, 220],
                          columnAttach2=['right', 'both'])
        pm.rowLayout(**kwargs)
        pm.text(label=self.label)
        if self.allowDisable:
            pm.checkBox(label='')
        pm.optionMenu(self.menuName)
        pm.setParent('..')

        menu = self.updateMenu(nodeAttr)

        pm.scriptJob(parent=menu,
                     attributeChange=(nodeAttr, lambda: self.updateMenu(nodeAttr)))
Exemplo n.º 46
0
def MantraTranslatorTabCreate():
    log.debug("MantraTabCreate from Attribute List")
    reload(mantraAttributes)

    if len(pm.ls(type = GLOBALSNAME)) == 0:
        mrg = pm.createNode(GLOBALSNAME, name = GLOBALSNAME)
    else:
        mrg = pm.ls(type = GLOBALSNAME)[0]
        
    parentForm = pm.setParent(query = True)
    pm.setUITemplate( "attributeEditorTemplate", pushTemplate = True)
    pm.scrollLayout( "MantraTrScrollLayout", horizontalScrollBarThickness = 0)
    pm.columnLayout("MantraTrColumnLayout", adjustableColumn = True)

    #mantraAttributes.mantraGlobalsATList.createUi(mrg)
    
    pm.setUITemplate( "attributeEditorTemplate", popTemplate = True)
    pm.formLayout(parentForm, edit = True, attachForm = [ ("MantraTrScrollLayout", "top", 0),
                                                          ("MantraTrScrollLayout", "bottom", 0),
                                                          ("MantraTrScrollLayout", "left", 0),
                                                          ("MantraTrScrollLayout", "right", 0)
                                                        ])
Exemplo n.º 47
0
 def componentsListRebuild(self, node):
     if node.passType.get() == 2:
         self.componentsButton = pm.button(label="Add Component",
                                           c=pm.Callback(
                                               self.showComponentList,
                                               node),
                                           parent=self.uiParent)
     componentString = node.components.get()
     if componentString is None or len(componentString) == 0:
         return
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     with pm.frameLayout(labelVisible=False,
                         collapsable=False,
                         w=240,
                         parent=self.uiParent) as self.componentsListUI:
         with pm.rowColumnLayout(nc=2, cw=((1, 200), (2, 30))):
             for c in componentString.split(","):
                 pm.text(label=c, align="right")
                 pm.symbolButton(image="smallTrash.png",
                                 c=pm.Callback(self.removeComponent, node,
                                               c))
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
Exemplo n.º 48
0
    def updateAOVFrame(self, nodeAttr):
        # TODO: move this into AttributeEditorTemplate
        self._setActiveNodeAttr(nodeAttr)
        nodeAttr = pm.Attribute(nodeAttr)

        self.updateNetworkData()
        for ctrl in self._msgCtrls:
            pm.deleteUI(ctrl)
        self._msgCtrls = []

        pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)

        aovList = aovs.getAOVs()
        self.updateCustomArrayData(nodeAttr, aovList)

        pm.setParent(self.networkCol)
        self.buildNetworkAOVs(nodeAttr, aovList)

        pm.setParent(self.otherCol)
        self.buildOtherAOVs(nodeAttr, aovList)

        pm.setUITemplate('attributeEditorTemplate', popTemplate=True)
Exemplo n.º 49
0
    def createMenu(self, nodeAttr):
        pm.setUITemplate(popTemplate=1)

        if self.allowDisable:
            kwargs = dict(nc=3,
                          columnWidth3=[145, 20, 200],
                          columnAttach3=['right', 'both', 'both'])
        else:
            kwargs = dict(nc=2,
                          columnWidth2=[145, 220],
                          columnAttach2=['right', 'both'])
        pm.rowLayout(**kwargs)
        pm.text(label=self.label)
        if self.allowDisable:
            pm.checkBox(label='')
        pm.optionMenu(self.menuName)
        pm.setParent('..')

        menu = self.updateMenu(nodeAttr)

        pm.scriptJob(parent=menu,
                     attributeChange=(nodeAttr,
                                      lambda: self.updateMenu(nodeAttr)))
Exemplo n.º 50
0
 def TheaTranslatorCreateTab(self):
     log.debug("TheaTranslatorCreateTab()")
     self.createGlobalsNode()
     parentForm = pm.setParent(query = True)
     pm.setUITemplate("attributeEditorTemplate", pushTemplate = True)
     scLo = self.rendererName + "TrScrollLayout"
     
     with pm.scrollLayout(scLo, horizontalScrollBarThickness = 0):
         with pm.columnLayout(self.rendererName + "TrColumnLayout", adjustableColumn = True, width = 400):
             with pm.frameLayout(label="Translator", collapsable = True, collapse=False):
                 attr = pm.Attribute(self.renderGlobalsNodeName + ".translatorVerbosity")
                 ui = pm.attrEnumOptionMenuGrp(label = "Translator Verbosity", at=self.renderGlobalsNodeName + ".translatorVerbosity", ei = self.getEnumList(attr)) 
             with pm.frameLayout(label="Thea XML export", collapsable = True, collapse=False):
                 ui = pm.checkBoxGrp(label="Export scene XML file:", value1 = False)
                 pm.connectControl(ui, self.renderGlobalsNodeName + ".exportXMLFile", index = 2 )
                 xmlDict = {}
                 self.rendererTabUiDict['xml'] = xmlDict
                 with pm.rowColumnLayout(nc=3, width = 120):
                     pm.text(label="XMLFileName:", width = 60, align="right")
                     defaultXMLPath = pm.workspace.path + "/" + pm.sceneName().basename().split(".")[0] + ".Thea"
                     xmlDict['xmlFile'] = pm.textField(text = defaultXMLPath, width = 60)
                     pm.symbolButton(image="navButtonBrowse.png", c=self.xmlFileBrowse)
                     pm.connectControl(xmlDict['xmlFile'], self.renderGlobalsNodeName + ".exportXMLFileName", index = 2 )
             with pm.frameLayout(label="Optimize Textures", collapsable = True, collapse=False):
                 with pm.rowColumnLayout(nc=3, width = 120):
                     optiDict = {}
                     pm.text(label="OptimizedTex Dir:", width = 60, align="right")
                     self.rendererTabUiDict['opti'] = optiDict
                     pm.symbolButton(image="navButtonBrowse.png", c=self.dirBrowse)
                     optiDict['optiField'] = pm.textField(text = self.renderGlobalsNode.optimizedTexturePath.get(), width = 60)
                     pm.connectControl(optiDict['optiField'], self.renderGlobalsNodeName + ".optimizedTexturePath", index = 2 )
             with pm.frameLayout(label="Additional Settings", collapsable = True, collapse=False):
                 ui = pm.floatFieldGrp(label="Scene scale:", value1 = 1.0, numberOfFields = 1)
                 pm.connectControl(ui, self.renderGlobalsNodeName + ".sceneScale", index = 2 )
                      
     pm.setUITemplate("attributeEditorTemplate", popTemplate = True)
     pm.formLayout(parentForm, edit = True, attachForm = [ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])
Exemplo n.º 51
0
    def IndigoEnvironmentCreateTab(self):
        log.debug("IndigoEnvironmentCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query = True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate = True)
        scLo = self.rendererName + "ScrollLayout"
        if self.rendererTabUiDict.has_key('environment'):
            self.rendererTabUiDict.pop('environment')        
        uiDict = {}
        self.rendererTabUiDict['environment'] = uiDict
        
        with pm.scrollLayout(scLo, horizontalScrollBarThickness = 0):
            with pm.columnLayout(self.rendererName + "ColumnLayout", adjustableColumn = True, width = 400):
                with pm.frameLayout(label='Environment', collapsable = True, collapse=False):
                    with pm.columnLayout(self.rendererName + 'ColumnLayout', adjustableColumn = True, width = 400):
                        self.addRenderGlobalsUIElement(attName = 'environmentType', uiType = 'enum', displayName = 'Environment Type', default='0', data='Color/Map:Sun', uiDict=uiDict)
                        pm.separator()
                        self.addRenderGlobalsUIElement(attName = 'environmentColor', uiType = 'color', displayName = 'Environment Color', default='0.4:0.4:1.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'environmentMapMultiplier', uiType = 'float', displayName = 'Emission Multiplier', default='10', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'environmentMapType', uiType = 'enum', displayName = 'Environment Map Type', default='0',  data='Spherical:Lat-Long', uiDict=uiDict)         
                        pm.separator()
                        self.addRenderGlobalsUIElement(attName = 'sky_model', uiType = 'enum', displayName = 'Sky Model', default='0', data='original:captured-simulation', uiDict=uiDict)                        
                        buttonLabel = "Create Sun"
                        suns = pm.ls("IndigoSun")
                        if len(suns) > 0:
                            buttonLabel = "Delete Sun"
                        uiDict['sunButton'] = pm.button(label = buttonLabel, command = self.editSun)
                        self.addRenderGlobalsUIElement(attName = 'turbidity', uiType = 'float', displayName = 'Sky Turbidity', default='2.0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'extra_atmospheric', uiType = 'bool', displayName = 'Extra Atmospheric', default='false', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'sun_layer', uiType = 'int', displayName = 'Sun Layer', default='0', uiDict=uiDict)
                        self.addRenderGlobalsUIElement(attName = 'sky_layer', uiType = 'int', displayName = 'Sky Layer', default='0', uiDict=uiDict)

        pm.setUITemplate("attributeEditorTemplate", popTemplate = True)
        pm.formLayout(parentForm, edit = True, attachForm = [ (scLo, "top", 0), (scLo, "bottom", 0), (scLo, "left", 0), (scLo, "right", 0) ])

        pm.scriptJob(attributeChange=[self.renderGlobalsNode.environmentType, pm.Callback(self.uiCallback, tab="environment")])        
        self.updateEnvironment()
 def toBakeLayout(self, plug) :
     """
     Layout for the geometryToBake connections.
     """
     self.currentNode = pm.PyNode(plug.split(".")[0]) # store the node linked to the AE
     
     pm.setUITemplate ("attributeEditorTemplate", pst=True)
     vLayout = pm.verticalLayout(ratios=[4, 1])
     
     # geometry textScrollList
     self.geometryToBakeTSL = pm.uitypes.TextScrollList(parent=vLayout)
     self.geometryToBakeTSL.setAllowMultiSelection(True)
     
     # button
     hLayout = pm.horizontalLayout(spacing=2)
     pm.uitypes.Button(parent=hLayout, l="Add", command=pm.Callback(self.bakeAddButtonCommand))
     pm.uitypes.Button(parent=hLayout, l="Remove", command=pm.Callback(self.bakeRemoveButtonCommand))
     pm.uitypes.Button(parent=hLayout, l="Refresh", command=pm.Callback(self.bakeRefreshButtonCommand))
     hLayout.redistribute()
     
     vLayout.redistribute()
     pm.setUITemplate(ppt=True)
     
     self.bakeRefreshButtonCommand()
Exemplo n.º 53
0
 def create_additional_channel_export(self, param_name):
     grp = "OpenVDBAdditionalChannel"
     pm.setUITemplate("attributeEditorPresetsTemplate", pushTemplate=True)
     pm.textFieldGrp(grp, label="Channel Export")
     self.update_additional_channel_export(param_name)
     pm.setUITemplate(popTemplate=True)
Exemplo n.º 54
0
 def create_velocity_grid_export(self, param_name):
     grp = "OpenVDBVelocityGrids"
     pm.setUITemplate("attributeEditorPresetsTemplate", pushTemplate=True)
     pm.textFieldGrp(grp, label="Velocity Grids")
     self.update_velocity_grid_export(param_name)
     pm.setUITemplate(popTemplate=True)
Exemplo n.º 55
0
    def FujiRendererCreateTab(self):
        log.debug("FujiRendererCreateTab()")
        self.createGlobalsNode()
        parentForm = pm.setParent(query=True)
        pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
        scLo = self.rendererName + "ScrollLayout"

        if self.rendererTabUiDict.has_key('common'):
            self.rendererTabUiDict.pop('common')

        parentForm = pm.setParent(query=True)
        uiDict = {}
        self.rendererTabUiDict['common'] = uiDict

        with pm.scrollLayout(scLo, horizontalScrollBarThickness=0):
            with pm.columnLayout(self.rendererName + "ColumnLayout",
                                 adjustableColumn=True,
                                 width=400):
                with pm.frameLayout(label="Sampling",
                                    collapsable=True,
                                    collapse=False):
                    self.addRenderGlobalsUIElement(attName='sampleJitter',
                                                   uiType='float',
                                                   displayName='SampleJitter',
                                                   default='1.0',
                                                   uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='sample_time_range_min',
                        uiType='float',
                        displayName='Sample Time Range Min',
                        default='0.0',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='sample_time_range_max',
                        uiType='float',
                        displayName='Sample Time Range Max',
                        default='1.0',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='samplesX',
                        uiType='int',
                        displayName='Pixel Samples x',
                        default=3,
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='samplesY',
                        uiType='int',
                        displayName='Pixel Samples y',
                        default=3,
                        uiDict=uiDict)
                    pm.separator()
                    self.addRenderGlobalsUIElement(attName='cast_shadow',
                                                   uiType='bool',
                                                   displayName='Cast Shadows',
                                                   default='true',
                                                   uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='max_reflect_depth',
                        uiType='int',
                        displayName='Max Reflection Depth',
                        default='3',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='max_refract_depth',
                        uiType='int',
                        displayName='Max Refraction Depth',
                        default='3',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='raymarch_step',
                        uiType='float',
                        displayName='Raymarching Stepsize',
                        default='0.05',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='raymarch_shadow_step',
                        uiType='float',
                        displayName='Raymarching Shadow Stepsize',
                        default='0.1',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='raymarch_reflect_ste',
                        uiType='float',
                        displayName='Raymarching Reflection Stepsize',
                        default='0.1',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='raymarch_refract_ste',
                        uiType='float',
                        displayName='Raymarching Refraction Stepsize',
                        default='0.1',
                        uiDict=uiDict)
                    pm.separator()
                    self.addRenderGlobalsUIElement(attName='doMotionBlur',
                                                   uiType='bool',
                                                   displayName='Motionblur:',
                                                   default=False,
                                                   uiDict=uiDict)
                    self.addRenderGlobalsUIElement(
                        attName='doDof',
                        uiType='bool',
                        displayName='Depth of Field:',
                        default=False,
                        uiDict=uiDict)

                with pm.frameLayout(label="Output",
                                    collapsable=True,
                                    collapse=False):
                    attr = pm.Attribute(self.renderGlobalsNodeName +
                                        ".imageFormat")
                    ui = pm.attrEnumOptionMenuGrp(
                        label="Image Format",
                        at=self.renderGlobalsNodeName + ".imageFormat",
                        ei=self.getEnumList(attr))

                with pm.frameLayout(label="Filtering",
                                    collapsable=True,
                                    collapse=False):
                    attr = pm.Attribute(self.renderGlobalsNodeName +
                                        ".filtertype")
                    ui = pm.attrEnumOptionMenuGrp(
                        label="Filter Type",
                        at=self.renderGlobalsNodeName + ".filtertype",
                        ei=self.getEnumList(attr))
                    ui = pm.intFieldGrp(label="Filter Size:", numberOfFields=1)
                    pm.connectControl(ui,
                                      self.renderGlobalsNodeName +
                                      ".filtersize",
                                      index=2)

                with pm.frameLayout(label="Renderer",
                                    collapsable=True,
                                    collapse=False):
                    self.addRenderGlobalsUIElement(
                        attName='use_max_thread',
                        uiType='bool',
                        displayName='Use Max Threads',
                        default='true',
                        uiDict=uiDict)
                    self.addRenderGlobalsUIElement(attName='threads',
                                                   uiType='int',
                                                   displayName='Threads',
                                                   default=8,
                                                   uiDict=uiDict)
                    self.addRenderGlobalsUIElement(attName='tilesize',
                                                   uiType='int',
                                                   displayName='Tile Size',
                                                   default=64,
                                                   uiDict=uiDict)
                    ui = pm.intFieldGrp(label="Verbosity:", numberOfFields=1)
                    pm.connectControl(ui,
                                      self.renderGlobalsNodeName +
                                      ".rendererVerbosity",
                                      index=2)

        pm.setUITemplate("attributeEditorTemplate", popTemplate=True)
        pm.formLayout(parentForm,
                      edit=True,
                      attachForm=[(scLo, "top", 0), (scLo, "bottom", 0),
                                  (scLo, "left", 0), (scLo, "right", 0)])
        self.FujiRendererUpdateTab()
Exemplo n.º 56
0
def createArnoldTextureSettings():
    """The patched version of the original file
    """
    import pymel.core as pm
    import maya.cmds as cmds
    import pymel.versions as versions
    from mtoa.ui.globals import settings

    pm.setUITemplate('attributeEditorTemplate', pushTemplate=True)
    pm.columnLayout(adjustableColumn=True)

    pm.attrControlGrp('autotx',
                      cc=settings.updateAutoTxSettings,
                      label="Auto-convert Textures to TX (Disabled in Anima)",
                      attribute='defaultArnoldRenderOptions.autotx',
                      enable=False)

    pm.attrControlGrp(
        'use_existing_tiled_textures',
        label="Use Existing TX Textures",
        attribute='defaultArnoldRenderOptions.use_existing_tiled_textures')

    # disable autotx
    pm.setAttr('defaultArnoldRenderOptions.autotx', 0)
    settings.updateAutoTxSettings()
    cmds.separator()

    # don't create texture_automip for 2017 as autoTx is ON by default
    maya_version = versions.shortName()
    if int(float(maya_version)) < 2017:
        pm.attrControlGrp(
            'texture_automip',
            label="Auto-mipmap",
            attribute='defaultArnoldRenderOptions.textureAutomip')

    pm.attrControlGrp(
        'texture_accept_unmipped',
        label="Accept Unmipped",
        attribute='defaultArnoldRenderOptions.textureAcceptUnmipped')

    cmds.separator()

    pm.checkBoxGrp('ts_autotile',
                   cc=settings.updateAutotileSettings,
                   label='',
                   label1='Auto-tile')

    pm.connectControl('ts_autotile',
                      'defaultArnoldRenderOptions.autotile',
                      index=2)

    pm.intSliderGrp('ts_texture_autotile',
                    label="Tile Size",
                    minValue=16,
                    maxValue=64,
                    fieldMinValue=16,
                    fieldMaxValue=1024)

    pm.connectControl('ts_texture_autotile',
                      'defaultArnoldRenderOptions.textureAutotile',
                      index=1)
    pm.connectControl('ts_texture_autotile',
                      'defaultArnoldRenderOptions.textureAutotile',
                      index=2)
    pm.connectControl('ts_texture_autotile',
                      'defaultArnoldRenderOptions.textureAutotile',
                      index=3)
    '''pm.attrControlGrp('texture_autotile',
                        label="Auto-tile Size",
                        attribute='defaultArnoldRenderOptions.textureAutotile')'''

    pm.attrControlGrp(
        'texture_accept_untiled',
        label="Accept Untiled",
        attribute='defaultArnoldRenderOptions.textureAcceptUntiled')

    pm.attrControlGrp(
        'texture_max_memory_MB',
        label="Max Cache Size (MB)",
        attribute='defaultArnoldRenderOptions.textureMaxMemoryMB')

    pm.attrControlGrp(
        'texture_max_open_files',
        label="Max Open Files",
        attribute='defaultArnoldRenderOptions.textureMaxOpenFiles')

    cmds.separator()

    cmds.attrControlGrp(
        'texture_diffuse_blur',
        label="Diffuse Blur",
        attribute='defaultArnoldRenderOptions.textureDiffuseBlur')

    # cmds.attrControlGrp('texture_glossy_blur',
    #                     label="Glossy Blur",
    #                     attribute='defaultArnoldRenderOptions.textureGlossyBlur')

    pm.setParent('..')

    pm.setUITemplate(popTemplate=True)