Example #1
0
    def registerAETemplateCallbacks(self):
        log.debug("registerAETemplateCallbacks")
        # callback is defined as mel script, didn't work as pymel command.. 
        # aeCallbackName = "AE{0}NodeCallback".format(self.rendererName)
        # aeCallbackString = "callbacks -addCallback {0} -hook AETemplateCustomContent -owner {1};".format(aeCallbackName, self.pluginName)
        # pm.mel.eval(aeCallbackString)

        pm.callbacks(addCallback=self.aeTemplateCallback, hook='AETemplateCustomContent', owner=self.pluginName)
        

#        aeCallbackName = "{0}hyperShadePanelBuildCreateMenuCallback"
#        aeCallbackString = "callbacks -addCallback {0} -hook hyperShadePanelBuildCreateMenu -owner {1};".format(aeCallbackName, self.pluginName)
#
#        aeCallbackName = "{0}hyperShadePanelBuildCreateSubMenuCallback".format(self.rendererName)
#        aeCallbackString = "callbacks -addCallback {0} -hook hyperShadePanelBuildCreateSubMenu -owner {1};".format(aeCallbackName, self.pluginName)

        pm.callbacks(addCallback=self.hyperShadePanelBuildCreateMenuCallback, hook='hyperShadePanelBuildCreateMenu', owner=self.pluginName)
        pm.callbacks(addCallback=self.hyperShadePanelBuildCreateSubMenuCallback, hook='hyperShadePanelBuildCreateSubMenu', owner=self.pluginName)
        pm.callbacks(addCallback=self.buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner=self.pluginName)
        pm.callbacks(addCallback=self.createRenderNodeCallback, hook='createRenderNodeCommand', owner=self.pluginName)
        
        
        
        aeTemplateName = "AE{0}NodeTemplate".format(self.rendererName.lower())
        aeTemplateImportName = aeTemplateName
Example #2
0
    def registerAETemplateCallbacks(self):
        log.debug("registerAETemplateCallbacks")
        # callback is defined as mel script, didn't work as pymel command.. 
        # aeCallbackName = "AE{0}NodeCallback".format(self.rendererName)
        # aeCallbackString = "callbacks -addCallback {0} -hook AETemplateCustomContent -owner {1};".format(aeCallbackName, self.pluginName)
        # pm.mel.eval(aeCallbackString)

        pm.callbacks(addCallback=self.aeTemplateCallback, hook='AETemplateCustomContent', owner=self.pluginName)
        

#        aeCallbackName = "{0}hyperShadePanelBuildCreateMenuCallback"
#        aeCallbackString = "callbacks -addCallback {0} -hook hyperShadePanelBuildCreateMenu -owner {1};".format(aeCallbackName, self.pluginName)
#
#        aeCallbackName = "{0}hyperShadePanelBuildCreateSubMenuCallback".format(self.rendererName)
#        aeCallbackString = "callbacks -addCallback {0} -hook hyperShadePanelBuildCreateSubMenu -owner {1};".format(aeCallbackName, self.pluginName)

        pm.callbacks(addCallback=self.hyperShadePanelBuildCreateMenuCallback, hook='hyperShadePanelBuildCreateMenu', owner=self.pluginName)
        pm.callbacks(addCallback=self.hyperShadePanelBuildCreateSubMenuCallback, hook='hyperShadePanelBuildCreateSubMenu', owner=self.pluginName)
        pm.callbacks(addCallback=self.buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner=self.pluginName)
        pm.callbacks(addCallback=self.createRenderNodeCallback, hook='createRenderNodeCommand', owner=self.pluginName)
        
        
        
        aeTemplateName = "AE{0}NodeTemplate".format(self.rendererName.lower())
        aeTemplateImportName = aeTemplateName
