|
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 |
|
explicit |
Definition at line 1694 of file animrig/intern/action.cc.
References channelbag(), ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, channelbags(), blender::Span< T >::index_range(), and MEM_calloc_arrayN().
| blender::animrig::StripKeyframeData::~StripKeyframeData | ( | ) |
Definition at line 1705 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 1728 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
| const Channelbag * blender::animrig::StripKeyframeData::channelbag | ( | int64_t | index | ) | const |
Definition at line 1724 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
Referenced by channelbag_for_slot_ensure(), find_channelbag_index(), blender::ed::animation::KeyframeCopyBuffer::is_single_fcurve(), paste_animedit_keys(), 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(), 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 1760 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 1756 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(), blender::ed::animation::KeyframeCopyBuffer::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(), 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 1750 of file animrig/intern/action.cc.
References channelbag_for_slot().
| const Channelbag * blender::animrig::StripKeyframeData::channelbag_for_slot | ( | slot_handle_t | slot_handle | ) | const |
Definition at line 1732 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 1765 of file animrig/intern/action.cc.
References channelbag_for_slot_add(), and ActionSlot::handle.
Referenced by channelbag_for_slot_add(), and channelbag_for_slot_ensure().
| Channelbag & blender::animrig::StripKeyframeData::channelbag_for_slot_add | ( | slot_handle_t | slot_handle | ) |
Definition at line 1770 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 1785 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(), 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 1790 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 1805 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().
| blender::Span< Channelbag * > blender::animrig::StripKeyframeData::channelbags | ( | ) |
Definition at line 1719 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 1714 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::ed::animation::KeyframeCopyBuffer::debug_print(), blender::animrig::fcurve_find_in_action(), blender::ed::animation::KeyframeCopyBuffer::is_empty(), blender::ed::animation::KeyframeCopyBuffer::is_single_fcurve(), blender::ed::animation::KeyframeCopyBuffer::num_slots(), blender::ed::animation::pastebuf_find_matching_copybuf_item(), 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 1741 of file animrig/intern/action.cc.
References channelbag(), and ActionStripKeyframeData::channelbag_array_num.
Referenced by channelbag_remove(), and blender::animrig::move_slot().
| 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 2158 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(), 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 1830 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().
| void blender::animrig::StripKeyframeData::slot_data_remove | ( | slot_handle_t | slot_handle | ) |
Remove all strip data for the given slot.
Definition at line 1821 of file animrig/intern/action.cc.
References channelbag(), channelbag_for_slot(), and channelbag_remove().
|
staticconstexpr |
Definition at line 978 of file ANIM_action.hh.
Referenced by blender::animrig::Strip::data(), and blender::animrig::Strip::data().