|
Blender V4.3
|
Functions | |
| ChannelBag * | channelbag_get (Action &action) |
| ChannelBag & | channelbag_ensure (Action &action) |
| Vector< const FCurve * > | fcurves_all (const bAction *action) |
| Vector< FCurve * > | fcurves_all (bAction *action) |
| Vector< FCurve * > | fcurves_for_action_slot (bAction *action, slot_handle_t slot_handle) |
| Vector< const FCurve * > | fcurves_for_action_slot (const bAction *action, slot_handle_t slot_handle) |
| Vector< FCurve * > | fcurves_for_assigned_action (AnimData *adt) |
| Vector< const FCurve * > | fcurves_for_assigned_action (const AnimData *adt) |
| bool | assigned_action_has_keyframes (AnimData *adt) |
| Vector< bActionGroup * > | channel_groups_all (bAction *action) |
| Vector< bActionGroup * > | channel_groups_for_assigned_slot (AnimData *adt) |
| bool | action_treat_as_legacy (const bAction &action) |
| bool | action_fcurves_remove (bAction &action, slot_handle_t slot_handle, StringRefNull rna_path_prefix) |
| static Strip * | first_keyframe_strip (Action &action) |
| template<typename ActionType , typename FCurveType , typename LayerType , typename StripType , typename StripKeyframeDataType , typename ChannelBagType > | |
| static Vector< FCurveType * > | fcurves_all_templated (ActionType &action) |
| template<typename ActionType , typename FCurveType , typename LayerType , typename StripType , typename StripKeyframeDataType , typename ChannelBagType > | |
| static Vector< FCurveType * > | fcurves_for_action_slot_templated (ActionType &action, const slot_handle_t slot_handle) |
| bool blender::animrig::legacy::action_fcurves_remove | ( | bAction & | action, |
| slot_handle_t | slot_handle, | ||
| StringRefNull | rna_path_prefix ) |
Remove all F-Curves whose RNA path starts with the given prefix from an Action Slot.
This function works for both legacy and layered Actions. For the former, the slot handle is ignored.
| rna_path_prefix | All F-Curves whose RNA path start with this string will get removed. Note that there is no other semantics here, so prefix = "rotation" will remove "rotation_euler" as well. The prefix may not be an empty string. |
Definition at line 283 of file action_legacy.cc.
References BKE_fcurve_free(), BLI_assert, BLI_remlink(), blender::StringRefNull::c_str(), blender::animrig::channelbag_for_action_slot(), bAction::curves, blender::animrig::ChannelBag::fcurve(), ActionChannelBag::fcurve_array_num, blender::animrig::ChannelBag::fcurve_remove_by_index(), blender::animrig::Action::is_action_legacy(), blender::StringRefBase::is_empty(), LISTBASE_FOREACH_MUTABLE, FCurve::rna_path, and STRPREFIX.
Referenced by BKE_animdata_fix_paths_remove(), nlastrips_path_remove_fix(), and blender::animrig::tests::TEST_F().
| bool blender::animrig::legacy::action_treat_as_legacy | ( | const bAction & | action | ) |
Determine whether to treat this Action as a legacy Action or not.
Definition at line 273 of file action_legacy.cc.
References blender::animrig::Action::is_action_legacy(), blender::animrig::Action::is_empty(), and USER_EXPERIMENTAL_TEST.
Referenced by blender::animrig::action_fcurve_attach(), blender::animrig::action_fcurve_ensure(), action_idcode_patch_check(), blender::animrig::action_slot_get_id_for_keying(), animchannels_group_channels(), animchannels_ungroup_exec(), BKE_animdata_action_ensure_idroot(), blender::animrig::generic_assign_action(), blender::animrig::insert_keyframes(), blender::animrig::is_action_assignable_to(), nla_panel_actclip(), nlaedit_add_actionclip_exec(), rearrange_action_channels(), and blender::ed::object::test_constraint().
| bool blender::animrig::legacy::assigned_action_has_keyframes | ( | AnimData * | adt | ) |
Return whether the action (+slot), if any, assigned to adt has keyframes.
This works for both layered and legacy actions. For layered actions this only considers the assigned slot.
A null adt or a lack of assigned action are both handled, and are considered to mean no key frames (and thus will return false).
Definition at line 197 of file action_legacy.cc.
References AnimData::action, bAction::curves, ListBase::first, blender::animrig::Action::has_keyframes(), blender::animrig::Action::is_action_legacy(), and AnimData::slot_handle.
Referenced by bc_has_animations().
| Vector< bActionGroup * > blender::animrig::legacy::channel_groups_all | ( | bAction * | action | ) |
Return all Channel Groups in the Action.
This works for both legacy and layered Actions. For the latter, it will return all channel groups for all slots/layers/strips.
Definition at line 212 of file action_legacy.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::animrig::StripKeyframeData::channelbags(), data, blender::Vector< T, InlineBufferCapacity, Allocator >::extend(), bAction::groups, blender::animrig::Action::is_action_legacy(), blender::animrig::Action::layers(), and LISTBASE_FOREACH.
Referenced by action_flip_pchan_rna_paths(), action_groups_clear_tempflags(), channel_groups_for_assigned_slot(), get_active_actiongroup(), poselib_keytag_pose(), and set_active_action_group().
| Vector< bActionGroup * > blender::animrig::legacy::channel_groups_for_assigned_slot | ( | AnimData * | adt | ) |
Return all Channel Groups for the assigned Action Slot.
This works for both legacy and layered Actions. For the former, this function acts identical to channel_groups_all().
Definition at line 250 of file action_legacy.cc.
References AnimData::action, blender::animrig::ChannelBag::channel_groups(), channel_groups_all(), blender::animrig::channelbag_for_action_slot(), blender::animrig::Action::is_action_legacy(), and AnimData::slot_handle.
| ChannelBag & blender::animrig::legacy::channelbag_ensure | ( | Action & | action | ) |
Ensure a ChannelBag exists, for compatibility with the legacy Python API.
This basically is channelbag_get(action), additionally creating the necessary slot, layer, and keyframe strip if necessary.
Definition at line 41 of file action_legacy.cc.
References blender::animrig::assert_baklava_phase_1_invariants(), blender::animrig::Strip::data(), blender::animrig::Action::layer(), blender::animrig::Action::layer_keystrip_ensure(), blender::animrig::Action::slot(), blender::animrig::Action::slot_add(), blender::animrig::Action::slots(), and blender::animrig::Layer::strip().
| ChannelBag * blender::animrig::legacy::channelbag_get | ( | Action & | action | ) |
Return the ChannelBag for compatibility with the legacy Python API.
Definition at line 27 of file action_legacy.cc.
References blender::animrig::Strip::data(), first_keyframe_strip(), blender::animrig::Action::slot(), and blender::animrig::Action::slots().
Definition at line 105 of file action_legacy.cc.
References fcurves_all_templated().
Return all F-Curves in the Action.
This works for both legacy and layered Actions. For the latter, it will return all F-Curves for all slots/layers/strips.
The use of this function is an indicator for code that might have to be inspected to see if this is really the desired behavior, or whether the F-Curves for a specific slot/layer/strip should be used instead.
Definition at line 114 of file action_legacy.cc.
References fcurves_all_templated().
Referenced by blender::animrig::action_deselect_keys(), action_flip_pchan_rna_paths(), adt_apply_all_fcurves_cb(), animsys_evaluate_action(), BKE_action_fix_paths_rename(), BKE_animdata_fix_paths_rename(), blender::animrig::Action::get_frame_range(), blender::animrig::Action::get_frame_range_of_keys(), blender::animrig::Action::get_frame_range_of_slot(), blender::animrig::Action::has_single_frame(), nlastrips_apply_all_curves_cb(), nlastrips_path_rename_fix(), blender::animrig::tests::TEST_F(), and blender::animrig::tests::TEST_F().
|
static |
Definition at line 69 of file action_legacy.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, data, and LISTBASE_FOREACH.
Referenced by fcurves_all(), and fcurves_all().
| Vector< FCurve * > blender::animrig::legacy::fcurves_for_action_slot | ( | bAction * | action, |
| slot_handle_t | slot_handle ) |
Return the F-Curves for this specific slot handle.
On a legacy Action, this returns all F-Curves, and ignores the slot handle.
The use of this function is an indicator for code that can be simplified when the slotted Actions feature is no longer experimental. When that switchover happens, calls to this function can be replaced with the more efficient blender::animrig::fcurves_for_action_slot().
Definition at line 155 of file action_legacy.cc.
References fcurves_for_action_slot_templated().
Referenced by animsys_blend_in_action(), fcurves_for_assigned_action(), fcurves_for_assigned_action(), nla_eval_domain_action(), nlasnapshot_from_action(), and blender::animrig::tests::TEST_F().
| Vector< const FCurve * > blender::animrig::legacy::fcurves_for_action_slot | ( | const bAction * | action, |
| slot_handle_t | slot_handle ) |
Definition at line 167 of file action_legacy.cc.
References fcurves_for_action_slot_templated().
|
static |
Definition at line 134 of file action_legacy.cc.
References blender::animrig::fcurves_for_action_slot(), blender::listbase_to_vector(), and UNUSED_VARS.
Referenced by fcurves_for_action_slot(), and fcurves_for_action_slot().
Return the F-Curves for the assigned Action Slot.
For legacy Actions, this ignores the slot and just returns all F-Curves of the assigned Action.
If adt is nullptr or there is no Action assigned (i.e. adt->action == nullptr), an empty Vector is returned.
Definition at line 181 of file action_legacy.cc.
References AnimData::action, fcurves_for_action_slot(), and AnimData::slot_handle.
Referenced by add_keyframes_from(), animviz_motionpath_compute_range(), assigned_action_has_keyframe_at(), bc_enable_fcurves(), ED_curve_updateAnimPaths(), ED_space_sequencer_has_playback_animation(), gather_frames_to_render_for_adt(), blender::ed::greasepencil::get_selected_object_keyframes(), and modifiers_has_animation_check().
| Vector< const FCurve * > blender::animrig::legacy::fcurves_for_assigned_action | ( | const AnimData * | adt | ) |
Definition at line 188 of file action_legacy.cc.
References AnimData::action, fcurves_for_action_slot(), and AnimData::slot_handle.
Definition at line 14 of file action_legacy.cc.
References blender::animrig::Action::layers().
Referenced by channelbag_get().