Example #3
0
def unregister():
    logger.info("Unregistering appleseed renderer.")

    # XGen
    try:
        import xgenm as xg

        xg.deregisterCallback("RenderAPIRendererTabUIInit"   , "appleseedMaya.xgenseedui.xgseedUI" )
        xg.deregisterCallback("RenderAPIRendererTabUIRefresh", "appleseedMaya.xgenseedui.xgseedRefresh" )
        xg.deregisterCallback("PostDescriptionCreate"        , "appleseedMaya.xgenseedui.xgseedOnCreateDescription" )

        xg.deregisterCallback("ArchiveExport"    , "appleseedMaya.xgenseed.xgseedArchiveExport")
        xg.deregisterCallback("ArchiveExportInfo", "appleseedMaya.xgenseed.xgseedArchiveExportInfo")
        xg.deregisterCallback("ArchiveExportInit", "appleseedMaya.xgenseed.xgseedArchiveExportInit")
        logger.info("appleseedMaya: uninitialized xgenseed")
    except Exception as e:
        logger.info("appleseedMaya: could not uninitialize xgenseed. error = %s" % e)

    if om.MGlobal.mayaState() == om.MGlobal.kInteractive:
        deleteMenu()

    pm.callbacks(clearCallbacks=True, owner="appleseed")

    removeRenderGlobalsScriptJobs()

    if pm.renderer("appleseed", q=True, ex=True):
        pm.renderer("appleseed", unregisterRenderer=True)
def initializePlugin(mobject):
    mplugin = OpenMayaMPx.MFnPlugin(mobject)
    try:
        # Register command
        mplugin.registerCommand(kPluginCmdName,
                                instanceAlongCurveCommand.cmdCreator)

        if OpenMaya.MGlobal.mayaState() != OpenMaya.MGlobal.kBatch:
            mplugin.addMenuItem("Instance Along Curve",
                                "MayaWindow|mainEditMenu", kPluginCmdName, "")

            # Register AE template
            pm.callbacks(addCallback=loadAETemplateCallback,
                         hook='AETemplateCustomContent',
                         owner=kPluginNodeName)

        # Register node
        mplugin.registerNode(kPluginNodeName, kPluginNodeId,
                             instanceAlongCurveLocator.nodeCreator,
                             instanceAlongCurveLocator.nodeInitializer,
                             OpenMayaMPx.MPxNode.kLocatorNode,
                             kPluginNodeClassify)
    except:
        sys.stderr.write(
            'Failed to register plugin instanceAlongCurve. stack trace: \n')
        sys.stderr.write(traceback.format_exc())
        raise
Example #5
0
def unregister():
    logger.info("Unregistering appleseed renderer.")

    deleteMenu()

    pm.callbacks(clearCallbacks=True, owner="appleseed")

    if pm.renderer("appleseed", q=True, ex=True):
        pm.renderer("appleseed", unregisterRenderer=True)
Example #6
0
    def __addSceneChangedCallback(self):
        callbacks = pm.callbacks(listCallbacks=True,
                                 hook=WALTER_SCENE_CHANGED_CALLBACK,
                                 owner=WALTER_SCENE_CHANGED_CALLBACK_OWNER)

        if callbacks:
            for c in callbacks:
                pm.callbacks(removeCallback=c,
                             hook=WALTER_SCENE_CHANGED_CALLBACK,
                             owner=WALTER_SCENE_CHANGED_CALLBACK_OWNER)

        pm.callbacks(addCallback=self.__updateModel,
                     hook=WALTER_SCENE_CHANGED_CALLBACK,
                     owner=WALTER_SCENE_CHANGED_CALLBACK_OWNER)
