|
Blender V5.0
|
#include <ANIM_action.hh>
Inherits ActionStripKeyframeData.
Static Public Attributes | |
| static constexpr Strip::Type | TYPE = Strip::Type::Keyframe |
Additional Inherited Members | |
| Public Attributes inherited from ActionStripKeyframeData | |
| struct ActionChannelbag ** | channelbag_array |
| int | channelbag_array_num |
| uint8_t | _pad [4] |
Keyframe animation data for a keyframe strip.
This contains a set of Channelbags, up to one for each slot in the owning action. Each Channelbag contains the keyframe animation data for the slot it corresponds to.
Definition at line 975 of file ANIM_action.hh.
|
default |
References channelbag(), channelbag_for_slot(), channelbag_for_slot_add(), channelbag_for_slot_ensure(), channelbag_remove(), channelbags(), find_channelbag_index(), INSERTKEY_NOFLAGS, keyframe_insert(), slot_data_duplicate(), slot_data_remove(), and StripKeyframeData().
Referenced by channelbag_for_slot(), StripKeyframeData(), and StripKeyframeData().
|
explicit |
Definition at line 1698 of file animrig/intern/action.cc.
References channelbag(), ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, channelbags(), i, blender::Span< T >::index_range(), MEM_calloc_arrayN(), and StripKeyframeData().
| blender::animrig::StripKeyframeData::~StripKeyframeData | ( | ) |
Definition at line 1709 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, channelbag_for_slot(), channelbags(), and MEM_SAFE_FREE.
| Channelbag * blender::animrig::StripKeyframeData::channelbag | ( | int64_t | index | ) |
Definition at line 1732 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
| const Channelbag * blender::animrig::StripKeyframeData::channelbag | ( | int64_t | index | ) | const |
Definition at line 1728 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
Referenced by channelbag_for_slot_ensure(), find_channelbag_index(), slot_data_remove(), StripKeyframeData(), StripKeyframeData(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), and blender::animrig::tests::TEST_F().
| Channelbag * blender::animrig::StripKeyframeData::channelbag_for_slot | ( | const Slot & | slot | ) |
Definition at line 1764 of file animrig/intern/action.cc.
References channelbag_for_slot(), and ActionSlot::handle.
| const Channelbag * blender::animrig::StripKeyframeData::channelbag_for_slot | ( | const Slot & | slot | ) | const |
Find the channelbag for the given slot.
Definition at line 1760 of file animrig/intern/action.cc.
References channelbag_for_slot(), and ActionSlot::handle.
Referenced by blender::deg::DepsgraphRelationBuilder::build_animdata_action_targets(), blender::animrig::channelbag_for_action_slot(), channelbag_for_slot(), channelbag_for_slot(), channelbag_for_slot_add(), channelbag_for_slot_ensure(), blender::animrig::evaluate_keyframe_data(), blender::animrig::fcurve_find_by_rna_path(), keyframe_insert(), blender::animrig::move_slot(), slot_data_duplicate(), slot_data_remove(), StripKeyframeData(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), and ~StripKeyframeData().
| Channelbag * blender::animrig::StripKeyframeData::channelbag_for_slot | ( | slot_handle_t | slot_handle | ) |
Definition at line 1754 of file animrig/intern/action.cc.
References StripKeyframeData().
| const Channelbag * blender::animrig::StripKeyframeData::channelbag_for_slot | ( | slot_handle_t | slot_handle | ) | const |
Definition at line 1736 of file animrig/intern/action.cc.
References channelbags().
| Channelbag & blender::animrig::StripKeyframeData::channelbag_for_slot_add | ( | const Slot & | slot | ) |
Add a channelbag for the given slot.
Should only be called when there is no Channelbag for this slot yet.
Definition at line 1769 of file animrig/intern/action.cc.
References channelbag_for_slot_add(), and ActionSlot::handle.
Referenced by channelbag_for_slot_add(), channelbag_for_slot_ensure(), and StripKeyframeData().
| Channelbag & blender::animrig::StripKeyframeData::channelbag_for_slot_add | ( | slot_handle_t | slot_handle | ) |
Definition at line 1774 of file animrig/intern/action.cc.
References BLI_assert_msg, ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, channelbag_for_slot(), blender::animrig::grow_array_and_append(), ActionChannelbag::slot_handle, and blender::animrig::Slot::unassigned.
| Channelbag & blender::animrig::StripKeyframeData::channelbag_for_slot_ensure | ( | const Slot & | slot | ) |
Find the channelbag for the given slot, or if none exists, create it.
Definition at line 1789 of file animrig/intern/action.cc.
References channelbag_for_slot_ensure(), and ActionSlot::handle.
Referenced by blender::animrig::action_channelbag_ensure(), blender::animrig::action_fcurve_attach(), blender::animrig::tests::add_fcurve_to_action(), channelbag_for_slot_ensure(), blender::io::fbx::import_animations(), keyframe_insert(), blender::ed::animrig::replace_pose_key(), StripKeyframeData(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), and blender::animrig::tests::TEST_F().
| Channelbag & blender::animrig::StripKeyframeData::channelbag_for_slot_ensure | ( | slot_handle_t | slot_handle | ) |
Definition at line 1794 of file animrig/intern/action.cc.
References channelbag(), channelbag_for_slot(), and channelbag_for_slot_add().
| bool blender::animrig::StripKeyframeData::channelbag_remove | ( | Channelbag & | channelbag_to_remove | ) |
Remove the given channelbag from this strip data.
After this call the reference is no longer valid, as the memory will have been freed.
Definition at line 1809 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, blender::animrig::channelbag_ptr_destructor(), find_channelbag_index(), and blender::dna::array::remove_index().
Referenced by slot_data_remove(), and StripKeyframeData().
| blender::Span< Channelbag * > blender::animrig::StripKeyframeData::channelbags | ( | ) |
Definition at line 1723 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array, and ActionStripKeyframeData::channelbag_array_num.
| blender::Span< const Channelbag * > blender::animrig::StripKeyframeData::channelbags | ( | ) | const |
Definition at line 1718 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array, and ActionStripKeyframeData::channelbag_array_num.
Referenced by blender::animrig::action_fcurve_detach(), blender::animrig::legacy::channel_groups_all(), channelbag_for_slot(), blender::animrig::fcurve_find_in_action(), blender::animrig::foreach_fcurve_in_action(), blender::animrig::foreach_fcurve_in_action_slot(), StripKeyframeData(), StripKeyframeData(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::bke::write_strip_keyframe_data(), and ~StripKeyframeData().
| int64_t blender::animrig::StripKeyframeData::find_channelbag_index | ( | const Channelbag & | channelbag | ) | const |
Return the index of channelbag in this strip data's channelbag array, or -1 if channelbag doesn't exist in this strip data.
Definition at line 1745 of file animrig/intern/action.cc.
References channelbag(), and ActionStripKeyframeData::channelbag_array_num.
Referenced by channelbag_remove(), blender::animrig::move_slot(), and StripKeyframeData().
| SingleKeyingResult blender::animrig::StripKeyframeData::keyframe_insert | ( | Main * | bmain, |
| const Slot & | slot, | ||
| const FCurveDescriptor & | fcurve_descriptor, | ||
| float2 | time_value, | ||
| const KeyframeSettings & | settings, | ||
| eInsertKeyFlags | insert_key_flags = INSERTKEY_NOFLAGS, | ||
| std::optional< float2 > | cycle_range = std::nullopt ) |
Definition at line 2162 of file animrig/intern/action.cc.
References blender::animrig::FCurveDescriptor::array_index, BKE_fcurve_is_keyframable(), blender::StringRefNull::c_str(), blender::animrig::CANNOT_CREATE_FCURVE, channelbag_for_slot(), channelbag_for_slot_ensure(), CLOG_WARN, blender::animrig::cyclic_keying_ensure_cycle_range_exists(), blender::animrig::cyclic_keying_ensure_modifier(), blender::animrig::Channelbag::fcurve_ensure(), blender::animrig::Channelbag::fcurve_find(), blender::animrig::FCURVE_NOT_KEYFRAMEABLE, ActionSlot::identifier, blender::animrig::insert_vert_fcurve(), blender::animrig::key_insertion_may_create_fcurve(), LOG, blender::animrig::FCurveDescriptor::prop_type, blender::animrig::FCurveDescriptor::rna_path, blender::animrig::SUCCESS, and blender::animrig::update_autoflags_fcurve_direct().
Referenced by blender::ed::animrig::extract_pose(), StripKeyframeData(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), and blender::animrig::tests::TEST_F().
| void blender::animrig::StripKeyframeData::slot_data_duplicate | ( | slot_handle_t | source_slot_handle, |
| slot_handle_t | target_slot_handle ) |
Clone the channelbag belonging to the source slot, and assign it to the target slot.
This is typically only called from duplicate_slot().
Definition at line 1834 of file animrig/intern/action.cc.
References BLI_assert, ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, channelbag_for_slot(), blender::animrig::grow_array_and_append(), and ActionChannelbag::slot_handle.
Referenced by blender::animrig::duplicate_slot(), and StripKeyframeData().
| void blender::animrig::StripKeyframeData::slot_data_remove | ( | slot_handle_t | slot_handle | ) |
Remove all strip data for the given slot.
Definition at line 1825 of file animrig/intern/action.cc.
References channelbag(), channelbag_for_slot(), and channelbag_remove().
Referenced by StripKeyframeData().
|
staticconstexpr |
Definition at line 978 of file ANIM_action.hh.
Referenced by blender::animrig::Strip::data(), and blender::animrig::Strip::data().