Blender V4.3
ANIM_keyframing.hh File Reference

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

#include <array>
#include <string>
#include "BLI_array.hh"
#include "BLI_bit_span.hh"
#include "BLI_string_ref.hh"
#include "BLI_vector.hh"
#include "DNA_anim_types.h"
#include "DNA_windowmanager_types.h"
#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

const std::optional< StringRefNullblender::animrig::default_channel_group_for_path (const PointerRNA *animated_struct, const 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, PropertyRNA *prop)
 
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)
 
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, 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.