예제 #1
0
	def __init__( self, parent ):
		MelTabLayout.__init__( self, parent )

		#do skeleton parts
		skeletonPartScroll = MelScrollLayout( self )
		theCol = MelColumnLayout( skeletonPartScroll )

		def getFile( cls ):
			clsFile = Path( inspect.getfile( cls ) )
			if clsFile.setExtension( 'py' ).exists():
				return clsFile.setExtension( 'py' )

			return clsFile

		for cls in SkeletonPart.IterSubclasses():
			clsFile = getFile( cls )

			col = MelColumnLayout( theCol )

			MelSeparator( col, h=5 )

			hLayout = MelHSingleStretchLayout( col )
			MelLabel( hLayout, l=cls.GetPartName(), align='left' ).bold( True )
			MelSpacer( hLayout, w=10 )
			lbl = MelLabel( hLayout, l=clsFile, align='left' )
			hLayout.setStretchWidget( lbl )
			hLayout.layout()

			hLayout = MelHLayout( col )
			MelButton( hLayout, l='Explore To', c=Callback( mel.zooExploreTo, clsFile ), h=20 )
			MelButton( hLayout, l='Edit', c=Callback( os.system, 'start %s' % clsFile ), h=20 )
			hLayout.layout()

		#do rig parts
		rigPartScroll = MelScrollLayout( self )
		theCol = MelColumnLayout( rigPartScroll )

		for cls in rigPrimitives.RigPart.IterSubclasses():
			clsFile = getFile( cls )

			col = MelColumnLayout( theCol )

			MelSeparator( col, h=5 )

			hLayout = MelHSingleStretchLayout( col )
			MelLabel( hLayout, l=cls.GetPartName(), align='left' ).bold( True )
			MelSpacer( hLayout, w=10 )
			lbl = MelLabel( hLayout, l=clsFile, align='left' )
			hLayout.setStretchWidget( lbl )
			hLayout.layout()

			hLayout = MelHLayout( col )
			MelButton( hLayout, l='Explore To', c=Callback( mel.zooExploreTo, clsFile ), h=20 )
			MelButton( hLayout, l='Edit', c=Callback( os.system, 'start %s' % clsFile ), h=20 )
			hLayout.layout()

		#setup labels
		self.setLabel( 0, 'Skeleton Parts' )
		self.setLabel( 1, 'Rig Parts' )
예제 #2
0
    def build_popup(self, parent, *a):
        cmd.setParent(parent, m=True)
        cmd.menu(parent, e=True, dai=True)

        thisFile = Path(cmd.file(q=True, sn=True))

        #if the file doesn't exist, then use teh cwd
        if not thisFile.exists():
            thisFile = thisFile.getcwd() / "tmp.ma"

        dir = thisFile.up()
        curFile = Path(cmd.textField(self.UI_file, q=True, tx=True))

        for f in dir.files():
            if f.hasExtension(skinWeights.EXTENSION):
                cmd.menuItem(l=f.name(),
                             cb=f == curFile,
                             c=Callback(cmd.textField,
                                        self.UI_file,
                                        e=True,
                                        tx=f))

        cmd.menuItem(d=True)
        cmd.menuItem(l="browse", c=self.on_browseWeightFile)
        cmd.menuItem(d=True)
        cmd.menuItem(l="clear",
                     c=lambda *a: cmd.textField(self.UI_file, e=True, tx=''))
        if curFile.exists():
            cmd.menuItem(d=True)
            addExploreToMenuItems(curFile)
