|
Blender
V2.93
|
Blender kernel action and pose functionality. More...
#include "DNA_listBase.h"Go to the source code of this file.
Typedefs | |
| typedef enum eAction_TransformFlags | eAction_TransformFlags |
Enumerations | |
| enum | eAction_TransformFlags { ACT_TRANS_LOC = (1 << 0) , ACT_TRANS_ROT = (1 << 1) , ACT_TRANS_SCALE = (1 << 2) , ACT_TRANS_BBONE = (1 << 3) , ACT_TRANS_PROP = (1 << 4) , ACT_TRANS_ONLY = (ACT_TRANS_LOC | ACT_TRANS_ROT | ACT_TRANS_SCALE) , ACT_TRANS_ALL = (ACT_TRANS_ONLY | ACT_TRANS_PROP) } |
Functions | |
| struct bAction * | BKE_action_add (struct Main *bmain, const char name[]) |
| short | action_get_item_transforms (struct bAction *act, struct Object *ob, struct bPoseChannel *pchan, ListBase *curves) |
| void | calc_action_range (const struct bAction *act, float *start, float *end, short incl_modifiers) |
| bool | action_has_motion (const struct bAction *act) |
| struct bActionGroup * | get_active_actiongroup (struct bAction *act) |
| void | set_active_action_group (struct bAction *act, struct bActionGroup *agrp, short select) |
| void | action_group_colors_sync (struct bActionGroup *grp, const struct bActionGroup *ref_grp) |
| struct bActionGroup * | action_groups_add_new (struct bAction *act, const char name[]) |
| void | action_groups_add_channel (struct bAction *act, struct bActionGroup *agrp, struct FCurve *fcurve) |
| void | action_groups_remove_channel (struct bAction *act, struct FCurve *fcu) |
| void | BKE_action_groups_reconstruct (struct bAction *act) |
| struct bActionGroup * | BKE_action_group_find_name (struct bAction *act, const char name[]) |
| void | action_groups_clear_tempflags (struct bAction *act) |
| void | BKE_pose_channel_free (struct bPoseChannel *pchan) |
| void | BKE_pose_channel_free_ex (struct bPoseChannel *pchan, bool do_id_user) |
| void | BKE_pose_channel_runtime_reset (struct bPoseChannel_Runtime *runtime) |
| void | BKE_pose_channel_runtime_reset_on_copy (struct bPoseChannel_Runtime *runtime) |
| void | BKE_pose_channel_runtime_free (struct bPoseChannel_Runtime *runtime) |
| void | BKE_pose_channel_free_bbone_cache (struct bPoseChannel_Runtime *runtime) |
| void | BKE_pose_channels_free (struct bPose *pose) |
| void | BKE_pose_channels_free_ex (struct bPose *pose, bool do_id_user) |
| void | BKE_pose_channels_hash_make (struct bPose *pose) |
| void | BKE_pose_channels_hash_free (struct bPose *pose) |
| void | BKE_pose_channels_remove (struct Object *ob, bool(*filter_fn)(const char *bone_name, void *user_data), void *user_data) |
| void | BKE_pose_free_data_ex (struct bPose *pose, bool do_id_user) |
| void | BKE_pose_free_data (struct bPose *pose) |
| void | BKE_pose_free (struct bPose *pose) |
| void | BKE_pose_free_ex (struct bPose *pose, bool do_id_user) |
| void | BKE_pose_copy_data_ex (struct bPose **dst, const struct bPose *src, const int flag, const bool copy_constraints) |
| void | BKE_pose_copy_data (struct bPose **dst, const struct bPose *src, const bool copy_constraints) |
| void | BKE_pose_channel_copy_data (struct bPoseChannel *pchan, const struct bPoseChannel *pchan_from) |
| void | BKE_pose_channel_session_uuid_generate (struct bPoseChannel *pchan) |
| struct bPoseChannel * | BKE_pose_channel_find_name (const struct bPose *pose, const char *name) |
| struct bPoseChannel * | BKE_pose_channel_active (struct Object *ob) |
| struct bPoseChannel * | BKE_pose_channel_active_or_first_selected (struct Object *ob) |
| struct bPoseChannel * | BKE_pose_channel_verify (struct bPose *pose, const char *name) |
| struct bPoseChannel * | BKE_pose_channel_get_mirrored (const struct bPose *pose, const char *name) |
| void | BKE_pose_check_uuids_unique_and_report (const struct bPose *pose) |
| bool | BKE_pose_channels_is_valid (const struct bPose *pose) |
| void | BKE_pose_update_constraint_flags (struct bPose *pose) |
| void | BKE_pose_tag_update_constraint_flags (struct bPose *pose) |
| const char * | BKE_pose_ikparam_get_name (struct bPose *pose) |
| void | BKE_pose_ikparam_init (struct bPose *pose) |
| void | BKE_pose_itasc_init (struct bItasc *itasc) |
| bool | BKE_pose_channel_in_IK_chain (struct Object *ob, struct bPoseChannel *pchan) |
| struct bActionGroup * | BKE_pose_add_group (struct bPose *pose, const char *name) |
| void | BKE_pose_remove_group (struct bPose *pose, struct bActionGroup *grp, const int index) |
| void | BKE_pose_remove_group_index (struct bPose *pose, const int index) |
| void | what_does_obaction (struct Object *ob, struct Object *workob, struct bPose *pose, struct bAction *act, char groupname[], const struct AnimationEvalContext *anim_eval_context) |
| void | BKE_pose_copy_pchan_result (struct bPoseChannel *pchanto, const struct bPoseChannel *pchanfrom) |
| bool | BKE_pose_copy_result (struct bPose *to, struct bPose *from) |
| void | BKE_pose_rest (struct bPose *pose, bool selected_bones_only) |
| void | BKE_pose_tag_recalc (struct Main *bmain, struct bPose *pose) |
| void | BKE_pose_blend_write (struct BlendWriter *writer, struct bPose *pose, struct bArmature *arm) |
| void | BKE_pose_blend_read_data (struct BlendDataReader *reader, struct bPose *pose) |
| void | BKE_pose_blend_read_lib (struct BlendLibReader *reader, struct Object *ob, struct bPose *pose) |
| void | BKE_pose_blend_read_expand (struct BlendExpander *expander, struct bPose *pose) |
| void | BKE_action_flip_with_pose (struct bAction *act, struct Object *ob_arm) |
Blender kernel action and pose functionality.
Definition in file BKE_action.h.
| typedef enum eAction_TransformFlags eAction_TransformFlags |
| Enumerator | |
|---|---|
| ACT_TRANS_LOC | |
| ACT_TRANS_ROT | |
| ACT_TRANS_SCALE | |
| ACT_TRANS_BBONE | |
| ACT_TRANS_PROP | |
| ACT_TRANS_ONLY | |
| ACT_TRANS_ALL | |
Definition at line 61 of file BKE_action.h.
| short action_get_item_transforms | ( | struct bAction * | act, |
| struct Object * | ob, | ||
| struct bPoseChannel * | pchan, | ||
| ListBase * | curves | ||
| ) |
Definition at line 1503 of file action.c.
References ACT_TRANS_ALL, ACT_TRANS_BBONE, ACT_TRANS_LOC, ACT_TRANS_PROP, ACT_TRANS_ROT, ACT_TRANS_SCALE, BLI_addtail(), BLI_genericNodeN(), bAction::curves, ListBase::first, MEM_freeN, FCurve::next, NULL, ptr, RNA_id_pointer_create(), FCurve::rna_path, RNA_path_from_ID_to_struct(), RNA_pointer_create(), and RNA_PoseBone.
Referenced by fcurves_to_pchan_links_get().
| void action_group_colors_sync | ( | struct bActionGroup * | grp, |
| const struct bActionGroup * | ref_grp | ||
| ) |
Referenced by animchan_sync_group(), and ED_action_fcurve_ensure().
| void action_groups_add_channel | ( | struct bAction * | act, |
| struct bActionGroup * | agrp, | ||
| struct FCurve * | fcurve | ||
| ) |
Definition at line 431 of file action.c.
References BLI_insertlinkafter(), BLI_insertlinkbefore(), BLI_listbase_is_empty(), bActionGroup::channels, bAction::curves, ELEM, ListBase::first, FCurve::grp, ListBase::last, FCurve::next, NULL, bActionGroup::prev, and FCurve::prev.
Referenced by action_move_fcurves_by_basepath(), AnimationImporter::add_bone_fcurve(), animchannels_group_channels(), ED_action_fcurve_ensure(), fcurve_add_to_list(), and updateDuplicateActionConstraintSettings().
| struct bActionGroup* action_groups_add_new | ( | struct bAction * | act, |
| const char | name[] | ||
| ) |
Definition at line 402 of file action.c.
References AGRP_SELECTED, BLI_addtail(), BLI_strncpy(), BLI_uniquename(), DATA_, ELEM, bActionGroup::flag, bAction::groups, MEM_callocN, bActionGroup::name, and NULL.
Referenced by action_move_fcurves_by_basepath(), animchannels_group_channels(), ED_action_fcurve_ensure(), and updateDuplicateActionConstraintSettings().
| void action_groups_clear_tempflags | ( | struct bAction * | act | ) |
Definition at line 591 of file action.c.
References AGRP_TEMP, ELEM, ListBase::first, bActionGroup::flag, bAction::groups, bActionGroup::next, and NULL.
Referenced by action_move_fcurves_by_basepath().
Definition at line 538 of file action.c.
References BLI_listbase_clear(), BLI_remlink(), bActionGroup::channels, bAction::curves, ELEM, ListBase::first, FCurve::grp, ListBase::last, FCurve::next, NULL, and FCurve::prev.
Referenced by action_move_fcurves_by_basepath(), ANIM_fcurve_delete_from_animdata(), animchannels_delete_exec(), animchannels_group_channels(), animchannels_ungroup_exec(), fcurve_path_rename(), fcurve_remove(), and remove_sequencer_fcurves().
| bool action_has_motion | ( | const struct bAction * | act | ) |
Referenced by action_pushdown_exec(), action_stash_create_exec(), action_stash_exec(), and BKE_nla_action_pushdown().
Definition at line 320 of file action.c.
References BKE_id_new(), and ID_AC.
Referenced by action_create_new(), BKE_animdata_transfer_by_basepath(), do_versions_ipos_to_animato(), ED_id_action_ensure(), ipo_to_animdata(), and poselib_init_new().
Definition at line 443 of file action_mirror.c.
References action_flip_pchan(), action_flip_pchan_rna_paths(), BKE_fcurve_pathcache_create(), BKE_fcurve_pathcache_destroy(), bPose::chanbase, bAction::curves, DEG_id_tag_update(), bAction::id, ID_RECALC_COPY_ON_WRITE, LISTBASE_FOREACH_INDEX, and Object::pose.
| struct bActionGroup* BKE_action_group_find_name | ( | struct bAction * | act, |
| const char | name[] | ||
| ) |
Definition at line 579 of file action.c.
References BLI_findstring(), ELEM, ListBase::first, bAction::groups, and NULL.
Referenced by action_move_fcurves_by_basepath(), AnimationImporter::add_bone_fcurve(), animviz_calc_motionpaths(), ED_action_fcurve_ensure(), fcurve_add_to_list(), updateDuplicateActionConstraintSettings(), and what_does_obaction().
| void BKE_action_groups_reconstruct | ( | struct bAction * | act | ) |
Definition at line 505 of file action.c.
References BLI_listbase_clear(), bActionGroup::channels, bAction::curves, ELEM, ListBase::first, bAction::groups, ListBase::last, LISTBASE_FOREACH, and NULL.
Referenced by curve_rename_fcurves().
| struct bActionGroup* BKE_pose_add_group | ( | struct bPose * | pose, |
| const char * | name | ||
| ) |
Definition at line 1322 of file action.c.
References bPose::active_group, bPose::agroups, BLI_addtail(), BLI_listbase_count(), BLI_strncpy(), BLI_uniquename(), DATA_, MEM_callocN, and bActionGroup::name.
Referenced by pose_group_add_exec(), and pose_group_assign_exec().
| void BKE_pose_blend_read_data | ( | struct BlendDataReader * | reader, |
| struct bPose * | pose | ||
| ) |
Definition at line 1894 of file action.c.
References bPose::agroups, animviz_motionpath_blend_read_data(), BKE_constraint_blend_read_data(), BKE_pose_channel_runtime_reset(), BKE_pose_channel_session_uuid_generate(), BLI_listbase_clear(), BLO_read_data_address, BLO_read_list(), bPose::chan_array, bPose::chanbase, bPose::chanhash, CLAMP, IDP_BlendDataRead, bPose::ikdata, bPose::ikparam, LISTBASE_FOREACH, NULL, ROT_MODE_MAX, and ROT_MODE_MIN.
Referenced by object_blend_read_data().
| void BKE_pose_blend_read_expand | ( | struct BlendExpander * | expander, |
| struct bPose * | pose | ||
| ) |
Definition at line 2000 of file action.c.
References BKE_constraint_blend_read_expand(), BLO_expand, bPose::chanbase, IDP_BlendReadExpand(), and LISTBASE_FOREACH.
Referenced by object_blend_read_expand().
| void BKE_pose_blend_read_lib | ( | struct BlendLibReader * | reader, |
| struct Object * | ob, | ||
| struct bPose * | pose | ||
| ) |
Definition at line 1942 of file action.c.
References bArmature::act_bone, BKE_armature_find_bone_name(), BKE_constraint_blend_read_lib(), BKE_pose_tag_recalc(), BLO_read_id_address, BLO_read_lib_get_main(), BLO_read_lib_is_undo(), BONE_SELECTED, bPose::chanbase, Object::constraints, Object::data, DEG_id_tag_update_ex(), bArmature::id, Object::id, ID_RECALC_ANIMATION, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, IDP_BlendReadLib(), bArmature::layer, ID::lib, LISTBASE_FOREACH, NULL, Object::proxy, bPose::proxy_act_bone, bPose::proxy_layer, and UNLIKELY.
Referenced by object_blend_read_lib().
| void BKE_pose_blend_write | ( | struct BlendWriter * | writer, |
| struct bPose * | pose, | ||
| struct bArmature * | arm | ||
| ) |
Definition at line 1842 of file action.c.
References bPose::agroups, animviz_motionpath_blend_write(), BKE_armature_find_bone_name(), BKE_constraint_blend_write(), BKE_pose_ikparam_get_name(), BLI_assert, BLO_write_struct, BLO_write_struct_by_name(), BONE_SELECTED, bPose::chanbase, bPose::flag, Bone::flag, IDP_BlendWrite(), bPose::ikparam, LISTBASE_FOREACH, NULL, and POSE_RECALC.
Referenced by object_blend_write().
| struct bPoseChannel* BKE_pose_channel_active | ( | Object * | ob | ) |
Find the active pose-channel for an object (we can't just use pose, as layer info is in armature)
Definition at line 708 of file action.c.
References bArmature::act_bone, bPose::chanbase, Object::data, ELEM, ListBase::first, if(), bArmature::layer, NULL, and Object::pose.
Referenced by add_hook_object(), BKE_pose_channel_active_or_first_selected(), constraint_add_exec(), draw_constraint_header(), ED_object_calc_active_center_for_posemode(), ED_object_constraint_active_list(), ED_object_parent_set(), get_new_constraint_target(), getTransformOrientation_ex(), gimbal_axis(), pose_ik_add_invoke(), pose_select_hierarchy_exec(), screen_ctx_active_pose_bone(), v3d_posearmature_buts(), view_lock_to_active_exec(), WIDGETGROUP_armature_spline_poll(), WIDGETGROUP_armature_spline_refresh(), and WIDGETGROUP_armature_spline_setup().
| struct bPoseChannel* BKE_pose_channel_active_or_first_selected | ( | struct Object * | ob | ) |
Use this when detecting the "other selected bone", when we have multiple armatures in pose mode.
In this case the active-selected is an obvious choice when finding the target for a constraint for eg. however from the users perspective the active pose bone of the active object is the real active bone, so any other non-active selected bone is a candidate for being the other selected bone, see: T58447.
Definition at line 736 of file action.c.
References BKE_pose_channel_active(), bPoseChannel::bone, BONE_SELECTED, bPose::chanbase, Object::data, ELEM, ListBase::first, Bone::flag, if(), bPoseChannel::next, NULL, PBONE_VISIBLE, and Object::pose.
Referenced by get_new_constraint_target().
| void BKE_pose_channel_copy_data | ( | struct bPoseChannel * | pchan, |
| const struct bPoseChannel * | pchan_from | ||
| ) |
Referenced by copy_pchan().
| struct bPoseChannel* BKE_pose_channel_find_name | ( | const struct bPose * | pose, |
| const char * | name | ||
| ) |
Referenced by action_flip_pchan(), AnimationImporter::add_bone_animation_sampled(), add_verts_to_dgroups(), animchan_sync_group(), apply_armature_pose2bones_exec(), AnimationImporter::apply_matrix_curves(), applyarmature_process_selected_recursive(), armature_deform_coords_impl(), armdef_evaluate(), armdef_get_tarmat(), bc_bone_matrix_local_get(), BKE_gpencil_layer_transform_matrix_get(), BKE_gpencil_update_layer_transforms(), BKE_object_defgroup_selected_get(), BKE_object_modifier_gpencil_hook_reset(), BKE_object_modifier_hook_reset(), BKE_pose_eval_proxy_copy_bone(), bone_skinnable_cb(), brush_draw_apply(), blender::deg::DepsgraphRelationBuilder::build_driver_data(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), buttons_context_path_pose_bone(), blender::deg::DepsgraphBuilder::check_pchan_has_bbone_segments(), clear_anim_v3d_exec(), click_select_channel_group(), compute_vertex_mask__armature_mode(), constraint_target_to_mat4(), copy_animedit_keys(), deformStroke(), deformVerts_do(), DEG_get_evaluated_rna_pointer(), delete_key_v3d_exec(), dgroup_skinnable_cb(), draw_armature_pose(), dvar_eval_locDiff(), dvar_eval_rotDiff(), dvar_eval_transChan(), ED_armature_bone_rename(), ED_gpencil_reset_layers_parent(), ED_object_jump_to_bone(), ED_wpaint_ensure_data(), SkinInfo::get_pose_channel_from_node(), gpencil_add_verts_to_dgroups(), gpencil_bone_skinnable_cb(), blender::deg::BoneComponentNode::init(), matrix_from_obj_pchan(), MOD_get_texture_coords(), motionpaths_calc_bake_targets(), ob_parbone(), pchan_duplicate_map(), pose_bone_do_paste(), pose_channel_find_bone(), pose_clear_transform_generic_exec(), pose_foreachScreenBone(), pose_grab_with_ik_children(), pose_proxy_sync(), pose_select_constraint_target_exec(), pose_select_same_keyingset(), poselib_apply_pose(), poselib_backup_posecopy(), poselib_keytag_pose(), postEditBoneDuplicate(), rebuild_pose_bone(), select_pchan_for_action_group(), select_similar_data_pchan(), skip_fcurve_selected_data(), snap_sel_to_grid_exec(), AnimationImporter::translate_animation_OLD(), updateDepsgraph(), updateDuplicateActionConstraintSettings(), and view3d_viewmatrix_set().
| void BKE_pose_channel_free | ( | struct bPoseChannel * | pchan | ) |
Definition at line 1117 of file action.c.
References BKE_pose_channel_free_ex().
Referenced by armature_symmetrize_exec(), BKE_pose_channels_remove(), pose_proxy_sync(), and separate_armature_bones().
| void BKE_pose_channel_free_bbone_cache | ( | bPoseChannel_Runtime * | runtime | ) |
Deallocates runtime cache of a pose channel's B-Bone shape.
Definition at line 1108 of file action.c.
References bPoseChannel_Runtime::bbone_deform_mats, bPoseChannel_Runtime::bbone_dual_quats, bPoseChannel_Runtime::bbone_pose_mats, bPoseChannel_Runtime::bbone_rest_mats, bPoseChannel_Runtime::bbone_segments, and MEM_SAFE_FREE.
Referenced by allocate_bbone_cache(), BKE_pchan_bbone_segments_cache_copy(), BKE_pose_bone_done(), BKE_pose_channel_runtime_free(), and BKE_pose_eval_init().
| void BKE_pose_channel_free_ex | ( | bPoseChannel * | pchan, |
| bool | do_id_user | ||
| ) |
Deallocates a pose channel. Does not free the pose channel itself.
Definition at line 1059 of file action.c.
References animviz_free_motionpath(), BKE_constraints_free_ex(), BKE_pose_channel_runtime_free(), bPoseChannel::constraints, bPoseChannel::custom, bPoseChannel::draw_data, Object::id, id_us_min(), IDP_FreeProperty_ex(), MEM_SAFE_FREE, bPoseChannel::mpath, NULL, bPoseChannel::prop, and bPoseChannel::runtime.
Referenced by BKE_pose_channel_free(), BKE_pose_channels_clear_with_null_bone(), and BKE_pose_channels_free_ex().
| struct bPoseChannel* BKE_pose_channel_get_mirrored | ( | const struct bPose * | pose, |
| const char * | name | ||
| ) |
| bool BKE_pose_channel_in_IK_chain | ( | struct Object * | ob, |
| struct bPoseChannel * | pchan | ||
| ) |
Definition at line 939 of file action.c.
References pose_channel_in_IK_chain().
| void BKE_pose_channel_runtime_free | ( | bPoseChannel_Runtime * | runtime | ) |
Deallocates runtime cache of a pose channel
Definition at line 1102 of file action.c.
References BKE_pose_channel_free_bbone_cache().
Referenced by BKE_pose_channel_free_ex(), and blender::deg::ObjectRuntimeBackup::restore_pose_channel_runtime_data().
| void BKE_pose_channel_runtime_reset | ( | bPoseChannel_Runtime * | runtime | ) |
Clears the runtime cache of a pose channel without free.
Definition at line 1088 of file action.c.
Referenced by blender::deg::ObjectRuntimeBackup::backup_pose_channel_runtime_data(), and BKE_pose_blend_read_data().
| void BKE_pose_channel_runtime_reset_on_copy | ( | struct bPoseChannel_Runtime * | runtime | ) |
Definition at line 1094 of file action.c.
References bPoseChannel_Runtime::session_uuid.
Referenced by BKE_pose_copy_data_ex(), and pose_proxy_sync().
| void BKE_pose_channel_session_uuid_generate | ( | struct bPoseChannel * | pchan | ) |
Definition at line 608 of file action.c.
References BLI_session_uuid_generate(), bPoseChannel::runtime, and bPoseChannel_Runtime::session_uuid.
Referenced by BKE_pose_blend_read_data(), BKE_pose_channel_verify(), and BKE_pose_copy_data_ex().
| struct bPoseChannel* BKE_pose_channel_verify | ( | bPose * | pose, |
| const char * | name | ||
| ) |
Looks to see if the channel with the given name already exists in this pose - if not a new one is allocated and initialized.
Definition at line 638 of file action.c.
References BKE_pose_channel_find_name(), BKE_pose_channel_session_uuid_generate(), BLI_addtail(), BLI_ghash_insert(), BLI_strncpy(), bPose::chanbase, bPose::chanhash, bPoseChannel::constinv, bPoseChannel::custom_scale, bPoseChannel::iklinweight, bPoseChannel::ikrotweight, bPoseChannel::limitmax, bPoseChannel::limitmin, M_PI, MEM_callocN, bPoseChannel::name, NULL, OB_LOCK_ROT4D, bPoseChannel::protectflag, bPoseChannel::quat, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::scale_in_x, bPoseChannel::scale_in_y, bPoseChannel::scale_out_x, bPoseChannel::scale_out_y, bPoseChannel::size, bPoseChannel::stiffness, unit_axis_angle(), unit_m4(), and unit_qt().
Referenced by actcon_get_tarmat(), armature_symmetrize_exec(), copy_pchan(), rebuild_pose_bone(), updateDuplicateConstraintSettings(), updateDuplicateCustomBoneShapes(), and updateDuplicateSubtarget().
| void BKE_pose_channels_free | ( | struct bPose * | pose | ) |
Definition at line 1143 of file action.c.
References BKE_pose_channels_free_ex().
| void BKE_pose_channels_free_ex | ( | bPose * | pose, |
| bool | do_id_user | ||
| ) |
Removes and deallocates all channels from a pose. Does not free the pose itself.
Definition at line 1126 of file action.c.
References BKE_pose_channel_free_ex(), BKE_pose_channels_hash_free(), BLI_freelistN(), bPose::chan_array, bPose::chanbase, ListBase::first, MEM_SAFE_FREE, and bPoseChannel::next.
Referenced by BKE_pose_channels_free(), and BKE_pose_free_data_ex().
| void BKE_pose_channels_hash_free | ( | struct bPose * | pose | ) |
Definition at line 960 of file action.c.
References BLI_ghash_free(), bPose::chanhash, and NULL.
Referenced by BKE_pose_channels_clear_with_null_bone(), BKE_pose_channels_free_ex(), ED_armature_join_objects_exec(), postEditBoneDuplicate(), and separate_armature_bones().
| void BKE_pose_channels_hash_make | ( | bPose * | pose | ) |
Removes the hash for quick lookup of channels, must be done when adding/removing channels.
Definition at line 948 of file action.c.
References BLI_ghash_insert(), BLI_ghash_str_new(), bPose::chanbase, bPose::chanhash, ListBase::first, bPoseChannel::name, and bPoseChannel::next.
Referenced by BKE_object_handle_update_ex(), BKE_pose_copy_data_ex(), BKE_pose_rebuild(), blender::deg::DepsgraphNodeBuilder::build_proxy_rig(), blender::deg::DepsgraphNodeBuilder::build_rig(), postEditBoneDuplicate(), and what_does_obaction().
| bool BKE_pose_channels_is_valid | ( | const struct bPose * | pose | ) |
Referenced by ED_armature_bone_rename().
| void BKE_pose_channels_remove | ( | Object * | ob, |
| bool(*)(const char *bone_name, void *user_data) | filter_fn, | ||
| void * | user_data | ||
| ) |
Selectively remove pose channels.
Definition at line 986 of file action.c.
References bPoseChannel::bbone_next, bPoseChannel::bbone_prev, BKE_constraint_typeinfo_get(), BKE_pose_channel_free(), BLI_freelinkN(), BLI_ghash_remove(), bPose::chanbase, bPose::chanhash, CONSTRAINT_DISABLE, bPoseChannel::constraints, bPoseChannel::custom_tx, ListBase::first, bConstraint::flag, bConstraintTypeInfo::flush_constraint_targets, bConstraintTypeInfo::get_constraint_targets, bPoseChannel::name, bPoseChannel::next, bConstraint::next, bConstraintTarget::next, NULL, Object::pose, pose_channels_remove_internal_links(), bConstraintTarget::subtarget, bConstraintTarget::tar, and user_data.
Referenced by armature_delete_selected_exec(), and armature_dissolve_selected_exec().
| void BKE_pose_check_uuids_unique_and_report | ( | const struct bPose * | pose | ) |
Referenced by BKE_object_check_uuids_unique_and_report().
| void BKE_pose_copy_data | ( | struct bPose ** | dst, |
| const struct bPose * | src, | ||
| const bool | copy_constraints | ||
| ) |
Referenced by pose_clear_user_transforms_exec().
| void BKE_pose_copy_data_ex | ( | struct bPose ** | dst, |
| const struct bPose * | src, | ||
| const int | flag, | ||
| const bool | copy_constraints | ||
| ) |
Referenced by copy_object_pose().
| void BKE_pose_copy_pchan_result | ( | struct bPoseChannel * | pchanto, |
| const struct bPoseChannel * | pchanfrom | ||
| ) |
Referenced by BKE_pose_eval_proxy_copy_bone().
Definition at line 1701 of file action.c.
References BKE_pose_channel_find_name(), BKE_pose_copy_pchan_result(), CLOG_ERROR, from, LOG, bPoseChannel::name, bPoseChannel::next, and NULL.
Referenced by BKE_object_handle_data_update().
| void BKE_pose_free | ( | struct bPose * | pose | ) |
Definition at line 1184 of file action.c.
References BKE_pose_free_ex().
Referenced by object_blend_read_lib().
| void BKE_pose_free_data | ( | struct bPose * | pose | ) |
Definition at line 1167 of file action.c.
References BKE_pose_free_data_ex().
Referenced by actcon_get_tarmat().
| void BKE_pose_free_data_ex | ( | struct bPose * | pose, |
| bool | do_id_user | ||
| ) |
Definition at line 1148 of file action.c.
References bPose::agroups, BIK_clear_data(), BKE_pose_channels_free_ex(), BLI_freelistN(), ListBase::first, bPose::ikparam, and MEM_freeN.
Referenced by BKE_pose_free_data(), and BKE_pose_free_ex().
| void BKE_pose_free_ex | ( | bPose * | pose, |
| bool | do_id_user | ||
| ) |
Removes and deallocates all data from a pose, and also frees the pose.
Definition at line 1175 of file action.c.
References BKE_pose_free_data_ex(), and MEM_freeN.
Referenced by BKE_pose_free(), and object_free_data().
| const char* BKE_pose_ikparam_get_name | ( | struct bPose * | pose | ) |
Definition at line 775 of file action.c.
References bPose::iksolver, IKSOLVER_ITASC, IKSOLVER_STANDARD, and NULL.
Referenced by BKE_pose_blend_write().
| void BKE_pose_ikparam_init | ( | struct bPose * | pose | ) |
Definition at line 896 of file action.c.
References BKE_pose_itasc_init(), bPose::ikparam, bPose::iksolver, IKSOLVER_ITASC, IKSOLVER_STANDARD, MEM_callocN, and NULL.
| void BKE_pose_itasc_init | ( | struct bItasc * | itasc | ) |
Definition at line 879 of file action.c.
References bItasc::dampeps, bItasc::dampmax, bItasc::feedback, bItasc::flag, bItasc::iksolver, IKSOLVER_ITASC, ITASC_AUTO_STEP, ITASC_INITIAL_REITERATION, ITASC_SOLVER_SDLS, bItasc::maxstep, bItasc::maxvel, bItasc::minstep, bItasc::numiter, bItasc::numstep, bItasc::precision, and bItasc::solver.
Referenced by BKE_pose_ikparam_init(), and get_ikdata().
| void BKE_pose_remove_group | ( | struct bPose * | pose, |
| struct bActionGroup * | grp, | ||
| const int | index | ||
| ) |
Definition at line 1342 of file action.c.
References bPose::active_group, bPose::agroups, bPoseChannel::agrp_index, BLI_assert, BLI_findindex(), BLI_freelinkN(), BLI_listbase_is_empty(), bPose::chanbase, ListBase::first, and bPoseChannel::next.
Referenced by BKE_pose_remove_group_index().
| void BKE_pose_remove_group_index | ( | struct bPose * | pose, |
| const int | index | ||
| ) |
Definition at line 1381 of file action.c.
References bPose::agroups, BKE_pose_remove_group(), BLI_findlink(), and NULL.
Referenced by pose_group_remove_exec().
| void BKE_pose_rest | ( | bPose * | pose, |
| bool | selected_bones_only | ||
| ) |
Zero the pose transforms for the entire pose or only for selected bones.
Definition at line 1636 of file action.c.
References bPoseChannel::bone, BONE_SELECTED, bPose::chanbase, bPoseChannel::curve_in_x, bPoseChannel::curve_in_y, bPoseChannel::curve_out_x, bPoseChannel::curve_out_y, bPose::cyclic_offset, bPoseChannel::ease1, bPoseChannel::ease2, bPoseChannel::eul, ListBase::first, bPoseChannel::flag, Bone::flag, bPoseChannel::loc, bPoseChannel::next, NULL, POSE_BBONE_SHAPE, POSE_LOC, POSE_ROT, POSE_SIZE, bPoseChannel::quat, bPoseChannel::roll1, bPoseChannel::roll2, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::scale_in_x, bPoseChannel::scale_in_y, bPoseChannel::scale_out_x, bPoseChannel::scale_out_y, bPoseChannel::size, bPose::stride_offset, unit_axis_angle(), unit_qt(), and zero_v3().
Referenced by BKE_object_make_proxy(), pose_clear_user_transforms_exec(), and pose_proxy_sync().
Definition at line 1726 of file action.c.
References DEG_relations_tag_update(), bPose::flag, and POSE_RECALC.
Referenced by armature_delete_selected_exec(), BKE_object_duplicate(), BKE_pose_blend_read_lib(), blo_do_versions_pre250(), constraint_add_exec(), object_pose_tag_update(), and pose_constraint_copy_exec().
| void BKE_pose_tag_update_constraint_flags | ( | struct bPose * | pose | ) |
Definition at line 1314 of file action.c.
References bPose::flag, and POSE_CONSTRAINTS_NEED_UPDATE_FLAGS.
Referenced by ED_object_constraint_tag_update().
| void BKE_pose_update_constraint_flags | ( | struct bPose * | pose | ) |
Definition at line 1247 of file action.c.
References bPoseChannel::bone, BONE_CONNECTED, bPose::chanbase, bPoseChannel::constflag, CONSTRAINT_IK_TIP, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_SPLINEIK, bPoseChannel::constraints, data, bConstraint::data, ListBase::first, bPose::flag, Bone::flag, if(), bPoseChannel::next, bConstraint::next, NULL, OB_ARMATURE, OB_CURVE, bPoseChannel::parent, PCHAN_HAS_CONST, PCHAN_HAS_IK, PCHAN_HAS_SPLINEIK, PCHAN_HAS_TARGET, POSE_CONSTRAINTS_NEED_UPDATE_FLAGS, POSE_CONSTRAINTS_TIMEDEPEND, and bConstraint::type.
Referenced by BKE_object_handle_update_ex(), BKE_pose_rebuild(), blender::deg::DepsgraphNodeBuilder::build_proxy_rig(), blender::deg::DepsgraphNodeBuilder::build_rig(), constraint_add_exec(), ED_object_constraint_update(), and what_does_obaction().
| struct bActionGroup* get_active_actiongroup | ( | struct bAction * | act | ) |
Definition at line 334 of file action.c.
References AGRP_ACTIVE, ListBase::first, bActionGroup::flag, bAction::groups, bActionGroup::next, and NULL.
| void set_active_action_group | ( | struct bAction * | act, |
| struct bActionGroup * | agrp, | ||
| short | select | ||
| ) |
Definition at line 350 of file action.c.
References AGRP_ACTIVE, ListBase::first, bActionGroup::flag, bAction::groups, bActionGroup::next, NULL, and select().
| void what_does_obaction | ( | struct Object * | ob, |
| struct Object * | workob, | ||
| struct bPose * | pose, | ||
| struct bAction * | act, | ||
| char | groupname[], | ||
| const struct AnimationEvalContext * | anim_eval_context | ||
| ) |
Referenced by actcon_get_tarmat().