Blender
V3.3
|
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) } |
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 45 of file BKE_action.h.
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
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().
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().
void action_groups_add_channel | ( | struct bAction * | act, |
struct bActionGroup * | agrp, | ||
struct FCurve * | fcurve | ||
) |
Add given channel into (active) group
Definition at line 435 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[] | ||
) |
Add a new action group with the given name to the action>
Definition at line 410 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().
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().
Remove the given channel from all groups.
Definition at line 542 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(), BKE_action_fcurves_clear(), fcurve_path_rename(), fcurve_remove(), and remove_sequencer_fcurves().
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().
Definition at line 332 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().
Remove all fcurves from the action.
Definition at line 1988 of file action.c.
References action_groups_remove_channel(), BKE_fcurve_free(), bAction::curves, DEG_id_tag_update(), ListBase::first, bAction::id, and ID_RECALC_ANIMATION_NO_FLUSH.
Definition at line 448 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.
Referenced by flip_pose().
Definition at line 1480 of file action.c.
References ACT_FRAME_RANGE, calc_action_range(), bAction::flag, bAction::frame_end, and bAction::frame_start.
Referenced by BKE_nlastrip_new(), and BKE_nlastrip_recalculate_bounds_sync_action().
struct bActionGroup* BKE_action_group_find_name | ( | struct bAction * | act, |
const char | name[] | ||
) |
Find a group with the given name.
Definition at line 582 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().
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().
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).
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().
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().
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().
void BKE_pose_blend_read_data | ( | struct BlendDataReader * | reader, |
struct bPose * | pose | ||
) |
Definition at line 1884 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 1975 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 1932 of file action.c.
References 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_IS_LINKED, ID_RECALC_ANIMATION, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, IDP_BlendReadLib(), ID::lib, LISTBASE_FOREACH, NULL, 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 1832 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 | ( | struct Object * | ob, |
bool | check_arm_layer | ||
) |
Find the active pose-channel for an object
check_arm_layer | checks if the bone is on a visible armature layer (this might be skipped (e.g. for "Show Active" from the Outliner). |
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().
struct bPoseChannel* BKE_pose_channel_active_if_layer_visible | ( | struct Object * | ob | ) |
Find the active pose-channel for an object if it is on a visible armature layer (calls BKE_pose_channel_active with check_arm_layer set to true)
Definition at line 720 of file action.c.
References BKE_pose_channel_active().
Referenced by add_hook_object(), BKE_pose_channel_active_or_first_selected(), constraint_add_exec(), ED_object_calc_active_center_for_posemode(), ED_object_constraint_active_list(), ED_object_parent_set(), ED_transform_calc_orientation_from_type_ex(), get_new_constraint_target(), getTransformOrientation_ex(), 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 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().
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).
Referenced by copy_pchan().
struct bPoseChannel* BKE_pose_channel_ensure | ( | struct 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 628 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, copy_v3_fl(), bPoseChannel::custom_rotation_euler, bPoseChannel::custom_scale_xyz, bPoseChannel::custom_translation, 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, bPoseChannel::scale_out, bPoseChannel::size, bPoseChannel::stiffness, unit_axis_angle(), unit_m4(), unit_qt(), and zero_v3().
Referenced by actcon_get_tarmat(), armature_symmetrize_exec(), copy_pchan(), rebuild_pose_bone(), updateDuplicateConstraintSettings(), updateDuplicateCustomBoneShapes(), and updateDuplicateSubtarget().
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().
void BKE_pose_channel_free | ( | struct bPoseChannel * | pchan | ) |
Definition at line 1078 of file action.c.
References BKE_pose_channel_free_ex().
Referenced by armature_symmetrize_exec(), BKE_pose_channels_remove(), and separate_armature_bones().
void BKE_pose_channel_free_bbone_cache | ( | struct bPoseChannel_Runtime * | runtime | ) |
Deallocates runtime cache of a pose channel's B-Bone shape.
Definition at line 1069 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 | ( | struct bPoseChannel * | pchan, |
bool | do_id_user | ||
) |
Deallocates a pose channel. Does not free the pose channel itself.
Definition at line 1024 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 | ||
) |
Referenced by createTransPose(), pchan_clear_loc_with_mirrored(), pchan_clear_rot_with_mirrored(), pchan_clear_scale_with_mirrored(), pose_select_mirror_exec(), and pose_transform_mirror_update().
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().
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().
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().
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().
void BKE_pose_channel_session_uuid_generate | ( | struct bPoseChannel * | pchan | ) |
Definition at line 610 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_ensure(), and BKE_pose_copy_data_ex().
Definition at line 1100 of file action.c.
References BKE_pose_channels_free_ex().
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().
Removes the hash for quick lookup of channels, must be done when adding/removing channels.
Definition at line 925 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_rig(), postEditBoneDuplicate(), and what_does_obaction().
Definition at line 937 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().
Referenced by ED_armature_bone_rename().
void BKE_pose_channels_remove | ( | struct Object * | ob, |
bool(*)(const char *bone_name, void *user_data) | filter_fn, | ||
void * | user_data | ||
) |
Selectively remove pose channels.
Definition at line 960 of file action.c.
References bPoseChannel::bbone_next, bPoseChannel::bbone_prev, BKE_constraint_targets_flush(), BKE_constraint_targets_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, 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().
Referenced by BKE_object_check_uuids_unique_and_report().
Referenced by pose_clear_user_transforms_exec().
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.
dst | Should be freed already, makes entire duplicate. |
Referenced by copy_object_pose().
void BKE_pose_copy_pchan_result | ( | struct bPoseChannel * | pchanto, |
const struct bPoseChannel * | pchanfrom | ||
) |
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.
Definition at line 1138 of file action.c.
References BKE_pose_free_ex().
Referenced by object_blend_read_lib().
Definition at line 1124 of file action.c.
References BKE_pose_free_data_ex().
Referenced by actcon_get_tarmat().
Definition at line 1105 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().
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().
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().
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.
bool BKE_pose_is_layer_visible | ( | const struct bArmature * | arm, |
const struct bPoseChannel * | pchan | ||
) |
Checks if the bone is on a visible armature layer
Referenced by pose_grab_with_ik(), poselib_apply_pose(), and stats_object_pose().
Initialize a bItasc structure with default value.
Definition at line 860 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, | ||
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().
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().
Zero the pose transforms for the entire pose or only for selected bones.
Definition at line 1631 of file action.c.
References bPoseChannel::bone, BONE_SELECTED, bPose::chanbase, copy_v3_fl(), bPoseChannel::curve_in_x, bPoseChannel::curve_in_z, bPoseChannel::curve_out_x, bPoseChannel::curve_out_z, 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, bPoseChannel::scale_out, bPoseChannel::size, bPose::stride_offset, unit_axis_angle(), unit_qt(), and zero_v3().
Referenced by pose_clear_user_transforms_exec().
Tag pose for recalculation. Also tag all related data to be recalculated.
Definition at line 1719 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(), constraint_copy_to_selected_exec(), object_pose_tag_update(), and pose_constraint_copy_exec().
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().
Checks for IK constraint, Spline IK, and also for Follow-Path constraint. can do more constraints flags later. pose should be entirely OK.
Definition at line 1192 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_CURVES_LEGACY, 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_rig(), constraint_add_exec(), ED_object_constraint_update(), and what_does_obaction().
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().
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.
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().
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().