|
Blender V4.3
|
#include "BLI_math_vector_types.hh"#include "BLI_range.h"#include "DNA_curve_types.h"#include "ANIM_action.hh"Go to the source code of this file.
Classes | |
| struct | ActKeyBlockInfo |
| struct | ActKeyColumn |
Namespaces | |
| namespace | blender |
| namespace | blender::animrig |
Enumerations | |
| enum | eActKeyBlock_Hold { ACTKEYBLOCK_FLAG_MOVING_HOLD = (1 << 0) , ACTKEYBLOCK_FLAG_STATIC_HOLD = (1 << 1) , ACTKEYBLOCK_FLAG_ANY_HOLD = (1 << 2) , ACTKEYBLOCK_FLAG_NON_BEZIER = (1 << 3) , ACTKEYBLOCK_FLAG_GPENCIL = (1 << 4) } |
| enum | eKeyframeShapeDrawOpts { KEYFRAME_SHAPE_FRAME = 0 , KEYFRAME_SHAPE_INSIDE , KEYFRAME_SHAPE_BOTH } |
| enum | eKeyframeHandleDrawOpts { KEYFRAME_HANDLE_NONE = 0 , KEYFRAME_HANDLE_AUTO_CLAMP , KEYFRAME_HANDLE_AUTO , KEYFRAME_HANDLE_VECTOR , KEYFRAME_HANDLE_ALIGNED , KEYFRAME_HANDLE_FREE } |
| enum | eKeyframeExtremeDrawOpts { KEYFRAME_EXTREME_NONE = 0 , KEYFRAME_EXTREME_MIN = (1 << 0) , KEYFRAME_EXTREME_MAX = (1 << 1) , KEYFRAME_EXTREME_MIXED = (1 << 2) , KEYFRAME_EXTREME_FLAT = (1 << 3) } |
| enum eActKeyBlock_Hold |
ActKeyBlockInfo - Flag.
| Enumerator | |
|---|---|
| ACTKEYBLOCK_FLAG_MOVING_HOLD | Key block represents a moving hold. |
| ACTKEYBLOCK_FLAG_STATIC_HOLD | Key block represents a static hold |
| ACTKEYBLOCK_FLAG_ANY_HOLD | Key block represents any kind of hold. |
| ACTKEYBLOCK_FLAG_NON_BEZIER | The curve segment uses non-bezier interpolation. |
| ACTKEYBLOCK_FLAG_GPENCIL | The block is grease pencil. |
Definition at line 85 of file ED_keyframes_keylist.hh.
Extreme type.
Definition at line 123 of file ED_keyframes_keylist.hh.
Handle type.
| Enumerator | |
|---|---|
| KEYFRAME_HANDLE_NONE | |
| KEYFRAME_HANDLE_AUTO_CLAMP | |
| KEYFRAME_HANDLE_AUTO | |
| KEYFRAME_HANDLE_VECTOR | |
| KEYFRAME_HANDLE_ALIGNED | |
| KEYFRAME_HANDLE_FREE | |
Definition at line 111 of file ED_keyframes_keylist.hh.
Options for keyframe shape drawing.
| Enumerator | |
|---|---|
| KEYFRAME_SHAPE_FRAME | |
| KEYFRAME_SHAPE_INSIDE | |
| KEYFRAME_SHAPE_BOTH | |
Definition at line 101 of file ED_keyframes_keylist.hh.
| void action_group_to_keylist | ( | AnimData * | adt, |
| bActionGroup * | agrp, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1193 of file keyframes_keylist.cc.
References bActionGroup::channel_bag, 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_to_keylist | ( | AnimData * | adt, |
| blender::animrig::Action & | action, | ||
| blender::animrig::slot_handle_t | slot_handle, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1223 of file keyframes_keylist.cc.
References BLI_assert, fcurve_to_keylist(), GS, bAction::id, ID_AC, and ID::name.
Referenced by action_to_keylist(), actkeys_list_element_to_keylist(), and build_channel_keylist().
| void action_to_keylist | ( | AnimData * | adt, |
| bAction * | act, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
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 1236 of file keyframes_keylist.cc.
References action_slot_to_keylist(), 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 924 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 919 of file keyframes_keylist.cc.
References ActKeyColumn::next, and ActKeyColumn::totblock.
Referenced by actkeyblock_get_valid_hold(), and draw_keylist_block().
| void cachefile_to_keylist | ( | bDopeSheet * | ads, |
| CacheFile * | cache_file, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag ) |
Definition at line 1062 of file keyframes_keylist.cc.
References bAnimContext::ads, bAnimListElem::adt, CacheFile::adt, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIMCONT_CHANNEL, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMTYPE_DSCACHEFILE, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), bAnimListElem::id, CacheFile::id, LISTBASE_FOREACH, and bAnimListElem::type.
| bool ED_keylist_all_keys_frame_range | ( | const AnimKeylist * | keylist, |
| Range2f * | r_frame_range ) |
Definition at line 334 of file keyframes_keylist.cc.
References BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), keylist_first_last(), Range2f::max, and Range2f::min.
Referenced by animviz_motionpath_compute_range(), and nla_action_draw_keyframes().
| const ActKeyColumn * ED_keylist_array | ( | const AnimKeylist * | keylist | ) |
Definition at line 294 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 302 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 109 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(), find_prev_next_keyframes(), get_keyed_frames_in_range(), get_selected_frames(), keyframe_jump_exec(), motionpath_calculate_update_range(), nla_action_draw_keyframes(), and pose_slide_init().
| const ActKeyColumn * ED_keylist_find_any_between | ( | const AnimKeylist * | keylist, |
| const Range2f | frame_range ) |
Definition at line 273 of file keyframes_keylist.cc.
References BLI_assert_msg, ActKeyColumn::cfra, ED_keylist_find_lower_bound(), ED_keylist_is_empty(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, Range2f::max, Range2f::min, and AnimKeylist::runtime.
Referenced by actkeys_find_key_in_list_element().
| const ActKeyColumn * ED_keylist_find_exact | ( | const AnimKeylist * | keylist, |
| float | cfra ) |
Definition at line 213 of file keyframes_keylist.cc.
References BLI_assert_msg, ActKeyColumn::cfra, ED_keylist_find_lower_bound(), ED_keylist_is_empty(), is_cfra_eq(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, and AnimKeylist::runtime.
Referenced by blender::editor::animation::tests::check_keylist_find_exact_range(), motionpaths_calc_bake_targets(), and pose_slide_invoke_common().
| const ActKeyColumn * ED_keylist_find_next | ( | const AnimKeylist * | keylist, |
| float | cfra ) |
Definition at line 234 of file keyframes_keylist.cc.
References BLI_assert_msg, ED_keylist_find_upper_bound(), ED_keylist_is_empty(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, 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, |
| float | cfra ) |
Definition at line 252 of file keyframes_keylist.cc.
References BLI_assert_msg, ED_keylist_find_lower_bound(), ED_keylist_is_empty(), AnimKeylist::is_runtime_initialized, AnimKeylist::key_columns, ActKeyColumn::prev, and AnimKeylist::runtime.
Referenced by blender::editor::animation::tests::check_keylist_find_prev_range(), 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 115 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(), and blender::editor::animation::tests::TEST().
| bool ED_keylist_is_empty | ( | const AnimKeylist * | keylist | ) |
Definition at line 307 of file keyframes_keylist.cc.
References AnimKeylist::column_len.
Referenced by ED_keylist_add_or_update_column(), ED_keylist_all_keys_frame_range(), ED_keylist_find_any_between(), ED_keylist_find_exact(), ED_keylist_find_exact_or_neighbor_column(), ED_keylist_find_lower_bound(), ED_keylist_find_next(), ED_keylist_find_prev(), ED_keylist_find_upper_bound(), ED_keylist_runtime_init_listbase(), ED_keylist_selected_keys_frame_range(), nla_action_draw_keyframes(), and pose_slide_invoke_common().
| const ListBase * ED_keylist_listbase | ( | const AnimKeylist * | keylist | ) |
Definition at line 312 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 173 of file keyframes_keylist.cc.
References ED_keylist_runtime_init(), and AnimKeylist::is_runtime_initialized.
Referenced by actkeys_find_key_in_list_element(), animviz_calc_motionpaths(), blender::editor::animation::tests::create_test_keylist(), find_prev_next_keyframes(), keyframe_jump_exec(), motionpath_calculate_update_range(), pose_slide_invoke_common(), and prepare_channel_for_drawing().
| bool ED_keylist_selected_keys_frame_range | ( | const AnimKeylist * | keylist, |
| Range2f * | 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 351 of file keyframes_keylist.cc.
References BLI_assert, ActKeyColumn::cfra, ED_keylist_is_empty(), keylist_first_last(), Range2f::max, Range2f::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 ) |
Add the keyframes of the F-Curve to the keylist.
| adt | can be a nullptr. |
| range | adds keys in the given range to the keylist plus 1 extra on each side if available. |
Definition at line 1117 of file keyframes_keylist.cc.
References add_bezt_to_keycolumns_list(), ANIM_nla_mapping_apply_fcurve(), FCurve::bezt, BKE_fcurve_is_cyclic(), ED_keylist_reset_last_accessed(), FLT_MAX, is_cyclic(), 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_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(), get_keyed_frames_in_range(), get_selected_frames(), 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, | ||
| bool | active ) |
Definition at line 1263 of file keyframes_keylist.cc.
References GP_LAYER_HIDE, GP_LAYER_SELECT, gpl_to_keylist(), bGPdata::layers, and LISTBASE_FOREACH_BACKWARD.
Referenced by find_prev_next_keyframes(), and keyframe_jump_exec().
| void gpl_to_keylist | ( | bDopeSheet * | ads, |
| bGPDlayer * | gpl, | ||
| AnimKeylist * | keylist ) |
Definition at line 1338 of file keyframes_keylist.cc.
References add_gpframe_to_keycolumns_list(), ED_keylist_reset_last_accessed(), bGPDlayer::frames, LISTBASE_FOREACH, and update_keyblocks().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), gpencil_to_keylist(), and summary_to_keylist().
| void grease_pencil_cels_to_keylist | ( | AnimData * | adt, |
| const GreasePencilLayer * | layer, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag ) |
Definition at line 1300 of file keyframes_keylist.cc.
References ED_keylist_add_or_update_column(), float, GreasePencilCel::frame_number, nalloc_ak_cel(), and nupdate_ak_cel().
Referenced by actkeys_list_element_to_keylist(), build_channel_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, | ||
| bool | active_layer_only ) |
Definition at line 1280 of file keyframes_keylist.cc.
References grease_pencil_cels_to_keylist().
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), and keyframe_jump_exec().
| void grease_pencil_layer_group_to_keylist | ( | AnimData * | adt, |
| const GreasePencilLayerTreeGroup * | layer_group, | ||
| AnimKeylist * | keylist, | ||
| const int | saction_flag ) |
Definition at line 1318 of file keyframes_keylist.cc.
References GreasePencilLayerTreeGroup::children, grease_pencil_cels_to_keylist(), grease_pencil_layer_group_to_keylist(), and LISTBASE_FOREACH_BACKWARD.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), and grease_pencil_layer_group_to_keylist().
| void mask_to_keylist | ( | bDopeSheet * | ads, |
| MaskLayer * | masklay, | ||
| AnimKeylist * | keylist ) |
Definition at line 1354 of file keyframes_keylist.cc.
References add_masklay_to_keycolumns_list(), ED_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(), keyframe_jump_exec(), and summary_to_keylist().
| void ob_to_keylist | ( | bDopeSheet * | ads, |
| Object * | ob, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 1021 of file keyframes_keylist.cc.
References bAnimContext::ads, bAnimListElem::adt, Object::adt, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIMCONT_CHANNEL, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMTYPE_OBJECT, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), 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 keyframe_jump_exec().
| void scene_to_keylist | ( | bDopeSheet * | ads, |
| Scene * | sce, | ||
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 982 of file keyframes_keylist.cc.
References bAnimContext::ads, bAnimListElem::adt, Scene::adt, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIMCONT_CHANNEL, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMTYPE_SCENE, bAnimContext::data, bAnimListElem::data, bAnimContext::datatype, fcurve_to_keylist(), bAnimListElem::id, Scene::id, LISTBASE_FOREACH, and bAnimListElem::type.
Referenced by actkeys_list_element_to_keylist(), build_channel_keylist(), find_prev_next_keyframes(), and keyframe_jump_exec().
| void summary_to_keylist | ( | bAnimContext * | ac, |
| AnimKeylist * | keylist, | ||
| int | saction_flag, | ||
| blender::float2 | range ) |
Definition at line 936 of file keyframes_keylist.cc.
References bAnimContext::ads, ALE_FCURVE, ALE_GPFRAME, ALE_GREASE_PENCIL_CEL, ALE_MASKLAY, ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIMFILTER_DATA_VISIBLE, bAnimContext::data, bAnimContext::datatype, fcurve_to_keylist(), gpl_to_keylist(), grease_pencil_cels_to_keylist(), LISTBASE_FOREACH, and mask_to_keylist().
Referenced by actkeys_list_element_to_keylist(), and build_channel_keylist().