136 ot->
name =
"Add Empty Keying Set";
137 ot->
idname =
"ANIM_OT_keying_set_add";
138 ot->
description =
"Add a new (empty) Keying Set to the active Scene";
184 ot->
name =
"Remove Active Keying Set";
185 ot->
idname =
"ANIM_OT_keying_set_remove";
227 ot->
name =
"Add Empty Keying Set Path";
228 ot->
idname =
"ANIM_OT_keying_set_path_add";
270 ot->
name =
"Remove Active Keying Set Path";
271 ot->
idname =
"ANIM_OT_keying_set_path_remove";
272 ot->
description =
"Remove active Path from active Keying Set";
291 bool changed =
false;
292 int index = 0, pflag = 0;
322 &
scene->
keyingsets,
"ButtonKeyingSet",
"Button Keying Set", flag, keyingflag);
374 ot->
name =
"Add to Keying Set";
375 ot->
idname =
"ANIM_OT_keyingset_button_add";
376 ot->
description =
"Add current UI-active property to current keying set";
398 bool changed =
false;
456 ot->
name =
"Remove from Keying Set";
457 ot->
idname =
"ANIM_OT_keyingset_button_remove";
458 ot->
description =
"Remove current UI-active property from current keying set";
482 uiItemsEnumO(layout,
"ANIM_OT_keying_set_active_set",
"type");
507 ot->
name =
"Set Active Keying Set";
508 ot->
idname =
"ANIM_OT_keying_set_active_set";
509 ot->
description =
"Select a new keying set as the active one";
541 if ((name ==
NULL) || (name[0] == 0)) {
560 if (prevKS && prevKS->
next) {
561 first = prevKS->
next;
568 for (ks = first; ks; ks = ks->
next) {
576 printf(
"%s: '%s' not found\n", __func__, name);
764 item_tmp.name =
"Active Keying Set";
780 item_tmp.identifier = ks->
idname;
781 item_tmp.name = ks->
name;
797 item_tmp.identifier = ks->
idname;
798 item_tmp.name = ks->
name;
863 return (ksi->
poll(ksi,
C));
891 for (ds = dsources->
first; ds; ds = ds->
next) {
906 if (dsources ==
NULL) {
959 if (ksi->
poll(ksi,
C)) {
967 ksi->
iter(ksi,
C, ks);
1002 #define APPLY_KEYINGFLAG_OVERRIDE(kflag) \
1003 if (overrides & kflag) { \
1005 result |= (own_flags & kflag); \
1015 #undef APPLY_KEYINGFLAG_OVERRIDE
1037 const char *groupname =
NULL;
1039 int num_channels = 0;
1075 "Skipping path in keying set, as it has no ID (KS = '%s', path = '%s[%d]')",
1091 groupname = ks->
name;
1094 groupname = ksp->
group;
1117 if (arraylen == i) {
1127 for (; i < arraylen; i++) {
1170 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_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
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_findstring(const struct ListBase *listbase, const char *id, const int offset) ATTR_WARN_UNUSED_RESULT 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)
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, const int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const 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.
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()
const Depsgraph * depsgraph
int delete_keyframe(Main *bmain, ReportList *reports, ID *id, bAction *act, const char rna_path[], int array_index, float cfra)
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)
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 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)
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)
bool RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
char * RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_path_resolve_property(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_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)
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
__forceinline bool all(const avxb &b)
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)