Blender  V3.3
Typedefs | Enumerations | Functions
BKE_action.h File Reference

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 bActionBKE_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)
 
void BKE_action_get_frame_range (const struct bAction *act, float *r_start, float *r_end)
 
bool action_has_motion (const struct bAction *act)
 
bool BKE_action_is_cyclic (const struct bAction *act)
 
void BKE_action_fcurves_clear (struct bAction *act)
 
struct bActionGroupget_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 bActionGroupaction_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 bActionGroupBKE_action_group_find_name (struct bAction *act, const char name[])
 
void action_groups_clear_tempflags (struct bAction *act)
 
bool BKE_action_has_single_frame (const 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_ensure (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, int flag, bool copy_constraints)
 
void BKE_pose_copy_data (struct bPose **dst, const struct bPose *src, 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 bPoseChannelBKE_pose_channel_find_name (const struct bPose *pose, const char *name)
 
bool BKE_pose_is_layer_visible (const struct bArmature *arm, const struct bPoseChannel *pchan)
 
struct bPoseChannelBKE_pose_channel_active (struct Object *ob, bool check_arm_layer)
 
struct bPoseChannelBKE_pose_channel_active_if_layer_visible (struct Object *ob)
 
struct bPoseChannelBKE_pose_channel_active_or_first_selected (struct Object *ob)
 
struct bPoseChannelBKE_pose_channel_ensure (struct bPose *pose, const char *name)
 
struct bPoseChannelBKE_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 bActionGroupBKE_pose_add_group (struct bPose *pose, const char *name)
 
void BKE_pose_remove_group (struct bPose *pose, struct bActionGroup *grp, int index)
 
void BKE_pose_remove_group_index (struct bPose *pose, 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)
 

Detailed Description

Blender kernel action and pose functionality.

Definition in file BKE_action.h.

Typedef Documentation

◆ eAction_TransformFlags

Enumeration Type Documentation

◆ 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 45 of file BKE_action.h.

Function Documentation

◆ action_get_item_transforms()

short action_get_item_transforms ( struct bAction act,
struct Object ob,
struct bPoseChannel pchan,
ListBase curves 
)

Return flags indicating which transforms the given object/posechannel has

  • if 'curves' is provided, a list of links to these curves are also returned whose nodes WILL NEED FREEING.

Definition at line 1501 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, curves, ListBase::first, MEM_freeN, FCurve::next, NULL, ptr, RNA_id_pointer_create(), FCurve::rna_path, RNA_path_from_ID_to_struct(), and RNA_pointer_create().

Referenced by fcurves_to_pchan_links_get().

◆ action_group_colors_sync()

void action_group_colors_sync ( struct bActionGroup grp,
const struct bActionGroup ref_grp 
)

Sync colors used for action/bone group with theme settings.

Referenced by animchan_sync_group(), and ED_action_fcurve_ensure().

◆ action_groups_add_channel()

void action_groups_add_channel ( struct bAction act,
struct bActionGroup agrp,
struct FCurve fcurve 
)

◆ action_groups_add_new()

struct bActionGroup* action_groups_add_new ( struct bAction act,
const char  name[] 
)

◆ action_groups_clear_tempflags()

void action_groups_clear_tempflags ( struct bAction act)

Clear all 'temp' flags on all groups.

Definition at line 593 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().

◆ action_groups_remove_channel()

void action_groups_remove_channel ( struct bAction act,
struct FCurve fcu 
)

◆ action_has_motion()

bool action_has_motion ( const struct bAction act)

Check if the given action has any keyframes.

Referenced by action_pushdown_exec(), action_stash_create_exec(), action_stash_exec(), and BKE_nla_action_pushdown().

◆ BKE_action_add()

struct bAction* BKE_action_add ( struct Main bmain,
const char  name[] 
)

◆ BKE_action_fcurves_clear()

void BKE_action_fcurves_clear ( struct bAction act)

◆ BKE_action_flip_with_pose()

void BKE_action_flip_with_pose ( struct bAction act,
struct Object ob_arm 
)

◆ BKE_action_get_frame_range()

void BKE_action_get_frame_range ( const struct bAction act,
float r_start,
float r_end 
)

◆ BKE_action_group_find_name()

struct bActionGroup* BKE_action_group_find_name ( struct bAction act,
const char  name[] 
)

◆ BKE_action_groups_reconstruct()

void BKE_action_groups_reconstruct ( struct bAction act)

Reconstruct group channel pointers. Assumes that the groups referred to by the FCurves are already in act->groups. Reorders the main channel list to match group order.

Definition at line 503 of file action.c.

References BLI_addtail(), BLI_assert, BLI_findindex(), BLI_listbase_clear(), BLI_movelisttolist(), bAction::curves, ELEM, ListBase::first, bAction::groups, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, and NULL.

Referenced by blo_do_versions_300(), curve_rename_fcurves(), and blender::bke::tests::TEST().

◆ BKE_action_has_single_frame()

bool BKE_action_has_single_frame ( const struct bAction act)

Return whether the action has one unique point in time keyed.

This is mostly for the pose library, which will have different behavior depending on whether an Action corresponds to a "pose" (one keyframe) or "animation snippet" (multiple keyframes).

Returns
false when there is no keyframe at all or keys on different points in time, true when exactly one point in time is keyed.

Definition at line 1352 of file action.c.

References BLI_listbase_is_empty(), compare_ff(), bAction::curves, LISTBASE_FOREACH, and NULL.

Referenced by action_asset_type_property(), and blender::bke::tests::TEST().

◆ BKE_action_is_cyclic()

bool BKE_action_is_cyclic ( const struct bAction act)

Is the action configured as cyclic.

Definition at line 1496 of file action.c.

References ACT_CYCLIC, ACT_FRAME_RANGE, and bAction::flag.

Referenced by BKE_nlastrip_new(), and insert_keyframe_fcurve_value().

◆ BKE_pose_add_group()

struct bActionGroup* BKE_pose_add_group ( struct bPose pose,
const char *  name 
)

Adds a new bone-group (name may be NULL).

Definition at line 1266 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().

◆ BKE_pose_blend_read_data()

void BKE_pose_blend_read_data ( struct BlendDataReader reader,
struct bPose pose 
)

◆ BKE_pose_blend_read_expand()

void BKE_pose_blend_read_expand ( struct BlendExpander expander,
struct bPose pose 
)

◆ BKE_pose_blend_read_lib()

void BKE_pose_blend_read_lib ( struct BlendLibReader reader,
struct Object ob,
struct bPose pose 
)

◆ BKE_pose_blend_write()

void BKE_pose_blend_write ( struct BlendWriter writer,
struct bPose pose,
struct bArmature arm 
)

◆ BKE_pose_channel_active()

struct bPoseChannel* BKE_pose_channel_active ( struct Object ob,
bool  check_arm_layer 
)

Find the active pose-channel for an object

Parameters
check_arm_layerchecks if the bone is on a visible armature layer (this might be skipped (e.g. for "Show Active" from the Outliner).
Returns
bPoseChannel if found or NULL.
Note
Object, not bPose is used here, as we need info (layer/active bone) from Armature.

Definition at line 699 of file action.c.

References bArmature::act_bone, BKE_pose_is_layer_visible(), bPose::chanbase, Object::data, ELEM, ListBase::first, if(), NULL, and Object::pose.

Referenced by BKE_pose_channel_active_if_layer_visible(), and outliner_show_active_get_element().

◆ BKE_pose_channel_active_if_layer_visible()

struct bPoseChannel* BKE_pose_channel_active_if_layer_visible ( struct Object ob)

◆ BKE_pose_channel_active_or_first_selected()

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 725 of file action.c.

References BKE_pose_channel_active_if_layer_visible(), 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().

◆ BKE_pose_channel_copy_data()

void BKE_pose_channel_copy_data ( struct bPoseChannel pchan,
const struct bPoseChannel pchan_from 
)

Copy the internal members of each pose channel including constraints and ID-Props, used when duplicating bones in edit-mode. (unlike copy_pose_channel_data which only does posing-related stuff).

Note
use when copying bones in edit-mode (on returned value from BKE_pose_channel_ensure)

Referenced by copy_pchan().

◆ BKE_pose_channel_ensure()

struct bPoseChannel* BKE_pose_channel_ensure ( struct bPose pose,
const char *  name 
)

◆ BKE_pose_channel_find_name()

struct bPoseChannel* BKE_pose_channel_find_name ( const struct bPose pose,
const char *  name 
)

Return a pointer to the pose channel of the given name from this pose.

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_camera_object_dof_distance(), BKE_constraint_apply_for_pose(), 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(), 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_without_keying_set(), dgroup_skinnable_cb(), draw_armature_pose(), dvar_eval_locDiff(), dvar_eval_rotDiff(), 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_backup_create(), pose_bone_do_paste(), pose_channel_find_bone(), pose_clear_transform_generic_exec(), pose_foreachScreenBone(), pose_grab_with_ik_children(), 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().

◆ BKE_pose_channel_free()

void BKE_pose_channel_free ( struct bPoseChannel pchan)

◆ BKE_pose_channel_free_bbone_cache()

void BKE_pose_channel_free_bbone_cache ( struct bPoseChannel_Runtime runtime)

◆ BKE_pose_channel_free_ex()

void BKE_pose_channel_free_ex ( struct bPoseChannel pchan,
bool  do_id_user 
)

◆ BKE_pose_channel_get_mirrored()

struct bPoseChannel* BKE_pose_channel_get_mirrored ( const struct bPose pose,
const char *  name 
)

◆ BKE_pose_channel_in_IK_chain()

bool BKE_pose_channel_in_IK_chain ( struct Object ob,
struct bPoseChannel pchan 
)

Checks if a bone is part of an IK chain or not.

Definition at line 920 of file action.c.

References pose_channel_in_IK_chain().

◆ BKE_pose_channel_runtime_free()

void BKE_pose_channel_runtime_free ( struct bPoseChannel_Runtime runtime)

Deallocates runtime cache of a pose channel

Definition at line 1064 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().

◆ BKE_pose_channel_runtime_reset()

void BKE_pose_channel_runtime_reset ( struct bPoseChannel_Runtime runtime)

Clears the runtime cache of a pose channel without free.

Definition at line 1052 of file action.c.

Referenced by blender::deg::ObjectRuntimeBackup::backup_pose_channel_runtime_data(), and BKE_pose_blend_read_data().

◆ BKE_pose_channel_runtime_reset_on_copy()

void BKE_pose_channel_runtime_reset_on_copy ( struct bPoseChannel_Runtime runtime)

Reset all non-persistent fields.

Definition at line 1057 of file action.c.

References bPoseChannel_Runtime::session_uuid.

Referenced by BKE_pose_copy_data_ex().

◆ BKE_pose_channel_session_uuid_generate()

void BKE_pose_channel_session_uuid_generate ( struct bPoseChannel pchan)

◆ BKE_pose_channels_free()

void BKE_pose_channels_free ( struct bPose pose)

Definition at line 1100 of file action.c.

References BKE_pose_channels_free_ex().

◆ BKE_pose_channels_free_ex()

void BKE_pose_channels_free_ex ( struct bPose pose,
bool  do_id_user 
)

Removes and deallocates all channels from a pose. Does not free the pose itself.

Definition at line 1083 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().

◆ BKE_pose_channels_hash_ensure()

void BKE_pose_channels_hash_ensure ( struct bPose pose)

◆ BKE_pose_channels_hash_free()

void BKE_pose_channels_hash_free ( struct bPose pose)

◆ BKE_pose_channels_is_valid()

bool BKE_pose_channels_is_valid ( const struct bPose pose)

Referenced by ED_armature_bone_rename().

◆ BKE_pose_channels_remove()

void BKE_pose_channels_remove ( struct Object ob,
bool(*)(const char *bone_name, void *user_data filter_fn,
void user_data 
)

◆ BKE_pose_check_uuids_unique_and_report()

void BKE_pose_check_uuids_unique_and_report ( const struct bPose pose)

◆ BKE_pose_copy_data()

void BKE_pose_copy_data ( struct bPose **  dst,
const struct bPose src,
bool  copy_constraints 
)

◆ BKE_pose_copy_data_ex()

void BKE_pose_copy_data_ex ( struct bPose **  dst,
const struct bPose src,
int  flag,
bool  copy_constraints 
)

Allocate a new pose on the heap, and copy the src pose and its channels into the new pose. *dst is set to the newly allocated structure, and assumed to be NULL.

Parameters
dstShould be freed already, makes entire duplicate.

Referenced by copy_object_pose().

◆ BKE_pose_copy_pchan_result()

void BKE_pose_copy_pchan_result ( struct bPoseChannel pchanto,
const struct bPoseChannel pchanfrom 
)

◆ BKE_pose_copy_result()

bool BKE_pose_copy_result ( struct bPose to,
struct bPose from 
)

Both poses should be in sync.

Definition at line 1695 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.

◆ BKE_pose_free()

void BKE_pose_free ( struct bPose pose)

Definition at line 1138 of file action.c.

References BKE_pose_free_ex().

Referenced by object_blend_read_lib().

◆ BKE_pose_free_data()

void BKE_pose_free_data ( struct bPose pose)

Definition at line 1124 of file action.c.

References BKE_pose_free_data_ex().

Referenced by actcon_get_tarmat().

◆ BKE_pose_free_data_ex()

void BKE_pose_free_data_ex ( struct bPose pose,
bool  do_id_user 
)

◆ BKE_pose_free_ex()

void BKE_pose_free_ex ( struct bPose pose,
bool  do_id_user 
)

Removes and deallocates all data from a pose, and also frees the pose.

Definition at line 1129 of file action.c.

References BKE_pose_free_data_ex(), and MEM_freeN.

Referenced by BKE_pose_free(), and object_free_data().

◆ BKE_pose_ikparam_get_name()

const char* BKE_pose_ikparam_get_name ( struct bPose pose)

Return the name of structure pointed by pose->ikparam.

Definition at line 761 of file action.c.

References bPose::iksolver, IKSOLVER_ITASC, IKSOLVER_STANDARD, and NULL.

Referenced by BKE_pose_blend_write().

◆ BKE_pose_ikparam_init()

void BKE_pose_ikparam_init ( struct bPose pose)

Allocate and initialize pose->ikparam according to pose->iksolver.

Definition at line 877 of file action.c.

References BKE_pose_itasc_init(), bPose::ikparam, bPose::iksolver, IKSOLVER_ITASC, IKSOLVER_STANDARD, MEM_callocN, and NULL.

◆ BKE_pose_is_layer_visible()

bool BKE_pose_is_layer_visible ( const struct bArmature arm,
const struct bPoseChannel pchan 
)

Checks if the bone is on a visible armature layer

Returns
true if on a visible layer, false otherwise.

Referenced by pose_grab_with_ik(), poselib_apply_pose(), and stats_object_pose().

◆ BKE_pose_itasc_init()

void BKE_pose_itasc_init ( struct bItasc itasc)

◆ BKE_pose_remove_group()

void BKE_pose_remove_group ( struct bPose pose,
struct bActionGroup grp,
int  index 
)

Remove the given bone-group (expects 'virtual' index (+1 one, used by active_group etc.)) index might be invalid ( < 1), in which case it will be find from grp.

Definition at line 1284 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().

◆ BKE_pose_remove_group_index()

void BKE_pose_remove_group_index ( struct bPose pose,
int  index 
)

Remove the indexed bone-group (expects 'virtual' index (+1 one, used by active_group etc.)).

Definition at line 1322 of file action.c.

References bPose::agroups, BKE_pose_remove_group(), BLI_findlink(), and NULL.

Referenced by pose_group_remove_exec().

◆ BKE_pose_rest()

void BKE_pose_rest ( struct bPose pose,
bool  selected_bones_only 
)

◆ BKE_pose_tag_recalc()

void BKE_pose_tag_recalc ( struct Main bmain,
struct bPose pose 
)

◆ BKE_pose_tag_update_constraint_flags()

void BKE_pose_tag_update_constraint_flags ( struct bPose pose)

Tag constraint flags for update.

Definition at line 1259 of file action.c.

References bPose::flag, and POSE_CONSTRAINTS_NEED_UPDATE_FLAGS.

Referenced by ED_object_constraint_tag_update().

◆ BKE_pose_update_constraint_flags()

void BKE_pose_update_constraint_flags ( struct bPose pose)

◆ calc_action_range()

void calc_action_range ( const struct bAction act,
float start,
float end,
short  incl_modifiers 
)

Calculate the extents of given action.

Referenced by animrecord_check_state(), and animsys_create_action_track_strip().

◆ get_active_actiongroup()

struct bActionGroup* get_active_actiongroup ( struct bAction act)

Get the active action-group for an Action.

Definition at line 345 of file action.c.

References AGRP_ACTIVE, ListBase::first, bActionGroup::flag, bAction::groups, bActionGroup::next, and NULL.

◆ set_active_action_group()

void set_active_action_group ( struct bAction act,
struct bActionGroup agrp,
short  select 
)

Make the given Action-Group the active one.

Definition at line 360 of file action.c.

References AGRP_ACTIVE, ListBase::first, bActionGroup::flag, bAction::groups, bActionGroup::next, NULL, and select().

◆ what_does_obaction()

void what_does_obaction ( struct Object ob,
struct Object workob,
struct bPose pose,
struct bAction act,
char  groupname[],
const struct AnimationEvalContext anim_eval_context 
)

For the calculation of the effects of an Action at the given frame on an object This is currently only used for the Action Constraint

Referenced by actcon_get_tarmat().