Blender V5.0
keyframing.cc File Reference
#include <cmath>
#include <string>
#include <fmt/format.h>
#include "ANIM_action.hh"
#include "ANIM_action_iterators.hh"
#include "ANIM_action_legacy.hh"
#include "ANIM_animdata.hh"
#include "ANIM_fcurve.hh"
#include "ANIM_keyframing.hh"
#include "ANIM_rna.hh"
#include "ANIM_visualkey.hh"
#include "BKE_action.hh"
#include "BKE_anim_data.hh"
#include "BKE_animsys.h"
#include "BKE_fcurve.hh"
#include "BKE_idtype.hh"
#include "BKE_lib_id.hh"
#include "BKE_nla.hh"
#include "BKE_report.hh"
#include "DNA_scene_types.h"
#include "BLI_bit_vector.hh"
#include "BLI_dynstr.h"
#include "BLI_math_base.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "DNA_anim_types.h"
#include "MEM_guardedalloc.h"
#include "RNA_access.hh"
#include "RNA_path.hh"
#include "RNA_prototypes.hh"
#include "WM_types.hh"

Go to the source code of this file.

Classes

struct  blender::animrig::KeyInsertData

Namespaces

namespace  blender
namespace  blender::animrig

Functions

std::optional< StringRefNullblender::animrig::default_channel_group_for_path (const PointerRNA *animated_struct, StringRef prop_rna_path)
static bool blender::animrig::assigned_action_has_keyframe_at (AnimData &adt, const float frame)
static bool blender::animrig::object_frame_has_keyframe (Object *ob, const float frame)
bool blender::animrig::key_insertion_may_create_fcurve (eInsertKeyFlags insert_key_flags)
static void blender::animrig::make_new_fcurve_cyclic (FCurve *fcu, const blender::float2 &action_range)
static void blender::animrig::get_keyframe_values_create_reports (ReportList *reports, PointerRNA ptr, PropertyRNA *prop, const int index, const int count, const bool force_all, const BitSpan successful_remaps)
static Vector< floatblender::animrig::get_keyframe_values (PointerRNA *ptr, PropertyRNA *prop, const bool visual_key)
static BitVector blender::animrig::nla_map_keyframe_values_and_generate_reports (const MutableSpan< float > values, const int index, PointerRNA &ptr, PropertyRNA &prop, NlaKeyframingContext *nla_context, const AnimationEvalContext *anim_eval_context, ReportList *reports, bool *force_all)
static float blender::animrig::nla_time_remap (float time, const AnimationEvalContext *anim_eval_context, PointerRNA *id_ptr, AnimData *adt, bAction *act, ListBase *nla_cache, NlaKeyframingContext **r_nla_context)
static SingleKeyingResult blender::animrig::insert_keyframe_value (FCurve *fcu, float cfra, float curval, eBezTriple_KeyframeType keytype, eInsertKeyFlags flag)
static SingleKeyingResult blender::animrig::insert_keyframe_fcurve_value (Main *bmain, PointerRNA *ptr, PropertyRNA *prop, bAction *act, const char group[], const char rna_path[], int array_index, const float fcurve_frame, float curval, eBezTriple_KeyframeType keytype, eInsertKeyFlags flag)
static void blender::animrig::deg_tag_after_keyframe_delete (Main *bmain, ID *id, AnimData *adt)
static CombinedKeyingResult blender::animrig::insert_key_legacy_action (Main *bmain, bAction *action, PointerRNA *ptr, PropertyRNA *prop, const std::optional< StringRefNull > channel_group, const std::string &rna_path, const float frame, const Span< float > values, eInsertKeyFlags insert_key_flag, eBezTriple_KeyframeType key_type, const BitSpan keying_mask)
static SingleKeyingResult blender::animrig::insert_key_layer (Main *bmain, Action &action, Layer &layer, const Slot &slot, const std::string &rna_path, PropertyRNA *prop, const std::optional< blender::StringRefNull > channel_group, const KeyInsertData &key_data, const KeyframeSettings &key_settings, const eInsertKeyFlags insert_key_flags)
static std::pair< Layer *, Slot * > blender::animrig::prep_action_layer_for_keying (Action &action, ID &animated_id)
static CombinedKeyingResult blender::animrig::insert_key_layered_action (Main *bmain, Action &action, Layer &layer, const Slot &slot, PropertyRNA *prop, const std::optional< StringRefNull > channel_group, const std::string &rna_path, const float frame, const Span< float > values, const eInsertKeyFlags insert_key_flags, const KeyframeSettings &key_settings, const BitSpan keying_mask)
Key-Framing Management
void blender::animrig::update_autoflags_fcurve_direct (FCurve *fcu, PropertyType prop_type)
bool blender::animrig::is_keying_flag (const Scene *scene, eKeying_Flag flag)
eInsertKeyFlags blender::animrig::get_keyframing_flags (Scene *scene)
bool blender::animrig::id_frame_has_keyframe (ID *id, float frame)
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)
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.