예제 #3
0
	def popup_sets( self, parent, *args ):
		cmd.setParent(parent, m=True)
		cmd.menu(parent, e=True, dai=True)

		items = self.selection()
		addEazel = cmd.optionVar(q='zooVisManEazel') if cmd.optionVar(ex='zooVisManEazel') else True
		enable = bool(items)

		cmd.menuItem(en=enable, l="+ selection to vis set", c=self.on_add)
		cmd.menuItem(en=enable, l="- selection from vis set", c=self.on_remove)
		cmd.menuItem(en=enable, l="select items in vis set", c=self.on_set_select)
		cmd.menuItem(en=enable, l="parent to...", c=self.on_reparent)

		cmd.menuItem(d=True)
		cmd.menuItem(l="new vis set", c=self.on_new)
		cmd.menuItem(en=enable, l="remove vis set", c=self.on_delete)
		cmd.menuItem(d=True)

		cmd.menuItem(l="always show eazel", cb=addEazel, c=self.on_eazel)
		cmd.menuItem(d=True)

		cmd.menuItem(l="merge all sets (nasty hack)", c="mel.hackyMergeSets()")
		cmd.menuItem(l="add faces affected by joint", c=self.on_joint_affected_faces)
		cmd.menuItem(l="add faces affected by joint heirarchy", c=self.on_joint_affected_faces)
		cmd.menuItem(d=True)

		#build the preset list...
		visPresets = presetsUI.listAllPresets( visManager.TOOL_NAME, visManager.EXTENSION, True )
		cmd.menuItem(l="build sets from preset", sm=True)
		for locale, pList in visPresets.iteritems():
			for p in pList:
				cmd.menuItem(l=p.name(), c=Callback(self.import_preset, p.name(), locale, True, True))
		cmd.setParent('..', m=True)

		cmd.menuItem(l="import preset volumes", sm=True)
		for locale, pList in visPresets.iteritems():
			for p in pList:
				cmd.menuItem(l=p.name(), c=Callback(self.import_preset, p.name(), locale, False, False))
		cmd.setParent('..', m=True)
		selected = cmd.ls(sl=True)
		cmd.menuItem(en=len(selected)==1, l="export volume preset", c=self.export_preset)
		cmd.menuItem(l="manage presets", c=lambda *x: presetsUI.load(visManager.TOOL_NAME, visManager.DEFAULT_LOCALE, visManager.EXTENSION))
		cmd.menuItem(d=True)

		cmd.menuItem(l='create sphere volume', c=lambda *x: assets.createExportVolume(assets.ExportManager.kVOLUME_SPHERE))
		cmd.menuItem(l='create cube volume', c=lambda *x: assets.createExportVolume(assets.ExportManager.kVOLUME_CUBE))
예제 #4
0
	def buildCmdEditorMenu( self, *a ):
		previewMode = self.UI_previewCheck.getValue()
		selTrigger = self.getHighlightedTrigger()
		if selTrigger:
			cmd.menu( self.MENU_cmdEditor, e=True, dai=True )
			for presetName, presetContents in CMD_PRESETS.iteritems():
				MelMenuItem( self.MENU_cmdEditor, l=presetName, en=not previewMode, c=Callback( self.UI_cmdEditor.setValue, presetContents ) )

			MelMenuItem( self.MENU_cmdEditor, l='setAttr cmd', en=not previewMode, c=lambda *a: self.UI_cmdEditor.setValue( writeSetAttrCmd( selTrigger ) ) )
예제 #5
0
	def popup_marks( self, parent, *args, **kwargs ):
		cmd.setParent(parent, m=True)
		cmd.menu(parent, e=True, dai=True)

		add = kwargs.get('add', False )
		marks = mel.zooVisManListBookmarks()
		for mark in marks:
			cmd.menuItem(l=mark, c=Callback(self.on_activate_mark, mark, add))

		cmd.menuItem(d=1)
		cmd.menuItem(l='create bookmark', c=self.on_create_bookmark)
예제 #6
0
    def popup_filterPresets(self, parent, *args):
        cmd.setParent(parent, m=True)
        cmd.menu(parent, e=True, dai=True)

        hasItems = False
        allFilterPresets = presetsUI.listAllPresets(PRESET_ID_STR,
                                                    PRESET_EXTENSION)
        for locale, filterPresets in allFilterPresets.iteritems():
            for item in filterPresets:
                itemName = item.name()
                cmd.menuItem(l=itemName, c=Callback(self.setFilter, itemName))
                hasItems = True

        if hasItems:
            cmd.menuItem(d=True)

        cmd.menuItem(l='clear', c=Callback(self.setFilter, ''))
        if self.getFilter():
            cmd.menuItem(d=True)
            cmd.menuItem(l='save filter preset', c=self.on_filterSave)
            cmd.menuItem(l='manager filter presets', c=self.on_filterManage)
예제 #7
0
	def buildImportPresetMenu( self, *a ):
		cmd.menu( self.MENU_import, e=True, dai=True )
		presetDict = triggeredPresets.listPresets()
		for locale, presets in presetDict.iteritems():
			for preset in presets:
				MelMenuItem( self.MENU_import, l=preset.name(), c=Callback( self.importFilepath, preset.path() ) )