Pro_Pack : Exporter

ProPack exporter module is our own export management system for handling the output of files based on the metaData export node <<<<<<< HEAD class systems. This module is largely the UI management as the majority of the codebase is bound to the metadata_pro mNode classes

======= class systems.

>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
>>> # import statement for the module via the r9pro decompiler
>>> from Red9.pro_pack import r9pro
>>> r9pro.r9import('r9exp')
>>> import r9exp

Main Classes

<<<<<<< HEAD ======= >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
ExportManager() Base Export Manager class to be used and over-loaded at the client level
AnimationStore
AnimMap
Anim_Redirect
AnimPointCloud
Anim_Transfer
LimbMatchingUI
checkPlugin(pluginName)

check if a plugin of name is loaded, if not force load it if available

Parameters:pluginName – plugin name to check
checkFile(fileName, ext)
class ExportTagUI(*args, **kwgs)

Bases: PySide.QtGui.QMainWindow, Ui_MainWindow

simple UI to edit a given ExportLoop tag

pushdata()

push the ui data back to the export_loop and refresh the parent UI

pulldata()

pull the data back from the export tag and fill the UI

set_specific_path()

grab the path and set the text filed

<<<<<<< HEAD staticMetaObject = <PySide.QtCore.QMetaObject object at 0x0000000013322A48>
======= staticMetaObject = <PySide.QtCore.QMetaObject object at 0x00000000130F5648> >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
class ExportLoopTagUI(*args, **kwgs)

Bases: PySide.QtGui.QMainWindow, Ui_MainWindow

simple UI to edit a given ExportLoop tag

pushdata()

push the ui data back to the export_loop and refresh the parent UI

pulldata()

pull the data back from the export tag and fill the UI

set_specific_root()

add specific root jnt

set_times()

set the UI start and End Frames from the Red9 timerange Get calls

<<<<<<< HEAD staticMetaObject = <PySide.QtCore.QMetaObject object>
======= staticMetaObject = <PySide.QtCore.QMetaObject object at 0x0000000012F08EC8> >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
<<<<<<< HEAD class JntSel(tag, loop=None, parent=None)
======= class JntSel(tag, parent=None) >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e

Bases: PySide.QtGui.QMainWindow, Ui_mw_aditive_joint_selector

Simple UI to filter the hierarchy from Skeletonroot and present a text scroll with all joints so the user can select one

mrig
skeleton_root

is this the right thing to do, point at the rigs skeleton not the SRC thats bound?

<<<<<<< HEAD
set_multi_mode(multi=False)

set the selection mode, single or multiple

======= >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
get_joints()
set_joints_list()
<<<<<<< HEAD

set the list widget up

select_current_items()

select the currently set items on the loop to the list selections

=======
>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
clear_selection()
<<<<<<< HEAD

clear the exportroot_specific completely and close the UI

=======
>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
get_selection()
<<<<<<< HEAD

set the data

staticMetaObject = <PySide.QtCore.QMetaObject object at 0x000000001332AEC8>
=======
staticMetaObject = <PySide.QtCore.QMetaObject object at 0x0000000012F08C08>
>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
<<<<<<< HEAD class ExportLoop_Widget(name, loop, item=None, exportui=None)
======= class ExportLoop_Widget(name, loop, parent=None) >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e

Bases: PySide.QtGui.QWidget

Bespoke QT Widget to handle the LoopData display and management

connect_signals()
set_editable(mode)

set all controls editable or not

<<<<<<< HEAD
refresh_ui(*args, **kws)

pull the loop nodes data to the UI

set_loopname(*args)

set the loopname via the checks

set_timelines()

set the timeline to the tags ranges

edittag_ui_show()

open the Tag edit UI for more specific editing

staticMetaObject = <PySide.QtCore.QMetaObject object at 0x000000001332A8C8>
=======
setup()

pull the loop nodes data to the UI

staticMetaObject = <PySide.QtCore.QMetaObject object at 0x0000000012F08CC8>
>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
class ExportUI(parent=None)

Bases: PySide.QtGui.QMainWindow, Ui_MainWindow

selected_exptags

return the selected Export mNode tags directly

selected_ranges

return the selected Export mNode tags directly

<<<<<<< HEAD
refresh_ui(lists='all')
=======
refreshUI(lists='all')
>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e

wrapper to call after the tag management calls to refresh and redraw the UI lists

<<<<<<< HEAD
clear_selections()
======= >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
closeEvent(*args, **kwrds)

ensure we close the tag ui if we close main

edit_exp_tag()

set the tagID for a given exportTag

set_exp_active(state)
set_time_active(state)
<<<<<<< HEAD
copy_loops()
paste_loops()
======= >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
add_time_range()

add and connect a TimeRange node to the given expTag

edit_time_range()
<<<<<<< HEAD

should really only be for the STRING based loop display only now as the QT widget bind the TagUI via the edit button edit a given looptag

=======

edit a given looptag

>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
open_export_dir()

OS open the dir for the selected export loop

set_to_range()

set the timeline in Maya to reflect the selected time range loops from the UI

delete_time_range()

delete the selected ranges

sceneMover_create()

create a blank SceneRoot Node

sceneMover_delete()

delete the current SceneMover SAFELY

sceneMover_restore()

run the internal restore on the SceneRoot’

this calls the main ExportClass thats bound so that the sceneRoot reset defaults can be maintained at the export class level rather than the base class level

sceneMover_shift()

run the shift code

<<<<<<< HEAD
graph_tag()

simple call to select and graph the tag in the nodeEditor

======= >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
run()

main run call for the export tags

<<<<<<< HEAD staticMetaObject = <PySide.QtCore.QMetaObject object at 0x0000000013304FC8>
class LoopProcessStatus(loop, *args, **kws)

Bases: object

class thats bound to the loop instance and used to track process status

setup a new instance of the class only if the loop passed in the constructor wasn’t already hooked with a LoopProcessState node

clear()

delete this object, clearing the status of the loop thats bound

currentProcess
addProcess(process)

add a new process to track and set that as the current process

Parameters:process – str, process name to add
getStatus()

get the status of this object

setFailed(process=None)

set this process objects general state to fail

Parameters:process – if given we set the status to failed of this specific process else we set the self.currentProcess
setLogMessage(message, process=None)
Parameters:
  • message – str, message added to the log list
  • process – if given we set the status to failed of this specific process else we set the self.currentProcess
printStatusLog()
======= staticMetaObject = <PySide.QtCore.QMetaObject object at 0x0000000012DA8548> >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
class ExportManager

Bases: object

Base Export Manager class to be used and over-loaded at the client level

up_axis
plugins_loaded()
printlogs()

pretty print log data from the exporter

<<<<<<< HEAD
export_r9Anim()

export the mRig data to r9Anim format files

export_fbx(runSceneRoot=False)

run the fbx anim transfer export process

======= >>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e
run()

Main Call : wrapped to make sure we manage the scene status

run_files(files)
<<<<<<< HEAD

light wrapper of the run call to handle processing of multiple given files whilst managing the progressBarQT escape and file loading

=======

light wrapper of the run call to handle the progressBar escape and file loading

>>>>>>> d7ab8a039c4da0838a07bf4a9ec3ad957667b21e