示例#1
0
def register():
    logger.info("Registering appleseed renderer.")

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

    # Final Render procedures.
    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()
    renderSettingsBuiltCallback('appleseed')

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

    pm.callbacks(addCallback=renderSettingsBuiltCallback,
                 hook="renderSettingsBuilt",
                 owner="appleseed")

    addRenderGlobalsScriptJobs()

    # 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)

    # Hypershade callbacks
    asHypershadeCallbacks = [
        ("hyperShadePanelBuildCreateMenu",
         hyperShadePanelBuildCreateMenuCallback),
        ("hyperShadePanelBuildCreateSubMenu",
         hyperShadePanelBuildCreateSubMenuCallback),
        ("hyperShadePanelPluginChange", hyperShadePanelPluginChangeCallback),
        ("createRenderNodeSelectNodeCategories",
         createRenderNodeSelectNodeCategoriesCallback),
        ("createRenderNodePluginChange", createRenderNodePluginChangeCallback),
        ("renderNodeClassification", renderNodeClassificationCallback),
        ("createRenderNodeCommand", createRenderNodeCallback),
        ("nodeCanBeUsedAsMaterial", nodeCanBeUsedAsMaterialCallback),
        ("buildRenderNodeTreeListerContent",
         buildRenderNodeTreeListerContentCallback)
    ]
    for h, c in asHypershadeCallbacks:
        logger.debug("Adding {0} callback.".format(h))
        pm.callbacks(addCallback=c, hook=h, owner="appleseed")

    # appleseed translator.
    createTranslatorMelProcedures()

    # Logos.
    pm.renderer("appleseed", edit=True, logoImageName="appleseed.png")

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

    pm.renderer("appleseed",
                edit=True,
                logoCallbackProcedure="appleseedLogoCallback")

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

    # XGen
    try:
        import xgenm as xg
        for h, c in asXGenCallbacks:
            xg.registerCallback(h, c)

        logger.info("appleseedMaya: initialized xgenseed")
    except Exception as e:
        logger.info(
            "appleseedMaya: could not initialize xgenseed. error = %s" % e)
示例#2
0
def main():
    menu.clear()
    constant.init()
    scheduler.init()

    menu.createMenu(constant.API, constant.SCHEDULE_SCRIPT, constant.SCHEDULED)
