def getModelFromSelection(): """""" try: sel = cmds.ls(sl=1, ap=1) if len(sel) < 2: om.MGlobal.displayError("Please select joints first, then mesh.") return else: mesh = sel.pop() dagPath1 = utils.getDagPath(mesh) skeleton = sel.pop() dagPath2 = utils.getDagPath(skeleton) if dagPath1.hasFn(om.MFn.kMesh) and dagPath2.hasFn(om.MFn.kJoint): return mesh, skeleton else: om.MGlobal.displayError("\"%s\" isn't mesh type, \"%s\" isn't skeleton type." % mesh % skeleton) except: return ""
def getModelFromSelection(): """""" try: sel = cmds.ls(sl=1, ap=1) if len(sel) < 2: om.MGlobal.displayError("Please select joints first, then mesh.") return else: mesh = sel.pop() dagPath1 = utils.getDagPath(mesh) skeleton = sel.pop() dagPath2 = utils.getDagPath(skeleton) if dagPath1.hasFn(om.MFn.kMesh) and dagPath2.hasFn(om.MFn.kJoint): return mesh, skeleton else: om.MGlobal.displayError( "\"%s\" isn't mesh type, \"%s\" isn't skeleton type." % mesh % skeleton) except: return ""
def getLogicalInfluenceIndex(self,influence): """ Args: influence (str) Returns: int """ try: dagPath = utils.getDagPath(influence) except: raise utils.UserInputError("Could not find influence '%s' in %s" % (influence, self.skinCluster)) return self.fn.indexForInfluenceObject(dagPath)
def getInfluenceData(self, influence): """ Args: influence (str) Returns: WeightData """ try: dagPath = utils.getDagPath(influence) except: raise utils.UserInputError("Could not find influence '%s' in %s" % (influence, self.skinCluster)) selList = om.MSelectionList() weights = om.MDoubleArray() self.fn.getPointsAffectedByInfluence(dagPath, selList, weights) componentStr = [] selList.getSelectionStrings(componentStr) componentStr = cmds.ls(componentStr, ap=1, fl=1) weights = [w for w in weights] return WeightData(componentStr, weights)