def initializePlugin( mobject ):
    mplugin = OpenMayaMPx.MFnPlugin( mobject )
    try:
        # Register command
        mplugin.registerCommand( kPluginCmdName, instanceAlongCurveCommand.cmdCreator )

        if OpenMaya.MGlobal.mayaState() != OpenMaya.MGlobal.kBatch:
            mplugin.addMenuItem("Instance Along Curve", "MayaWindow|mainEditMenu", kPluginCmdName, "")

            # Register AE template
            pm.callbacks(addCallback=loadAETemplateCallback, hook='AETemplateCustomContent', owner=kPluginNodeName)

        # Register node
        mplugin.registerNode( kPluginNodeName, kPluginNodeId, instanceAlongCurveLocator.nodeCreator,
                              instanceAlongCurveLocator.nodeInitializer, OpenMayaMPx.MPxNode.kLocatorNode, kPluginNodeClassify )
    except:
        sys.stderr.write('Failed to register plugin instanceAlongCurve. stack trace: \n')
        sys.stderr.write(traceback.format_exc())
        raise
Example #8
0
 def registerAETemplateCallbacks(self):
     pm.callbacks(addCallback=self.aeTemplateCallback, hook='AETemplateCustomContent', owner=self.pluginName)
     pm.callbacks(addCallback=self.hyperShadePanelBuildCreateMenuCallback, hook='hyperShadePanelBuildCreateMenu', owner=self.pluginName)
     pm.callbacks(addCallback=self.hyperShadePanelBuildCreateSubMenuCallback, hook='hyperShadePanelBuildCreateSubMenu', owner=self.pluginName)
     pm.callbacks(addCallback=self.buildRenderNodeTreeListerContentCallback, hook='buildRenderNodeTreeListerContent', owner=self.pluginName)
     pm.callbacks(addCallback=self.createRenderNodeCallback, hook='createRenderNodeCommand', owner=self.pluginName)
     pm.callbacks(addCallback=self.connectNodeToNodeOverrideCallback, hook='connectNodeToNodeOverrideCallback', owner=self.pluginName)
     aeTemplateName = "AE{0}NodeTemplate".format(self.rendererName.lower())
     aeTemplateImportName = aeTemplateName
