def __init__(self, name, **kwargs): classArgs = {"UIFile":"default.py","rerigUI":True} #classArgs = dict(classArgs.items() + kwargs.items()) classArgs = Util.defaultArgs( classArgs, kwargs) self.Modules = {} self.connections = {} self.name = name self.UIFile = classArgs["UIFile"] if classArgs["rerigUI"]: self.UI = self.initialiseUI()
def loadModules(self,args,**kwargs): """ Load text in list for each module available """ defaultArgs = {"key": "rigList", "parent": "rigScroll"} functArgs = Util.defaultArgs( defaultArgs, args) selectCommand = ("NWRig" + ".UI.updateRigAttributes({})") rootContainer = "" iconTextScroll = "" moduleList = [] # Overwrite select command kwargs["sc"] = selectCommand if self.rigInstance.rootExists(): self.rigInstance.refreshModuleList() rootContainer = self.rigInstance.Modules["root"].name else: if self.elementExists(functArgs["key"]): return self.windowElements[functArgs["key"].fullPath] else: cmds.warning("No modules found in scene") return None # File list of modules in scene indent children moduleList = self.recursiveGetModules( (rootContainer + "_CNT") ) # Add module list to funct args functArgs = Util.defaultArgs( functArgs, {"append": moduleList} ) if self.elementExists(functArgs["key"]): combinedArgs = Util.defaultArgs( functArgs, kwargs) combinedArgs.pop("key") iconTextScroll = self.editElement(functArgs["key"], ra= True) iconTextScroll = self.editElement(functArgs["key"], **combinedArgs) else: iconTextScroll = self.iconTextScrollList(functArgs, **kwargs) self.inputs[functArgs["key"]] = self.windowElements[functArgs["key"]] return iconTextScroll
def updateBlueprintAttributes(self,args): """ Gets selected module and lists attributes """ functArgs = Util.defaultArgs({}, args ) # Check blueprintIconScroll element exists if self.windowElements.has_key("blueprintAttributeframe"): # Load selected objects attributes self.loadAttributes('blueprint',args["module"]) self.editElement("blueprintTextField",tx = args["module"]) else: pass
def updateRigAttributes(self,args): """ Gets selected module and lists attributes """ functArgs = Util.defaultArgs({}, args ) # Check rigIconScroll element exists if self.inputs.has_key("rigList"): selectedModule = self.queryInput("rigList") if selectedModule: # Get selected element selectedModule = Util.getFirst(selectedModule) # Load selected objects attributes self.loadAttributes('rig',selectedModule.strip()) else: pass
def refreshModuleList(self): """ Clears and refreshes module instances """ rootCnt = (self.name + "_CNT") rootModule = {} # check if module list is empty if len(self.Modules) == 0: # Find root and find it's children if self.rootExists(): # populate module list rootModule["root"] = self.reloadModule(rootCnt) childModules = self.getContainerChildren(rootCnt) self.Modules = Util.defaultArgs( rootModule, childModules) else: smds.error("Root containter not found for refresh")
def rigModule(self,args): """ Run rig method for module """ # get module name defaultArgs = {"name":"default"} functArgs = Util.defaultArgs( defaultArgs, args) name = functArgs["name"] # Check that root is built if self.rootExists() == False: cmds.error("Root container not found during rig") self.refreshModuleList() # check module exists and rig has not been run if Util.moduleExists(name) and self.checkMethod(name, "rig"): mod = self.Modules[name] mod.rig() else: print ("Module \"" + name + "\" already built!")