예제 #1
0
 def test_removeClassData(self):
     meta.setMetaData(self.node, 'myMetaClass', None)
     meta.setMetaData(self.node, 'mySecondMetaClass', None)
     result = meta.removeMetaData(self.node, 'myMetaClass')
     self.assertTrue(result)
     self.assertTrue(meta.isMetaNode(self.node))
     self.assertFalse(meta.hasMetaClass(self.node, 'myMetaClass'))
     self.assertTrue(meta.hasMetaClass(self.node, 'mySecondMetaClass'))
예제 #2
0
def createControlsForSelected(shapeData, link=True):
    """
    Create or update control shapes for each selected node.

    Args:
        shapeData: A dict containing control shape data
        link (bool): If true, link the controls to the target nodes
    """
    result = []
    sel = pm.selected()
    if not sel:
        ctl = createControl(shapeData)
        result.append(ctl)
    else:
        for node in sel:
            if meta.hasMetaClass(node, CONTROLSHAPE_METACLASS):
                # update shape
                replaceShapes(node, shapeData)
                result.append(node)
            else:
                # create new control
                ctl = createControl(shapeData, targetNode=node, link=link)
                result.append(ctl)
    pm.select(result)
    return result
예제 #3
0
파일: spaces.py 프로젝트: bohdon/maya-pulse
def isSpaceConstraint(node):
    """
    Return True if the node is space constrained

    Args:
        node: A PyNode or string node name
    """
    return meta.hasMetaClass(node, SPACECONSTRAINT_METACLASS)
예제 #4
0
파일: rigs.py 프로젝트: bohdon/maya-pulse
def isRig(node):
    """
    Return whether a node represents a pulse rig

    Args:
        node: A PyNode or string node name
    """
    return meta.hasMetaClass(node, RIG_METACLASS)
예제 #5
0
파일: spaces.py 프로젝트: bohdon/maya-pulse
def isSpace(node):
    """
    Return True if the node is a space

    Args:
        node: A PyNode or string node name
    """
    return meta.hasMetaClass(node, SPACE_METACLASS)
예제 #6
0
def isMirrorNode(node):
    """
    Return whether a node has mirroring data

    Args:
        node: A PyNode, MObject, or node name
    """
    return meta.hasMetaClass(node, MIRROR_METACLASS)
예제 #7
0
    def getFootControl(ctl: pm.PyNode):
        """
        Return the main foot control for a foot control system

        Args:
            ctl: A control with foot control meta data
        """
        if meta.hasMetaClass(ctl, FOOT_CTL_METACLASSNAME):
            return meta.getMetaData(ctl,
                                    FOOT_CTL_METACLASSNAME).get('foot_ctl')
예제 #8
0
 def isBlueprintNode(node):
     """
     Return whether the given node is a Blueprint node
     """
     return meta.hasMetaClass(node, BLUEPRINT_METACLASS)
예제 #9
0
 def hasAnyMetaClass(node, metaClassNames):
     for metaClassName in metaClassNames:
         if meta.hasMetaClass(node, metaClassName):
             return True
     return False
예제 #10
0
def isLinked(node):
    return meta.hasMetaClass(node, className=LINK_METACLASS)