|
Blender V4.3
|
#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 strips effectively contain a bag of F-Curves for each Slot.
Definition at line 737 of file ANIM_action.hh.
|
default |
|
explicit |
Definition at line 1556 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array, and blender::Span< T >::index_range().
| blender::animrig::StripKeyframeData::~StripKeyframeData | ( | ) |
Definition at line 1568 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 1591 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
| const ChannelBag * blender::animrig::StripKeyframeData::channelbag | ( | int64_t | index | ) | const |
Definition at line 1587 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array.
Referenced by find_channelbag_index(), 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(), 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 1623 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 animation channels for this slot.
Definition at line 1619 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(), 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_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 1613 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 1595 of file animrig/intern/action.cc.
References channelbags(), and channels().
| ChannelBag & blender::animrig::StripKeyframeData::channelbag_for_slot_add | ( | const Slot & | slot | ) |
Add the animation channels for this slot.
Should only be called when there is no ChannelBag for this slot yet.
Definition at line 1628 of file animrig/intern/action.cc.
References BLI_assert_msg, ActionStripKeyframeData::channelbag_array, ActionStripKeyframeData::channelbag_array_num, channelbag_for_slot(), channels(), blender::animrig::grow_array_and_append(), ActionSlot::handle, and ActionChannelBag::slot_handle.
Referenced by channelbag_for_slot_ensure().
| ChannelBag & blender::animrig::StripKeyframeData::channelbag_for_slot_ensure | ( | const Slot & | slot | ) |
Find the ChannelBag for slot, or if none exists, create it.
Definition at line 1642 of file animrig/intern/action.cc.
References channelbag_for_slot(), and channelbag_for_slot_add().
Referenced by blender::animrig::action_fcurve_attach(), blender::animrig::action_fcurve_ensure(), blender::animrig::tests::add_fcurve_to_action(), keyframe_insert(), and blender::animrig::tests::TEST_F().
| bool blender::animrig::StripKeyframeData::channelbag_remove | ( | ChannelBag & | channelbag_to_remove | ) |
Remove the ChannelBag from this slot.
After this call the reference is no longer valid, as the memory will have been freed.
Definition at line 1657 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 1582 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 1577 of file animrig/intern/action.cc.
References ActionStripKeyframeData::channelbag_array, and ActionStripKeyframeData::channelbag_array_num.
Referenced by blender::animrig::action_fcurve_detach(), blender::animrig::action_fcurve_remove(), blender::animrig::legacy::channel_groups_all(), channelbag_for_slot(), blender::animrig::fcurve_find_in_action(), 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 ~StripKeyframeData().
| int64_t blender::animrig::StripKeyframeData::find_channelbag_index | ( | const ChannelBag & | channelbag | ) | const |
Return the channelbag's index, or -1 if there is none for this slot handle.
Definition at line 1604 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, | ||
| FCurveDescriptor | fcurve_descriptor, | ||
| float2 | time_value, | ||
| const KeyframeSettings & | settings, | ||
| eInsertKeyFlags | insert_key_flags = INSERTKEY_NOFLAGS ) |
Definition at line 1836 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::ChannelBag::fcurve_ensure(), blender::animrig::FCURVE_NOT_KEYFRAMEABLE, blender::animrig::insert_vert_fcurve(), blender::animrig::key_insertion_may_create_fcurve(), ActionSlot::name, blender::animrig::FCurveDescriptor::rna_path, and blender::animrig::SUCCESS.
Referenced by 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_remove | ( | slot_handle_t | slot_handle | ) |
Remove all strip data for the given slot.
Typically only called from #Strip::slot_data_remove().
Definition at line 1673 of file animrig/intern/action.cc.
References channelbag(), channelbag_for_slot(), and channelbag_remove().
|
staticconstexpr |
Definition at line 740 of file ANIM_action.hh.
Referenced by blender::animrig::Strip::data(), and blender::animrig::Strip::data().