Blender V4.3
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

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)
 
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, const std::optional< PropertySubType > prop_subtype, const std::optional< blender::StringRefNull > channel_group, const KeyInsertData &key_data, const KeyframeSettings &key_settings, const eInsertKeyFlags insert_key_flags)
 
static CombinedKeyingResult blender::animrig::insert_key_layered_action (Main *bmain, Action &action, PointerRNA *rna_pointer, const std::optional< StringRefNull > channel_group, const blender::Span< RNAPath > rna_paths, const float scene_frame, const KeyframeSettings &key_settings, const eInsertKeyFlags insert_key_flags)
 
Key-Framing Management
void blender::animrig::update_autoflags_fcurve_direct (FCurve *fcu, PropertyRNA *prop)
 
bool blender::animrig::is_keying_flag (const Scene *scene, eKeying_Flag flag)
 
eInsertKeyFlags blender::animrig::get_keyframing_flags (Scene *scene)
 
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.