diff options
Diffstat (limited to 'source/blender/editors/include/ED_keyframing.h')
-rw-r--r-- | source/blender/editors/include/ED_keyframing.h | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index 9d063910aa9..20c2301d2ac 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -30,6 +30,7 @@ struct ListBase; struct ID; +struct Scene; struct KeyingSet; @@ -43,6 +44,9 @@ struct bConstraint; struct bContext; struct wmOperatorType; +struct PointerRNA; +struct PropertyRNA; + /* ************ Keyframing Management **************** */ /* Get (or add relevant data to be able to do so) the Active Action for the given @@ -61,13 +65,24 @@ struct FCurve *verify_fcurve(struct bAction *act, const char group[], const char * Use this when validation of necessary animation data isn't necessary as it already * exists, and there is a beztriple that can be directly copied into the array. */ -int insert_bezt_fcurve(struct FCurve *fcu, struct BezTriple *bezt); +int insert_bezt_fcurve(struct FCurve *fcu, struct BezTriple *bezt, short flag); /* Main Keyframing API call: * Use this when validation of necessary animation data isn't necessary as it * already exists. It will insert a keyframe using the current value being keyframed. + * Returns the index at which a keyframe was added (or -1 if failed) */ -void insert_vert_fcurve(struct FCurve *fcu, float x, float y, short flag); +int insert_vert_fcurve(struct FCurve *fcu, float x, float y, short flag); + +/* -------- */ + +/* Secondary Keyframing API calls: + * Use this to insert a keyframe using the current value being keyframed, in the + * nominated F-Curve (no creation of animation data performed). Returns success. + */ +short insert_keyframe_direct(struct PointerRNA ptr, struct PropertyRNA *prop, struct FCurve *fcu, float cfra, short flag); + + /* -------- */ @@ -96,8 +111,7 @@ void ANIM_OT_delete_keyframe(struct wmOperatorType *ot); * required for each space. */ void ANIM_OT_insert_keyframe_menu(struct wmOperatorType *ot); -void ANIM_OT_delete_keyframe_menu(struct wmOperatorType *ot); // xxx unimplemented yet -void ANIM_OT_delete_keyframe_old(struct wmOperatorType *ot); // xxx rename and keep? +void ANIM_OT_delete_keyframe_v3d(struct wmOperatorType *ot); /* Keyframe managment operators for UI buttons. */ void ANIM_OT_insert_keyframe_button(struct wmOperatorType *ot); @@ -143,19 +157,16 @@ void init_builtin_keyingsets(void); /* -------- */ -/* KeyingSet Editing Operators: - * These can add a new KeyingSet and/or add 'destinations' to the KeyingSets, - * acting as a means by which they can be added outside the Outliner. - */ -void ANIM_OT_keyingset_add_new(struct wmOperatorType *ot); -void ANIM_OT_keyingset_add_destination(struct wmOperatorType *ot); +/* KeyingSet managment operators for UI buttons. */ +void ANIM_OT_add_keyingset_button(struct wmOperatorType *ot); +void ANIM_OT_remove_keyingset_button(struct wmOperatorType *ot); /* ************ Drivers ********************** */ /* Main Driver Management API calls: * Add a new driver for the specified property on the given ID block */ -short ANIM_add_driver (struct ID *id, const char rna_path[], int array_index, short flag); +short ANIM_add_driver (struct ID *id, const char rna_path[], int array_index, short flag, int type); /* Main Driver Management API calls: * Remove the driver for the specified property on the given ID block (if available) @@ -184,8 +195,16 @@ void ANIM_OT_remove_driver_button(struct wmOperatorType *ot); /* check if a flag is set for auto-keyframing (as userprefs only!) */ #define IS_AUTOKEY_FLAG(flag) (U.autokey_flag & AUTOKEY_FLAG_##flag) +/* auto-keyframing feature - checks for whether anything should be done for the current frame */ +int autokeyframe_cfra_can_key(struct Scene *scene, struct ID *id); + /* ************ Keyframe Checking ******************** */ +/* Lesser Keyframe Checking API call: + * - Used for the buttons to check for keyframes... + */ +short fcurve_frame_has_keyframe(struct FCurve *fcu, float frame, short filter); + /* Main Keyframe Checking API call: * Checks whether a keyframe exists for the given ID-block one the given frame. * - It is recommended to call this method over the other keyframe-checkers directly, |