|
Blender V4.3
|
#include <cfloat>#include <cmath>#include <cstddef>#include <cstdio>#include <cstring>#include "MEM_guardedalloc.h"#include "BLI_blenlib.h"#include "BLI_utildefines.h"#include "DNA_anim_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "BKE_animsys.h"#include "BKE_context.hh"#include "BKE_main.hh"#include "BKE_report.hh"#include "DEG_depsgraph.hh"#include "ANIM_keyframing.hh"#include "ANIM_keyingsets.hh"#include "ED_keyframing.hh"#include "ED_screen.hh"#include "UI_interface.hh"#include "UI_resources.hh"#include "WM_api.hh"#include "WM_types.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "RNA_enum_types.hh"#include "RNA_path.hh"#include "anim_intern.hh"Go to the source code of this file.
Macros | |
| #define | APPLY_KEYINGFLAG_OVERRIDE(kflag) |
Variables | |
| static ListBase | keyingset_type_infos = {nullptr, nullptr} |
| ListBase | builtin_keyingsets = {nullptr, nullptr} |
| #define APPLY_KEYINGFLAG_OVERRIDE | ( | kflag | ) |
Referenced by keyingset_apply_keying_flags().
|
static |
Definition at line 97 of file keyingsets.cc.
References BKE_keyingset_add(), BLI_listbase_count(), CTX_data_scene(), flag, blender::animrig::get_keyframing_flags(), KEYINGSET_ABSOLUTE, NC_SCENE, ND_KEYINGSET, OPERATOR_FINISHED, and WM_event_add_notifier().
Referenced by ANIM_OT_keying_set_add().
|
static |
Definition at line 179 of file keyingsets.cc.
References KeyingSet::active_path, BKE_report(), BLI_addtail(), BLI_findlink(), BLI_listbase_count(), CTX_data_scene(), KS_Path::flag, KS_Path::groupmode, ID_OB, KS_Path::idtype, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_KSNAME, MEM_callocN, OPERATOR_CANCELLED, OPERATOR_FINISHED, KeyingSet::paths, wmOperator::reports, and RPT_ERROR.
Referenced by ANIM_OT_keying_set_path_add().
|
static |
Definition at line 267 of file keyingsets.cc.
References KeyingSet::active_path, BKE_keyingset_add(), BKE_keyingset_add_path(), BKE_report(), BKE_reportf(), BLI_findlink(), BLI_listbase_count(), CTX_data_scene(), PointerRNA::data, flag, blender::animrig::get_keyframing_flags(), KEYINGSET_ABSOLUTE, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_KSNAME, KeyingSet::name, NC_SCENE, ND_KEYINGSET, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, PointerRNA::owner_id, KeyingSet::paths, ptr, wmOperator::ptr, wmOperator::reports, RNA_boolean_get(), RNA_path_from_ID_to_property(), RNA_property_anim_editable(), RPT_ERROR, RPT_INFO, UI_context_active_but_prop_get(), and WM_event_add_notifier().
Referenced by ANIM_OT_keyingset_button_add().
| int ANIM_apply_keyingset | ( | bContext * | C, |
| blender::Vector< PointerRNA > * | sources, | ||
| KeyingSet * | keyingset, | ||
| blender::animrig::ModifyKeyMode | mode, | ||
| float | cfra ) |
Use the specified KeyingSet and context info (if required) to add/remove various Keyframes on the specified frame.
Modify keyframes for the channels specified by the KeyingSet. This takes into account many of the different combinations of using KeyingSets.
Definition at line 1134 of file keyingsets.cc.
References ANIM_validate_keyingset(), BKE_reportf(), BLI_assert, CTX_data_scene(), CTX_wm_reports(), error(), insert_key_to_keying_set_path(), INSERTKEY_NOFLAGS, int, KeyingSet::keyingflag, KeyingSet::keyingoverride, keyingset_apply_keying_flags(), LISTBASE_FOREACH, KeyingSet::name, KeyingSet::paths, and RPT_WARNING.
Referenced by blender::animrig::autokeyframe_object(), blender::animrig::autokeyframe_object(), blender::animrig::autokeyframe_pchan(), blender::animrig::autokeyframe_pose_channel(), delete_key_using_keying_set(), ED_view3d_camera_autokey(), insert_key_with_keyingset(), pose_clear_transform_generic_exec(), poseAnim_mapping_autoKeyframe(), and poselib_keytag_pose().
| KeyingSet * ANIM_builtin_keyingset_get_named | ( | const char | name[] | ) |
Find builtin KeyingSet by name.
Definition at line 581 of file keyingsets.cc.
References builtin_keyingsets, LISTBASE_FOREACH, printf, and STREQ.
Referenced by ANIM_get_keyingset_for_autokeying().
Get Keying Set to use for Auto-Key-Framing some transforms.
Definition at line 730 of file keyingsets.cc.
References ANIM_builtin_keyingset_get_named(), ANIM_KS_AVAILABLE_ID, ANIM_scene_get_active_keyingset(), AUTOKEY_FLAG_INSERTAVAILABLE, AUTOKEY_FLAG_ONLYKEYINGSET, and blender::animrig::is_keying_flag().
Referenced by ED_view3d_camera_autokey(), blender::ed::object::object_clear_transform_generic_exec(), pose_clear_transform_generic_exec(), pose_paste_exec(), poseAnim_mapping_autoKeyframe(), poselib_keytag_pose(), snap_sel_to_grid_exec(), and snap_selected_to_location().
| const EnumPropertyItem * ANIM_keying_sets_enum_itemf | ( | bContext * | C, |
| PointerRNA * | ptr, | ||
| PropertyRNA * | prop, | ||
| bool * | r_free ) |
Dynamically populate an enum of Keying Sets.
Definition at line 816 of file keyingsets.cc.
References build_keyingset_enum(), CTX_data_scene(), EnumPropertyItem::identifier, rna_enum_dummy_DEFAULT_items, RNA_enum_item_add(), and RNA_enum_item_add_separator().
Referenced by ANIM_OT_keyframe_delete(), ANIM_OT_keyframe_insert(), and ANIM_OT_keyframe_insert_menu().
Check if KeyingSet can be used in the current context.
Definition at line 877 of file keyingsets.cc.
References ANIM_keyingset_info_find_name(), KeyingSet::flag, KEYINGSET_ABSOLUTE, KeyingSetInfo::poll, and KeyingSet::typeinfo.
Referenced by anim_keyingset_visit_for_search_impl(), and build_keyingset_enum().
Check if the ID appears in the paths specified by the KeyingSet.
Definition at line 666 of file keyingsets.cc.
References BLI_findptr(), ELEM, offsetof, and KeyingSet::paths.
Referenced by insert_key_with_keyingset().
Get the keying set from enum values generated in ANIM_keying_sets_enum_itemf.
Type is the Keying Set the user specified to use when calling the operator:
| type |
|
Definition at line 846 of file keyingsets.cc.
References BLI_findlink(), and builtin_keyingsets.
Referenced by insert_key_exec(), and keyingset_get_from_op_with_error().
Definition at line 861 of file keyingsets.cc.
References BLI_findstring(), builtin_keyingsets, and offsetof.
Referenced by keyingset_get_from_op_with_error().
| KeyingSetInfo * ANIM_keyingset_info_find_name | ( | const char | name[] | ) |
Find KeyingSet type info given a name.
Definition at line 570 of file keyingsets.cc.
References BLI_findstring(), keyingset_type_infos, and offsetof.
Referenced by ANIM_keyingset_context_ok_poll(), and ANIM_validate_keyingset().
| void ANIM_keyingset_info_register | ( | KeyingSetInfo * | keyingset_info | ) |
Add the given KeyingSetInfo to the list of type infos, and create an appropriate builtin set too.
Definition at line 605 of file keyingsets.cc.
References BKE_keyingset_add(), BLI_addtail(), builtin_keyingsets, KeyingSet::description, KeyingSetInfo::description, KeyingSetInfo::idname, KeyingSetInfo::keyingflag, keyingset_type_infos, KeyingSetInfo::name, STRNCPY, and KeyingSet::typeinfo.
| void ANIM_keyingset_info_unregister | ( | Main * | bmain, |
| KeyingSetInfo * | keyingset_info ) |
Remove the given KeyingSetInfo from the list of type infos, and also remove the builtin set if appropriate.
Definition at line 626 of file keyingsets.cc.
References BKE_keyingset_free_paths(), BLI_freelinkN(), BLI_remlink(), BLI_remlink_safe(), builtin_keyingsets, ListBase::first, KeyingSetInfo::idname, keyingset_type_infos, LISTBASE_FOREACH_MUTABLE, MEM_freeN(), scene, Main::scenes, and STREQ.
| void ANIM_keyingset_infos_exit | ( | ) |
Definition at line 652 of file keyingsets.cc.
References BKE_keyingsets_free(), BLI_freelinkN(), builtin_keyingsets, keyingset_type_infos, and LISTBASE_FOREACH_MUTABLE.
Referenced by WM_exit_ex().
| void ANIM_keyingset_visit_for_search | ( | const bContext * | C, |
| PointerRNA * | ptr, | ||
| PropertyRNA * | prop, | ||
| const char * | edit_text, | ||
| blender::FunctionRef< void(StringPropertySearchVisitParams)> | visit_fn ) |
Definition at line 794 of file keyingsets.cc.
References anim_keyingset_visit_for_search_impl().
|
static |
Definition at line 749 of file keyingsets.cc.
References ANIM_keyingset_context_ok_poll(), builtin_keyingsets, CTX_data_scene(), LISTBASE_FOREACH, and StringPropertySearchVisitParams::text.
Referenced by ANIM_keyingset_visit_for_search(), and ANIM_keyingset_visit_for_search_no_poll().
| void ANIM_keyingset_visit_for_search_no_poll | ( | const bContext * | C, |
| PointerRNA * | ptr, | ||
| PropertyRNA * | prop, | ||
| const char * | edit_text, | ||
| blender::FunctionRef< void(StringPropertySearchVisitParams)> | visit_fn ) |
Definition at line 804 of file keyingsets.cc.
References anim_keyingset_visit_for_search_impl().
Referenced by ANIM_OT_keyframe_delete_by_name(), and ANIM_OT_keyframe_insert_by_name().
| void ANIM_OT_keying_set_active_set | ( | wmOperatorType * | ot | ) |
Definition at line 537 of file keyingsets.cc.
References wmOperatorType::description, ED_operator_areaactive(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, keyingset_active_menu_exec(), keyingset_active_menu_invoke(), keyingset_set_active_enum_itemf(), wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_enum(), RNA_def_enum_funcs(), rna_enum_dummy_DEFAULT_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_anim().
| void ANIM_OT_keying_set_add | ( | wmOperatorType * | ot | ) |
Definition at line 118 of file keyingsets.cc.
References add_default_keyingset_exec(), wmOperatorType::description, wmOperatorType::exec, wmOperatorType::idname, keyingset_poll_default_add(), wmOperatorType::name, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_anim().
| void ANIM_OT_keying_set_path_add | ( | wmOperatorType * | ot | ) |
Definition at line 208 of file keyingsets.cc.
References add_empty_ks_path_exec(), wmOperatorType::description, wmOperatorType::exec, wmOperatorType::idname, keyingset_poll_active_edit(), wmOperatorType::name, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_anim().
| void ANIM_OT_keying_set_path_remove | ( | wmOperatorType * | ot | ) |
Definition at line 250 of file keyingsets.cc.
References wmOperatorType::description, wmOperatorType::exec, wmOperatorType::idname, keyingset_poll_activePath_edit(), wmOperatorType::name, ot, wmOperatorType::poll, and remove_active_ks_path_exec().
Referenced by ED_operatortypes_anim().
| void ANIM_OT_keying_set_remove | ( | wmOperatorType * | ot | ) |
Definition at line 165 of file keyingsets.cc.
References wmOperatorType::description, wmOperatorType::exec, wmOperatorType::idname, keyingset_poll_active_edit(), wmOperatorType::name, ot, wmOperatorType::poll, and remove_active_keyingset_exec().
Referenced by ED_operatortypes_anim().
| void ANIM_OT_keyingset_button_add | ( | wmOperatorType * | ot | ) |
Definition at line 340 of file keyingsets.cc.
References add_keyingset_button_exec(), wmOperatorType::description, wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_anim().
| void ANIM_OT_keyingset_button_remove | ( | wmOperatorType * | ot | ) |
Definition at line 413 of file keyingsets.cc.
References wmOperatorType::description, wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and remove_keyingset_button_exec().
Referenced by ED_operatortypes_anim().
| void ANIM_relative_keyingset_add_source | ( | blender::Vector< PointerRNA > & | sources, |
| ID * | id ) |
Definition at line 923 of file keyingsets.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), and RNA_id_pointer_create().
| void ANIM_relative_keyingset_add_source | ( | blender::Vector< PointerRNA > & | sources, |
| ID * | id, | ||
| StructRNA * | srna, | ||
| void * | data ) |
Add another data source for Relative Keying Sets to be evaluated with.
Definition at line 912 of file keyingsets.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), ELEM, and RNA_pointer_create().
Referenced by blender::animrig::autokeyframe_object(), blender::animrig::autokeyframe_object(), blender::animrig::autokeyframe_pchan(), blender::animrig::autokeyframe_pose_channel(), ED_view3d_camera_autokey(), pose_clear_transform_generic_exec(), poseAnim_mapping_autoKeyframe(), and poselib_keytag_pose().
Get the active Keying Set for the given scene.
Definition at line 680 of file keyingsets.cc.
References BLI_findlink(), and builtin_keyingsets.
Referenced by ANIM_get_keyingset_for_autokeying(), blender::animrig::autokeyframe_object(), blender::animrig::autokeyframe_pose_channel(), delete_key_v3d_exec(), pose_select_same_keyingset(), and blender::ed::object::select_grouped_keyingset().
Get the index of the Keying Set provided, for the given Scene.
Definition at line 699 of file keyingsets.cc.
References BLI_findindex(), and builtin_keyingsets.
| blender::animrig::ModifyKeyReturn ANIM_validate_keyingset | ( | bContext * | C, |
| blender::Vector< PointerRNA > * | sources, | ||
| KeyingSet * | keyingset ) |
Given a KeyingSet and context info, validate Keying Set's paths. This is only really necessary with relative/built-in KeyingSets where their list of paths is dynamically generated based on the current context info.
Definition at line 933 of file keyingsets.cc.
References ANIM_keyingset_info_find_name(), BKE_keyingset_free_paths(), BLI_listbase_is_empty(), KeyingSet::flag, KeyingSetInfo::iter, KEYINGSET_ABSOLUTE, KeyingSet::paths, KeyingSetInfo::poll, RKS_ITER_overrides_list(), and KeyingSet::typeinfo.
Referenced by ANIM_apply_keyingset(), pose_select_same_keyingset(), and blender::ed::object::select_grouped_keyingset().
|
static |
Definition at line 462 of file keyingsets.cc.
References ANIM_keyingset_context_ok_poll(), builtin_keyingsets, CTX_data_scene(), EnumPropertyItem::description, KeyingSet::description, ListBase::first, EnumPropertyItem::identifier, KeyingSet::idname, EnumPropertyItem::name, KeyingSet::name, KeyingSet::next, RNA_enum_item_add(), RNA_enum_item_add_separator(), RNA_enum_item_end(), and EnumPropertyItem::value.
Referenced by ANIM_keying_sets_enum_itemf(), and keyingset_set_active_enum_itemf().
|
static |
Definition at line 1019 of file keyingsets.cc.
References KS_Path::array_index, BKE_animsys_eval_context_construct(), CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_wm_reports(), DEG_id_tag_update(), depsgraph, KS_Path::flag, blender::animrig::CombinedKeyingResult::generate_reports(), blender::animrig::CombinedKeyingResult::get_count(), KS_Path::group, KS_Path::groupmode, GS, KS_Path::id, Object::id, ID_OB, ID_RECALC_ANIMATION_NO_FLUSH, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, RNAPath::index, KS_Path::keyingflag, KS_Path::keyingoverride, keyingset_apply_keying_flags(), KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_KSNAME, KSP_GROUP_NONE, blender::animrig::CombinedKeyingResult::merge(), NA_ADDED, ID::name, KeyingSet::name, NC_ANIMATION, ND_KEYFRAME, ptr, RNA_id_pointer_create(), KS_Path::rna_path, RNA_path_resolve_property(), RNA_property_array_length(), and WM_main_add_notifier().
Referenced by ANIM_apply_keyingset().
|
static |
Definition at line 448 of file keyingsets.cc.
References CTX_data_scene(), NC_SCENE, ND_KEYINGSET, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), and WM_event_add_notifier().
Referenced by ANIM_OT_keying_set_active_set().
|
static |
Definition at line 434 of file keyingsets.cc.
References wmOperatorType::name, OPERATOR_INTERFACE, wmOperator::type, UI_popup_menu_begin(), UI_popup_menu_end(), UI_popup_menu_layout(), and uiItemsEnumO().
Referenced by ANIM_OT_keying_set_active_set().
|
static |
Definition at line 989 of file keyingsets.cc.
References APPLY_KEYINGFLAG_OVERRIDE, INSERTKEY_MATRIX, INSERTKEY_NEEDED, and result.
Referenced by ANIM_apply_keyingset(), and insert_key_to_keying_set_path().
|
static |
Definition at line 64 of file keyingsets.cc.
References CTX_data_scene().
Referenced by ANIM_OT_keying_set_path_add(), and ANIM_OT_keying_set_remove().
|
static |
Definition at line 77 of file keyingsets.cc.
References KeyingSet::active_path, BLI_findlink(), CTX_data_scene(), ListBase::first, and KeyingSet::paths.
Referenced by ANIM_OT_keying_set_path_remove().
|
static |
Definition at line 57 of file keyingsets.cc.
References CTX_data_scene().
Referenced by ANIM_OT_keying_set_add().
|
static |
Definition at line 507 of file keyingsets.cc.
References build_keyingset_enum(), CTX_data_scene(), EnumPropertyItem::identifier, rna_enum_dummy_DEFAULT_items, RNA_enum_item_add(), and RNA_enum_item_add_separator().
Referenced by ANIM_OT_keying_set_active_set().
|
static |
Definition at line 132 of file keyingsets.cc.
References BKE_keyingset_free_paths(), BKE_report(), BLI_findlink(), BLI_freelinkN(), CTX_data_scene(), NC_SCENE, ND_KEYINGSET, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, and WM_event_add_notifier().
Referenced by ANIM_OT_keying_set_remove().
|
static |
Definition at line 222 of file keyingsets.cc.
References KeyingSet::active_path, BKE_keyingset_free_path(), BKE_report(), BLI_findlink(), CTX_data_scene(), OPERATOR_CANCELLED, OPERATOR_FINISHED, KeyingSet::paths, wmOperator::reports, and RPT_ERROR.
Referenced by ANIM_OT_keying_set_path_remove().
|
static |
Definition at line 360 of file keyingsets.cc.
References BKE_keyingset_find_path(), BKE_keyingset_free_path(), BKE_report(), BLI_findlink(), CTX_data_scene(), PointerRNA::data, KSP_GROUP_KSNAME, KeyingSet::name, NC_SCENE, ND_KEYINGSET, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, PointerRNA::owner_id, ptr, wmOperator::reports, RNA_path_from_ID_to_property(), RPT_ERROR, RPT_INFO, UI_context_active_but_prop_get(), and WM_event_add_notifier().
Referenced by ANIM_OT_keyingset_button_remove().
|
static |
Definition at line 901 of file keyingsets.cc.
References KeyingSetInfo::generate, and ptr.
Referenced by ANIM_validate_keyingset().
| ListBase builtin_keyingsets = {nullptr, nullptr} |
List of builtin KeyingSets (defined in keyingsets.cc).
Definition at line 566 of file keyingsets.cc.
Referenced by ANIM_builtin_keyingset_get_named(), ANIM_keyingset_get_from_enum_type(), ANIM_keyingset_get_from_idname(), ANIM_keyingset_info_register(), ANIM_keyingset_info_unregister(), ANIM_keyingset_infos_exit(), anim_keyingset_visit_for_search_impl(), ANIM_scene_get_active_keyingset(), ANIM_scene_get_keyingset_index(), and build_keyingset_enum().
|
static |
Definition at line 564 of file keyingsets.cc.
Referenced by ANIM_keyingset_info_find_name(), ANIM_keyingset_info_register(), ANIM_keyingset_info_unregister(), and ANIM_keyingset_infos_exit().