Example #9
0
def register():
    logger.info("Registering appleseed renderer.")

    # Register render.
    pm.renderer("appleseed", rendererUIName="appleseed")

    # Final Render procedures.
    createRenderMelProcedures()
    pm.renderer(
        "appleseed",
        edit=True,
        renderProcedure="appleseedRenderProcedure",
        commandRenderProcedure="appleseedBatchRenderProcedure",
        batchRenderProcedure="appleseedBatchRenderProcedure",
        cancelBatchRenderProcedure="appleseedCancelBatchRenderProcedure",
        renderRegionProcedure="mayaRenderRegion")

    # Ipr Render procedures.
    pm.renderer(
        "appleseed",
        edit=True,
        iprRenderProcedure="appleseedIprRenderProcedure",
        isRunningIprProcedure="appleseedIsRunningIprRenderProcedure",
        startIprRenderProcedure="appleseedStartIprRenderProcedure",
        stopIprRenderProcedure="appleseedStopIprRenderProcedure",
        refreshIprRenderProcedure="appleseedRefreshIprRenderProcedure",
        pauseIprRenderProcedure="appleseedPauseIprRenderProcedure",
        changeIprRegionProcedure="appleseedChangeIprRegionProcedure",
    )

    # Globals
    createRenderTabsMelProcedures()
    pm.renderer("appleseed", edit=True, addGlobalsNode="defaultRenderGlobals")
    pm.renderer("appleseed", edit=True, addGlobalsNode="defaultResolution")
    pm.renderer("appleseed",
                edit=True,
                addGlobalsNode="appleseedRenderGlobals")

    pm.renderer("appleseed",
                edit=True,
                addGlobalsTab=("Common", "createMayaSoftwareCommonGlobalsTab",
                               "updateMayaSoftwareCommonGlobalsTab"))

    pm.renderer("appleseed",
                edit=True,
                addGlobalsTab=("Appleseed", "appleseedCreateTabProcedure",
                               "appleseedUpdateTabProcedure"))

    # Extension attributes.
    addExtensionAttributes()

    # AE templates.
    pm.callbacks(addCallback=appleseedAETemplateCallback,
                 hook="AETemplateCustomContent",
                 owner="appleseed")

    # Manually load templates in aetemplate folder.
    templatesDir = os.path.join(thisDir, "aetemplate")
    logger.debug("Registering AETemplates in %s" % templatesDir)
    for file in os.listdir(templatesDir):
        if fnmatch.fnmatch(file, '*template.py'):
            templateModule = file.replace(".py", "")
            logger.debug("Registering AE template %s" % templateModule)
            mel.eval('python("import appleseedMaya.aetemplate.%s")' %
                     templateModule)

    # Hypershader callbacks
    pm.callbacks(addCallback=hyperShadePanelBuildCreateMenuCallback,
                 hook="hyperShadePanelBuildCreateMenu",
                 owner="appleseed")
    pm.callbacks(addCallback=hyperShadePanelBuildCreateSubMenuCallback,
                 hook="hyperShadePanelBuildCreateSubMenu",
                 owner="appleseed")
    pm.callbacks(addCallback=buildRenderNodeTreeListerContentCallback,
                 hook='buildRenderNodeTreeListerContent',
                 owner="appleseed")

    pm.callbacks(addCallback=createRenderNodeCallback,
                 hook='createRenderNodeCommand',
                 owner="appleseed")
    pm.callbacks(addCallback=connectNodeToNodeOverrideCallback,
                 hook='connectNodeToNodeOverrideCallback',
                 owner="appleseed")

    # Appleseed translator.
    createTranslatorMelProcedures()

    # Logos.
    if appleseedIconsPath():
        pm.renderer("appleseed",
                    edit=True,
                    logoImageName=os.path.join(appleseedIconsPath(),
                                               "appleseed.png"))

        mel.eval('''
            global proc appleseedLogoCallback()
            {
                evalDeferred("showHelp -absolute \\\"http://appleseedhq.net\\\"");
            }
            ''')

        pm.renderer("appleseed",
                    edit=True,
                    logoCallbackProcedure="appleseedLogoCallback")
    else:
        logger.info(
            "appleseedMaya: skipping logo registration. Logo not found")

    # Menu
    createMenu()
