41 #define BONESEL_ROOT (1u << 29)
42 #define BONESEL_TIP (1u << 30)
43 #define BONESEL_BONE (1u << 31)
44 #define BONESEL_ANY (BONESEL_TIP | BONESEL_ROOT | BONESEL_BONE)
47 #define EBONE_VISIBLE(arm, ebone) \
48 (CHECK_TYPE_INLINE(arm, bArmature *), \
49 CHECK_TYPE_INLINE(ebone, EditBone *), \
50 (((arm)->layer & (ebone)->layer) && !((ebone)->flag & BONE_HIDDEN_A)))
52 #define EBONE_SELECTABLE(arm, ebone) \
53 (EBONE_VISIBLE(arm, ebone) && !((ebone)->flag & BONE_UNSELECTABLE))
55 #define EBONE_EDITABLE(ebone) \
56 (CHECK_TYPE_INLINE(ebone, EditBone *), \
57 (((ebone)->flag & BONE_SELECTED) && !((ebone)->flag & BONE_EDITMODE_LOCKED)))
61 #define BONE_SELECT_PARENT 0
62 #define BONE_SELECT_CHILD 1
82 const float align_axis[3],
90 struct Main *bmain,
struct Object *ob,
const float cursor[3],
int centermode,
int around);
112 const char *oldnamep,
113 const char *newnamep);
127 bool do_strip_numbers);
146 unsigned int select_id,
150 unsigned int select_id,
154 unsigned int select_id,
161 unsigned int select_id,
162 struct Bone **r_bone);
198 #define ARM_GROUPS_NAME 1
199 #define ARM_GROUPS_ENVELOPE 2
200 #define ARM_GROUPS_AUTO 3
230 bool clear_connected);
242 unsigned int ebone_child_tot);
342 struct Base *base_select);
346 bool ignore_visibility);
364 struct Mesh *cagemesh,
367 float cagemat[4][4]);
#define ATTR_WARN_UNUSED_RESULT
struct Depsgraph Depsgraph
bool ED_armature_pose_select_pick_with_buffer(struct ViewLayer *view_layer, struct View3D *v3d, struct Base *base, const struct GPUSelectResult *buffer, short hits, const struct SelectPick_Params *params, bool do_nearest)
int ED_armature_join_objects_exec(struct bContext *C, struct wmOperator *op)
void ED_operatortypes_armature(void)
struct Base * ED_armature_base_and_bone_from_select_buffer(struct Base **bases, uint bases_len, unsigned int select_id, struct Bone **r_bone)
bool ED_armature_pose_select_pick_bone(struct ViewLayer *view_layer, struct View3D *v3d, struct Object *ob, struct Bone *bone, const struct SelectPick_Params *params)
void ED_operatormacros_armature(void)
struct EditBone * ED_armature_ebone_get_mirrored(const struct ListBase *edbo, struct EditBone *ebo)
bool ED_object_posemode_exit_ex(struct Main *bmain, struct Object *ob)
bool ED_object_posemode_enter(struct bContext *C, struct Object *ob)
@ POSE_PATH_CALC_RANGE_CURRENT_FRAME
@ POSE_PATH_CALC_RANGE_CHANGED
@ POSE_PATH_CALC_RANGE_FULL
bool ED_armature_edit_deselect_all_visible_multi(struct bContext *C)
void ED_armature_pose_select_in_wpaint_mode(struct ViewLayer *view_layer, struct Base *base_select)
void ED_mesh_deform_bind_callback(struct Object *object, struct MeshDeformModifierData *mmd, struct Mesh *cagemesh, float *vertexcos, int verts_num, float cagemat[4][4])
bool ED_object_posemode_exit(struct bContext *C, struct Object *ob)
void ED_keymap_armature(struct wmKeyConfig *keyconf)
struct EditBone * ED_armature_ebone_add_primitive(struct Object *obedit_arm, float length, bool view_aligned)
bool ED_armature_edit_deselect_all(struct Object *obedit)
void ED_armature_bone_rename(struct Main *bmain, struct bArmature *arm, const char *oldnamep, const char *newnamep)
void ED_armature_ebone_from_mat4(struct EditBone *ebone, const float mat[4][4])
void ED_armature_edit_transform(struct bArmature *arm, const float mat[4][4], bool do_props)
void ED_armature_ebone_to_mat4(struct EditBone *ebone, float r_mat[4][4])
void ED_pose_bone_select_tag_update(struct Object *ob)
void ED_pose_recalculate_paths(struct bContext *C, struct Scene *scene, struct Object *ob, ePosePathCalcRange range)
void ED_armature_ebone_select_set(struct EditBone *ebone, bool select)
void ED_armature_ebone_remove_ex(struct bArmature *arm, struct EditBone *exBone, bool clear_connected)
void ED_armature_ebone_from_mat3(struct EditBone *ebone, const float mat[3][3])
void ED_armature_ebone_selectflag_set(struct EditBone *ebone, int flag)
struct PoseBackup * ED_pose_backup_create_all_bones(const struct Object *ob, const struct bAction *action) ATTR_WARN_UNUSED_RESULT
struct Base * ED_armature_base_and_pchan_from_select_buffer(struct Base **bases, uint bases_len, unsigned int select_id, struct bPoseChannel **r_pchan)
struct Object * ED_armature_object_and_ebone_from_select_buffer(struct Object **objects, uint objects_len, unsigned int select_id, struct EditBone **r_ebone)
bool ED_pose_backup_is_selection_relevant(const struct PoseBackup *pose_backup)
void ED_armature_ebone_transform_mirror_update(struct bArmature *arm, struct EditBone *ebo, bool check_select)
bool ED_armature_edit_select_pick_bone(struct bContext *C, struct Base *basact, struct EditBone *ebone, int selmask, const struct SelectPick_Params *params)
void ED_pose_backup_free(struct PoseBackup *pbd)
int ED_armature_ebone_selectflag_get(const struct EditBone *ebone)
bool ED_armature_edit_deselect_all_multi_ex(struct Base **bases, uint bases_len)
struct EditBone * ED_armature_ebone_add(struct bArmature *arm, const char *name)
void ED_armature_ebone_listbase_copy(struct ListBase *lb_dst, struct ListBase *lb_src, bool do_id_user)
bool ED_pose_deselect_all(struct Object *ob, int select_mode, bool ignore_visibility)
void ED_armature_ebone_selectflag_enable(struct EditBone *ebone, int flag)
void ED_armature_from_edit(struct Main *bmain, struct bArmature *arm)
void ED_armature_edit_validate_active(struct bArmature *arm)
bool ED_pose_deselect_all_multi(struct bContext *C, int select_mode, bool ignore_visibility)
bool ED_armature_ebone_is_child_recursive(struct EditBone *ebone_parent, struct EditBone *ebone_child)
struct EditBone * ED_armature_ebone_find_shared_parent(struct EditBone *ebone_child[], unsigned int ebone_child_tot)
bool ED_armature_edit_deselect_all_visible(struct Object *obedit)
bool ED_object_posemode_enter_ex(struct Main *bmain, struct Object *ob)
void ED_armature_edit_transform_mirror_update(struct Object *obedit)
struct Base * ED_armature_base_and_ebone_from_select_buffer(struct Base **bases, uint bases_len, unsigned int select_id, struct EditBone **r_ebone)
struct EditBone * ED_armature_ebone_find_name(const struct ListBase *edbo, const char *name)
float ED_armature_ebone_roll_to_vector(const struct EditBone *bone, const float align_axis[3], bool axis_only)
void ED_armature_edit_refresh_layer_used(struct bArmature *arm)
void ED_armature_transform(struct bArmature *arm, const float mat[4][4], bool do_props)
void ED_object_vgroup_calc_from_armature(struct ReportList *reports, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct Object *par, int mode, bool mirror)
bool ED_armature_edit_select_op_from_tagged(struct bArmature *arm, int sel_op)
void ED_armature_ebone_selectflag_disable(struct EditBone *ebone, int flag)
void ED_armature_ebone_to_mat3(struct EditBone *ebone, float r_mat[3][3])
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, bool do_id_user)
void ED_pose_backup_restore(const struct PoseBackup *pbd)
void ED_armature_bones_flip_names(struct Main *bmain, struct bArmature *arm, struct ListBase *bones_names, bool do_strip_numbers)
void ED_armature_undosys_type(struct UndoType *ut)
bool ED_pose_deselect_all_multi_ex(struct Base **bases, uint bases_len, int select_mode, bool ignore_visibility)
void ED_pose_bone_select(struct Object *ob, struct bPoseChannel *pchan, bool select)
void ED_armature_ebone_unique_name(struct ListBase *ebones, char *name, struct EditBone *bone)
void ED_armature_to_edit(struct bArmature *arm)
void ED_armature_edit_sync_selection(struct ListBase *edbo)
void ED_armature_ebone_remove(struct bArmature *arm, struct EditBone *exBone)
void ED_armature_origin_set(struct Main *bmain, struct Object *ob, const float cursor[3], int centermode, int around)
bool ED_armature_edit_select_pick(struct bContext *C, const int mval[2], const struct SelectPick_Params *params)
bool ED_armature_edit_deselect_all_visible_multi_ex(struct Base **bases, uint bases_len)
struct PoseBackup * ED_pose_backup_create_selected_bones(const struct Object *ob, const struct bAction *action) ATTR_WARN_UNUSED_RESULT
struct Object * ED_pose_object_from_context(struct bContext *C)
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
const Depsgraph * depsgraph
ccl_global float * buffer
T length(const vec_base< T, Size > &a)