|
Blender V4.5
|
#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 1339 of file keyframes_keylist.cc.
References action_group_to_keylist(), bActionGroup::channelbag, bActionGroup::channels, bActionGroup::fcurve_range_length, bActionGroup::fcurve_range_start, fcurve_to_keylist(), blender::animrig::Channelbag::fcurves(), and LISTBASE_FOREACH.
Referenced by action_group_to_keylist(), 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 action_slot_summary_to_keylist(), 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 action_slot_summary_to_keylist(), 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 1369 of file keyframes_keylist.cc.
References action_to_keylist(), BLI_assert, bAction::curves, fcurve_to_keylist(), blender::animrig::Action::is_action_legacy(), LISTBASE_FOREACH, and AnimData::slot_handle.
Referenced by action_to_keylist(), 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_get_valid_hold(), actkeyblock_is_valid(), ActKeyColumn::block, ActKeyBlockInfo::conflict, and ActKeyBlockInfo::flag.
Referenced by actkeyblock_get_valid_hold(), and 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 actkeyblock_is_valid(), ActKeyColumn::next, and ActKeyColumn::totblock.
Referenced by actkeyblock_get_valid_hold(), actkeyblock_is_valid(), and draw_keylist_block().
|
static |
Definition at line 897 of file keyframes_keylist.cc.
References add_bezt_to_keyblocks_list(), add_keyblock_info(), BLI_assert, ActKeyColumn::cfra, compute_keyblock_data(), dummy_keyblock, ListBase::first, is_cfra_lt(), AnimKeylist::key_columns, keylist_find_exact_or_neighbor_column(), ActKeyColumn::next, ActKeyColumn::prev, v, and BezTriple::vec.
Referenced by add_bezt_to_keyblocks_list(), and update_keyblocks().
|
static |
Definition at line 795 of file keyframes_keylist.cc.
References add_bezt_to_keycolumns_list(), BezTripleChain::cur, ELEM, keylist_add_or_update_column(), nalloc_ak_bezt(), nupdate_ak_bezt(), and BezTriple::vec.
Referenced by add_bezt_to_keycolumns_list(), and fcurve_to_keylist().
|
static |
Definition at line 806 of file keyframes_keylist.cc.
References add_gpframe_to_keycolumns_list(), ELEM, bGPDframe::framenum, keylist_add_or_update_column(), nalloc_ak_gpframe(), and nupdate_ak_gpframe().
Referenced by add_gpframe_to_keycolumns_list(), and gpl_to_keylist().
|
static |
Definition at line 879 of file keyframes_keylist.cc.
References add_keyblock_info(), ActKeyColumn::block, ActKeyBlockInfo::conflict, ActKeyBlockInfo::flag, ActKeyBlockInfo::sel, ActKeyColumn::totblock, and ActKeyColumn::totcurve.
Referenced by add_bezt_to_keyblocks_list(), and add_keyblock_info().
|
static |
Definition at line 817 of file keyframes_keylist.cc.
References add_masklay_to_keycolumns_list(), ELEM, MaskLayerShape::frame, keylist_add_or_update_column(), nalloc_ak_masklayshape(), and nupdate_ak_masklayshape().
Referenced by add_masklay_to_keycolumns_list(), and mask_to_keylist().
|
static |
Definition at line 439 of file keyframes_keylist.cc.
References bezt_extreme_type(), 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 bezt_extreme_type(), nalloc_ak_bezt(), and nupdate_ak_bezt().
|
static |
Definition at line 419 of file keyframes_keylist.cc.
References bezt_handle_type(), 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 bezt_handle_type(), 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 1197 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, cachefile_to_keylist(), bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), filter, bAnimListElem::id, CacheFile::id, LISTBASE_FOREACH, and bAnimListElem::type.
Referenced by cachefile_to_keylist().
|
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, compute_keyblock_data(), ELEM, ActKeyBlockInfo::flag, IS_EQF, ActKeyBlockInfo::sel, and BezTriple::vec.
Referenced by add_bezt_to_keyblocks_list(), and compute_keyblock_data().
| 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_all_keys_frame_range(), ED_keylist_is_empty(), keylist_first_last(), blender::Bounds< T >::max, and blender::Bounds< T >::min.
Referenced by animviz_motionpath_compute_range(), ED_keylist_all_keys_frame_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, ED_keylist_array(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, and AnimKeylist::runtime.
Referenced by draw_channel_blocks(), draw_channel_keys(), and ED_keylist_array().
| int64_t ED_keylist_array_len | ( | const AnimKeylist * | keylist | ) |
Definition at line 334 of file keyframes_keylist.cc.
References AnimKeylist::column_len, and ED_keylist_array_len().
Referenced by draw_channel_blocks(), draw_channel_keys(), and ED_keylist_array_len().
| AnimKeylist * ED_keylist_create | ( | ) |
Definition at line 108 of file keyframes_keylist.cc.
References AnimKeylist::AnimKeylist(), and ED_keylist_create().
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(), ED_keylist_create(), 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_find_any_between(), 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(), and ED_keylist_find_any_between().
| 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, ActKeyColumn::cfra, ED_keylist_find_closest(), ED_keylist_find_prev(), ED_keylist_is_empty(), ListBase::first, AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, ListBase::last, and AnimKeylist::runtime.
Referenced by append_keyframe_snap_target(), ED_keylist_find_closest(), 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_find_exact(), 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(), ED_keylist_find_exact(), 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_find_next(), 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(), ED_keylist_find_next(), 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_find_prev(), 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(), ED_keylist_find_prev(), 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, and ED_keylist_free().
Referenced by actkeys_find_key_in_list_element(), animviz_calc_motionpaths(), animviz_motionpath_compute_range(), ED_channel_list_free(), ED_keylist_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, and ED_keylist_is_empty().
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_is_empty(), 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 ED_keylist_listbase(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, and AnimKeylist::runtime.
Referenced by channel_list_visible_key_len(), ED_keylist_listbase(), 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 ED_keylist_prepare_for_direct_access(), 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(), ED_keylist_prepare_for_direct_access(), 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(), ED_keylist_selected_keys_frame_range(), 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(), and ED_keylist_selected_keys_frame_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 1255 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, fcurve_to_keylist(), FLT_MAX, 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(), fcurve_to_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 1399 of file keyframes_keylist.cc.
References active, GP_LAYER_HIDE, GP_LAYER_SELECT, gpencil_to_keylist(), gpl_to_keylist(), bGPdata::layers, and LISTBASE_FOREACH_BACKWARD.
Referenced by find_prev_next_keyframes(), and gpencil_to_keylist().
| void gpl_to_keylist | ( | bDopeSheet * | ads, |
| bGPDlayer * | gpl, | ||
| AnimKeylist * | keylist ) |
Definition at line 1474 of file keyframes_keylist.cc.
References add_gpframe_to_keycolumns_list(), bGPDlayer::frames, gpl_to_keylist(), 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(), gpl_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 1436 of file keyframes_keylist.cc.
References GreasePencilCel::frame, GreasePencilCel::frame_number, blender::bke::greasepencil::Layer::frames(), grease_pencil_cels_to_keylist(), 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_cels_to_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 1416 of file keyframes_keylist.cc.
References grease_pencil_cels_to_keylist(), and grease_pencil_data_block_to_keylist().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), grease_pencil_data_block_to_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 1454 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, is_cfra_eq(), and IS_EQT.
Referenced by ED_keylist_find_exact(), is_cfra_eq(), 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, BLI_INLINE, and is_cfra_lt().
Referenced by add_bezt_to_keyblocks_list(), is_cfra_lt(), 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, ED_keylist_is_empty(), is_cfra_eq(), is_cfra_lt(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_add_or_update_column(), 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(), keylist_add_or_update_column(), and sequencer_strip_to_keylist().
|
static |
Definition at line 120 of file keyframes_keylist.cc.
References AnimKeylist::key_columns, keylist_convert_key_columns_to_array(), LISTBASE_FOREACH_INDEX, and AnimKeylist::runtime.
Referenced by keylist_convert_key_columns_to_array(), and 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_exact_or_neighbor_column(), keylist_find_neighbor_back_to_front(), keylist_find_neighbor_front_to_back(), and AnimKeylist::last_accessed_column.
Referenced by add_bezt_to_keyblocks_list(), keylist_add_or_update_column(), and keylist_find_exact_or_neighbor_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, keylist_find_lower_bound(), and AnimKeylist::runtime.
Referenced by ED_keylist_find_any_between(), ED_keylist_find_exact(), ED_keylist_find_prev(), and keylist_find_lower_bound().
|
static |
Definition at line 719 of file keyframes_keylist.cc.
References ActKeyColumn::cfra, keylist_find_neighbor_back_to_front(), and ActKeyColumn::prev.
Referenced by keylist_find_exact_or_neighbor_column(), and keylist_find_neighbor_back_to_front().
|
static |
Definition at line 709 of file keyframes_keylist.cc.
References ActKeyColumn::cfra, keylist_find_neighbor_front_to_back(), and ActKeyColumn::next.
Referenced by keylist_find_exact_or_neighbor_column(), and keylist_find_neighbor_front_to_back().
|
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, keylist_find_upper_bound(), and AnimKeylist::runtime.
Referenced by ED_keylist_find_next(), and keylist_find_upper_bound().
|
static |
Definition at line 352 of file keyframes_keylist.cc.
References AnimKeylist::column_len, ListBase::first, AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, keylist_first_last(), ListBase::last, and AnimKeylist::runtime.
Referenced by ED_keylist_all_keys_frame_range(), ED_keylist_selected_keys_frame_range(), and keylist_first_last().
|
static |
Definition at line 166 of file keyframes_keylist.cc.
References BLI_assert, AnimKeylist::is_runtime_initialized, keylist_reset_last_accessed(), and AnimKeylist::last_accessed_column.
Referenced by fcurve_to_keylist(), gpl_to_keylist(), keylist_reset_last_accessed(), 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(), keylist_runtime_init_listbase(), keylist_runtime_update_key_column_next_prev(), and AnimKeylist::runtime.
Referenced by ED_keylist_prepare_for_direct_access(), and keylist_runtime_init().
|
static |
Definition at line 140 of file keyframes_keylist.cc.
References BLI_listbase_clear(), AnimKeylist::column_len, ED_keylist_is_empty(), AnimKeylist::key_columns, keylist_runtime_init_listbase(), and AnimKeylist::runtime.
Referenced by keylist_runtime_init(), and keylist_runtime_init_listbase().
|
static |
Definition at line 128 of file keyframes_keylist.cc.
References AnimKeylist::column_len, AnimKeylist::key_columns, keylist_runtime_update_key_column_next_prev(), nullptr, and AnimKeylist::runtime.
Referenced by keylist_runtime_init(), and keylist_runtime_update_key_column_next_prev().
| void mask_to_keylist | ( | bDopeSheet * | ads, |
| MaskLayer * | masklay, | ||
| AnimKeylist * | keylist ) |
Definition at line 1490 of file keyframes_keylist.cc.
References add_masklay_to_keycolumns_list(), keylist_reset_last_accessed(), LISTBASE_FOREACH, mask_to_keylist(), 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(), mask_to_keylist(), 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(), nalloc_ak_bezt(), ActKeyColumn::sel, SELECT, ActKeyColumn::totkey, and BezTriple::vec.
Referenced by add_bezt_to_keycolumns_list(), and nalloc_ak_bezt().
|
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(), nalloc_ak_cel(), ActKeyBlockInfo::sel, ActKeyColumn::sel, SELECT, ActKeyColumn::totblock, ActKeyColumn::totkey, and GreasePencilFrame::type.
Referenced by grease_pencil_cels_to_keylist(), and nalloc_ak_cel().
|
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(), nalloc_ak_gpframe(), ActKeyBlockInfo::sel, ActKeyColumn::sel, SELECT, ActKeyColumn::totblock, and ActKeyColumn::totkey.
Referenced by add_gpframe_to_keycolumns_list(), and nalloc_ak_gpframe().
|
static |
Definition at line 675 of file keyframes_keylist.cc.
References ActKeyColumn::cfra, data, MaskLayerShape::flag, MaskLayerShape::frame, MASK_SHAPE_SELECT, MEM_callocN(), nalloc_ak_masklayshape(), ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_masklay_to_keycolumns_list(), and nalloc_ak_masklayshape().
|
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(), nalloc_ak_seqframe(), ActKeyBlockInfo::sel, ActKeyColumn::sel, SELECT, SEQ_KEY_SELECTED, SeqAllocateData::timeline_frame, ActKeyColumn::totblock, and ActKeyColumn::totkey.
Referenced by nalloc_ak_seqframe(), and 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, nupdate_ak_bezt(), ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_bezt_to_keycolumns_list(), and nupdate_ak_bezt().
|
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, nupdate_ak_cel(), ActKeyColumn::sel, SELECT, ActKeyColumn::totkey, and GreasePencilFrame::type.
Referenced by grease_pencil_cels_to_keylist(), and nupdate_ak_cel().
|
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, nupdate_ak_gpframe(), ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_gpframe_to_keycolumns_list(), and nupdate_ak_gpframe().
|
static |
Definition at line 691 of file keyframes_keylist.cc.
References data, MaskLayerShape::flag, MASK_SHAPE_SELECT, nupdate_ak_masklayshape(), ActKeyColumn::sel, SELECT, and ActKeyColumn::totkey.
Referenced by add_masklay_to_keycolumns_list(), and nupdate_ak_masklayshape().
|
static |
Definition at line 660 of file keyframes_keylist.cc.
References data, SeqRetimingKey::flag, SeqAllocateData::key, nupdate_ak_seqframe(), ActKeyColumn::sel, SELECT, SEQ_KEY_SELECTED, and ActKeyColumn::totkey.
Referenced by nupdate_ak_seqframe(), and sequencer_strip_to_keylist().
| void ob_to_keylist | ( | bDopeSheet * | ads, |
| Object * | ob, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1152 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, bAnimListElem::id, Object::id, LISTBASE_FOREACH, ob_to_keylist(), Base::object, and bAnimListElem::type.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), find_prev_next_keyframes(), keylist_fallback_for_keyframe_jump(), and ob_to_keylist().
| 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, bAnimListElem::id, Scene::id, LISTBASE_FOREACH, scene_to_keylist(), and bAnimListElem::type.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), find_prev_next_keyframes(), keylist_fallback_for_keyframe_jump(), and scene_to_keylist().
| void sequencer_strip_to_keylist | ( | const Strip & | strip, |
| AnimKeylist & | keylist, | ||
| Scene & | scene ) |
Definition at line 1503 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(), sequencer_strip_to_keylist(), and update_keyblocks().
Referenced by ensure_change_frame_keylist(), and sequencer_strip_to_keylist().
|
inlinestatic |
Definition at line 1236 of file keyframes_keylist.cc.
References FCurve::bezt, BezTripleChain::cur, BezTripleChain::next, BezTripleChain::prev, set_up_beztriple_chain(), and FCurve::totvert.
Referenced by fcurve_to_keylist(), and set_up_beztriple_chain().
| 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, mask_to_keylist(), and summary_to_keylist().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), keylist_from_dopesheet(), and summary_to_keylist().
|
static |
Definition at line 959 of file keyframes_keylist.cc.
References add_bezt_to_keyblocks_list(), ActKeyColumn::block, AnimKeylist::key_columns, LISTBASE_FOREACH, ActKeyColumn::totblock, and update_keyblocks().
Referenced by fcurve_to_keylist(), gpl_to_keylist(), mask_to_keylist(), sequencer_strip_to_keylist(), and update_keyblocks().
|
static |
Definition at line 830 of file keyframes_keylist.cc.
Referenced by add_bezt_to_keyblocks_list().