Example #10
0
def register():
    logger.info("Registering appleseed renderer.")

    # Register render.
    pm.renderer("appleseed", rendererUIName="Appleseed")

    # Final Render procedures.
    createRenderMelProcedures()
    pm.renderer(
        "appleseed",
        edit=True,
        renderProcedure="appleseedRenderProcedure",
        commandRenderProcedure="appleseedBatchRenderProcedure",
        batchRenderProcedure="appleseedBatchRenderProcedure",
        cancelBatchRenderProcedure="appleseedCancelBatchRenderProcedure",
        renderRegionProcedure="mayaRenderRegion"
        )

    # Ipr Render procedures.
    pm.renderer(
        "appleseed",
        edit=True,
        iprRenderProcedure="appleseedIprRenderProcedure",
        isRunningIprProcedure="appleseedIsRunningIprRenderProcedure",
        startIprRenderProcedure="appleseedStartIprRenderProcedure",
        stopIprRenderProcedure="appleseedStopIprRenderProcedure",
        refreshIprRenderProcedure="appleseedRefreshIprRenderProcedure",
        pauseIprRenderProcedure="appleseedPauseIprRenderProcedure",
        changeIprRegionProcedure="appleseedChangeIprRegionProcedure",
        )

    # Globals
    createRenderTabsMelProcedures()
    addRenderGlobalsScriptJobs()

    pm.renderer("appleseed", edit=True, addGlobalsNode="defaultRenderGlobals")
    pm.renderer("appleseed", edit=True, addGlobalsNode="defaultResolution")
    pm.renderer("appleseed", edit=True, addGlobalsNode="appleseedRenderGlobals")

    mel.eval('registerUpdateRendererUIProc("evalDeferred -lp appleseedCurrentRendererChanged");')

    pm.renderer(
        "appleseed",
        edit=True,
        addGlobalsTab=(
            "Common",
            "createMayaSoftwareCommonGlobalsTab",
            "appleseedUpdateCommonTabProcedure"
            )
        )
    pm.renderer(
        "appleseed",
        edit=True,
        addGlobalsTab=(
            "Appleseed",
            "appleseedCreateAppleseedTabProcedure",
            "appleseedUpdateAppleseedTabProcedure"
            )
        )

    # AE templates.
    pm.callbacks(
        addCallback=appleseedAETemplateCallback,
        hook="AETemplateCustomContent",
        owner="appleseed")

    # Manually load templates in aetemplate folder.
    templatesDir =  os.path.join(thisDir, "aetemplate")
    logger.debug("Registering AETemplates in %s" % templatesDir)
    for file in os.listdir(templatesDir):
        if fnmatch.fnmatch(file, '*template.py'):
            templateModule = file.replace(".py", "")
            logger.debug("Registering AE template %s" % templateModule)
            mel.eval('python("import appleseedMaya.aetemplate.%s")' % templateModule)

    # Hypershader callbacks
    pm.callbacks(
        addCallback=hyperShadePanelBuildCreateMenuCallback,
        hook="hyperShadePanelBuildCreateMenu",
        owner="appleseed"
    )
    pm.callbacks(
        addCallback=hyperShadePanelBuildCreateSubMenuCallback,
        hook="hyperShadePanelBuildCreateSubMenu",
        owner="appleseed"
    )
    pm.callbacks(
        addCallback=buildRenderNodeTreeListerContentCallback,
        hook='buildRenderNodeTreeListerContent',
        owner="appleseed"
    )

    pm.callbacks(
        addCallback=createRenderNodeCallback,
        hook='createRenderNodeCommand',
        owner="appleseed")
    pm.callbacks(
        addCallback=connectNodeToNodeOverrideCallback,
        hook='connectNodeToNodeOverrideCallback',
        owner="appleseed")

    # Appleseed translator.
    createTranslatorMelProcedures()

    # Logos.
    if appleseedIconsPath():
        pm.renderer(
            "appleseed",
            edit=True,
            logoImageName=os.path.join(appleseedIconsPath(), "appleseed.png")
        )

        mel.eval('''
            global proc appleseedLogoCallback()
            {
                evalDeferred("showHelp -absolute \\\"http://appleseedhq.net\\\"");
            }
            '''
        )

        pm.renderer(
            "appleseed",
            edit=True,
            logoCallbackProcedure="appleseedLogoCallback"
        )
    else:
        logger.info("appleseedMaya: skipping logo registration. Logo not found")

    # Menu
    if om.MGlobal.mayaState() == om.MGlobal.kInteractive:
        createMenu()

    # XGen
    try:
        import xgenm as xg

        xg.registerCallback("RenderAPIRendererTabUIInit"   , "appleseedMaya.xgenseedui.xgseedUI" )
        xg.registerCallback("RenderAPIRendererTabUIRefresh", "appleseedMaya.xgenseedui.xgseedRefresh" )
        xg.registerCallback("PostDescriptionCreate"        , "appleseedMaya.xgenseedui.xgseedOnCreateDescription" )

        xg.registerCallback("ArchiveExport"    , "appleseedMaya.xgenseed.xgseedArchiveExport")
        xg.registerCallback("ArchiveExportInfo", "appleseedMaya.xgenseed.xgseedArchiveExportInfo")
        xg.registerCallback("ArchiveExportInit", "appleseedMaya.xgenseed.xgseedArchiveExportInit")
        logger.info("appleseedMaya: initialized xgenseed")
    except Exception as e:
        logger.info("appleseedMaya: could not initialize xgenseed. error = %s" % e)