Пример #1
0
 def bnn_importFile(cls, fileName, type='', preserveReferences=False,
                    nameSpace='', ignoreVersion=False):
     """Import a file into the current Maya session.
     
     Parameters
     ----------
     fileName : str
         File name to import.
     type : str, optional
         Type of the file to import.
     preserveReferences : bool, optional
         True if the references needs to be preserved.
     nameSpace : str, optional
         Namespace to use when importing the objects.
     ignoreVersion : bool, optional
         True to ignore the version.
     
     Returns
     -------
     list of maya.OpenMaya.MDagPath
         The top level transforms imported.
     """
     if not type:
         type = None
     
     if not nameSpace:
         nameSpace = None
     
     topLevelDagPaths = list(OpenMaya.bnn_MItDagHierarchy())
     OpenMaya.MFileIO.importFile(fileName, type, preserveReferences,
                                 nameSpace, ignoreVersion)
     return [dagPath for dagPath in OpenMaya.bnn_MItDagHierarchy()
             if not dagPath in topLevelDagPaths]
Пример #2
0
 def bnn_findShapes(self, pattern='', recursive=False, intermediates=False):
     """Find the shapes nested below this node.
     
     Parameters
     ----------
     pattern : str, optional
         Path of the shape nodes to match. Wildcards are allowed.
     types : list of maya.OpenMaya.MFn.Type, optional
         Shape types to match.
     recursive : bool, optional
         True to search recursively.
     intermediates : bool, optional
         True to also consider the intermediate shapes.
     
     Returns
     -------
     list of maya.OpenMaya.MDagPath
         The DAG path objects of the shape nodes found. If no shape
         nodes were found, an empty list is returned.
     """
     iterator = OpenMaya.bnn_MItDagHierarchy(
         self, pattern=pattern, types=OpenMaya.MFn.kShape,
         recursive=recursive)
     if not intermediates:
         return [
             item for item in iterator
             if not OpenMaya.MFnDagNode(item).isIntermediateObject()]
     
     return list(iterator)
Пример #3
0
 def bnn_findShape(self, pattern='', recursive=False, intermediates=False):
     """Find a shape nested below this node.
     
     Parameters
     ----------
     pattern : str, optional
         Name or path pattern of the shape node to match.
         Wildcards are allowed.
     recursive : bool, optional
         True to search recursively.
     intermediates : bool, optional
         True to also consider the intermediate shapes.
     
     Returns
     -------
     maya.OpenMaya.MDagPath
         The DAG path object of the shape node found. If no or
         multiple shape nodes were found, None is returned.
     
     Examples
     --------
     Retrieve the unique shape node of an object:
     
     >>> import banana.maya
     >>> banana.maya.patch()
     >>> from maya import OpenMaya, cmds
     >>> cmds.polyCube(name='cube')
     >>> cube = OpenMaya.MDagPath.bnn_get(pattern='cube')
     >>> cubeShape = cube.bnn_findShape()
     """
     iterator = OpenMaya.bnn_MItDagHierarchy(
         self, pattern=pattern, types=OpenMaya.MFn.kShape,
         recursive=recursive)
     if not intermediates:
         iterator = (
             item for item in iterator
             if not OpenMaya.MFnDagNode(item).isIntermediateObject())
     
     dagPath = None
     for item in iterator:
         if dagPath:
             return None
         
         dagPath = item
     
     return dagPath
Пример #4
0
 def bnn_findChild(self, pattern='', types=None, recursive=False):
     """Find a child node.
     
     Parameters
     ----------
     pattern : str, optional
         Name or path pattern of the child node to match.
         Wildcards are allowed.
     types : list of maya.OpenMaya.MFn.Type, optional
         Node types to match.
     recursive : bool, optional
         True to search recursively.
     
     Returns
     -------
     maya.OpenMaya.MDagPath
         The DAG path object of the node found. If no or multiple
         nodes were found, None is returned.
     
     Examples
     --------
     Retrieve a transform then a shape node by inspecting the child of
     a given object:
     
     >>> import banana.maya
     >>> banana.maya.patch()
     >>> from maya import OpenMaya, cmds
     >>> cmds.polyCube(name='cube')
     >>> cmds.group('|cube', name='root')
     >>> root = OpenMaya.MDagPath.bnn_get('root')
     >>> cube = root.bnn_findChild(pattern='cube')
     >>> cubeShape = root.bnn_findChild(types=OpenMaya.MFn.kShape, recursive=True)
     """
     iterator = OpenMaya.bnn_MItDagHierarchy(
         self, pattern=pattern, types=types, recursive=recursive)
     dagPath = None
     for item in iterator:
         if dagPath:
             return None
         
         dagPath = item
     
     return dagPath
Пример #5
0
 def bnn_findChildren(self, pattern='', types=None, recursive=False):
     """Find children nodes.
     
     Parameters
     ----------
     pattern : str, optional
         Name or path pattern of the children nodes to match.
         Wildcards are allowed.
     types : list of maya.OpenMaya.MFn.Type, optional
         Node types to match.
     recursive : bool, optional
         True to search recursively.
     
     Returns
     -------
     list of maya.OpenMaya.MDagPath
         The DAG path objects of the nodes found. If no nodes were
         found, an empty list is returned.
     """
     return list(OpenMaya.bnn_MItDagHierarchy(
         self, pattern=pattern, types=types, recursive=recursive))