121 ot->
name =
"Add Empty Keying Set";
122 ot->
idname =
"ANIM_OT_keying_set_add";
123 ot->
description =
"Add a new (empty) Keying Set to the active Scene";
169 ot->
name =
"Remove Active Keying Set";
170 ot->
idname =
"ANIM_OT_keying_set_remove";
212 ot->
name =
"Add Empty Keying Set Path";
213 ot->
idname =
"ANIM_OT_keying_set_path_add";
255 ot->
name =
"Remove Active Keying Set Path";
256 ot->
idname =
"ANIM_OT_keying_set_path_remove";
257 ot->
description =
"Remove active Path from active Keying Set";
276 bool changed =
false;
277 int index = 0, pflag = 0;
307 &
scene->
keyingsets,
"ButtonKeyingSet",
"Button Keying Set", flag, keyingflag);
359 ot->
name =
"Add to Keying Set";
360 ot->
idname =
"ANIM_OT_keyingset_button_add";
361 ot->
description =
"Add current UI-active property to current keying set";
383 bool changed =
false;
440 ot->
name =
"Remove from Keying Set";
441 ot->
idname =
"ANIM_OT_keyingset_button_remove";
442 ot->
description =
"Remove current UI-active property from current keying set";
466 uiItemsEnumO(layout,
"ANIM_OT_keying_set_active_set",
"type");
491 ot->
name =
"Set Active Keying Set";
492 ot->
idname =
"ANIM_OT_keying_set_active_set";
493 ot->
description =
"Select a new keying set as the active one";
523 if ((name ==
NULL) || (name[0] == 0)) {
541 if (prevKS && prevKS->
next) {
542 first = prevKS->
next;
549 for (ks = first; ks; ks = ks->
next) {
557 printf(
"%s: '%s' not found\n", __func__, name);
713 void *visit_user_data,
717 if (use_poll && (
C ==
NULL)) {
727 visit_params.
text =
"__ACTIVE__";
728 visit_params.
info =
"Active Keying Set";
729 visit_fn(visit_user_data, &visit_params);
741 visit_fn(visit_user_data, &visit_params);
753 visit_fn(visit_user_data, &visit_params);
760 const char *
UNUSED(edit_text),
762 void *visit_user_data)
770 const char *
UNUSED(edit_text),
772 void *visit_user_data)
800 item_tmp.name =
"Active Keying Set";
816 item_tmp.identifier = ks->
idname;
817 item_tmp.name = ks->
name;
833 item_tmp.identifier = ks->
idname;
834 item_tmp.name = ks->
name;
890 return (ksi->
poll(ksi,
C));
918 for (ds = dsources->
first; ds; ds = ds->
next) {
932 if (dsources ==
NULL) {
977 if (ksi->
poll(ksi,
C)) {
985 ksi->
iter(ksi,
C, ks);
1020 #define APPLY_KEYINGFLAG_OVERRIDE(kflag) \
1021 if (overrides & kflag) { \
1023 result |= (own_flags & kflag); \
1033 #undef APPLY_KEYINGFLAG_OVERRIDE
1047 const char *groupname =
NULL;
1049 int num_channels = 0;
1085 "Skipping path in keying set, as it has no ID (KS = '%s', path = '%s[%d]')",
1101 groupname = ks->
name;
1104 groupname = ksp->
group;
1127 if (arraylen == i) {
1137 for (; i < arraylen; i++) {
1180 return num_channels;
void BKE_animsys_free_nla_keyframing_context_cache(struct ListBase *cache)
struct KS_Path * BKE_keyingset_add_path(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, short flag, short groupmode)
void BKE_keyingsets_free(struct ListBase *list)
struct KeyingSet * BKE_keyingset_add(struct ListBase *list, const char idname[], const char name[], short flag, short keyingflag)
AnimationEvalContext BKE_animsys_eval_context_construct(struct Depsgraph *depsgraph, float eval_time)
struct KS_Path * BKE_keyingset_find_path(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode)
void BKE_keyingset_free(struct KeyingSet *ks)
void BKE_keyingset_free_path(struct KeyingSet *ks, struct KS_Path *ksp)
struct Scene * CTX_data_scene(const bContext *C)
struct ReportList * CTX_wm_reports(const bContext *C)
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
bool BLI_remlink_safe(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findptr(const struct ListBase *listbase, const void *ptr, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_ANIMATION_NO_FLUSH
Object is a sort of wrapper for general info.
#define ANIM_KS_AVAILABLE_ID
#define IS_AUTOKEY_FLAG(scene, flag)
@ MODIFYKEY_MISSING_TYPEINFO
@ MODIFYKEY_INVALID_CONTEXT
bool ED_operator_areaactive(struct bContext *C)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
void(* StringPropertySearchVisitFunc)(void *visit_user_data, const StringPropertySearchVisitParams *params)
struct uiLayout * UI_popup_menu_layout(uiPopupMenu *pup)
void uiItemsEnumO(uiLayout *layout, const char *opname, const char *propname)
uiBut * UI_context_active_but_prop_get(const struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop, int *r_index)
void UI_popup_menu_end(struct bContext *C, struct uiPopupMenu *pup)
uiPopupMenu * UI_popup_menu_begin(struct bContext *C, const char *title, int icon) ATTR_NONNULL()
__forceinline bool all(const avxb &b)
const Depsgraph * depsgraph
int delete_keyframe(Main *bmain, ReportList *reports, ID *id, bAction *act, const char rna_path[], int array_index, float cfra)
Main Delete Key-Framing API call.
eInsertKeyFlags ANIM_get_keyframing_flags(Scene *scene, const bool use_autokey_mode)
int insert_keyframe(Main *bmain, ReportList *reports, ID *id, bAction *act, const char group[], const char rna_path[], int array_index, const AnimationEvalContext *anim_eval_context, eBezTriple_KeyframeType keytype, ListBase *nla_cache, eInsertKeyFlags flag)
eModifyKey_Returns ANIM_validate_keyingset(bContext *C, ListBase *dsources, KeyingSet *ks)
int ANIM_apply_keyingset(bContext *C, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra)
void ANIM_keyingset_visit_for_search(const bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), const char *UNUSED(edit_text), StringPropertySearchVisitFunc visit_fn, void *visit_user_data)
static ListBase keyingset_type_infos
KeyingSet * ANIM_keyingset_get_from_enum_type(Scene *scene, int type)
void ANIM_OT_keying_set_add(wmOperatorType *ot)
static int keyingset_active_menu_exec(bContext *C, wmOperator *op)
static int remove_keyingset_button_exec(bContext *C, wmOperator *op)
static void anim_keyingset_visit_for_search_impl(const bContext *C, StringPropertySearchVisitFunc visit_fn, void *visit_user_data, const bool use_poll)
static void RKS_ITER_overrides_list(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks, ListBase *dsources)
static int remove_active_keyingset_exec(bContext *C, wmOperator *op)
static int add_default_keyingset_exec(bContext *C, wmOperator *UNUSED(op))
static bool keyingset_poll_active_edit(bContext *C)
void ANIM_keyingset_visit_for_search_no_poll(const bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), const char *UNUSED(edit_text), StringPropertySearchVisitFunc visit_fn, void *visit_user_data)
static eInsertKeyFlags keyingset_apply_keying_flags(const eInsertKeyFlags base_flags, const eInsertKeyFlags overrides, const eInsertKeyFlags own_flags)
void ANIM_OT_keying_set_path_remove(wmOperatorType *ot)
static int keyingset_active_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
struct tRKS_DSource tRKS_DSource
KeyingSet * ANIM_get_keyingset_for_autokeying(const Scene *scene, const char *transformKSName)
KeyingSetInfo * ANIM_keyingset_info_find_name(const char name[])
static bool keyingset_poll_activePath_edit(bContext *C)
void ANIM_OT_keyingset_button_add(wmOperatorType *ot)
void ANIM_OT_keying_set_remove(wmOperatorType *ot)
void ANIM_keyingset_infos_exit(void)
static bool keyingset_poll_default_add(bContext *C)
void ANIM_keyingset_info_unregister(Main *bmain, KeyingSetInfo *ksi)
KeyingSet * ANIM_scene_get_active_keyingset(const Scene *scene)
void ANIM_keyingset_info_register(KeyingSetInfo *ksi)
KeyingSet * ANIM_keyingset_get_from_idname(Scene *scene, const char *idname)
static int add_empty_ks_path_exec(bContext *C, wmOperator *op)
static int add_keyingset_button_exec(bContext *C, wmOperator *op)
ListBase builtin_keyingsets
KeyingSet * ANIM_builtin_keyingset_get_named(KeyingSet *prevKS, const char name[])
void ANIM_OT_keying_set_active_set(wmOperatorType *ot)
void ANIM_relative_keyingset_add_source(ListBase *dsources, ID *id, StructRNA *srna, void *data)
void ANIM_OT_keyingset_button_remove(wmOperatorType *ot)
void ANIM_OT_keying_set_path_add(wmOperatorType *ot)
int ANIM_scene_get_keyingset_index(Scene *scene, KeyingSet *ks)
#define APPLY_KEYINGFLAG_OVERRIDE(kflag)
bool ANIM_keyingset_find_id(KeyingSet *ks, ID *id)
static int remove_active_ks_path_exec(bContext *C, wmOperator *op)
const EnumPropertyItem * ANIM_keying_sets_enum_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
bool ANIM_keyingset_context_ok_poll(bContext *C, KeyingSet *ks)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void error(const char *str)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
void RNA_enum_item_add_separator(EnumPropertyItem **items, int *totitem)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
char * RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop)
bool RNA_path_resolve_property(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
const EnumPropertyItem DummyRNA_DEFAULT_items[]
struct ExtensionRNA rna_ext
cbKeyingSet_Generate generate
struct KeyingSetInfo * next
cbKeyingSet_Iterator iter
struct ToolSettings * toolsettings
struct tRKS_DSource * prev
struct tRKS_DSource * next
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmOperatorType * type
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)