diff options
-rw-r--r-- | source/blender/editors/armature/armature_naming.c | 1 | ||||
-rw-r--r-- | source/blender/editors/include/ED_armature.h | 181 |
2 files changed, 86 insertions, 96 deletions
diff --git a/source/blender/editors/armature/armature_naming.c b/source/blender/editors/armature/armature_naming.c index 9a1582679a4..4162e92cfea 100644 --- a/source/blender/editors/armature/armature_naming.c +++ b/source/blender/editors/armature/armature_naming.c @@ -79,6 +79,7 @@ static bool editbone_unique_check(void *arg, const char *name) return dupli && dupli != data->bone; } +/* If bone is already in list, pass it as param to ignore it. */ void ED_armature_ebone_unique_name(ListBase *edbo, char *name, EditBone *bone) { struct { diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h index 7ac42967dda..40f5cade0d5 100644 --- a/source/blender/editors/include/ED_armature.h +++ b/source/blender/editors/include/ED_armature.h @@ -140,56 +140,45 @@ typedef struct EditBone { (CHECK_TYPE_INLINE(ebone, EditBone *), \ (((ebone)->flag & BONE_SELECTED) && !((ebone)->flag & BONE_EDITMODE_LOCKED))) -/* used in armature_select_hierarchy_exec() */ +/* used in armature_select.c and pose_select.c */ #define BONE_SELECT_PARENT 0 #define BONE_SELECT_CHILD 1 +/* armature_add.c */ +EditBone *ED_armature_ebone_add(struct bArmature *arm, const char *name); +EditBone *ED_armature_ebone_add_primitive(struct Object *obedit_arm, + float length, + bool view_aligned); + +/* armature_edit.c */ +float ED_armature_ebone_roll_to_vector(const EditBone *bone, + const float new_up_axis[3], + const bool axis_only); +void ED_armature_origin_set( + struct Main *bmain, struct Object *ob, const float cursor[3], int centermode, int around); +void ED_armature_edit_transform(struct bArmature *arm, const float mat[4][4], const bool do_props); +void ED_armature_transform(struct bArmature *arm, const float mat[4][4], const bool do_props); + +/* armature_naming.c */ +void ED_armature_ebone_unique_name(struct ListBase *ebones, char *name, EditBone *bone); +void ED_armature_bone_rename(struct Main *bmain, + struct bArmature *arm, + const char *oldnamep, + const char *newnamep); +void ED_armature_bones_flip_names(struct Main *bmain, + struct bArmature *arm, + struct ListBase *bones_names, + const bool do_strip_numbers); + /* armature_ops.c */ void ED_operatortypes_armature(void); void ED_operatormacros_armature(void); void ED_keymap_armature(struct wmKeyConfig *keyconf); -/* editarmature.c */ -void ED_armature_from_edit(struct Main *bmain, struct bArmature *arm); -void ED_armature_to_edit(struct bArmature *arm); -void ED_armature_edit_free(struct bArmature *arm); - -bool ED_armature_edit_deselect_all(struct Object *obedit); -bool ED_armature_edit_deselect_all_visible(struct Object *obedit); - -bool ED_armature_edit_deselect_all_multi_ex(struct Base **bases, uint bases_len); -bool ED_armature_edit_deselect_all_visible_multi_ex(struct Base **bases, uint bases_len); -bool ED_armature_edit_deselect_all_visible_multi(struct bContext *C); - -bool ED_armature_pose_select_pick_with_buffer(struct ViewLayer *view_layer, - struct View3D *v3d, - struct Base *base, - const unsigned int *buffer, - short hits, - bool extend, - bool deselect, - bool toggle, - bool do_nearest); - -void ED_armature_pose_select_in_wpaint_mode(struct ViewLayer *view_layer, - struct Base *base_select); - -bool ED_armature_edit_select_pick( - struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle); - -bool ED_armature_edit_select_op_from_tagged(struct bArmature *arm, const int sel_op); - +/* armature_relations.c */ int join_armature_exec(struct bContext *C, struct wmOperator *op); -float ED_armature_ebone_roll_to_vector(const EditBone *bone, - const float new_up_axis[3], - const bool axis_only); -EditBone *ED_armature_ebone_find_name(const struct ListBase *edbo, const char *name); -EditBone *ED_armature_ebone_get_mirrored(const struct ListBase *edbo, EditBone *ebo); -void ED_armature_edit_sync_selection(struct ListBase *edbo); -void ED_armature_edit_validate_active(struct bArmature *arm); - -void ED_armature_edit_refresh_layer_used(struct bArmature *arm); +/* armature_select.c */ struct Base *ED_armature_base_and_ebone_from_select_buffer(struct Base **bases, uint bases_len, int hit, @@ -198,63 +187,59 @@ struct Object *ED_armature_object_and_ebone_from_select_buffer(struct Object **o uint objects_len, int hit, struct EditBone **r_ebone); - struct Base *ED_armature_base_and_bone_from_select_buffer(struct Base **bases, uint bases_len, int hit, struct Bone **r_bone); +bool ED_armature_edit_deselect_all(struct Object *obedit); +bool ED_armature_edit_deselect_all_visible(struct Object *obedit); +bool ED_armature_edit_deselect_all_multi_ex(struct Base **bases, uint bases_len); +bool ED_armature_edit_deselect_all_visible_multi_ex(struct Base **bases, uint bases_len); +bool ED_armature_edit_deselect_all_visible_multi(struct bContext *C); +bool ED_armature_edit_select_pick( + struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle); +bool ED_armature_edit_select_op_from_tagged(struct bArmature *arm, const int sel_op); -EditBone *ED_armature_ebone_add_primitive(struct Object *obedit_arm, - float length, - bool view_aligned); -EditBone *ED_armature_ebone_add(struct bArmature *arm, const char *name); +/* armature_skinning.c */ +#define ARM_GROUPS_NAME 1 +#define ARM_GROUPS_ENVELOPE 2 +#define ARM_GROUPS_AUTO 3 +void ED_object_vgroup_calc_from_armature(struct ReportList *reports, + struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *ob, + struct Object *par, + const int mode, + const bool mirror); +/* editarmature_undo.c */ +void ED_armature_undosys_type(struct UndoType *ut); + +/* armature_utils.c */ +void ED_armature_edit_sync_selection(struct ListBase *edbo); +void ED_armature_edit_validate_active(struct bArmature *arm); +void ED_armature_edit_refresh_layer_used(struct bArmature *arm); void ED_armature_ebone_remove_ex(struct bArmature *arm, EditBone *exBone, bool clear_connected); void ED_armature_ebone_remove(struct bArmature *arm, EditBone *exBone); - bool ED_armature_ebone_is_child_recursive(EditBone *ebone_parent, EditBone *ebone_child); EditBone *ED_armature_ebone_find_shared_parent(EditBone *ebone_child[], const unsigned int ebone_child_tot); - void ED_armature_ebone_to_mat3(EditBone *ebone, float mat[3][3]); void ED_armature_ebone_to_mat4(EditBone *ebone, float mat[4][4]); - void ED_armature_ebone_from_mat3(EditBone *ebone, float mat[3][3]); void ED_armature_ebone_from_mat4(EditBone *ebone, float mat[4][4]); - +EditBone *ED_armature_ebone_find_name(const struct ListBase *edbo, const char *name); +EditBone *ED_armature_ebone_get_mirrored(const struct ListBase *edbo, EditBone *ebo); void ED_armature_ebone_transform_mirror_update(struct bArmature *arm, EditBone *ebo, bool check_select); void ED_armature_edit_transform_mirror_update(struct Object *obedit); -void ED_armature_origin_set( - struct Main *bmain, struct Object *ob, const float cursor[3], int centermode, int around); - -void ED_armature_edit_transform(struct bArmature *arm, const float mat[4][4], const bool do_props); - -void ED_armature_transform(struct bArmature *arm, const float mat[4][4], const bool do_props); - -#define ARM_GROUPS_NAME 1 -#define ARM_GROUPS_ENVELOPE 2 -#define ARM_GROUPS_AUTO 3 - -void ED_object_vgroup_calc_from_armature(struct ReportList *reports, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob, - struct Object *par, - const int mode, - const bool mirror); - -/* if bone is already in list, pass it as param to ignore it */ -void ED_armature_ebone_unique_name(struct ListBase *ebones, char *name, EditBone *bone); -void ED_armature_bone_rename(struct Main *bmain, - struct bArmature *arm, - const char *oldnamep, - const char *newnamep); -void ED_armature_bones_flip_names(struct Main *bmain, - struct bArmature *arm, - struct ListBase *bones_names, - const bool do_strip_numbers); +void ED_armature_from_edit(struct Main *bmain, struct bArmature *arm); +void ED_armature_to_edit(struct bArmature *arm); +void ED_armature_edit_free(struct bArmature *arm); +void ED_armature_ebone_listbase_temp_clear(struct ListBase *lb); +void ED_armature_ebone_listbase_free(struct ListBase *lb); +void ED_armature_ebone_listbase_copy(struct ListBase *lb_dst, struct ListBase *lb_src); /* low level selection functions which handle */ int ED_armature_ebone_selectflag_get(const EditBone *ebone); @@ -263,27 +248,12 @@ void ED_armature_ebone_select_set(EditBone *ebone, bool select); void ED_armature_ebone_selectflag_enable(EditBone *ebone, int flag); void ED_armature_ebone_selectflag_disable(EditBone *ebone, int flag); -/* editarmature_undo.c */ -void ED_armature_undosys_type(struct UndoType *ut); - -/* armature_utils.c */ -void ED_armature_ebone_listbase_temp_clear(struct ListBase *lb); -void ED_armature_ebone_listbase_free(struct ListBase *lb); -void ED_armature_ebone_listbase_copy(struct ListBase *lb_dst, struct ListBase *lb_src); - -/* poseobject.c */ +/* pose_edit.c */ +struct Object *ED_pose_object_from_context(struct bContext *C); bool ED_object_posemode_exit_ex(struct Main *bmain, struct Object *ob); bool ED_object_posemode_exit(struct bContext *C, struct Object *ob); bool ED_object_posemode_enter_ex(struct Main *bmain, struct Object *ob); bool ED_object_posemode_enter(struct bContext *C, struct Object *ob); -bool ED_pose_deselect_all_multi_ex(struct Base **bases, - uint bases_len, - int select_mode, - const bool ignore_visibility); -bool ED_pose_deselect_all_multi(struct bContext *C, int select_mode, const bool ignore_visibility); -bool ED_pose_deselect_all(struct Object *ob, int select_mode, const bool ignore_visibility); -void ED_pose_bone_select_tag_update(struct Object *ob); -void ED_pose_bone_select(struct Object *ob, struct bPoseChannel *pchan, bool select); /* Corresponds to eAnimvizCalcRange. */ typedef enum ePosePathCalcRange { @@ -296,7 +266,26 @@ void ED_pose_recalculate_paths(struct bContext *C, struct Object *ob, ePosePathCalcRange range); -struct Object *ED_pose_object_from_context(struct bContext *C); +/* pose_select.c */ +bool ED_armature_pose_select_pick_with_buffer(struct ViewLayer *view_layer, + struct View3D *v3d, + struct Base *base, + const unsigned int *buffer, + short hits, + bool extend, + bool deselect, + bool toggle, + bool do_nearest); +void ED_armature_pose_select_in_wpaint_mode(struct ViewLayer *view_layer, + struct Base *base_select); +bool ED_pose_deselect_all_multi_ex(struct Base **bases, + uint bases_len, + int select_mode, + const bool ignore_visibility); +bool ED_pose_deselect_all_multi(struct bContext *C, int select_mode, const bool ignore_visibility); +bool ED_pose_deselect_all(struct Object *ob, int select_mode, const bool ignore_visibility); +void ED_pose_bone_select_tag_update(struct Object *ob); +void ED_pose_bone_select(struct Object *ob, struct bPoseChannel *pchan, bool select); /* meshlaplacian.c */ void ED_mesh_deform_bind_callback(struct MeshDeformModifierData *mmd, |