Blender V5.0
ANIM_keyframing.hh File Reference

Functions to insert, delete or modify keyframes. More...

#include <array>
#include "BLI_string_ref.hh"
#include "DNA_anim_types.h"
#include "DNA_userdef_types.h"
#include "BKE_report.hh"
#include "RNA_path.hh"
#include "RNA_types.hh"

Go to the source code of this file.

Classes

class  blender::animrig::CombinedKeyingResult

Namespaces

namespace  blender
namespace  blender::animrig

Enumerations

enum class  blender::animrig::SingleKeyingResult {
  blender::animrig::SUCCESS = 0 , blender::animrig::UNKNOWN_FAILURE , blender::animrig::CANNOT_CREATE_FCURVE , blender::animrig::FCURVE_NOT_KEYFRAMEABLE ,
  blender::animrig::NO_KEY_NEEDED , blender::animrig::UNABLE_TO_INSERT_TO_NLA_STACK , blender::animrig::ID_NOT_EDITABLE , blender::animrig::ID_NOT_ANIMATABLE ,
  blender::animrig::NO_VALID_LAYER , blender::animrig::NO_VALID_STRIP , blender::animrig::NO_VALID_SLOT , blender::animrig::CANNOT_RESOLVE_PATH ,
  blender::animrig::_KEYING_RESULT_MAX
}

Functions

std::optional< StringRefNullblender::animrig::default_channel_group_for_path (const PointerRNA *animated_struct, StringRef prop_rna_path)
bool blender::animrig::key_insertion_may_create_fcurve (eInsertKeyFlags insert_key_flags)
Key-Framing Management
void blender::animrig::update_autoflags_fcurve_direct (FCurve *fcu, PropertyType prop_type)
CombinedKeyingResult blender::animrig::insert_keyframes (Main *bmain, PointerRNA *struct_pointer, std::optional< StringRefNull > channel_group, const blender::Span< RNAPath > rna_paths, std::optional< float > scene_frame, const AnimationEvalContext &anim_eval_context, eBezTriple_KeyframeType key_type, eInsertKeyFlags insert_key_flags)
 Main key-frame insertion API.
bool blender::animrig::insert_keyframe_direct (ReportList *reports, PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, const AnimationEvalContext *anim_eval_context, eBezTriple_KeyframeType keytype, NlaKeyframingContext *nla_context, eInsertKeyFlags flag)
 Secondary Insert Key-framing API call.
int blender::animrig::delete_keyframe (Main *bmain, ReportList *reports, ID *id, const RNAPath &rna_path, float cfra)
 Main Delete Key-Framing API call.
int blender::animrig::clear_keyframe (Main *bmain, ReportList *reports, ID *id, const RNAPath &rna_path)
bool blender::animrig::is_keying_flag (const Scene *scene, eKeying_Flag flag)
bool blender::animrig::id_frame_has_keyframe (ID *id, float frame)
eInsertKeyFlags blender::animrig::get_keyframing_flags (Scene *scene)
Auto keyframing

Notes:

  • All the defines for this (User-Pref settings and Per-Scene settings) are defined in DNA_userdef_types.h
  • Scene settings take precedence over those for user-preferences, with old files inheriting user-preferences settings for the scene settings
  • "On/Off + Mode" are stored per Scene, but "settings" are currently stored as user-preferences.
bool blender::animrig::is_autokey_on (const Scene *scene)
bool blender::animrig::is_autokey_mode (const Scene *scene, eAutokey_Mode mode)
bool blender::animrig::autokeyframe_cfra_can_key (const Scene *scene, ID *id)
void blender::animrig::autokeyframe_object (bContext *C, const Scene *scene, Object *ob, Span< RNAPath > rna_paths)
bool blender::animrig::autokeyframe_object (bContext *C, Scene *scene, Object *ob, KeyingSet *ks)
bool blender::animrig::autokeyframe_pchan (bContext *C, Scene *scene, Object *ob, bPoseChannel *pchan, KeyingSet *ks)
void blender::animrig::autokeyframe_pose_channel (bContext *C, Scene *scene, Object *ob, bPoseChannel *pose_channel, Span< RNAPath > rna_paths, short targetless_ik)
bool blender::animrig::autokeyframe_property (bContext *C, Scene *scene, PointerRNA *ptr, PropertyRNA *prop, int rnaindex, float cfra, bool only_if_property_keyed)

Detailed Description

Functions to insert, delete or modify keyframes.

Definition in file ANIM_keyframing.hh.