mgear.flex.query module¶
flex.query
flex.query module contains a collection of functions useful for the analyze and update functions of Flex
module: | flex.query |
---|
-
mgear.flex.query.
get_clean_matching_shapes
(source, target)¶ Returns the prefix-less found shapes under the given groups
Parameters: - source (string) – source group containing shapes in Maya
- target (string) – target group containing shapes in Maya
Returns: The matching target shapes names without prefix
Return type: dict, dict
-
mgear.flex.query.
get_deformers
(shape)¶ Returns a dict with each deformer found on the given shape
Parameters: shape (str) – the shape node name Returns: the deformers found on shape sorted by type Return type: dict
-
mgear.flex.query.
get_dependency_node
(element)¶ Returns a Maya MFnDependencyNode from the given element
Parameters: element (string) – Maya node to return a dependency node class object Returns: the element in a Maya MFnDependencyNode object Return type: MFnDependencyNode
-
mgear.flex.query.
get_matching_shapes
(source_shapes, target_shapes)¶ Returns the matching shapes
This Function will return a dict that contains the target matching shape name from the source.
Parameters: - source_shapes (dict) – sources dictionary containing prefix-less shapes
- target (dict) – targets dictionary containing prefix-less shapes
Returns: The matching target shapes names
Return type: dict
Note
This function is the core idea of how Flex finds matching shapes from a source group to the target. Because Flex is not part of a specific studio pipeline this matching is shapes name based. Because some studios might bring the source scene into the rig scene as a reference or as an import we cover those two cases.
Using this dict is the fastest way (so far found) to deal with a huge amount of names. Finding the matching names on a scene with more than 2000 shapes takes 0.0009… seconds.
-
mgear.flex.query.
get_matching_shapes_from_group
(source, target)¶ Returns the matching shapes on the given groups
Parameters: - source (string) – source group containing shapes in Maya
- target (string) – target group containing shapes in Maya
Returns: The matching target shapes names
Return type: dict
-
mgear.flex.query.
get_missing_shapes
(source_shapes, target_shapes)¶ Returns the missing shapes
This Function will return a dict that contains the missing shape found on the target.
Parameters: - source_shapes (dict) – sources dictionary containing prefix-less shapes
- target (dict) – targets dictionary containing prefix-less shapes
Returns: The missing target shapes names
Return type: dict
-
mgear.flex.query.
get_missing_shapes_from_group
(source, target)¶ Returns the missing shapes from the given source and target group
Parameters: - source (string) – source group containing shapes in Maya
- target (string) – source group containing shapes in Maya
Returns: The missing target shapes names
Return type: dict
-
mgear.flex.query.
get_parent
(element)¶ Returns the first parent found for the given element
Parameters: element (string) – A Maya dag node
-
mgear.flex.query.
get_prefix_less_dict
(elements)¶ Returns a dict containing each element with a stripped prefix
This Function will return a dict that contains each element resulting on the element without the found prefix
Parameters: elements (list) – List of all your shapes Returns: The matching prefix-less elements Return type: dict Note
Because Flex is not part of a specific studio pipeline we cover two different ways to bring the source shapes inside your rig. You can either import the source group with the meshes or use a Maya reference. This function will strip the prefix whether your object is part of a namespace or a double name getting a full path naming.
-
mgear.flex.query.
get_prefix_less_name
(element)¶ Returns a prefix-less name
Parameters: elements (str) – element top use on the search Returns: The prefix-less name Return type: str
-
mgear.flex.query.
get_resources_path
()¶ Gets the directory path to the resources files
-
mgear.flex.query.
get_shape_orig
(shape)¶ Finds the orig (intermediate shape) on the given shape
Parameters: shape (str) – maya shape node Returns: the found orig shape Return type: str Note
There are several ways of searching for the orig shape in Maya. Here we query it by first getting the given shape history on the component type attribute (inMesh, create..) then filtering on the result the same shape type. There might be more optimised and stable ways of doing this.
-
mgear.flex.query.
get_shape_type_attributes
(shape)¶ Returns a dict with the attributes names depending on the shape type
This function returns the points, output, input and axes attributes for the corresponding shape type. Mesh type of nodes will be set as default but nurbs surfaces and nurbs curves are supported too.
- on mesh nodes: points = pnts
- output = outMesh input = inMesh p_axes = (pntx, pnty, pntz)
- on nurbs nodes: points = controlPoints
- output = local input = create p_axes = (xValue, yValue, zValue)
Parameters: shape (str) – maya shape node Returns: corresponding attributes names Return type: dict
-
mgear.flex.query.
get_shapes_from_group
(group)¶ Gets all object shapes existing inside the given group
Parameters: group (str) – maya transform node Returns: list of shapes objects Return type: list str
-
mgear.flex.query.
get_temp_folder
()¶ Returns the user temporary folder in a Maya friendly matter
Returns: temp folder path Return type: str
-
mgear.flex.query.
get_transform_selection
()¶ Gets the current dag object selection
Returns the first selected dag object on a current selection that is a transform node
Returns: the first element of the current maya selection Return type: str
-
mgear.flex.query.
get_vertice_count
(shape)¶ Returns the number of vertices for the given shape
Parameters: shape (string) – The maya shape node Returns: The number of vertices found on shape Return type: int
-
mgear.flex.query.
is_lock_attribute
(element, attribute)¶ Returns if the given attribute on the element is locked
Parameters: - element (string) – Maya node name
- attribute (string) – Maya attribute name. Must exist
Returns: if attribute is locked
Return type: bool
-
mgear.flex.query.
is_matching_bouding_box
(source, target, tolerance=0.05)¶ Checks if the source and target shape have the same bounding box
Parameters: - source (string) – source shape node
- target (string) – target shape node
- tolerance (float) – difference tolerance allowed. Default 0.001
Returns: If source and target matches their bounding box
Return type: bool
-
mgear.flex.query.
is_matching_count
(source, target)¶ Checks if the source and target shape have the same amount of vertices
Parameters: - source (string) – source shape node
- target (string) – target shape node
Returns: If source and target matches vertices count or not
Return type: bool
-
mgear.flex.query.
is_matching_type
(source, target)¶ Checks if the source and target shape type matches
Parameters: - source (string) – source shape node
- target (string) – target shape node
Returns: If source and target matches or not
Return type: bool
-
mgear.flex.query.
is_maya_batch
()¶ Returns if the current session is a Maya batch session or not
Returns: if Maya is on batch mode or not Return type: bool
-
mgear.flex.query.
is_valid_group
(group)¶ Checks if group is valid
Simply checks if the given group exists in the current Maya session and if it is a valid transform group.
Parameters: group (str) – a maya transform node Returns: If the group is valid Return type: bool
-
mgear.flex.query.
lock_unlock_attribute
(element, attribute, state)¶ Unlocks the given attribute on the given element
Parameters: - element (string) – Maya node name
- attribute (string) – Maya attribute name. Must exist
- state (bool) – If we should lock or unlock
Returns: If the setting was successful or not
Return type: bool