示例#3
0
    def __init__(self):
        Delegate.__init__(self, delete_handler=self.quit_if_last)

        #Add a menu in a non-kiwi way, because I can't get gazpacho to do it!
        self.menubar, self.uimanager = createMenu(self, "plothole_ui.xml")
        merge_id = self.uimanager.new_merge_id()
        #self.uimanager.add_ui(merge_id, "/MenuBar/Plot/", "test", "New Plot", gtk.UI_MANAGER_MENUITEM, False)
        self.plotmenu = self.uimanager.get_widget("/MenuBar/Plot").get_submenu()
        testitem = gtk.MenuItem(None)
        self.plotmenu.append(testitem)
        #testitem.connect("activate", self.new_plot_cb)
        testitem.show()

        #Setup the Source view
        self.source_list.set_columns(self.src_columns)
        self.source_list.set_selection_mode(gtk.SELECTION_MULTIPLE)
        self.source_listview=self.source_list.get_treeview()
        name_col=self.source_list.get_treeview_column(self.src_columns[2])
        self.source_listview.search_column=2

        #Setup the Lines list
        self.lines_list.set_headers_visible(True)
        self.lines_list.set_columns(self.lines_columns)

        self.gen_col_list.set_headers_visible(False)
        self.gen_col_list.set_columns(self.gen_columns)

        self.name.set_property('data-type', str)
        self.x_col.set_property('data-type', int)
        self.y_col.set_property('data-type', int)


        self.x_expr.set_property('data-type', str)
        self.y_expr.set_property('data-type', str)
        self.title.set_property('data-type', str)
        self.label.set_property('data-type', str)
        self.style.set_property('data-type', str)
        self.marker.set_property('data-type', str)
        self.legend_loc.set_property('data-type', str)
        self.legend_size.set_property('data-type', str)
        self.x_axis_label.set_property('data-type', str)
        self.y_axis_label.set_property('data-type', str)

        self.context_id = self.statusbar.get_context_id("test")

        self.plot_model=self.plt_combo.get_model()

        #Access to global clipboard
        self.clipboard = gtk.clipboard_get(gtk.gdk.SELECTION_CLIPBOARD)
        self.clipboard_text=""

        self.loading=False  #Are we currently loading a saved session?
                            #Ugly hack to avoid some recursion problems.
        self.color_button=gtk.ColorButton()

        #Source clipboard
        self.src_clipboard=[]
        self.src_clipboard_cut=False

        self.style.prefill([("-","-"), ("--","--"), (":", ":"), ("-.","-."), ("_-", "steps"), (" ","None")])
        self.marker.prefill([(".", "."), ("o", "o"), ("^", "^"), ("v", "v"), ("+", "+"), ("x", "x"), ("s", "s"), (",",","), (" ", "None")])

        #x_col_liststore = self.x_col.get_model_items()
        #x_col_liststore.set_column_types("str", "str")
        self.x_col.prefill([("0",0),("1",1)])
        self.y_col.prefill([("0",0),("1",1)])


        self.legend_loc.prefill(["best", "upper right", "center right",
                                 "lower right", "lower center", "lower left",
                                 "center left", "upper left", "upper center",
                                 "center"])

        self.legend_size.prefill(["xx-small", "x-small", "small",
                                  "medium", "large", "x-large", "xx-large"])

        self.src_proxy=self.add_proxy(Source(), [
                "name", "x_expr_enable", "x_expr", "x_col", "y_col",
                "y_expr_enable", "y_expr", "norm_enable", "norm_min_pt",
                "norm_min_y", "norm_max_pt", "norm_max_y", "comment",
                "transpose"
                ])
        self.plt_proxy=self.add_proxy(Plot(), [
                "title", "shown", "xlim_enable", "ylim_enable",
                "xlim_min", "xlim_max", "ylim_min", "ylim_max",
                "legend_enable", "legend_loc", "legend_size", "legend_border",
                "x_axis_label", "x_axis_label_enable",
                "y_axis_label", "y_axis_label_enable",
                "x_grid_enable", "y_grid_enable",
                "x_majorticks_enable", "x_minorticks_enable",
                "x_majorticks_maxn", "x_minorticks_maxn",
                "y_majorticks_enable", "y_minorticks_enable",
                "y_majorticks_maxn", "y_minorticks_maxn",
                "mpl_commands", "figheight", "figwidth",
                "x_log_enable", "y_log_enable",
                ])

        self.line_proxy=self.add_proxy(Line(), [
                "label", "style", "marker", "width", "x_scale_enable",
                "y_scale_enable", "x_scale", "y_scale",
                "x_shift_enable", "y_shift_enable", "x_shift", "y_shift",
                "x_column", "y_column", "source_columns_enable"
                ])

    #        self.gen_col_proxy=self.add_proxy(GeneratedColumn(), [
    #                "id", "name", "expr"
    #                ])

        #Setup the line color selector (is there a more "kiwi" way?)
        self.line_colorseldlg = None
        self.color = self.line_color_area.get_colormap().alloc_color(0, 65535, 0)
        self.line_color_area.set_events(gtk.gdk.BUTTON_PRESS_MASK)
        self.line_color_area.connect("event",  self.line_color_area_event)


        #These are "hooks", which get called every time a proxy is updated.
        self.src_proxy.proxy_updated = self.src_proxy_updated
        self.plt_proxy.proxy_updated = self.plt_proxy_updated
        self.line_proxy.proxy_updated = self.line_proxy_updated

        #Drag'n drop Sources setup
        source_listview = self.source_list.get_treeview()
        source_listview.enable_model_drag_dest([("text/uri-list",0,80)], gtk.gdk.ACTION_COPY)
        self.source_list.enable_dnd()
        source_listview.connect("drag_data_received",self.on_drag_data_received)

        #Initial widget sensitivity
        self.expressions_expander.set_sensitive(False)
        self.source_pane.set_sensitive(False)
        self.plot_pane.set_sensitive(False)
        self.line_notebook.set_sensitive(False)
示例#4
0
def main():
    # calling menu function
    constants.init()
    schedule.init()
    menu.createMenu(constants.API, constants.ICON_NAME,
                    constants.SCHEDULE_SCRIPT)
示例#5
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()
示例#6
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)