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 ""
Example #2
0
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)