|
Blender
V2.93
|
#include "DNA_armature_types.h"#include "DNA_object_types.h"#include "MEM_guardedalloc.h"#include "BLI_blenlib.h"#include "BLI_math.h"#include "BLI_string_utils.h"#include "BKE_armature.h"#include "BKE_context.h"#include "BKE_deform.h"#include "BKE_global.h"#include "BKE_idprop.h"#include "BKE_lib_id.h"#include "BKE_main.h"#include "DEG_depsgraph.h"#include "ED_armature.h"#include "ED_util.h"#include "armature_intern.h"Go to the source code of this file.
Macros | |
| #define | EBONE_TEMP_UINT(ebone) (*((uint *)(&((ebone)->temp)))) |
| #define EBONE_TEMP_UINT | ( | ebone | ) | (*((uint *)(&((ebone)->temp)))) |
This function:
Definition at line 622 of file armature_utils.c.
References Bone::arm_head, Bone::arm_mat, Bone::arm_tail, KDL::atan2(), atan2f, BKE_armature_where_is_bone(), EditBone::bone, Bone::childbase, copy_m3_m4(), copy_v3_v3(), ED_armature_ebone_to_mat3(), ListBase::first, Bone::head, invert_m3_m3(), invert_m4_m4(), mul_m3_m3m3(), mul_mat3_m4_v3(), Bone::name, EditBone::next, Bone::next, Bone::parent, print_m4(), RAD2DEGF, Bone::roll, sub_v3_v3v3(), Bone::tail, and EditBone::temp.
Referenced by ED_armature_from_edit().
| void armature_select_mirrored | ( | bArmature * | arm | ) |
Definition at line 342 of file armature_utils.c.
References armature_select_mirrored_ex(), and BONE_SELECTED.
Referenced by armature_delete_selected_exec().
| void armature_select_mirrored_ex | ( | bArmature * | arm, |
| const int | flag | ||
| ) |
Definition at line 322 of file armature_utils.c.
References ARM_MIRROR_EDIT, BLI_assert, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, ED_armature_ebone_get_mirrored(), bArmature::edbo, ListBase::first, EditBone::flag, bArmature::flag, EditBone::layer, bArmature::layer, and EditBone::next.
Referenced by armature_dissolve_selected_exec(), and armature_select_mirrored().
| void armature_tag_select_mirrored | ( | bArmature * | arm | ) |
Definition at line 347 of file armature_utils.c.
References ARM_MIRROR_EDIT, BONE_DONE, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, ED_armature_ebone_get_mirrored(), bArmature::edbo, ListBase::first, EditBone::flag, bArmature::flag, EditBone::layer, bArmature::layer, and EditBone::next.
Referenced by armature_switch_direction_exec().
| void armature_tag_unselect | ( | bArmature * | arm | ) |
Definition at line 379 of file armature_utils.c.
References BONE_DONE, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, bArmature::edbo, ListBase::first, EditBone::flag, and EditBone::next.
Referenced by armature_switch_direction_exec().
Definition at line 135 of file armature_utils.c.
References bArmature::act_edbone, BLI_freelinkN(), bArmature::edbo, IDP_FreeProperty(), LISTBASE_FOREACH, NULL, and EditBone::prop.
Referenced by ED_armature_ebone_remove_ex(), ED_armature_from_edit(), and separate_armature_bones().
| int bone_looper | ( | Object * | ob, |
| Bone * | bone, | ||
| void * | data, | ||
| int(*)(Object *, Bone *, void *) | bone_func | ||
| ) |
Definition at line 106 of file armature_utils.c.
References Bone::childbase, count, data, ListBase::first, and Bone::next.
Return a pointer to the bone of the given name
Definition at line 290 of file armature_utils.c.
References BLI_findstring().
Referenced by apply_armature_pose2bones_exec(), applyarmature_adjust_edit_position(), applyarmature_process_selected_recursive(), armature_delete_ebone_cb(), armature_dissolve_ebone_cb(), armature_duplicate_selected_exec(), armature_symmetrize_exec(), ED_armature_bone_rename(), ED_armature_ebone_get_mirrored(), ED_armature_join_objects_exec(), ED_object_jump_to_bone(), editbone_unique_check(), and separate_armature_bones().
| EditBone* ED_armature_ebone_find_shared_parent | ( | EditBone * | ebone_child[], |
| const uint | ebone_child_tot | ||
| ) |
Finds the first parent shared by ebone_child
| ebone_child | Children bones to search |
| ebone_child_tot | Size of the ebone_child array |
Definition at line 200 of file armature_utils.c.
References EBONE_TEMP_UINT, NULL, and EditBone::parent.
Referenced by armature_shortest_path_pick_invoke().
Definition at line 262 of file armature_utils.c.
References EditBone::head, len, len_v3v3(), madd_v3_v3v3fl(), mat3_to_vec_roll(), EditBone::roll, and EditBone::tail.
Referenced by ED_armature_ebone_from_mat4().
Definition at line 273 of file armature_utils.c.
References add_v3_v3(), BLI_ASSERT_UNIT_M3, copy_m3_m4(), copy_v3_v3(), ED_armature_ebone_from_mat3(), EditBone::head, sub_v3_v3(), and EditBone::tail.
Definition at line 301 of file armature_utils.c.
References BLI_string_flip_side_name(), ED_armature_ebone_find_name(), MAXBONENAME, EditBone::name, NULL, and STREQ.
Referenced by armature_align_bones_exec(), armature_autoside_names_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_flip_names_exec(), armature_parent_set_exec(), armature_roll_clear_exec(), armature_select_mirror_exec(), armature_select_mirrored_ex(), armature_tag_select_mirrored(), createTransArmatureVerts(), ED_armature_ebone_transform_mirror_update(), get_symmetrized_bone(), postEditBoneDuplicate(), screen_ctx_selected_bones_(), and screen_ctx_visible_or_editable_bones_().
Definition at line 183 of file armature_utils.c.
References EditBone::parent.
Referenced by armature_shortest_path_pick_invoke(), do_outliner_ebone_select_recursive(), and restrictbutton_recursive_ebone().
| void ED_armature_ebone_listbase_copy | ( | ListBase * | lb_dst, |
| ListBase * | lb_src, | ||
| const bool | do_id_user | ||
| ) |
Definition at line 868 of file armature_utils.c.
References EditBone::bbone_next, EditBone::bbone_prev, BLI_addtail(), BLI_assert, BLI_listbase_is_empty(), EditBone::ebone, ListBase::first, IDP_CopyProperty_ex(), LIB_ID_CREATE_NO_USER_REFCOUNT, MEM_dupallocN, EditBone::next, EditBone::parent, EditBone::prop, and EditBone::temp.
Referenced by undoarm_from_editarm(), and undoarm_to_editarm().
| void ED_armature_ebone_listbase_free | ( | ListBase * | lb, |
| const bool | do_id_user | ||
| ) |
Definition at line 851 of file armature_utils.c.
References BLI_listbase_clear(), ListBase::first, IDP_FreeProperty_ex(), MEM_freeN, EditBone::next, and EditBone::prop.
Referenced by undoarm_free_data(), and undoarm_to_editarm().
| void ED_armature_ebone_listbase_temp_clear | ( | ListBase * | lb | ) |
Definition at line 899 of file armature_utils.c.
References ListBase::first, EditBone::next, NULL, EditBone::p, and EditBone::temp.
Referenced by do_armature_box_select(), do_lasso_select_armature(), preEditBoneDuplicate(), undoarm_from_editarm(), and undoarm_to_editarm().
Definition at line 178 of file armature_utils.c.
References ED_armature_ebone_remove_ex().
Referenced by armature_delete_selected_exec().
| clear_connected | When false caller is responsible for keeping the flag in a valid state. |
Definition at line 161 of file armature_utils.c.
References BONE_CONNECTED, bone_free(), bArmature::edbo, ListBase::first, EditBone::flag, EditBone::next, and EditBone::parent.
Referenced by armature_dissolve_selected_exec(), and ED_armature_ebone_remove().
| void ED_armature_ebone_select_set | ( | EditBone * | ebone, |
| bool | select | ||
| ) |
Definition at line 952 of file armature_utils.c.
References BLI_assert, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, BONE_UNSELECTABLE, ED_armature_ebone_selectflag_set(), EditBone::flag, and select().
Referenced by armature_select_hierarchy_exec(), armature_select_less(), armature_select_linked_impl(), armature_select_more(), armature_select_more_less(), armature_split_exec(), armature_symmetrize_exec(), ED_object_jump_to_bone(), outliner_select_sync_to_edit_bone(), select_similar_children(), select_similar_children_immediate(), select_similar_data_pchan(), select_similar_direction(), select_similar_layer(), select_similar_length(), select_similar_prefix(), select_similar_siblings(), select_similar_suffix(), and tree_element_active_ebone__sel().
| void ED_armature_ebone_selectflag_disable | ( | EditBone * | ebone, |
| int | flag | ||
| ) |
Definition at line 945 of file armature_utils.c.
References BLI_assert, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, ED_armature_ebone_selectflag_set(), and EditBone::flag.
Referenced by armature_select_less().
| void ED_armature_ebone_selectflag_enable | ( | EditBone * | ebone, |
| int | flag | ||
| ) |
Definition at line 939 of file armature_utils.c.
References BLI_assert, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, ED_armature_ebone_selectflag_set(), and EditBone::flag.
Referenced by armature_select_more().
| int ED_armature_ebone_selectflag_get | ( | const EditBone * | ebone | ) |
Definition at line 913 of file armature_utils.c.
References BONE_CONNECTED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, EditBone::flag, and EditBone::parent.
Referenced by armature_dissolve_selected_exec(), armature_select_mirror_exec(), armature_select_more_less(), and ED_armature_edit_select_pick_bone().
| void ED_armature_ebone_selectflag_set | ( | EditBone * | ebone, |
| int | flag | ||
| ) |
Definition at line 922 of file armature_utils.c.
References BONE_CONNECTED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, EditBone::flag, and EditBone::parent.
Referenced by armature_select_mirror_exec(), armature_shortest_path_select(), ED_armature_ebone_select_set(), ED_armature_ebone_selectflag_disable(), and ED_armature_ebone_selectflag_enable().
Definition at line 232 of file armature_utils.c.
References EditBone::head, normalize_v3(), EditBone::parent, EditBone::roll, sub_v3_v3v3(), EditBone::tail, and vec_roll_to_mat3_normalized().
Referenced by armature_calc_roll_exec(), armature_finalize_restpose(), createTransArmatureVerts(), ED_armature_ebone_to_mat4(), ED_armature_edit_transform(), ED_armature_join_objects_exec(), and getTransformOrientation_ex().
Definition at line 252 of file armature_utils.c.
References copy_m4_m3(), copy_v3_v3(), ED_armature_ebone_to_mat3(), and EditBone::head.
Referenced by draw_bone_update_disp_matrix_bbone(), draw_bone_update_disp_matrix_default(), and ebone_spline_preview().
| void ED_armature_ebone_transform_mirror_update | ( | bArmature * | arm, |
| EditBone * | ebo, | ||
| bool | check_select | ||
| ) |
Definition at line 392 of file armature_utils.c.
References BONE_CONNECTED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, copy_v3_v3(), EditBone::curve_in_x, EditBone::curve_in_y, EditBone::curve_out_x, EditBone::curve_out_y, EditBone::dist, EditBone::ease1, EditBone::ease2, ED_armature_ebone_get_mirrored(), bArmature::edbo, ListBase::first, EditBone::flag, EditBone::head, EditBone::next, EditBone::parent, EditBone::rad_head, EditBone::rad_tail, EditBone::roll, EditBone::roll1, EditBone::roll2, EditBone::scale_in_x, EditBone::scale_in_y, EditBone::scale_out_x, EditBone::scale_out_y, EditBone::segments, EditBone::tail, EditBone::weight, EditBone::xwidth, and EditBone::zwidth.
Referenced by ED_armature_edit_transform_mirror_update().
| void ED_armature_edit_free | ( | struct bArmature * | arm | ) |
Definition at line 817 of file armature_utils.c.
References bArmature::act_edbone, BLI_freelistN(), bArmature::edbo, ListBase::first, IDP_FreeProperty(), MEM_freeN, EditBone::next, NULL, and EditBone::prop.
Referenced by ArmatureExporter::add_armature_bones(), apply_armature_pose2bones_exec(), ED_armature_join_objects_exec(), ED_armature_origin_set(), ED_armature_to_edit(), ED_object_editmode_load_free_ex(), ArmatureImporter::make_armatures(), modifier_skin_armature_create(), separate_armature_bones(), and separate_armature_exec().
| void ED_armature_edit_refresh_layer_used | ( | bArmature * | arm | ) |
Definition at line 93 of file armature_utils.c.
References bArmature::edbo, bArmature::layer_used, and LISTBASE_FOREACH.
Referenced by armature_bone_layers_exec(), armature_bone_primitive_add_exec(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_fill_bones_exec(), and separate_armature_exec().
| void ED_armature_edit_sync_selection | ( | ListBase * | edbo | ) |
Definition at line 52 of file armature_utils.c.
References BONE_CONNECTED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, BONE_UNSELECTABLE, ListBase::first, EditBone::flag, EditBone::next, and EditBone::parent.
Referenced by armature_circle_select(), armature_click_extrude_exec(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_hide_exec(), armature_parent_clear_exec(), armature_reveal_exec(), armature_select_hierarchy_exec(), armature_select_linked_impl(), armature_select_mirror_exec(), armature_select_more_less(), armature_shortest_path_pick_invoke(), armature_symmetrize_exec(), ED_armature_edit_deselect_all_visible(), ED_armature_edit_select_op_from_tagged(), ED_armature_edit_select_pick_bone(), and ED_object_jump_to_bone().
| void ED_armature_edit_transform_mirror_update | ( | Object * | obedit | ) |
Definition at line 472 of file armature_utils.c.
References Object::data, ED_armature_ebone_transform_mirror_update(), bArmature::edbo, and LISTBASE_FOREACH.
Referenced by armature_symmetrize_exec(), ED_transverts_update_obedit(), recalcData_edit_armature(), and recalcData_pose().
| void ED_armature_edit_validate_active | ( | struct bArmature * | arm | ) |
Definition at line 78 of file armature_utils.c.
References bArmature::act_edbone, BONE_HIDDEN_A, EditBone::flag, and NULL.
Referenced by armature_circle_select(), armature_duplicate_selected_exec(), armature_hide_exec(), armature_reveal_exec(), armature_symmetrize_exec(), and ED_armature_edit_select_op_from_tagged().
Definition at line 691 of file armature_utils.c.
References bArmature::act_bone, bArmature::act_edbone, Bone::arm_head, Bone::arm_roll, Bone::arm_tail, armature_finalize_restpose(), EditBone::bbone_next, Bone::bbone_next, EditBone::bbone_next_type, Bone::bbone_next_type, EditBone::bbone_prev, Bone::bbone_prev, EditBone::bbone_prev_type, Bone::bbone_prev_type, BKE_armature_bone_hash_free(), BKE_armature_bone_hash_make(), BKE_armature_bonelist_free(), BKE_pose_rebuild(), BLI_addtail(), BLI_strncpy(), EditBone::bone, bone_free(), bArmature::bonebase, Bone::childbase, copy_v3_v3(), EditBone::curve_in_x, Bone::curve_in_x, EditBone::curve_in_y, Bone::curve_in_y, EditBone::curve_out_x, Bone::curve_out_x, EditBone::curve_out_y, Bone::curve_out_y, Object::data, DEG_id_tag_update(), EditBone::dist, Bone::dist, EditBone::ease1, Bone::ease1, EditBone::ease2, Bone::ease2, bArmature::edbo, ListBase::first, EditBone::flag, Bone::flag, G, G_DEBUG, EditBone::head, bArmature::id, Object::id, IDP_CopyProperty(), EditBone::inherit_scale_mode, Bone::inherit_scale_mode, EditBone::layer, Bone::layer, len_squared_v3v3(), MEM_callocN, EditBone::name, Bone::name, EditBone::next, ID::next, NULL, Main::objects, EditBone::parent, Bone::parent, EditBone::prop, Bone::prop, EditBone::rad_head, Bone::rad_head, EditBone::rad_tail, Bone::rad_tail, EditBone::roll, Bone::roll, EditBone::roll1, Bone::roll1, EditBone::roll2, Bone::roll2, EditBone::scale_in_x, Bone::scale_in_x, EditBone::scale_in_y, Bone::scale_in_y, EditBone::scale_out_x, Bone::scale_out_x, EditBone::scale_out_y, Bone::scale_out_y, EditBone::segments, Bone::segments, square_f(), EditBone::tail, EditBone::temp, EditBone::weight, Bone::weight, EditBone::xwidth, Bone::xwidth, EditBone::zwidth, and Bone::zwidth.
Referenced by apply_armature_pose2bones_exec(), ED_armature_join_objects_exec(), ED_armature_origin_set(), ED_object_editmode_load_free_ex(), ArmatureImporter::make_armatures(), modifier_skin_armature_create(), separate_armature_bones(), and separate_armature_exec().
| void ED_armature_to_edit | ( | bArmature * | arm | ) |
Definition at line 839 of file armature_utils.c.
References bArmature::act_bone, bArmature::act_edbone, bArmature::bonebase, ED_armature_edit_free(), bArmature::edbo, make_boneList(), and MEM_callocN.
Referenced by ArmatureExporter::add_armature_bones(), apply_armature_pose2bones_exec(), ED_armature_join_objects_exec(), ED_armature_origin_set(), ED_object_editmode_enter_ex(), ArmatureImporter::make_armatures(), separate_armature_bones(), and separate_armature_exec().
Definition at line 580 of file armature_utils.c.
References LISTBASE_FOREACH, and NULL.
Referenced by make_boneList().
Definition at line 593 of file armature_utils.c.
References blender::compositor::active, Bone::bbone_next, Bone::bbone_prev, BLI_assert, find_ebone_link(), ListBase::first, ListBase::last, LISTBASE_FOREACH, make_boneList_recursive(), and NULL.
Referenced by ED_armature_to_edit().
|
static |
Definition at line 484 of file armature_utils.c.
References Bone::arm_head, Bone::arm_roll, Bone::arm_tail, EditBone::bbone_next_type, Bone::bbone_next_type, EditBone::bbone_prev_type, Bone::bbone_prev_type, BLI_addtail(), BLI_strncpy(), EditBone::bone, BONE_CONNECTED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, Bone::childbase, copy_v3_v3(), EditBone::curve_in_x, Bone::curve_in_x, EditBone::curve_in_y, Bone::curve_in_y, EditBone::curve_out_x, Bone::curve_out_x, EditBone::curve_out_y, Bone::curve_out_y, EditBone::dist, Bone::dist, EditBone::ease1, Bone::ease1, EditBone::ease2, Bone::ease2, ListBase::first, EditBone::flag, Bone::flag, EditBone::head, IDP_CopyProperty(), EditBone::inherit_scale_mode, Bone::inherit_scale_mode, EditBone::layer, Bone::layer, EditBone::length, Bone::length, MEM_callocN, EditBone::name, Bone::name, Bone::next, NULL, EditBone::parent, EditBone::prop, Bone::prop, EditBone::rad_head, Bone::rad_head, EditBone::rad_tail, Bone::rad_tail, EditBone::roll, EditBone::roll1, Bone::roll1, EditBone::roll2, Bone::roll2, EditBone::scale_in_x, Bone::scale_in_x, EditBone::scale_in_y, Bone::scale_in_y, EditBone::scale_out_x, Bone::scale_out_x, EditBone::scale_out_y, Bone::scale_out_y, EditBone::segments, Bone::segments, EditBone::tail, EditBone::temp, EditBone::weight, Bone::weight, EditBone::xwidth, Bone::xwidth, EditBone::zwidth, and Bone::zwidth.
Referenced by make_boneList().