|
Blender
V2.93
|
#include <float.h>#include <math.h>#include <stddef.h>#include <stdio.h>#include <string.h>#include "MEM_guardedalloc.h"#include "BLI_alloca.h"#include "BLI_blenlib.h"#include "BLI_dynstr.h"#include "BLI_listbase.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BLI_string_utils.h"#include "BLI_utildefines.h"#include "BLT_translation.h"#include "DNA_anim_types.h"#include "DNA_light_types.h"#include "DNA_material_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "DNA_space_types.h"#include "DNA_texture_types.h"#include "DNA_world_types.h"#include "BKE_action.h"#include "BKE_anim_data.h"#include "BKE_animsys.h"#include "BKE_context.h"#include "BKE_fcurve.h"#include "BKE_global.h"#include "BKE_lib_id.h"#include "BKE_lib_query.h"#include "BKE_main.h"#include "BKE_material.h"#include "BKE_nla.h"#include "BKE_node.h"#include "BKE_report.h"#include "BKE_texture.h"#include "DEG_depsgraph.h"#include "DEG_depsgraph_query.h"#include "RNA_access.h"#include "BLO_read_write.h"#include "nla_private.h"#include "atomic_ops.h"#include "CLG_log.h"Go to the source code of this file.
Macros | |
| #define | ANIMSYS_FLOAT_AS_BOOL(value) ((value) > ((1.0f - FLT_EPSILON))) |
| #define | EVAL_ANIM_IDS(first, aflag) |
| #define | EVAL_ANIM_NODETREE_IDS(first, NtId_Type, aflag) |
Variables | |
| static CLG_LogRef | LOG = {"bke.anim_sys"} |
| #define ANIMSYS_FLOAT_AS_BOOL | ( | value | ) | ((value) > ((1.0f - FLT_EPSILON))) |
Definition at line 436 of file anim_sys.c.
| #define EVAL_ANIM_IDS | ( | first, | |
| aflag | |||
| ) |
| #define EVAL_ANIM_NODETREE_IDS | ( | first, | |
| NtId_Type, | |||
| aflag | |||
| ) |
Definition at line 697 of file anim_sys.c.
References ELEM, G, G_DEBUG, GS, id, bAction::id, bAction::idroot, ID::name, and NULL.
Referenced by animsys_evaluate_action(), animsys_evaluate_action_group(), and nlasnapshot_from_action().
|
static |
Definition at line 2457 of file anim_sys.c.
References AnimData::action, animsys_evaluate_action(), animsys_evaluate_nla_domain(), animsys_evaluate_nla_for_flush(), CLOG_WARN, NlaEvalData::eval_snapshot, G, G_DEBUG, LOG, nladata_flush_channels(), nlaeval_free(), nlaeval_init(), and ptr.
Referenced by BKE_animsys_evaluate_animdata().
|
static |
Definition at line 566 of file anim_sys.c.
References PointerRNA::data, NULL, ID::orig_id, NlaStrip::orig_strip, PointerRNA::owner_id, ptr, RNA_NlaStrip, and PointerRNA::type.
Referenced by animsys_write_orig_anim_rna().
|
static |
Action track and strip are associated with the non-pushed action.
If we're keyframing, then we must allow keyframing outside fcurve bounds.
Definition at line 2149 of file anim_sys.c.
References NlaStrip::act, AnimData::act_blendmode, AnimData::act_extendmode, AnimData::act_influence, NlaStrip::actend, AnimData::action, NlaStrip::actstart, ADT_NLA_EDIT_ON, ADT_NLA_SOLO_TRACK, NlaStrip::blendmode, calc_action_range(), NlaStrip::end, NlaStrip::extendmode, NlaStrip::flag, AnimData::flag, NlaStrip::influence, IS_EQF, NLASTRIP_EXTEND_HOLD, NLASTRIP_EXTEND_NOTHING, NLASTRIP_FLAG_MUTED, NLASTRIP_FLAG_NO_TIME_MAP, NLASTRIP_FLAG_USR_INFLUENCE, NlaStrip::start, and AnimData::tmpact.
Referenced by animsys_evaluate_nla_for_flush(), and animsys_evaluate_nla_for_keyframing().
|
static |
Tweaked strip is evaluated differently from other strips. Adjacent strips are ignored and includes a workaround for when user is not editing in place.
Controls whether able to keyframe outside range of tweaked strip.
Definition at line 2112 of file anim_sys.c.
References AnimData::actstrip, ADT_NLA_EDIT_NOMAP, BKE_nlastrip_recalculate_bounds_sync_action(), NlaStrip::extendmode, NlaStrip::flag, AnimData::flag, NlaStrip::next, NLASTRIP_EXTEND_HOLD, NLASTRIP_EXTEND_NOTHING, NLASTRIP_FLAG_NO_TIME_MAP, NLASTRIP_FLAG_SYNC_LENGTH, NLASTRIP_FLAG_USR_TIME, NULL, and NlaStrip::prev.
Referenced by animsys_evaluate_nla_for_flush(), and animsys_evaluate_nla_for_keyframing().
| void animsys_evaluate_action | ( | PointerRNA * | ptr, |
| bAction * | act, | ||
| const AnimationEvalContext * | anim_eval_context, | ||
| const bool | flush_to_original | ||
| ) |
Definition at line 766 of file anim_sys.c.
References action_idcode_patch_check(), animsys_evaluate_fcurves(), bAction::curves, NULL, PointerRNA::owner_id, and ptr.
Referenced by animsys_calculate_nla(), and BKE_animsys_evaluate_animdata().
| void animsys_evaluate_action_group | ( | PointerRNA * | ptr, |
| bAction * | act, | ||
| bActionGroup * | agrp, | ||
| const AnimationEvalContext * | anim_eval_context | ||
| ) |
Definition at line 733 of file anim_sys.c.
References action_idcode_patch_check(), AGRP_MUTED, FCurve::array_index, BKE_animsys_rna_path_resolve(), BKE_animsys_write_to_rna_path(), BKE_fcurve_is_empty(), calculate_fcurve(), bActionGroup::channels, ELEM, FCURVE_DISABLED, FCURVE_MUTED, ListBase::first, bActionGroup::flag, FCurve::flag, FCurve::grp, FCurve::next, NULL, PointerRNA::owner_id, ptr, and FCurve::rna_path.
|
static |
Definition at line 654 of file anim_sys.c.
References FCurve::array_index, BKE_animsys_rna_path_resolve(), BKE_animsys_write_to_rna_path(), calculate_fcurve(), FCurve::driver, DRIVER_FLAG_INVALID, AnimData::drivers, FCURVE_DISABLED, FCURVE_MUTED, ListBase::first, ChannelDriver::flag, FCurve::flag, FCurve::next, ptr, and FCurve::rna_path.
Referenced by BKE_animsys_evaluate_animdata().
|
static |
Evaluate all the F-Curves in the given list This performs a set of standard checks. If extra checks are required, separate code should be used.
Definition at line 611 of file anim_sys.c.
References animsys_write_orig_anim_rna(), BKE_animsys_rna_path_resolve(), BKE_animsys_write_to_rna_path(), calculate_fcurve(), is_fcurve_evaluatable(), LISTBASE_FOREACH, and ptr.
Referenced by animsys_evaluate_action(), and nlastrip_evaluate_controls().
|
static |
Ensure that all channels touched by any of the actions in enabled tracks exist. This is necessary to ensure that evaluation result depends only on current frame.
Definition at line 2075 of file anim_sys.c.
References AnimData::action, ADT_NLA_SOLO_TRACK, BLI_gset_free(), BLI_gset_ptr_new(), AnimData::flag, LISTBASE_FOREACH, nla_eval_domain_action(), nla_eval_domain_strips(), AnimData::nla_tracks, NLATRACK_MUTED, NLATRACK_SOLO, NULL, and ptr.
Referenced by animsys_calculate_nla().
|
static |
NLA Evaluation function - values are calculated and stored in temporary "NlaEvalChannels"
| [out] | echannels | Evaluation channels with calculated values |
Append strip to evaluate for this track.
Tweaked strip is evaluated differently.
Definition at line 2280 of file anim_sys.c.
References animsys_create_action_track_strip(), animsys_create_tweak_strip(), BLI_freelistN(), NlaEvalData::eval_snapshot, ListBase::first, is_action_track_evaluated_without_nla(), is_nlatrack_evaluatable(), NlaEvalStrip::next, NlaTrack::next, AnimData::nla_tracks, nlastrip_evaluate(), nlastrips_ctime_get_strip(), nlastrips_ctime_get_strip_single(), nlatrack_find_tweaked(), NULL, ptr, NlaTrack::strips, and NlaEvalStrip::track.
Referenced by animsys_calculate_nla().
|
static |
Lower blended values are calculated and accumulated into r_context->lower_eval_data.
Note: Although we early out, we can still keyframe to the non-pushed action since the keyframe remap function detects (r_context->strip.act == NULL) and will keyframe without remapping.
Definition at line 2349 of file anim_sys.c.
References AnimData::act_track, ADT_NLA_EDIT_ON, ADT_NLA_SOLO_TRACK, animsys_create_action_track_strip(), animsys_create_tweak_strip(), NlaStrip::blendmode, BLI_freelistN(), NlaEvalData::eval_snapshot, NlaKeyframingContext::eval_strip, ListBase::first, NlaTrack::flag, AnimData::flag, NlaStrip::influence, is_action_track_evaluated_without_nla(), IS_EQF, is_nlatrack_evaluatable(), NlaKeyframingContext::lower_eval_data, NlaEvalStrip::next, NlaTrack::next, AnimData::nla_tracks, nlastrip_evaluate(), NLASTRIP_MODE_REPLACE, nlastrips_ctime_get_strip(), nlastrips_ctime_get_strip_single(), nlatrack_find_tweaked(), NLATRACK_SOLO, NULL, ptr, NlaKeyframingContext::strip, NlaTrack::strips, and NlaEvalStrip::track.
Referenced by BKE_animsys_get_nla_keyframing_context().
|
static |
Definition at line 2770 of file anim_sys.c.
References AnimOverride::array_index, BKE_animsys_rna_path_resolve(), BKE_animsys_write_to_rna_path(), ListBase::first, AnimOverride::next, AnimData::overrides, ptr, AnimOverride::rna_path, and AnimOverride::value.
Referenced by BKE_animsys_evaluate_animdata().
|
static |
Definition at line 590 of file anim_sys.c.
References animsys_construct_orig_pointer_rna(), BKE_animsys_rna_path_resolve(), BKE_animsys_write_to_rna_path(), and ptr.
Referenced by animsys_evaluate_fcurves(), BKE_animsys_eval_driver(), and nladata_flush_channels().
Definition at line 3038 of file anim_sys.c.
References ADT_RECALC_ANIM, BKE_animdata_from_id(), BKE_animsys_eval_context_construct(), BKE_animsys_evaluate_animdata(), DEG_debug_print_eval_time(), DEG_get_ctime(), DEG_is_active(), depsgraph, id, and ID::name.
Referenced by blender::deg::DepsgraphNodeBuilder::build_animdata().
| AnimationEvalContext BKE_animsys_eval_context_construct | ( | struct Depsgraph * | depsgraph, |
| float | eval_time | ||
| ) |
Definition at line 637 of file anim_sys.c.
References AnimationEvalContext::depsgraph, and depsgraph.
Referenced by achannel_setting_slider_cb(), achannel_setting_slider_nla_curve_cb(), achannel_setting_slider_shapekey_cb(), actcon_get_tarmat(), ANIM_apply_keyingset(), autokeyframe_object(), autokeyframe_pose(), BKE_animsys_eval_animdata(), BKE_animsys_eval_context_construct_at(), BKE_animsys_eval_driver(), BKE_animsys_evaluate_all_animation(), BKE_object_modifier_update_subframe(), BKE_object_where_is_calc_time(), ED_autokeyframe_property(), gpencil_stroke_path_animation(), gpencil_stroke_path_animation_add_keyframes(), insert_action_keys(), insert_graph_keys(), insert_key_button_exec(), ocean_bake_exec(), particle_system_update(), pose_clear_user_transforms_exec(), poselib_preview_apply(), pyrna_struct_keyframe_insert(), RE_RenderAnim(), seq_prefetch_anim_eval_context(), seq_render_mask(), UI_block_end_ex(), and UI_context_update_anim_flag().
| AnimationEvalContext BKE_animsys_eval_context_construct_at | ( | const AnimationEvalContext * | anim_eval_context, |
| float | eval_time | ||
| ) |
Definition at line 647 of file anim_sys.c.
References BKE_animsys_eval_context_construct(), and AnimationEvalContext::depsgraph.
Referenced by achannel_setting_slider_shapekey_cb(), nla_time_remap(), nlastrip_evaluate_meta(), nlastrips_ctime_get_strip(), poselib_apply_pose(), and ui_but_anim_flag().
| void BKE_animsys_eval_driver | ( | Depsgraph * | depsgraph, |
| ID * | id, | ||
| int | driver_index, | ||
| FCurve * | fcu_orig | ||
| ) |
Definition at line 3072 of file anim_sys.c.
References animsys_write_orig_anim_rna(), FCurve::array_index, BKE_animdata_from_id(), BKE_animsys_eval_context_construct(), BKE_animsys_rna_path_resolve(), BKE_animsys_write_to_rna_path(), BLI_assert, BLI_findlink(), calculate_fcurve(), CLOG_WARN, DriverVar::curval, ChannelDriver::curval, FCurve::curval, DEG_debug_print_eval_subdata_index(), DEG_get_ctime(), DEG_is_active(), depsgraph, FCurve::driver, AnimData::driver_array, DRIVER_FLAG_INVALID, AnimData::drivers, FCURVE_DISABLED, FCURVE_MUTED, ListBase::first, DriverTarget::flag, DriverVar::flag, ChannelDriver::flag, FCurve::flag, id, LOG, MAX_DRIVER_TARGETS, ID::name, DriverVar::next, NULL, RNA_id_pointer_create(), FCurve::rna_path, DriverVar::targets, and ChannelDriver::variables.
Referenced by blender::deg::DepsgraphNodeBuilder::build_driver().
Definition at line 2887 of file anim_sys.c.
References ADT_RECALC_ANIM, BKE_animsys_eval_context_construct(), BLI_listbase_is_empty(), DEG_is_active(), depsgraph, EVAL_ANIM_IDS, EVAL_ANIM_NODETREE_IDS, G, G_DEBUG, id, and main().
Referenced by do_render_strip_seqbase().
| void BKE_animsys_evaluate_animdata | ( | ID * | id, |
| AnimData * | adt, | ||
| const AnimationEvalContext * | anim_eval_context, | ||
| eAnimData_Recalc | recalc, | ||
| const bool | flush_to_original | ||
| ) |
Definition at line 2827 of file anim_sys.c.
References AnimData::action, ADT_NLA_EVAL_OFF, ADT_RECALC_ANIM, ADT_RECALC_DRIVERS, animsys_calculate_nla(), animsys_evaluate_action(), animsys_evaluate_drivers(), animsys_evaluate_overrides(), ELEM, ListBase::first, AnimData::flag, AnimData::nla_tracks, NULL, and RNA_id_pointer_create().
Referenced by BKE_animsys_eval_animdata().
| void BKE_animsys_free_nla_keyframing_context_cache | ( | struct ListBase * | cache | ) |
Free all cached contexts from the list.
Definition at line 2756 of file anim_sys.c.
References BLI_freelistN(), LISTBASE_FOREACH, MEM_SAFE_FREE, and nlaeval_free().
Referenced by achannel_setting_slider_cb(), achannel_setting_slider_shapekey_cb(), ANIM_apply_keyingset(), autokeyframe_object(), autokeyframe_pose(), insert_action_keys(), insert_graph_keys(), and insert_keyframe().
| NlaKeyframingContext* BKE_animsys_get_nla_keyframing_context | ( | struct ListBase * | cache, |
| struct PointerRNA * | ptr, | ||
| struct AnimData * | adt, | ||
| const AnimationEvalContext * | anim_eval_context | ||
| ) |
Prepare data necessary to compute correct keyframe values for NLA strips with non-Replace mode or influence different from 1.
| cache | List used to cache contexts for reuse when keying multiple channels in one operation. |
| ptr | RNA pointer to the Object with the animation. |
Definition at line 2600 of file anim_sys.c.
References NlaStrip::act, AnimData::act_blendmode, AnimData::act_influence, AnimData::action, NlaKeyframingContext::adt, ADT_NLA_EDIT_ON, ADT_NLA_EVAL_OFF, animsys_evaluate_nla_for_keyframing(), BLI_addtail(), BLI_assert, BLI_findptr(), ELEM, ListBase::first, AnimData::flag, NlaKeyframingContext::lower_eval_data, MEM_callocN, AnimData::nla_tracks, nlaeval_init(), NLASTRIP_MODE_REPLACE, NULL, ptr, and NlaKeyframingContext::strip.
| bool BKE_animsys_nla_remap_keyframe_values | ( | struct NlaKeyframingContext * | context, |
| struct PointerRNA * | prop_ptr, | ||
| struct PropertyRNA * | prop, | ||
| float * | values, | ||
| int | count, | ||
| int | index, | ||
| bool * | r_force_all | ||
| ) |
Apply correction from the NLA context to the values about to be keyframed.
| context | Context to use (may be NULL). | |
| prop_ptr | Property about to be keyframed. | |
| [in,out] | values | Array of property values to adjust. |
| count | Number of values in the array. | |
| index | Index of the element about to be updated, or -1. | |
| [out] | r_force_all | Set to true if all channels must be inserted. May be NULL. |
Remove lower NLA stack effects.
Using the tweak strip's blended result and the lower snapshot value, we can solve for the tweak strip value it must evaluate to.
Definition at line 2648 of file anim_sys.c.
References NlaEvalChannel::base_snapshot, BLI_assert, context, count, ELEM, NlaEvalData::eval_snapshot, NlaEvalChannelSnapshot::length, NlaEvalChannel::mix_mode, NEC_MIX_QUATERNION, nla_blend_get_inverted_strip_value(), nla_combine_get_inverted_strip_value(), nla_combine_quaternion_get_inverted_strip_values(), nlaeval_snapshot_find_channel(), nlaevalchan_verify_key(), NLASTRIP_MODE_COMBINE, NLASTRIP_MODE_REPLACE, NULL, NlaEvalChannelKey::ptr, and NlaEvalChannelSnapshot::values.
Referenced by get_keyframe_values().
| bool BKE_animsys_read_from_rna_path | ( | PathResolvedRNA * | anim_rna, |
| float * | r_value | ||
| ) |
Definition at line 438 of file anim_sys.c.
References BLI_assert, float(), NULL, PointerRNA::owner_id, PathResolvedRNA::prop, PROP_BOOLEAN, PROP_ENUM, PROP_FLOAT, PathResolvedRNA::prop_index, PROP_INT, PathResolvedRNA::ptr, ptr, RNA_property_animateable(), RNA_property_boolean_get(), RNA_property_boolean_get_index(), RNA_property_enum_get(), RNA_property_float_get(), RNA_property_float_get_index(), RNA_property_int_get(), RNA_property_int_get_index(), and RNA_property_type().
Referenced by BKE_animsys_write_to_rna_path().
| bool BKE_animsys_rna_path_resolve | ( | PointerRNA * | ptr, |
| const char * | rna_path, | ||
| const int | array_index, | ||
| PathResolvedRNA * | r_result | ||
| ) |
Definition at line 389 of file anim_sys.c.
References CLOG_WARN, G, G_DEBUG, LOG, ID::name, NULL, PointerRNA::owner_id, PathResolvedRNA::prop, PathResolvedRNA::prop_index, PathResolvedRNA::ptr, ptr, RNA_path_resolve_property(), RNA_property_animateable(), and RNA_property_array_length().
Referenced by animsys_evaluate_action_group(), animsys_evaluate_drivers(), animsys_evaluate_fcurves(), animsys_evaluate_overrides(), animsys_write_orig_anim_rna(), BKE_animsys_eval_driver(), and blender::deg::AnimationBackup::restore_to_id().
| void BKE_animsys_update_driver_array | ( | ID * | id | ) |
Definition at line 3052 of file anim_sys.c.
References BKE_animdata_from_id(), BLI_assert, BLI_listbase_count(), AnimData::driver_array, AnimData::drivers, ListBase::first, LISTBASE_FOREACH, and MEM_mallocN.
| bool BKE_animsys_write_to_rna_path | ( | PathResolvedRNA * | anim_rna, |
| const float | value | ||
| ) |
Definition at line 501 of file anim_sys.c.
References ANIMSYS_FLOAT_AS_BOOL, BKE_animsys_read_from_rna_path(), BLI_assert, NULL, PointerRNA::owner_id, PathResolvedRNA::prop, PROP_BOOLEAN, PROP_ENUM, PROP_FLOAT, PathResolvedRNA::prop_index, PROP_INT, PathResolvedRNA::ptr, ptr, RNA_property_animateable(), RNA_property_boolean_set(), RNA_property_boolean_set_index(), RNA_property_enum_set(), RNA_property_float_clamp(), RNA_property_float_set(), RNA_property_float_set_index(), RNA_property_int_clamp(), RNA_property_int_set(), RNA_property_int_set_index(), and RNA_property_type().
Referenced by animsys_evaluate_action_group(), animsys_evaluate_drivers(), animsys_evaluate_fcurves(), animsys_evaluate_overrides(), animsys_write_orig_anim_rna(), BKE_animsys_eval_driver(), nladata_flush_channels(), and blender::deg::AnimationBackup::restore_to_id().
| KeyingSet* BKE_keyingset_add | ( | ListBase * | list, |
| const char | idname[], | ||
| const char | name[], | ||
| short | flag, | ||
| short | keyingflag | ||
| ) |
Definition at line 144 of file anim_sys.c.
References BLI_addtail(), BLI_strncpy(), BLI_uniquename(), DATA_, KeyingSet::flag, KeyingSet::idname, KeyingSet::keyingflag, KeyingSet::keyingoverride, MEM_callocN, and KeyingSet::name.
Referenced by add_default_keyingset_exec(), add_keyingset_button_exec(), ANIM_keyingset_info_register(), and verify_active_keyingset().
| KS_Path* BKE_keyingset_add_path | ( | KeyingSet * | ks, |
| ID * | id, | ||
| const char | group_name[], | ||
| const char | rna_path[], | ||
| int | array_index, | ||
| short | flag, | ||
| short | groupmode | ||
| ) |
Definition at line 178 of file anim_sys.c.
References KS_Path::array_index, BKE_keyingset_find_path(), BLI_addtail(), BLI_strdup(), BLI_strncpy(), CLOG_ERROR, ELEM, KS_Path::flag, G, G_DEBUG, KS_Path::group, KS_Path::groupmode, GS, id, KS_Path::id, KS_Path::idtype, LOG, MEM_callocN, ID::name, NULL, KeyingSet::paths, and KS_Path::rna_path.
Referenced by add_keyingset_button_exec(), and do_outliner_keyingset_editop().
| KS_Path* BKE_keyingset_find_path | ( | KeyingSet * | ks, |
| ID * | id, | ||
| const char | group_name[], | ||
| const char | rna_path[], | ||
| int | array_index, | ||
| int | UNUSEDgroup_mode | ||
| ) |
Definition at line 90 of file anim_sys.c.
References KS_Path::array_index, ELEM, ListBase::first, KS_Path::id, KS_Path::next, NULL, KeyingSet::paths, KS_Path::rna_path, and STREQ.
Referenced by BKE_keyingset_add_path().
| void BKE_keyingset_free | ( | KeyingSet * | ks | ) |
Definition at line 287 of file anim_sys.c.
References BKE_keyingset_free_path(), ListBase::first, KS_Path::next, NULL, and KeyingSet::paths.
Referenced by ANIM_keyingset_info_unregister(), ANIM_validate_keyingset(), BKE_keyingsets_free(), and remove_active_keyingset_exec().
Definition at line 242 of file anim_sys.c.
References BLI_freelinkN(), ELEM, MEM_freeN, NULL, KeyingSet::paths, and KS_Path::rna_path.
Referenced by BKE_keyingset_free(), do_outliner_keyingset_editop(), remove_active_ks_path_exec(), and remove_keyingset_button_exec().
| void BKE_keyingsets_blend_read_data | ( | BlendDataReader * | reader, |
| ListBase * | list | ||
| ) |
Definition at line 341 of file anim_sys.c.
References BLO_read_data_address, BLO_read_list(), LISTBASE_FOREACH, and KeyingSet::paths.
Referenced by scene_blend_read_data().
| void BKE_keyingsets_blend_read_expand | ( | BlendExpander * | expander, |
| ListBase * | list | ||
| ) |
Definition at line 363 of file anim_sys.c.
References BLO_expand, LISTBASE_FOREACH, and KeyingSet::paths.
Referenced by scene_blend_read_expand().
| void BKE_keyingsets_blend_read_lib | ( | BlendLibReader * | reader, |
| ID * | id, | ||
| ListBase * | list | ||
| ) |
Definition at line 354 of file anim_sys.c.
References BLO_read_id_address, id, Library::id, ID::lib, LISTBASE_FOREACH, and KeyingSet::paths.
Referenced by scene_blend_read_lib().
| void BKE_keyingsets_blend_write | ( | BlendWriter * | writer, |
| ListBase * | list | ||
| ) |
Definition at line 323 of file anim_sys.c.
References BLO_write_string(), BLO_write_struct, LISTBASE_FOREACH, and KeyingSet::paths.
Referenced by scene_blend_write().
Definition at line 259 of file anim_sys.c.
References BLI_duplicatelist(), ListBase::first, MEM_dupallocN, KS_Path::next, KeyingSet::next, KeyingSet::paths, and KS_Path::rna_path.
| void BKE_keyingsets_foreach_id | ( | LibraryForeachIDData * | data, |
| const ListBase * | keyingsets | ||
| ) |
Definition at line 275 of file anim_sys.c.
References BKE_LIB_FOREACHID_PROCESS_ID, data, ListBase::first, IDWALK_CB_NOP, and KS_Path::next.
| void BKE_keyingsets_free | ( | ListBase * | list | ) |
Definition at line 304 of file anim_sys.c.
References BKE_keyingset_free(), BLI_freelinkN(), ListBase::first, KeyingSet::next, and NULL.
Referenced by ANIM_keyingset_infos_exit(), and scene_free_data().
|
static |
Check for special case of non-pushed action being evaluated with no NLA influence (off and no strips evaluated) nor NLA interference (ensure NLA not soloing).
NLA settings interference.
Allow action track to evaluate as if there isn't any NLA data.
Definition at line 2230 of file anim_sys.c.
References AnimData::action, ADT_NLA_EDIT_ON, ADT_NLA_SOLO_TRACK, AnimData::flag, and NULL.
Referenced by animsys_evaluate_nla_for_flush(), and animsys_evaluate_nla_for_keyframing().
|
static |
Definition at line 375 of file anim_sys.c.
References AGRP_MUTED, BKE_fcurve_is_empty(), FCURVE_DISABLED, FCURVE_MUTED, bActionGroup::flag, FCurve::flag, FCurve::grp, and NULL.
Referenced by animsys_evaluate_fcurves(), nla_eval_domain_action(), and nlasnapshot_from_action().
Definition at line 2200 of file anim_sys.c.
References AnimData::act_track, ADT_NLA_EDIT_ON, ADT_NLA_SOLO_TRACK, NlaTrack::flag, AnimData::flag, NlaTrack::index, NLATRACK_DISABLED, NLATRACK_MUTED, and NLATRACK_SOLO.
Referenced by animsys_evaluate_nla_for_flush(), and animsys_evaluate_nla_for_keyframing().
|
static |
No solution if strip had 0 influence.
Math:
blended_value = inf * (lower_value * strip_value) + (1 - inf) * lower_value blended_value - (1 - inf) * lower_value = inf * (lower_value * strip_value) (blended_value - (1 - inf) * lower_value) / (inf * lower_value) = strip_value (blended_value - lower_value + inf * lower_value) / (inf * lower_value) = strip_value ((blended_value - lower_value) / (inf * lower_value)) + 1 = strip_value
strip_value = ((blended_value - lower_value) / (inf * lower_value)) + 1
Math:
blended_value = lower_value * (1.0f - inf) + (strip_value * inf) blended_value - lower_value * (1.0f - inf) = (strip_value * inf) (blended_value - lower_value * (1.0f - inf)) / inf = strip_value
strip_value = (blended_value - lower_value * (1.0f - inf)) / inf
Definition at line 1512 of file anim_sys.c.
References ATTR_FALLTHROUGH, BLI_assert, IS_EQF, NLASTRIP_MODE_ADD, NLASTRIP_MODE_COMBINE, NLASTRIP_MODE_MULTIPLY, and NLASTRIP_MODE_SUBTRACT.
Referenced by BKE_animsys_nla_remap_keyframe_values().
|
static |
Definition at line 1443 of file anim_sys.c.
References ATTR_FALLTHROUGH, BLI_assert, IS_EQF, NLASTRIP_MODE_ADD, NLASTRIP_MODE_COMBINE, NLASTRIP_MODE_MULTIPLY, and NLASTRIP_MODE_SUBTRACT.
Referenced by nlasnapshot_blend().
|
static |
Definition at line 1576 of file anim_sys.c.
References BLI_assert, IS_EQF, NEC_MIX_ADD, NEC_MIX_AXIS_ANGLE, NEC_MIX_MULTIPLY, and powf.
Referenced by BKE_animsys_nla_remap_keyframe_values().
|
static |
Accumulate quaternion channels for Combine mode according to influence.
blended_value = lower_values @ strip_values^infl Definition at line 1622 of file anim_sys.c.
References mul_qt_qtqt(), normalize_qt_qt(), and pow_qt_fl_normalized().
Referenced by nlasnapshot_blend().
|
static |
Definition at line 1637 of file anim_sys.c.
References invert_qt_normalized(), IS_EQF, mul_qt_qtqt(), normalize_qt_qt(), and pow_qt_fl_normalized().
Referenced by BKE_animsys_nla_remap_keyframe_values().
|
static |
Definition at line 1482 of file anim_sys.c.
References BLI_assert, IS_EQF, NEC_MIX_ADD, NEC_MIX_AXIS_ANGLE, NEC_MIX_MULTIPLY, and powf.
Referenced by nlasnapshot_blend().
|
static |
Definition at line 2022 of file anim_sys.c.
References BLI_BITMAP_ENABLE, BLI_bitmap_set_all(), BLI_gset_add(), bAction::curves, NlaEvalChannel::domain, is_fcurve_evaluatable(), LISTBASE_FOREACH, NlaEvalChannel::mix_mode, NEC_MIX_QUATERNION, nlaevalchan_validate_index(), nlaevalchan_verify(), NULL, NlaValidMask::ptr, and ptr.
Referenced by animsys_evaluate_nla_domain(), and nla_eval_domain_strips().
|
static |
Definition at line 2055 of file anim_sys.c.
References LISTBASE_FOREACH, nla_eval_domain_action(), and ptr.
Referenced by animsys_evaluate_nla_domain().
| void nladata_flush_channels | ( | PointerRNA * | ptr, |
| NlaEvalData * | channels, | ||
| NlaEvalSnapshot * | snapshot, | ||
| const bool | flush_to_original | ||
| ) |
The bitmask is set for all channels touched by NLA due to the domain() function. Channels touched by current set of evaluated strips will have a snapshot channel directly from the evaluation snapshot.
This function falls back to the default value if the snapshot channel doesn't exist. Thus channels, touched by NLA but not by the current set of evaluated strips, will be reset to default. If channel not touched by NLA then it's value is unchanged.
Definition at line 1980 of file anim_sys.c.
References animsys_write_orig_anim_rna(), BKE_animsys_write_to_rna_path(), BLI_BITMAP_TEST, NlaEvalData::channels, NlaEvalChannelSnapshot::length, LISTBASE_FOREACH, nlaeval_snapshot_find_channel(), NULL, PathResolvedRNA::prop_index, PathResolvedRNA::ptr, ptr, and NlaEvalChannelSnapshot::values.
Referenced by animsys_calculate_nla().
|
static |
Definition at line 1667 of file anim_sys.c.
References ELEM, ListBase::first, ListBase::last, FModifier::next, NULL, FModifier::prev, and result.
Referenced by nlastrip_evaluate_actionclip(), nlastrip_evaluate_meta(), and nlastrip_evaluate_transition().
Definition at line 1700 of file anim_sys.c.
References ELEM, ListBase::first, ListBase::last, FModifier::next, NULL, and FModifier::prev.
Referenced by nlastrip_evaluate_actionclip(), nlastrip_evaluate_meta(), and nlastrip_evaluate_transition().
|
static |
Definition at line 1189 of file anim_sys.c.
References NlaEvalData::base_snapshot, BLI_freelistN(), BLI_ghash_free(), NlaEvalSnapshot::channels, NlaEvalData::channels, NlaEvalData::eval_snapshot, NlaEvalData::key_hash, LISTBASE_FOREACH, MEM_SAFE_FREE, nlaeval_snapshot_free_data(), nlaevalchan_free_data(), NULL, and NlaEvalData::path_hash.
Referenced by animsys_calculate_nla(), and BKE_animsys_free_nla_keyframing_context_cache().
|
static |
Definition at line 1180 of file anim_sys.c.
References BLI_ghash_new(), BLI_ghash_str_new(), NlaEvalData::key_hash, nlaevalchan_keycmp(), nlaevalchan_keyhash(), and NlaEvalData::path_hash.
Referenced by animsys_calculate_nla(), and BKE_animsys_get_nla_keyframing_context().
|
static |
Definition at line 1133 of file anim_sys.c.
References NlaEvalSnapshot::base, nlaeval_snapshot_ensure_slot(), nlaeval_snapshot_find_channel(), nlaevalchan_snapshot_copy(), nlaevalchan_snapshot_new(), and NULL.
Referenced by nlasnapshot_blend(), nlasnapshot_ensure_channels(), and nlasnapshot_from_action().
|
static |
Definition at line 1095 of file anim_sys.c.
References NlaEvalSnapshot::channels, CLAMP_MIN, MEM_recallocN_id, size(), and NlaEvalSnapshot::size.
Referenced by nlaeval_snapshot_ensure_slot(), and nlasnapshot_blend().
|
static |
Definition at line 1109 of file anim_sys.c.
References NlaEvalSnapshot::channels, NlaEvalChannel::index, nlaeval_snapshot_ensure_size(), NlaEvalData::num_channels, and NlaEvalChannel::owner.
Referenced by nlaeval_snapshot_ensure_channel(), and nlaevalchan_verify_key().
|
static |
Definition at line 1117 of file anim_sys.c.
References NlaEvalSnapshot::base, NlaEvalChannel::base_snapshot, NlaEvalChannel::index, nlaeval_snapshot_get(), and NULL.
Referenced by BKE_animsys_nla_remap_keyframe_values(), nladata_flush_channels(), nlaeval_snapshot_ensure_channel(), and nlasnapshot_blend().
|
static |
Definition at line 1153 of file anim_sys.c.
References NlaEvalSnapshot::base, NlaEvalSnapshot::channels, MEM_freeN, nlaevalchan_snapshot_free(), NULL, and NlaEvalSnapshot::size.
Referenced by nlaeval_free(), nlastrip_evaluate_actionclip(), and nlastrip_evaluate_transition().
|
static |
Definition at line 1089 of file anim_sys.c.
References NlaEvalSnapshot::channels, NULL, and size().
Referenced by nlaeval_snapshot_find_channel(), nlasnapshot_blend(), and nlasnapshot_enable_all_blend_domain().
|
static |
Definition at line 1078 of file anim_sys.c.
References NlaEvalSnapshot::base, NlaEvalSnapshot::channels, MAX2, MEM_callocN, NlaEvalData::num_channels, and NlaEvalSnapshot::size.
Referenced by nlastrip_evaluate_actionclip(), and nlastrip_evaluate_transition().
|
static |
Definition at line 1325 of file anim_sys.c.
References length(), NEC_MIX_ADD, NEC_MIX_AXIS_ANGLE, NEC_MIX_MULTIPLY, NEC_MIX_QUATERNION, NlaEvalChannelKey::prop, PROP_AXISANGLE, PROP_PROPORTIONAL, PROP_QUATERNION, RNA_property_flag(), and RNA_property_subtype().
Referenced by nlaevalchan_verify_key().
|
static |
Definition at line 1174 of file anim_sys.c.
References NlaEvalChannel::domain, and nlavalidmask_free().
Referenced by nlaeval_free().
|
static |
Definition at line 1244 of file anim_sys.c.
References NlaEvalChannel::base_snapshot, BLI_assert, float(), NlaEvalChannel::key, length(), NlaEvalChannelSnapshot::length, MEM_freeN, MEM_malloc_arrayN, NlaEvalChannel::mix_mode, NEC_MIX_AXIS_ANGLE, NEC_MIX_MULTIPLY, NEC_MIX_QUATERNION, NlaEvalChannelKey::prop, PROP_BOOLEAN, PROP_ENUM, PROP_FLOAT, PROP_INT, NlaEvalChannelKey::ptr, ptr, RNA_property_array_check(), RNA_property_array_length(), RNA_property_boolean_get_default(), RNA_property_boolean_get_default_array(), RNA_property_enum_get_default(), RNA_property_float_get_default(), RNA_property_float_get_default_array(), RNA_property_int_get_default(), RNA_property_int_get_default_array(), RNA_property_type(), unit_qt(), and zero_v4().
Referenced by nlaevalchan_verify_key().
|
static |
Definition at line 1032 of file anim_sys.c.
References A, Freestyle::a, and B.
Referenced by nlaeval_init().
|
static |
Definition at line 1025 of file anim_sys.c.
References BLI_ghashutil_ptrhash(), PointerRNA::data, hash, NlaEvalChannelKey::prop, NlaEvalChannelKey::ptr, and ptr.
Referenced by nlaeval_init().
|
static |
Definition at line 1067 of file anim_sys.c.
References BLI_assert, NlaEvalChannelSnapshot::channel, NlaEvalChannelSnapshot::length, and NlaEvalChannelSnapshot::values.
Referenced by nlaeval_snapshot_ensure_channel().
|
static |
Definition at line 1058 of file anim_sys.c.
References NlaEvalChannelSnapshot::blend_domain, BLI_assert, NlaEvalChannelSnapshot::is_base, MEM_freeN, and nlavalidmask_free().
Referenced by nlaeval_snapshot_free_data().
|
static |
Definition at line 1043 of file anim_sys.c.
References NlaEvalChannel::base_snapshot, NlaEvalChannelSnapshot::blend_domain, NlaEvalChannelSnapshot::channel, length(), NlaEvalChannelSnapshot::length, MEM_callocN, and nlavalidmask_init().
Referenced by nlaeval_snapshot_ensure_channel().
|
static |
Definition at line 1209 of file anim_sys.c.
References NlaEvalChannel::is_array.
Referenced by nla_eval_domain_action(), and nlaevalchan_validate_index_ex().
|
static |
Although array_index comes from fcurve, that doesn't necessarily mean the property has that many elements.
Definition at line 1221 of file anim_sys.c.
References NlaEvalChannel::base_snapshot, CLOG_WARN, G, G_DEBUG, id, NlaEvalChannel::key, NlaEvalChannelSnapshot::length, LOG, ID::name, nlaevalchan_validate_index(), PointerRNA::owner_id, NlaEvalChannelKey::ptr, and NlaEvalChannel::rna_path.
Referenced by nlasnapshot_from_action().
|
static |
Definition at line 1393 of file anim_sys.c.
References BLI_ghash_ensure_p(), CLOG_WARN, G, G_DEBUG, LOG, ID::name, nlaevalchan_verify_key(), NULL, PointerRNA::owner_id, NlaEvalData::path_hash, NlaEvalChannelKey::prop, NlaEvalChannelKey::ptr, ptr, NlaEvalChannel::rna_path, RNA_path_resolve_property(), and RNA_property_animateable().
Referenced by nla_eval_domain_action(), and nlasnapshot_from_action().
|
static |
Definition at line 1342 of file anim_sys.c.
References NlaEvalChannel::base_snapshot, NlaEvalData::base_snapshot, BLI_addtail(), BLI_ghash_ensure_p_ex(), NlaEvalChannelSnapshot::channel, NlaEvalData::channels, NlaEvalChannel::domain, NlaEvalChannel::index, NlaEvalChannel::is_array, NlaEvalChannelSnapshot::is_base, NlaEvalChannel::key, NlaEvalData::key_hash, length(), NlaEvalChannelSnapshot::length, MEM_callocN, NlaEvalChannel::mix_mode, nlaeval_snapshot_ensure_slot(), nlaevalchan_detect_mix_mode(), nlaevalchan_get_default_values(), nlavalidmask_init(), NlaEvalData::num_channels, NlaEvalChannel::owner, NlaEvalChannelKey::prop, NlaEvalChannelKey::ptr, NlaEvalChannel::rna_path, RNA_property_array_check(), RNA_property_array_length(), and NlaEvalChannelSnapshot::values.
Referenced by BKE_animsys_nla_remap_keyframe_values(), and nlaevalchan_verify().
| void nlasnapshot_blend | ( | NlaEvalData * | eval_data, |
| NlaEvalSnapshot * | lower_snapshot, | ||
| NlaEvalSnapshot * | upper_snapshot, | ||
| const short | upper_blendmode, | ||
| const float | upper_influence, | ||
| NlaEvalSnapshot * | r_blended_snapshot | ||
| ) |
Blends the lower_snapshot with the upper_snapshot into r_blended_snapshot according to the given upper_blendmode and upper_influence.
For upper_snapshot, blending limited to values in the blend_domain. For Replace blendmode, this allows the upper snapshot to have a location XYZ channel where only a subset of values are blended.
Blend with lower_snapshot's base or default.
Always copy lower_snapshot to result, irrelevant of whether upper_snapshot has a corresponding channel. This only matters when lower_snapshot not the same as r_blended_snapshot.
Definition at line 2517 of file anim_sys.c.
References NlaEvalSnapshot::base, NlaEvalChannelSnapshot::blend_domain, BLI_BITMAP_TEST_BOOL, NlaEvalData::channels, IS_EQF, length(), LISTBASE_FOREACH, NEC_MIX_QUATERNION, nla_blend_value(), nla_combine_quaternion(), nla_combine_value(), nlaeval_snapshot_ensure_channel(), nlaeval_snapshot_ensure_size(), nlaeval_snapshot_find_channel(), nlaeval_snapshot_get(), NLASTRIP_MODE_COMBINE, NULL, NlaEvalData::num_channels, NlaValidMask::ptr, and NlaEvalChannelSnapshot::values.
Referenced by nlastrip_evaluate_actionclip(), and nlastrip_evaluate_transition().
| void nlasnapshot_enable_all_blend_domain | ( | NlaEvalSnapshot * | snapshot | ) |
Definition at line 2490 of file anim_sys.c.
References NlaEvalChannelSnapshot::blend_domain, BLI_bitmap_set_all(), NlaEvalChannelSnapshot::length, nlaeval_snapshot_get(), NULL, NlaValidMask::ptr, and NlaEvalSnapshot::size.
Referenced by nlastrip_evaluate_transition().
| void nlasnapshot_ensure_channels | ( | NlaEvalData * | eval_data, |
| NlaEvalSnapshot * | snapshot | ||
| ) |
Definition at line 2502 of file anim_sys.c.
References NlaEvalData::channels, LISTBASE_FOREACH, and nlaeval_snapshot_ensure_channel().
Referenced by nlastrip_evaluate_transition().
|
static |
Fills r_snapshot with the action's evaluated fcurve values with modifiers applied.
Definition at line 1724 of file anim_sys.c.
References action_idcode_patch_check(), FCurve::array_index, NlaEvalChannelSnapshot::blend_domain, BLI_BITMAP_ENABLE, BLI_bitmap_set_all(), BLI_listbase_count(), FModifiersStackStorage::buffer, bAction::curves, evaltime, evaluate_fcurve(), evaluate_fmodifiers_storage_size_per_modifier(), evaluate_time_fmodifiers(), evaluate_value_fmodifiers(), ListBase::first, is_fcurve_evaluatable(), NlaEvalChannel::mix_mode, FModifiersStackStorage::modifier_count, NEC_MIX_QUATERNION, FCurve::next, nlaeval_snapshot_ensure_channel(), nlaevalchan_validate_index_ex(), nlaevalchan_verify(), NULL, PointerRNA::owner_id, NlaValidMask::ptr, ptr, FCurve::rna_path, FModifiersStackStorage::size_per_modifier, and NlaEvalChannelSnapshot::values.
Referenced by nlastrip_evaluate_actionclip().
| void nlastrip_evaluate | ( | PointerRNA * | ptr, |
| NlaEvalData * | channels, | ||
| ListBase * | modifiers, | ||
| NlaEvalStrip * | nes, | ||
| NlaEvalSnapshot * | snapshot, | ||
| const AnimationEvalContext * | anim_eval_context, | ||
| const bool | flush_to_original | ||
| ) |
Definition at line 1935 of file anim_sys.c.
References NlaStrip::flag, nlastrip_evaluate_actionclip(), nlastrip_evaluate_meta(), nlastrip_evaluate_transition(), NLASTRIP_FLAG_EDIT_TOUCHED, NLASTRIP_TYPE_CLIP, NLASTRIP_TYPE_META, NLASTRIP_TYPE_TRANSITION, ptr, NlaEvalStrip::strip, and NlaStrip::type.
Referenced by animsys_evaluate_nla_for_flush(), animsys_evaluate_nla_for_keyframing(), nlastrip_evaluate_meta(), and nlastrip_evaluate_transition().
|
static |
Definition at line 1776 of file anim_sys.c.
References NlaStrip::act, NlaStrip::blendmode, CLOG_ERROR, NlaStrip::influence, LOG, NlaStrip::modifiers, NlaStrip::name, nlaeval_fmodifiers_join_stacks(), nlaeval_fmodifiers_split_stacks(), nlaeval_snapshot_free_data(), nlaeval_snapshot_init(), nlasnapshot_blend(), nlasnapshot_from_action(), NULL, ptr, NlaEvalStrip::strip, and NlaStrip::strip_time.
Referenced by nlastrip_evaluate().
|
static |
Definition at line 807 of file anim_sys.c.
References NlaStrip::actend, NlaStrip::actstart, animsys_evaluate_fcurves(), AnimationEvalContext::eval_time, NlaStrip::fcurves, ListBase::first, NlaStrip::flag, NlaStrip::influence, NLASTRIP_FLAG_NO_TIME_MAP, NLASTRIP_FLAG_USR_INFLUENCE, NLASTRIP_FLAG_USR_TIME, NLASTRIP_FLAG_USR_TIME_CYCLIC, nlastrip_get_frame(), nlastrip_get_influence(), NLATIME_CONVERT_EVAL, NULL, RNA_NlaStrip, RNA_pointer_create(), and NlaStrip::strip_time.
Referenced by nlastrips_ctime_get_strip().
|
static |
Definition at line 1889 of file anim_sys.c.
References BKE_animsys_eval_context_construct_at(), NlaStrip::end, evaltime, MEM_freeN, NlaStrip::modifiers, nlaeval_fmodifiers_join_stacks(), nlaeval_fmodifiers_split_stacks(), nlastrip_evaluate(), nlastrips_ctime_get_strip(), NULL, ptr, NlaStrip::start, NlaEvalStrip::strip, NlaEvalStrip::strip_time, and NlaStrip::strips.
Referenced by nlastrip_evaluate().
|
static |
Replace snapshot2 NULL channels with base or default values so all channels blend.
Mark all snapshot2 channel's values to blend.
Definition at line 1815 of file anim_sys.c.
References NlaStrip::flag, NlaStrip::modifiers, NES_TIME_TRANSITION_END, NES_TIME_TRANSITION_START, NlaStrip::next, nlaeval_fmodifiers_join_stacks(), nlaeval_fmodifiers_split_stacks(), nlaeval_snapshot_free_data(), nlaeval_snapshot_init(), nlasnapshot_blend(), nlasnapshot_enable_all_blend_domain(), nlasnapshot_ensure_channels(), nlastrip_evaluate(), NLASTRIP_FLAG_REVERSE, NLASTRIP_MODE_REPLACE, NULL, NlaStrip::prev, ptr, NlaEvalStrip::strip, NlaEvalStrip::strip_mode, NlaEvalStrip::strip_time, and NlaStrip::strip_time.
Referenced by nlastrip_evaluate().
Definition at line 786 of file anim_sys.c.
References NlaStrip::blendin, NlaStrip::blendout, NlaStrip::end, fabsf, IS_EQF, and NlaStrip::start.
Referenced by nlastrip_evaluate_controls().
| NlaEvalStrip* nlastrips_ctime_get_strip | ( | ListBase * | list, |
| ListBase * | strips, | ||
| short | index, | ||
| const AnimationEvalContext * | anim_eval_context, | ||
| const bool | flush_to_original | ||
| ) |
Definition at line 852 of file anim_sys.c.
References NlaStrip::act, BKE_animsys_eval_context_construct_at(), BLI_addtail(), ELEM, NlaStrip::end, AnimationEvalContext::eval_time, NlaStrip::extendmode, ListBase::first, NlaStrip::flag, IN_RANGE_INCL, NlaStrip::influence, ListBase::last, MEM_callocN, NES_TIME_AFTER, NES_TIME_BEFORE, NES_TIME_WITHIN, NlaStrip::next, nlastrip_evaluate_controls(), NLASTRIP_EXTEND_HOLD, NLASTRIP_EXTEND_NOTHING, NLASTRIP_FLAG_MUTED, NLASTRIP_FLAG_NO_TIME_MAP, NLASTRIP_TYPE_CLIP, NLASTRIP_TYPE_TRANSITION, NULL, NlaStrip::prev, NlaStrip::start, NlaEvalStrip::strip, NlaEvalStrip::strip_mode, NlaEvalStrip::strip_time, NlaStrip::strip_time, NlaEvalStrip::track_index, and NlaStrip::type.
Referenced by animsys_evaluate_nla_for_flush(), animsys_evaluate_nla_for_keyframing(), nlastrip_evaluate_meta(), and nlastrips_ctime_get_strip_single().
|
static |
Definition at line 988 of file anim_sys.c.
References ListBase::first, ListBase::last, and nlastrips_ctime_get_strip().
Referenced by animsys_evaluate_nla_for_flush(), and animsys_evaluate_nla_for_keyframing().
XXX(Wayde Moss): BKE_nlatrack_find_tweaked() exists within nla.c, but it doesn't appear to work as expected. From animsys_evaluate_nla_for_flush(), it returns NULL in tweak mode. I'm not sure why. Preferably, it would be as simple as checking for (adt->act_Track == nlt) but that doesn't work either, neither does comparing indices.
This function is a temporary work around. The first disabled track is always the tweaked track.
Definition at line 2258 of file anim_sys.c.
References ListBase::first, NlaTrack::flag, NlaTrack::next, AnimData::nla_tracks, NLATRACK_DISABLED, and NULL.
Referenced by animsys_evaluate_nla_for_flush(), and animsys_evaluate_nla_for_keyframing().
|
static |
Definition at line 1015 of file anim_sys.c.
References mask(), and MEM_freeN.
Referenced by nlaevalchan_free_data(), and nlaevalchan_snapshot_free().
|
static |
Definition at line 1004 of file anim_sys.c.
References BLI_BITMAP_NEW, BLI_BITMAP_SIZE, and mask().
Referenced by nlaevalchan_snapshot_new(), and nlaevalchan_verify_key().
|
static |
Definition at line 81 of file anim_sys.c.
Referenced by animsys_calculate_nla(), BKE_animsys_eval_driver(), BKE_animsys_rna_path_resolve(), BKE_keyingset_add_path(), nlaevalchan_validate_index_ex(), nlaevalchan_verify(), and nlastrip_evaluate_actionclip().