|
Blender V4.5
|
#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 1693 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 1704 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 1727 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
| const Channelbag * blender::animrig::StripKeyframeData::channelbag | ( | int64_t | index | ) | const |
Definition at line 1723 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 1759 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 1755 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 1749 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 1731 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 1764 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 1769 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 1784 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 1789 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 1804 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 1718 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 1713 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 1740 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, | ||
| float2float2 | time_value, | ||
| const KeyframeSettings & | settings, | ||
| eInsertKeyFlags | insert_key_flags = INSERTKEY_NOFLAGS, | ||
| std::optional< float2float2 > | cycle_range = std::nullopt ) |
Definition at line 2157 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(), 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(), 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 1829 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 1820 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().