Example #1
0
def get_boundingbox_center(object_name):
    """
    returns the bounding box center.
    :param object_name:
    :return:
    """
    return transform_utils.Transform(object_name).bbox_center()
Example #2
0
def mirror_transforms(object_name=""):
    """
    mirror the transform controllers. **Must have corresponding left/ right naming.
    :param object_name: <str> the object to get transform values and find the mirror object from.
    :return: <bool> True for success. <bool> False for failure.
    """
    if not object_name:
        object_name = object_utils.get_selected_node(single=True)
    mirror_obj_name = ''
    if '_l_' in object_name:
        mirror_obj_name = object_name.replace('_l_', '_r_')
    if '_r_' in object_name:
        mirror_obj_name = object_name.replace('_r_', '_l_')
    if mirror_obj_name == mirror_obj_name:
        return False
    p_object = object_utils.get_transform_relatives(object_name,
                                                    find_parent=True,
                                                    as_strings=True)[0]
    p_mirror_object = object_utils.get_transform_relatives(mirror_obj_name,
                                                           find_parent=True,
                                                           as_strings=True)[0]
    p_trm = transform_utils.Transform(p_object)
    matrix = p_trm.world_matrix()
    mirror_matrix = p_trm.mirror_matrix(matrix)
    cmds.xform(p_mirror_object, m=mirror_matrix, ws=1)
    return True
Example #3
0
def get_joint_hierarchy_positions(base_joint_name=""):
    """
    get hierarchial positions array.
    :return: <tuple> positions array.
    """
    joint_hierarchy = get_joint_hierarchy(base_joint_name)
    positions_array = ()
    for jnt_name in joint_hierarchy:
        positions_array += transform_utils.Transform(
            jnt_name).get_world_translation_list(),
    return positions_array
Example #4
0
def create_joint_at_transform(transform_name="", name=""):
    """
    creates joints at the same position as the transform object.
    :param transform_name: <str> the transform name to get values from.
    :param name: <str> the name to use when creating joints.
    :return: <str> joint name.
    """
    if not name:
        jnt_name = joint_name(transform_name)
    else:
        jnt_name = name
    tfm = transform_utils.Transform(transform_name)
    cmds.joint(name=jnt_name)
    cmds.xform(jnt_name, m=tfm.world_matrix(), ws=True)
    return jnt_name
Example #5
0
def create_control_at_transform(object_name,
                                name='',
                                shape_name="cube",
                                auto_num=True):
    """
    creates a controller object at the same space as the transform.
    :param object_name: <str> object name to use.
    :param name: <str> the name for the new controller object.
    :param shape_name: <str> build this shape.
    :param auto_num: <int> generate a number associated with the name.
    :return: <str> control grp.
    """
    tfm = transform_utils.Transform(object_name)
    if auto_num:
        name = name_utils.get_start_name_with_num(name)
    ctrl_data = create_control(shape_name, name=name)
    grps = ctrl_data['group_names']
    cmds.xform(grps[-1], m=tfm.world_matrix(), ws=1)
    return ctrl_data