|
Blender V5.0
|
#include <algorithm>#include <cfloat>#include <cstdlib>#include <cstring>#include <functional>#include <optional>#include "MEM_guardedalloc.h"#include "BLI_array.hh"#include "BLI_bounds_types.hh"#include "BLI_listbase.h"#include "BLI_utildefines.h"#include "DNA_anim_types.h"#include "DNA_cachefile_types.h"#include "DNA_gpencil_legacy_types.h"#include "DNA_mask_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_sequence_types.h"#include "BKE_fcurve.hh"#include "BKE_grease_pencil.hh"#include "ED_anim_api.hh"#include "ED_keyframes_keylist.hh"#include "SEQ_retiming.hh"#include "ANIM_action.hh"Go to the source code of this file.
Classes | |
| struct | GreasePencilCel |
| struct | AnimKeylist |
| struct | BezTripleChain |
| struct | SeqAllocateData |
Typedefs | |
| using | KeylistCreateColumnFunction = std::function<ActKeyColumn *(void *userdata)> |
| using | KeylistUpdateColumnFunction = std::function<void(ActKeyColumn *, void *)> |
Variables | |
| static const ActKeyBlockInfo | dummy_keyblock = {0} |
| using KeylistCreateColumnFunction = std::function<ActKeyColumn *(void *userdata)> |
Definition at line 704 of file keyframes_keylist.cc.
| using KeylistUpdateColumnFunction = std::function<void(ActKeyColumn *, void *)> |
Definition at line 705 of file keyframes_keylist.cc.
| void action_group_to_keylist | ( | AnimData * | adt, |
| bActionGroup * | agrp, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1345 of file keyframes_keylist.cc.
References bActionGroup::channelbag, bActionGroup::channels, bActionGroup::fcurve_range_length, bActionGroup::fcurve_range_start, fcurve_to_keylist(), blender::animrig::Channelbag::fcurves(), and LISTBASE_FOREACH.
Referenced by actkeys_list_element_to_keylist(), animviz_calc_motionpaths(), and build_channel_keylist().
| void action_slot_summary_to_keylist | ( | bAnimContext * | ac, |
| ID * | animated_id, | ||
| blender::animrig::Action & | action, | ||
| blender::animrig::slot_handle_t | slot_handle, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Generate a summary channel keylist for the specified slot, merging it into keylist.
This filters the keys to be consistent with the visible channels in the editor indicated by ac
| animated_id | the particular animated ID that the slot summary is being generated for. This is needed for filtering channels based on bone selection, etc. NOTE: despite being passed as a pointer, this should never be null. It's currently passed as a pointer to be defensive because I (Nathan) am not 100% confident at the time of writing (PR #134922) that the callers of this actually guarantee a non-null pointer (they should, but bugs). This way we can assert internally to catch if that ever happens. |
| action | the action containing the slot to generate the summary for. |
| slot_handle | the handle of the slot to generate the summary for. |
| keylist | the keylist that the generated summary will be merged into. |
| saction_flag | needed for the SACTION_SHOW_EXTREMES flag, to determine whether to compute and store the data needed to determine which keys are "extremes" (local maxima/minima). |
| range | only keys within this time range will be included in the summary. |
Definition at line 1057 of file keyframes_keylist.cc.
References ALE_FCURVE, ANIM_animdata_freelist(), ANIM_animfilter_action_slot(), ANIM_nla_mapping_allowed(), ANIMFILTER_DATA_VISIBLE, BLI_assert, fcurve_to_keylist(), filter, LISTBASE_FOREACH, and blender::animrig::Action::slot_for_handle().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), blender::editor::animation::tests::TEST_F(), and blender::editor::animation::tests::TEST_F().
| void action_to_keylist | ( | AnimData * | adt, |
| bAction * | dna_action, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Generate a full list of the keys in dna_action that are within the frame range range.
For layered actions, this is limited to the keys that are for the slot assigned to adt.
Note: this should only be used in places that need or want the full list of keys, without any filtering by e.g. channel selection/visibility, etc. For use cases that need such filtering, use action_slot_summary_to_keylist() instead.
Assumption: the animation is bound to adt->slot_handle. This assumption will break when we have things like reference strips, where the strip can reference another slot handle.
Definition at line 1375 of file keyframes_keylist.cc.
References BLI_assert, bAction::curves, fcurve_to_keylist(), blender::animrig::Action::is_action_legacy(), LISTBASE_FOREACH, and AnimData::slot_handle.
Referenced by actkeys_list_element_to_keylist(), animviz_calc_motionpaths(), build_channel_keylist(), and nla_action_draw_keyframes().
| int actkeyblock_get_valid_hold | ( | const ActKeyColumn * | ac | ) |
Checks if ActKeyColumn can be used as a block (i.e. drawn/used to detect "holds").
Definition at line 996 of file keyframes_keylist.cc.
References ACTKEYBLOCK_FLAG_ANY_HOLD, ACTKEYBLOCK_FLAG_STATIC_HOLD, actkeyblock_is_valid(), ActKeyColumn::block, ActKeyBlockInfo::conflict, and ActKeyBlockInfo::flag.
Referenced by draw_keylist_block().
| bool actkeyblock_is_valid | ( | const ActKeyColumn * | ac | ) |
Checks if ActKeyColumn has any block data.
Definition at line 991 of file keyframes_keylist.cc.
References ActKeyColumn::next, and ActKeyColumn::totblock.
Referenced by actkeyblock_get_valid_hold(), and draw_keylist_block().
|
static |
Definition at line 897 of file keyframes_keylist.cc.
References add_keyblock_info(), BLI_assert, ActKeyColumn::cfra, col, compute_keyblock_data(), dummy_keyblock, ListBase::first, is_cfra_lt(), AnimKeylist::key_columns, keylist_find_exact_or_neighbor_column(), v, and BezTriple::vec.
Referenced by update_keyblocks().
|
static |
Definition at line 795 of file keyframes_keylist.cc.
References BezTripleChain::cur, ELEM, keylist_add_or_update_column(), nalloc_ak_bezt(), nupdate_ak_bezt(), and BezTriple::vec.
Referenced by fcurve_to_keylist().
|
static |
Definition at line 806 of file keyframes_keylist.cc.
References ELEM, bGPDframe::framenum, keylist_add_or_update_column(), nalloc_ak_gpframe(), and nupdate_ak_gpframe().
Referenced by gpl_to_keylist().
|
static |
Definition at line 879 of file keyframes_keylist.cc.
References col, ActKeyBlockInfo::flag, and ActKeyBlockInfo::sel.
Referenced by add_bezt_to_keyblocks_list().
|
static |
Definition at line 817 of file keyframes_keylist.cc.
References ELEM, MaskLayerShape::frame, keylist_add_or_update_column(), nalloc_ak_masklayshape(), and nupdate_ak_masklayshape().
Referenced by mask_to_keylist().
|
static |
Definition at line 439 of file keyframes_keylist.cc.
References BEZT_IPO_BEZ, BezTripleChain::cur, BezTriple::ipo, IS_EQF, KEYFRAME_EXTREME_FLAT, KEYFRAME_EXTREME_MAX, KEYFRAME_EXTREME_MIN, KEYFRAME_EXTREME_MIXED, KEYFRAME_EXTREME_NONE, BezTripleChain::next, BezTripleChain::prev, and BezTriple::vec.
Referenced by nalloc_ak_bezt(), and nupdate_ak_bezt().
|
static |
Definition at line 419 of file keyframes_keylist.cc.
References ELEM, BezTriple::h1, BezTriple::h2, HD_AUTO, HD_AUTO_ANIM, HD_FREE, HD_VECT, KEYFRAME_HANDLE_ALIGNED, KEYFRAME_HANDLE_AUTO, KEYFRAME_HANDLE_AUTO_CLAMP, KEYFRAME_HANDLE_FREE, and KEYFRAME_HANDLE_VECTOR.
Referenced by nalloc_ak_bezt(), and nupdate_ak_bezt().
| void cachefile_to_keylist | ( | bDopeSheet * | ads, |
| CacheFile * | cache_file, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag ) |
Definition at line 1201 of file keyframes_keylist.cc.
References bAnimContext::ads, bAnimListElem::adt, CacheFile::adt, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_nla_mapping_allowed(), ANIMCONT_CHANNEL, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMTYPE_DSCACHEFILE, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), filter, bDopeSheet::filterflag, bDopeSheet::filterflag2, bAnimContext::filters, bAnimContext::flag, bAnimContext::flag2, bAnimListElem::id, CacheFile::id, LISTBASE_FOREACH, and bAnimListElem::type.
|
static |
Definition at line 832 of file keyframes_keylist.cc.
References ACTKEYBLOCK_FLAG_ANY_HOLD, ACTKEYBLOCK_FLAG_MOVING_HOLD, ACTKEYBLOCK_FLAG_NON_BEZIER, ACTKEYBLOCK_FLAG_STATIC_HOLD, BEZKEYTYPE, BEZT_IPO_BEZ, BEZT_IPO_ELASTIC, BEZT_ISSEL_ANY, BEZT_KEYTYPE_MOVEHOLD, ELEM, ActKeyBlockInfo::flag, IS_EQF, ActKeyBlockInfo::sel, and BezTriple::vec.
Referenced by add_bezt_to_keyblocks_list().
| bool ED_keylist_all_keys_frame_range | ( | const AnimKeylist * | keylist, |
| Bounds< float > * | r_frame_range ) |
Definition at line 366 of file keyframes_keylist.cc.
References BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), keylist_first_last(), blender::Bounds< T >::max, and blender::Bounds< T >::min.
Referenced by animviz_motionpath_compute_range(), and nla_action_draw_keyframes().
| const ActKeyColumn * ED_keylist_array | ( | const AnimKeylist * | keylist | ) |
Definition at line 326 of file keyframes_keylist.cc.
References BLI_assert_msg, AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, and AnimKeylist::runtime.
Referenced by draw_channel_blocks(), and draw_channel_keys().
| int64_t ED_keylist_array_len | ( | const AnimKeylist * | keylist | ) |
Definition at line 334 of file keyframes_keylist.cc.
References AnimKeylist::column_len.
Referenced by draw_channel_blocks(), and draw_channel_keys().
| AnimKeylist * ED_keylist_create | ( | ) |
Definition at line 108 of file keyframes_keylist.cc.
Referenced by actkeys_find_key_in_list_element(), animviz_calc_motionpaths(), animviz_motionpath_compute_range(), channel_list_add_element(), blender::editor::animation::tests::create_test_keylist(), ensure_change_frame_keylist(), find_prev_next_keyframes(), get_keyed_frames_in_range(), get_selected_frames(), keyframe_jump_exec(), motionpath_calculate_update_range(), nla_action_draw_keyframes(), pose_slide_init(), blender::editor::animation::tests::TEST_F(), and blender::editor::animation::tests::TEST_F().
| const ActKeyColumn * ED_keylist_find_any_between | ( | const AnimKeylist * | keylist, |
| const Bounds< float > | frame_range ) |
Definition at line 305 of file keyframes_keylist.cc.
References BLI_assert_msg, ActKeyColumn::cfra, ED_keylist_is_empty(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_find_lower_bound(), blender::Bounds< T >::max, blender::Bounds< T >::min, and AnimKeylist::runtime.
Referenced by actkeys_find_key_in_list_element().
| const ActKeyColumn * ED_keylist_find_closest | ( | const AnimKeylist * | keylist, |
| const float | cfra ) |
Definition at line 270 of file keyframes_keylist.cc.
References BEZT_BINARYSEARCH_THRESH, BLI_assert_msg, ED_keylist_find_prev(), ED_keylist_is_empty(), ListBase::first, AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, ListBase::last, next, and AnimKeylist::runtime.
Referenced by append_keyframe_snap_target(), and blender::editor::animation::tests::TEST().
| const ActKeyColumn * ED_keylist_find_exact | ( | const AnimKeylist * | keylist, |
| const float | cfra ) |
Definition at line 210 of file keyframes_keylist.cc.
References BLI_assert_msg, ActKeyColumn::cfra, ED_keylist_is_empty(), is_cfra_eq(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_find_lower_bound(), and AnimKeylist::runtime.
Referenced by blender::editor::animation::tests::check_keylist_find_exact_range(), motionpaths_calc_bake_targets(), pose_slide_invoke_common(), blender::editor::animation::tests::TEST_F(), and blender::editor::animation::tests::TEST_F().
| const ActKeyColumn * ED_keylist_find_next | ( | const AnimKeylist * | keylist, |
| const float | cfra ) |
Definition at line 231 of file keyframes_keylist.cc.
References BLI_assert_msg, ED_keylist_is_empty(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_find_upper_bound(), and AnimKeylist::runtime.
Referenced by blender::editor::animation::tests::check_keylist_find_next_range(), find_prev_next_keyframes(), keyframe_jump_exec(), motionpath_get_next_keyframe(), and pose_slide_invoke_common().
| const ActKeyColumn * ED_keylist_find_prev | ( | const AnimKeylist * | keylist, |
| const float | cfra ) |
Definition at line 249 of file keyframes_keylist.cc.
References BLI_assert_msg, ED_keylist_is_empty(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_find_lower_bound(), ActKeyColumn::prev, and AnimKeylist::runtime.
Referenced by blender::editor::animation::tests::check_keylist_find_prev_range(), ED_keylist_find_closest(), find_prev_next_keyframes(), keyframe_jump_exec(), motionpath_get_prev_keyframe(), and pose_slide_invoke_common().
| void ED_keylist_free | ( | AnimKeylist * | keylist | ) |
Definition at line 114 of file keyframes_keylist.cc.
References BLI_assert.
Referenced by actkeys_find_key_in_list_element(), animviz_calc_motionpaths(), animviz_motionpath_compute_range(), ED_channel_list_free(), find_prev_next_keyframes(), get_keyed_frames_in_range(), get_selected_frames(), keyframe_jump_exec(), motionpath_calculate_update_range(), motionpath_free_free_tree_data(), nla_action_draw_keyframes(), pose_slide_exit(), blender::editor::animation::tests::TEST(), blender::editor::animation::tests::TEST(), blender::editor::animation::tests::TEST(), blender::editor::animation::tests::TEST(), blender::editor::animation::tests::TEST_F(), blender::editor::animation::tests::TEST_F(), and FrameChangeModalData::~FrameChangeModalData().
| bool ED_keylist_is_empty | ( | const AnimKeylist * | keylist | ) |
Definition at line 339 of file keyframes_keylist.cc.
References AnimKeylist::column_len.
Referenced by ED_keylist_all_keys_frame_range(), ED_keylist_find_any_between(), ED_keylist_find_closest(), ED_keylist_find_exact(), ED_keylist_find_next(), ED_keylist_find_prev(), ED_keylist_selected_keys_frame_range(), keylist_add_or_update_column(), keylist_find_exact_or_neighbor_column(), keylist_find_lower_bound(), keylist_find_upper_bound(), keylist_runtime_init_listbase(), nla_action_draw_keyframes(), and pose_slide_invoke_common().
| const ListBase * ED_keylist_listbase | ( | const AnimKeylist * | keylist | ) |
Definition at line 344 of file keyframes_keylist.cc.
References AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, AnimKeylist::list_wrapper, and AnimKeylist::runtime.
Referenced by channel_list_visible_key_len(), get_keyed_frames_in_range(), get_selected_frames(), and nla_action_draw_keyframes().
| void ED_keylist_prepare_for_direct_access | ( | AnimKeylist * | keylist | ) |
Definition at line 172 of file keyframes_keylist.cc.
References AnimKeylist::is_runtime_initialized, and keylist_runtime_init().
Referenced by actkeys_find_key_in_list_element(), animviz_calc_motionpaths(), blender::editor::animation::tests::create_test_keylist(), ensure_change_frame_keylist(), find_prev_next_keyframes(), keyframe_jump_exec(), motionpath_calculate_update_range(), pose_slide_invoke_common(), prepare_channel_for_drawing(), blender::editor::animation::tests::TEST_F(), and blender::editor::animation::tests::TEST_F().
| bool ED_keylist_selected_keys_frame_range | ( | const AnimKeylist * | keylist, |
| blender::Bounds< float > * | r_frame_range ) |
Return the selected key-frame's range. If none are selected, return False and do not affect the frame range.
Definition at line 383 of file keyframes_keylist.cc.
References BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), keylist_first_last(), blender::Bounds< T >::max, blender::Bounds< T >::min, ActKeyColumn::next, ActKeyColumn::prev, ActKeyColumn::sel, and SELECT.
Referenced by animviz_motionpath_compute_range().
| void fcurve_to_keylist | ( | AnimData * | adt, |
| FCurve * | fcu, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range, | ||
| bool | use_nla_remapping ) |
Add the keyframes of the F-Curve to the keylist.
| adt | the AnimData associated with the FCurve, if any. Must be non-null if use_nla_remapping is true, because it's needed for that remapping. |
| range | adds keys in the given range to the keylist plus 1 extra on each side if available. |
| use_nla_remapping | whether to allow NLA remapping or not. true by default, basically only false when this F-Curve is an NLA control curve (like animated influence) or a driver. |
Definition at line 1261 of file keyframes_keylist.cc.
References add_bezt_to_keycolumns_list(), ANIM_nla_mapping_apply_fcurve(), FCurve::bezt, BKE_fcurve_is_cyclic(), BLI_assert_msg, FLT_MAX, is_cyclic(), keylist_reset_last_accessed(), blender::Bounds< T >::max, blender::math::max(), blender::Bounds< T >::min, blender::math::min(), blender::math::min_max(), SACTION_SHOW_EXTREMES, set_up_beztriple_chain(), FCurve::totvert, update_keyblocks(), v, BezTriple::vec, and x.
Referenced by action_group_to_keylist(), action_slot_summary_to_keylist(), action_to_keylist(), actkeys_list_element_to_keylist(), animviz_motionpath_compute_range(), build_channel_keylist(), cachefile_to_keylist(), blender::editor::animation::tests::create_test_keylist(), ensure_change_frame_keylist(), get_keyed_frames_in_range(), get_selected_frames(), keylist_from_graph_editor(), motionpath_calculate_update_range(), ob_to_keylist(), pose_slide_invoke_common(), scene_to_keylist(), and summary_to_keylist().
| void gpencil_to_keylist | ( | bDopeSheet * | ads, |
| bGPdata * | gpd, | ||
| AnimKeylist * | keylist, | ||
| const bool | active ) |
Definition at line 1405 of file keyframes_keylist.cc.
References active, GP_LAYER_HIDE, GP_LAYER_SELECT, gpl_to_keylist(), bGPdata::layers, and LISTBASE_FOREACH_BACKWARD.
Referenced by find_prev_next_keyframes().
| void gpl_to_keylist | ( | bDopeSheet * | ads, |
| bGPDlayer * | gpl, | ||
| AnimKeylist * | keylist ) |
Definition at line 1480 of file keyframes_keylist.cc.
References add_gpframe_to_keycolumns_list(), bGPDlayer::frames, keylist_reset_last_accessed(), LISTBASE_FOREACH, and update_keyblocks().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), ensure_change_frame_keylist(), gpencil_to_keylist(), and summary_to_keylist().
| void grease_pencil_cels_to_keylist | ( | AnimData * | adt, |
| const GreasePencilLayer * | gpl, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag ) |
Definition at line 1442 of file keyframes_keylist.cc.
References float, GreasePencilCel::frame, GreasePencilCel::frame_number, blender::bke::greasepencil::Layer::frames(), Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), keylist_add_or_update_column(), nalloc_ak_cel(), and nupdate_ak_cel().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), ensure_change_frame_keylist(), grease_pencil_data_block_to_keylist(), grease_pencil_layer_group_to_keylist(), and summary_to_keylist().
| void grease_pencil_data_block_to_keylist | ( | AnimData * | adt, |
| const GreasePencil * | grease_pencil, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag, | ||
| const bool | active_layer_only ) |
Definition at line 1422 of file keyframes_keylist.cc.
References grease_pencil_cels_to_keylist().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), and keylist_fallback_for_keyframe_jump().
| void grease_pencil_layer_group_to_keylist | ( | AnimData * | adt, |
| const GreasePencilLayerTreeGroup * | layer_group, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag ) |
Definition at line 1460 of file keyframes_keylist.cc.
References blender::bke::greasepencil::TreeNode::as_group(), blender::bke::greasepencil::TreeNode::as_layer(), GreasePencilLayerTreeGroup::children, grease_pencil_cels_to_keylist(), grease_pencil_layer_group_to_keylist(), blender::bke::greasepencil::TreeNode::is_group(), blender::bke::greasepencil::TreeNode::is_layer(), and LISTBASE_FOREACH_BACKWARD.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), and grease_pencil_layer_group_to_keylist().
| BLI_INLINE bool is_cfra_eq | ( | const float | a, |
| const float | b ) |
Definition at line 49 of file keyframes_keylist.cc.
References b, BEZT_BINARYSEARCH_THRESH, BLI_INLINE, and IS_EQT.
Referenced by ED_keylist_find_exact(), keylist_add_or_update_column(), and keylist_find_exact_or_neighbor_column().
| BLI_INLINE bool is_cfra_lt | ( | const float | a, |
| const float | b ) |
Definition at line 54 of file keyframes_keylist.cc.
References b, BEZT_BINARYSEARCH_THRESH, and BLI_INLINE.
Referenced by add_bezt_to_keyblocks_list(), keylist_add_or_update_column(), keylist_find_lower_bound(), and keylist_find_upper_bound().
|
static |
Definition at line 758 of file keyframes_keylist.cc.
References BLI_addhead(), BLI_assert_msg, BLI_insertlinkafter(), BLI_insertlinkbefore(), ActKeyColumn::cfra, AnimKeylist::column_len, create_func(), ED_keylist_is_empty(), is_cfra_eq(), is_cfra_lt(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_find_exact_or_neighbor_column(), and AnimKeylist::last_accessed_column.
Referenced by add_bezt_to_keycolumns_list(), add_gpframe_to_keycolumns_list(), add_masklay_to_keycolumns_list(), grease_pencil_cels_to_keylist(), and sequencer_strip_to_keylist().
|
static |
Definition at line 120 of file keyframes_keylist.cc.
References AnimKeylist::key_columns, LISTBASE_FOREACH_INDEX, and AnimKeylist::runtime.
Referenced by keylist_runtime_init().
|
static |
Definition at line 735 of file keyframes_keylist.cc.
References BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), ListBase::first, is_cfra_eq(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_find_neighbor_back_to_front(), keylist_find_neighbor_front_to_back(), and AnimKeylist::last_accessed_column.
Referenced by add_bezt_to_keyblocks_list(), and keylist_add_or_update_column().
|
static |
Definition at line 180 of file keyframes_keylist.cc.
References begin(), BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), is_cfra_lt(), AnimKeylist::key_columns, and AnimKeylist::runtime.
Referenced by ED_keylist_find_any_between(), ED_keylist_find_exact(), and ED_keylist_find_prev().
|
static |
Definition at line 719 of file keyframes_keylist.cc.
References ActKeyColumn::cfra, and ActKeyColumn::prev.
Referenced by keylist_find_exact_or_neighbor_column().
|
static |
Definition at line 709 of file keyframes_keylist.cc.
References ActKeyColumn::cfra, and ActKeyColumn::next.
Referenced by keylist_find_exact_or_neighbor_column().
|
static |
Definition at line 195 of file keyframes_keylist.cc.
References begin(), BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), is_cfra_lt(), AnimKeylist::key_columns, and AnimKeylist::runtime.
Referenced by ED_keylist_find_next().
|
static |
Definition at line 352 of file keyframes_keylist.cc.
References AnimKeylist::column_len, ListBase::first, AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, ListBase::last, and AnimKeylist::runtime.
Referenced by ED_keylist_all_keys_frame_range(), and ED_keylist_selected_keys_frame_range().
|
static |
Definition at line 166 of file keyframes_keylist.cc.
References BLI_assert, AnimKeylist::is_runtime_initialized, and AnimKeylist::last_accessed_column.
Referenced by fcurve_to_keylist(), gpl_to_keylist(), mask_to_keylist(), and sequencer_strip_to_keylist().
|
static |
Definition at line 151 of file keyframes_keylist.cc.
References BLI_assert, AnimKeylist::column_len, AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_convert_key_columns_to_array(), keylist_runtime_init_listbase(), keylist_runtime_update_key_column_next_prev(), and AnimKeylist::runtime.
Referenced by ED_keylist_prepare_for_direct_access().
|
static |
Definition at line 140 of file keyframes_keylist.cc.
References BLI_listbase_clear(), AnimKeylist::column_len, ED_keylist_is_empty(), ListBase::first, AnimKeylist::key_columns, ListBase::last, AnimKeylist::list_wrapper, and AnimKeylist::runtime.
Referenced by keylist_runtime_init().
|
static |
Definition at line 128 of file keyframes_keylist.cc.
References AnimKeylist::column_len, AnimKeylist::key_columns, nullptr, and AnimKeylist::runtime.
Referenced by keylist_runtime_init().
| void mask_to_keylist | ( | bDopeSheet * | ads, |
| MaskLayer * | masklay, | ||
| AnimKeylist * | keylist ) |
Definition at line 1496 of file keyframes_keylist.cc.
References add_masklay_to_keycolumns_list(), keylist_reset_last_accessed(), LISTBASE_FOREACH, MaskLayer::splines_shapes, and update_keyblocks().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), find_prev_next_keyframes(), keylist_fallback_for_keyframe_jump(), and summary_to_keylist().
|
static |
Definition at line 491 of file keyframes_keylist.cc.
References BEZKEYTYPE, bezt_extreme_type(), bezt_handle_type(), BEZT_ISSEL_ANY, ActKeyColumn::cfra, BezTripleChain::cur, data, ActKeyColumn::extreme_type, ActKeyColumn::handle_type, ActKeyColumn::key_type, MEM_callocN(), ActKeyColumn::sel, SELECT, ActKeyColumn::totkey, and BezTriple::vec.
Referenced by add_bezt_to_keycolumns_list().
|
static |
Definition at line 548 of file keyframes_keylist.cc.
References ACTKEYBLOCK_FLAG_GPENCIL, ActKeyColumn::block, ActKeyColumn::cfra, data, ActKeyBlockInfo::flag, GreasePencilFrame::flag, GreasePencilCel::frame, GreasePencilCel::frame_number, ActKeyColumn::key_type, MEM_callocN(), ActKeyBlockInfo::sel, ActKeyColumn::sel, SELECT, ActKeyColumn::totblock, ActKeyColumn::totkey, and GreasePencilFrame::type.
Referenced by grease_pencil_cels_to_keylist().
|
static |
Definition at line 589 of file keyframes_keylist.cc.
References ACTKEYBLOCK_FLAG_GPENCIL, ActKeyColumn::block, ActKeyColumn::cfra, data, ActKeyBlockInfo::flag, bGPDframe::flag, bGPDframe::framenum, GP_FRAME_SELECT, ActKeyColumn::key_type, bGPDframe::key_type, MEM_callocN(), ActKeyBlockInfo::sel, ActKeyColumn::sel, SELECT, ActKeyColumn::totblock, and ActKeyColumn::totkey.
Referenced by add_gpframe_to_keycolumns_list().
|
static |
Definition at line 675 of file keyframes_keylist.cc.
References ActKeyColumn::cfra, data, MaskLayerShape::flag, MaskLayerShape::frame, MASK_SHAPE_SELECT, MEM_callocN(), ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_masklay_to_keycolumns_list().
|
static |
Definition at line 638 of file keyframes_keylist.cc.
References ActKeyColumn::block, ActKeyColumn::cfra, data, ActKeyBlockInfo::flag, SeqRetimingKey::flag, SeqAllocateData::key, ActKeyColumn::key_type, MEM_callocN(), ActKeyBlockInfo::sel, ActKeyColumn::sel, SELECT, SEQ_KEY_SELECTED, SeqAllocateData::timeline_frame, ActKeyColumn::totblock, and ActKeyColumn::totkey.
Referenced by sequencer_strip_to_keylist().
|
static |
Definition at line 511 of file keyframes_keylist.cc.
References BEZKEYTYPE, bezt_extreme_type(), bezt_handle_type(), BEZT_ISSEL_ANY, BEZT_KEYTYPE_KEYFRAME, BezTripleChain::cur, data, ActKeyColumn::extreme_type, ActKeyColumn::handle_type, ActKeyColumn::key_type, KEYFRAME_EXTREME_FLAT, KEYFRAME_EXTREME_MIXED, ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_bezt_to_keycolumns_list().
|
static |
Definition at line 569 of file keyframes_keylist.cc.
References BEZT_KEYTYPE_KEYFRAME, data, GreasePencilFrame::flag, GreasePencilCel::frame, GP_FRAME_SELECTED, ActKeyColumn::key_type, ActKeyColumn::sel, SELECT, ActKeyColumn::totkey, and GreasePencilFrame::type.
Referenced by grease_pencil_cels_to_keylist().
|
static |
Definition at line 610 of file keyframes_keylist.cc.
References BEZT_KEYTYPE_KEYFRAME, data, bGPDframe::flag, GP_FRAME_SELECT, ActKeyColumn::key_type, bGPDframe::key_type, ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_gpframe_to_keycolumns_list().
|
static |
Definition at line 691 of file keyframes_keylist.cc.
References data, MaskLayerShape::flag, MASK_SHAPE_SELECT, ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_masklay_to_keycolumns_list().
|
static |
Definition at line 660 of file keyframes_keylist.cc.
References data, SeqRetimingKey::flag, SeqAllocateData::key, ActKeyColumn::sel, SELECT, SEQ_KEY_SELECTED, and ActKeyColumn::totkey.
Referenced by sequencer_strip_to_keylist().
| void ob_to_keylist | ( | bDopeSheet * | ads, |
| Object * | ob, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1154 of file keyframes_keylist.cc.
References bAnimContext::ads, bAnimListElem::adt, Object::adt, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_nla_mapping_allowed(), ANIMCONT_CHANNEL, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMTYPE_OBJECT, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), filter, bDopeSheet::filterflag, bDopeSheet::filterflag2, bAnimContext::filters, bAnimContext::flag, bAnimContext::flag2, bAnimListElem::id, Object::id, LISTBASE_FOREACH, Base::object, and bAnimListElem::type.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), find_prev_next_keyframes(), and keylist_fallback_for_keyframe_jump().
| void scene_to_keylist | ( | bDopeSheet * | ads, |
| Scene * | sce, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1109 of file keyframes_keylist.cc.
References bAnimContext::ads, bAnimListElem::adt, Scene::adt, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_nla_mapping_allowed(), ANIMCONT_CHANNEL, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMTYPE_SCENE, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), filter, bDopeSheet::filterflag, bDopeSheet::filterflag2, bAnimContext::filters, bAnimContext::flag, bAnimContext::flag2, bAnimListElem::id, Scene::id, LISTBASE_FOREACH, and bAnimListElem::type.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), find_prev_next_keyframes(), and keylist_fallback_for_keyframe_jump().
| void sequencer_strip_to_keylist | ( | const Strip & | strip, |
| AnimKeylist & | keylist, | ||
| Scene & | scene ) |
Definition at line 1509 of file keyframes_keylist.cc.
References keylist_add_or_update_column(), keylist_reset_last_accessed(), nalloc_ak_seqframe(), nupdate_ak_seqframe(), blender::seq::retiming_is_active(), blender::seq::retiming_key_timeline_frame_get(), blender::seq::retiming_keys_get(), and update_keyblocks().
Referenced by ensure_change_frame_keylist().
|
inlinestatic |
Definition at line 1242 of file keyframes_keylist.cc.
References FCurve::bezt, BezTripleChain::cur, is_cyclic(), BezTripleChain::next, BezTripleChain::prev, and FCurve::totvert.
Referenced by fcurve_to_keylist().
| void summary_to_keylist | ( | bAnimContext * | ac, |
| AnimKeylist * | keylist, | ||
| const int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1008 of file keyframes_keylist.cc.
References bAnimContext::ads, ALE_FCURVE, ALE_GPFRAME, ALE_GREASE_PENCIL_CEL, ALE_MASKLAY, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_nla_mapping_allowed(), ANIMFILTER_DATA_VISIBLE, bAnimContext::data, bAnimContext::datatype, fcurve_to_keylist(), filter, gpl_to_keylist(), grease_pencil_cels_to_keylist(), LISTBASE_FOREACH, and mask_to_keylist().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), and keylist_from_dopesheet().
|
static |
Definition at line 959 of file keyframes_keylist.cc.
References add_bezt_to_keyblocks_list(), ActKeyColumn::block, col, AnimKeylist::key_columns, LISTBASE_FOREACH, and ActKeyColumn::totblock.
Referenced by fcurve_to_keylist(), gpl_to_keylist(), mask_to_keylist(), and sequencer_strip_to_keylist().
|
static |
Definition at line 830 of file keyframes_keylist.cc.
Referenced by add_bezt_to_keyblocks_list().