Пример #1
0
    def set_transform_node(self, name):
        assert isinstance(name, (str, unicode))
        assert maya.cmds.objExists(name)

        self._mfn_tfm = None
        self._mfn_shp = None

        tfm_dag = api_utils.get_as_dag_path(name)
        if tfm_dag is not None:
            assert tfm_dag.apiType() == OpenMaya.MFn.kTransform

            # Get camera shape from transform.
            dag = api_utils.get_as_dag_path(name)
            num_children = dag.childCount()
            if num_children > 0:
                for i in xrange(num_children):
                    child_obj = dag.child(i)
                    if child_obj.apiType() == OpenMaya.MFn.kCamera:
                        dag.push(child_obj)
                        self._mfn_shp = OpenMaya.MFnDagNode(dag)
                        break

            self._mfn_tfm = OpenMaya.MFnDagNode(tfm_dag)

        if self._mfn_tfm is None or self._mfn_shp is None:
            self._mfn_tfm = OpenMaya.MFnDagNode()
            self._mfn_shp = OpenMaya.MFnDagNode()
        return
Пример #2
0
    def __init__(self, node=None, name=None):
        """
        Initialize a Marker, give a name to connect to an existing Maya node.

        :param node: The Maya node to connect to.
        :type node: None or str

        :param name: This is a backwards compatible kwarg for 'node'.
        :type name: None or str
        """
        if name is not None:
            msg = ("mmSolver.api.Marker(name=value), "
                   "'name' is a deprecated flag, use 'node' ")
            warnings.warn(msg)
            node = name
        if isinstance(node, basestring):
            try:
                dag = api_utils.get_as_dag_path(node)
                self._mfn = OpenMaya.MFnDagNode(dag)
            except RuntimeError as e:
                msg = 'Given Marker node name is invalid: name=%r'
                LOG.error(msg, node)
                raise e
        else:
            self._mfn = OpenMaya.MFnDagNode()
        return
Пример #3
0
    def set_shape_node(self, name):
        assert isinstance(name, (str, unicode))
        assert maya.cmds.objExists(name)

        self._mfn_tfm = None
        self._mfn_shp = None

        shp_dag = api_utils.get_as_dag_path(name)
        if shp_dag is not None:
            assert shp_dag.apiType() == OpenMaya.MFn.kCamera

            # Get transform from shape.
            tfm_dag = api_utils.get_as_dag_path(name)
            tfm_dag.pop(1)
            assert tfm_dag.apiType() == OpenMaya.MFn.kTransform

            self._mfn_shp = OpenMaya.MFnDagNode(shp_dag)
            self._mfn_tfm = OpenMaya.MFnDagNode(tfm_dag)

        if self._mfn_tfm is None or self._mfn_shp is None:
            self._mfn_tfm = OpenMaya.MFnDagNode()
            self._mfn_shp = OpenMaya.MFnDagNode()

        return
Пример #4
0
    def __init__(self, node=None):
        """
        Create a Bundle object initialised with 'node'.

        :param node: Maya node to attach this object to.
        :type node: str
        """
        if node is not None:
            assert isinstance(node, (str, unicode))
            assert maya.cmds.objExists(node)
            dag = api_utils.get_as_dag_path(node)
            if dag is not None:
                self._mfn = OpenMaya.MFnDagNode(dag)
        else:
            self._mfn = OpenMaya.MFnDagNode()
        return
Пример #5
0
    def set_node(self, node):
        """
        Change the underlying Maya node that this Marker class will manipulate.

        :param node: The existing Maya node node.
        :type node: str

        :returns: Nothing.
        :rtype: None
        """
        assert isinstance(node, (str, unicode))
        dag = api_utils.get_as_dag_path(node)
        try:
            self._mfn = OpenMaya.MFnDagNode(dag)
        except RuntimeError:
            raise
        return
Пример #6
0
    def set_node(self, node):
        """
        This Bundle object will affect the given 'node'.

        :param node: Node to set to.
        :type node: str

        :return: Nothing.
        """
        assert isinstance(node, (str, unicode))
        assert maya.cmds.objExists(node)
        dag = api_utils.get_as_dag_path(node)
        if dag is not None:
            self._mfn = OpenMaya.MFnDagNode(dag)
        else:
            self._mfn = OpenMaya.MFnDagNode()
        return
Пример #7
0
    def __init__(self, name=None):
        """
        Initialize a Marker, give a name to connect to an existing Maya node.

        :param name: The Maya node name to connect to.
        :type name: None or str
        """
        if isinstance(name, basestring):
            try:
                dag = api_utils.get_as_dag_path(name)
                self._mfn = OpenMaya.MFnDagNode(dag)
            except RuntimeError as e:
                msg = 'Given Marker node name is invalid: name=%r'
                LOG.error(msg, name)
                raise e
        else:
            self._mfn = OpenMaya.MFnDagNode()
        return
Пример #8
0
    def set_node(self, node):
        """
        Set the MarkerGroup to use this Maya node.

        :param node: Maya node path.
        :type node: str
        """
        assert isinstance(node, (str, unicode))
        assert maya.cmds.objExists(node)
        assert api_utils.get_object_type(
            node) == const.OBJECT_TYPE_MARKER_GROUP

        self._mfn_tfm = None
        tfm_dag = api_utils.get_as_dag_path(node)
        if tfm_dag is not None:
            assert maya.cmds.nodeType(
                tfm_dag.fullPathName()) == 'mmMarkerGroupTransform'
            self._mfn_tfm = OpenMaya.MFnDagNode(tfm_dag)

        if self._mfn_tfm is None:
            self._mfn_tfm = OpenMaya.MFnDagNode()
        return