|
Blender V4.3
|
#include <cfloat>#include <cmath>#include <cstdlib>#include <cstring>#include "MEM_guardedalloc.h"#include "BLI_blenlib.h"#include "BLI_math_vector.h"#include "BLI_math_vector_types.hh"#include "BLI_string_utils.hh"#include "BLI_utildefines.h"#include "DNA_anim_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_space_types.h"#include "BKE_action.hh"#include "BKE_curve.hh"#include "BKE_fcurve.hh"#include "BKE_main.hh"#include "BKE_scene.hh"#include "RNA_access.hh"#include "RNA_enum_types.hh"#include "RNA_path.hh"#include "ED_keyframes_edit.hh"#include "ANIM_animdata.hh"#include "ANIM_fcurve.hh"Go to the source code of this file.
Classes | |
| struct | ButterworthCoefficients |
| struct | tSmooth_Bezt |
| struct | tAnimCopybufItem |
Functions | |
| bool | duplicate_fcurve_keys (FCurve *fcu) |
Various Tools | |
| void | clean_fcurve (bAnimContext *ac, bAnimListElem *ale, float thresh, bool cleardefault, const bool only_selected_keys) |
| static bool | find_fcurve_segment (FCurve *fcu, const int start_index, int *r_segment_start_idx, int *r_segment_len) |
| ListBase | find_fcurve_segments (FCurve *fcu) |
| static const BezTriple * | fcurve_segment_start_get (FCurve *fcu, int index) |
| static const BezTriple * | fcurve_segment_end_get (FCurve *fcu, int index) |
| void | blend_to_neighbor_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
| float | get_default_rna_value (const FCurve *fcu, PropertyRNA *prop, PointerRNA *ptr) |
| void | blend_to_default_fcurve (PointerRNA *id_ptr, FCurve *fcu, const float factor) |
| void | scale_average_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
| ButterworthCoefficients * | ED_anim_allocate_butterworth_coefficients (const int filter_order) |
| void | ED_anim_free_butterworth_coefficients (ButterworthCoefficients *bw_coeff) |
| void | ED_anim_calculate_butterworth_coefficients (const float cutoff_frequency, const float sampling_frequency, ButterworthCoefficients *bw_coeff) |
| static double | butterworth_filter_value (double x, double *w0, double *w1, double *w2, ButterworthCoefficients *bw_coeff) |
| static float | butterworth_calculate_blend_value (float *samples, float *filtered_values, const int start_index, const int end_index, const int sample_index, const int blend_in_out) |
| void | butterworth_smooth_fcurve_segment (FCurve *fcu, FCurveSegment *segment, float *samples, const int sample_count, const float factor, const int blend_in_out, const int sample_rate, ButterworthCoefficients *bw_coeff) |
| void | ED_ANIM_get_1d_gauss_kernel (const float sigma, const int kernel_size, double *r_kernel) |
| void | smooth_fcurve_segment (FCurve *fcu, FCurveSegment *segment, float *samples, const float factor, const int kernel_size, double *kernel) |
| static float | ease_sigmoid_function (const float x, const float width, const float shift) |
| void | ease_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor, const float width) |
| void | blend_offset_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
| static float | s_curve (float x, float slope, float width, float height, float xshift, float yshift) |
| void | blend_to_ease_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
| bool | match_slope_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
| void | shear_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor, tShearDirection direction) |
| void | push_pull_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
| void | time_offset_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float frame_offset) |
| void | scale_from_fcurve_segment_neighbor (FCurve *fcu, FCurveSegment *segment, const float factor, const FCurveSegmentAnchor anchor) |
| void | breakdown_fcurve_segment (FCurve *fcu, FCurveSegment *segment, const float factor) |
FCurve Decimate | |
| static bool | prepare_for_decimate (FCurve *fcu, int i) |
| static void | decimate_fcurve_segment (FCurve *fcu, int bezt_segment_start_idx, int bezt_segment_len, float remove_ratio, float error_sq_max) |
| bool | decimate_fcurve (bAnimListElem *ale, float remove_ratio, float error_sq_max) |
FCurve Smooth | |
| void | smooth_fcurve (FCurve *fcu) |
Copy/Paste Tools | |
| |
| static ListBase | animcopybuf = {nullptr, nullptr} |
| static float | animcopy_firstframe = 999999999.0f |
| static float | animcopy_lastframe = -999999999.0f |
| static float | animcopy_cfra = 0.0 |
| const EnumPropertyItem | rna_enum_keyframe_paste_offset_items [] |
| const EnumPropertyItem | rna_enum_keyframe_paste_offset_value_items [] |
| const EnumPropertyItem | rna_enum_keyframe_paste_merge_items [] |
| void | ANIM_fcurves_copybuf_free () |
| short | copy_animedit_keys (bAnimContext *ac, ListBase *anim_data) |
| static void | flip_names (tAnimCopybufItem *aci, char **r_name) |
| static tAnimCopybufItem * | pastebuf_match_path_full (const FCurve *fcu, const short from_single, const short to_simple, bool flip) |
| static tAnimCopybufItem * | pastebuf_match_path_property (Main *bmain, const FCurve *fcu, const short from_single, const short) |
| static tAnimCopybufItem * | pastebuf_match_index_only (const FCurve *fcu, const short from_single, const short) |
| static void | do_curve_mirror_flippping (tAnimCopybufItem *aci, BezTriple *bezt) |
| static void | paste_animedit_keys_fcurve (FCurve *fcu, tAnimCopybufItem *aci, float offset[2], const eKeyMergeMode merge_mode, bool flip) |
| static float | paste_get_y_offset (bAnimContext *ac, tAnimCopybufItem *aci, bAnimListElem *ale, const eKeyPasteValueOffset value_offset_mode) |
| eKeyPasteError | paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, const eKeyPasteOffset offset_mode, const eKeyPasteValueOffset value_offset_mode, const eKeyMergeMode merge_mode, bool flip) |
| void ANIM_fcurves_copybuf_free | ( | ) |
Definition at line 1259 of file keyframes_general.cc.
References animcopy_firstframe, animcopy_lastframe, animcopybuf, tAnimCopybufItem::bezt, BLI_freelinkN(), BLI_listbase_clear(), ListBase::first, MEM_freeN(), tAnimCopybufItem::next, and tAnimCopybufItem::rna_path.
Referenced by copy_action_keys(), copy_animedit_keys(), copy_graph_keys(), and WM_exit_ex().
| void blend_offset_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| float | factor ) |
Shift the FCurve segment up/down so that it aligns with the key before/after the segment.
| factor | blend factor from -1.0 to 1.0. The sign determines whether the segment is aligned with the key before or after the segment. |
Definition at line 706 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fabs(), fcurve_segment_end_get(), fcurve_segment_start_get(), and BezTriple::vec.
Referenced by blend_offset_graph_keys().
| void blend_to_default_fcurve | ( | PointerRNA * | id_ptr, |
| FCurve * | fcu, | ||
| float | factor ) |
Blends the selected keyframes to the default value of the property the F-curve drives.
Definition at line 374 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), BezTriple::f2, get_default_rna_value(), interpf(), ptr, FCurve::rna_path, RNA_path_resolve_property(), SELECT, FCurve::totvert, and BezTriple::vec.
Referenced by blend_to_default_graph_keys().
| void blend_to_ease_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 752 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), IS_EQF, s_curve(), and BezTriple::vec.
Referenced by blend_to_ease_graph_keys().
| void blend_to_neighbor_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 316 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fabs(), fcurve_segment_end_get(), fcurve_segment_start_get(), interpf(), and BezTriple::vec.
Referenced by blend_to_neighbor_graph_keys().
| void breakdown_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 976 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), interpf(), and BezTriple::vec.
Referenced by breakdown_graph_keys().
|
static |
Definition at line 472 of file keyframes_general.cc.
References clamp_f(), and interpf().
Referenced by butterworth_smooth_fcurve_segment().
|
static |
Definition at line 460 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, ButterworthCoefficients::filter_order, and x.
Referenced by butterworth_smooth_fcurve_segment().
| void butterworth_smooth_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| float * | samples, | ||
| int | sample_count, | ||
| float | factor, | ||
| int | blend_in_out, | ||
| int | sample_rate, | ||
| ButterworthCoefficients * | bw_coeff ) |
| samples | Are expected to start at the first frame of the segment with a buffer of size segment->filter_order at the left. |
Definition at line 517 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), butterworth_calculate_blend_value(), butterworth_filter_value(), double(), ButterworthCoefficients::filter_order, float, int, interpf(), MEM_callocN, MEM_freeN(), min_ff(), min_ii(), and BezTriple::vec.
Referenced by btw_smooth_graph_keys(), and btw_smooth_modal_update().
| void clean_fcurve | ( | bAnimContext * | ac, |
| bAnimListElem * | ale, | ||
| float | thresh, | ||
| bool | cleardefault, | ||
| const bool | only_selected_keys ) |
Definition at line 95 of file keyframes_general.cc.
References bAnimListElem::adt, blender::animrig::animdata_fcurve_delete(), FCurve::array_index, FCurve::bezt, BKE_fcurve_delete_keys_all(), BKE_fcurve_is_empty(), BezTriple::f1, BezTriple::f2, BezTriple::f3, bAnimListElem::id, blender::animrig::insert_bezt_fcurve(), IS_EQT, bAnimListElem::key_data, MEM_freeN(), next, PROP_FLOAT, ptr, RNA_id_pointer_create(), FCurve::rna_path, RNA_path_resolve_property(), RNA_property_float_get_default_index(), RNA_property_type(), SELECT, FCurve::totvert, and BezTriple::vec.
Referenced by clean_action_keys(), and clean_graph_keys().
| short copy_animedit_keys | ( | bAnimContext * | ac, |
| ListBase * | anim_data ) |
Definition at line 1289 of file keyframes_general.cc.
References ANIM_editkeyframes_ok(), ANIM_fcurve_keyframes_loop(), ANIM_fcurves_copybuf_free(), animcopy_cfra, animcopy_firstframe, animcopy_lastframe, animcopybuf, FCurve::array_index, tAnimCopybufItem::array_index, FCurve::bezt, tAnimCopybufItem::bezt, BEZT_ISSEL_ANY, BEZT_OK_SELECTED, BEZT_SEL_ALL, BKE_pose_channel_find_name(), BLI_addtail(), BLI_str_quoted_substr(), ELEM, ListBase::first, FCurve::grp, tAnimCopybufItem::grp, GS, tAnimCopybufItem::id, ID_OB, tAnimCopybufItem::id_type, tAnimCopybufItem::is_bone, ListBase::last, LISTBASE_FOREACH, MEM_callocN, MEM_dupallocN, MEM_freeN(), bPoseChannel::name, OB_ARMATURE, Object::pose, FCurve::rna_path, tAnimCopybufItem::rna_path, bAnimContext::scene, FCurve::totvert, tAnimCopybufItem::totvert, and BezTriple::vec.
Referenced by copy_action_keys(), and copy_graph_keys().
| bool decimate_fcurve | ( | bAnimListElem * | ale, |
| float | remove_ratio, | ||
| float | error_sq_max ) |
Definition at line 1067 of file keyframes_general.cc.
References FCurve::bezt, BEZT_FLAG_IGNORE_TAG, BEZT_FLAG_TEMP_TAG, BLI_freelistN(), decimate_fcurve_segment(), BezTriple::f2, find_fcurve_segments(), blender::animrig::insert_bezt_fcurve(), bAnimListElem::key_data, LISTBASE_FOREACH, MEM_freeN(), prepare_for_decimate(), and FCurve::totvert.
Referenced by decimate_graph_keys().
|
static |
Definition at line 1032 of file keyframes_general.cc.
References FCurve::bezt, BEZT_FLAG_TEMP_TAG, BKE_curve_decimate_bezt_array(), ceil(), prepare_for_decimate(), SELECT, and FCurve::totvert.
Referenced by decimate_fcurve().
|
static |
Definition at line 1538 of file keyframes_general.cc.
References tAnimCopybufItem::array_index, BLI_strn_endswith(), ELEM, tAnimCopybufItem::is_bone, tAnimCopybufItem::rna_path, and BezTriple::vec.
Referenced by paste_animedit_keys_fcurve().
| bool duplicate_fcurve_keys | ( | FCurve * | fcu | ) |
Definition at line 55 of file keyframes_general.cc.
References FCurve::bezt, BEZT_DESEL_ALL, BEZT_SEL_ALL, ELEM, BezTriple::f2, MEM_callocN, MEM_freeN(), SELECT, and FCurve::totvert.
Referenced by duplicate_action_keys(), and duplicate_graph_keys().
| void ease_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| float | factor, | ||
| float | width ) |
Snap the keys on the given FCurve segment to an S-Curve. By modifying the factor the part of the S-Curve that the keys are snapped to is moved on the x-axis.
Definition at line 669 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), blend, ease_sigmoid_function(), fcurve_segment_end_get(), fcurve_segment_start_get(), IS_EQF, and BezTriple::vec.
Referenced by ease_graph_keys().
Definition at line 661 of file keyframes_general.cc.
References pow2f(), and sqrt().
Referenced by ease_fcurve_segment().
| ButterworthCoefficients * ED_anim_allocate_butterworth_coefficients | ( | const int | filter_order | ) |
Definition at line 422 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, ButterworthCoefficients::filter_order, and MEM_callocN.
Referenced by btw_smooth_allocate_operator_data(), and btw_smooth_graph_keys().
| void ED_anim_calculate_butterworth_coefficients | ( | const float | cutoff_frequency, |
| const float | sampling_frequency, | ||
| ButterworthCoefficients * | bw_coeff ) |
Definition at line 443 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, double(), ButterworthCoefficients::filter_order, and M_PI.
Referenced by btw_smooth_graph_keys(), and btw_smooth_modal_update().
| void ED_anim_free_butterworth_coefficients | ( | ButterworthCoefficients * | bw_coeff | ) |
Definition at line 435 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, and MEM_freeN().
Referenced by btw_smooth_free_operator_data(), and btw_smooth_graph_keys().
Get a 1D gauss kernel. Since the kernel is symmetrical, only calculates the positive side.
| sigma | The shape of the gauss distribution. |
| kernel_size | How long the kernel array is. |
Definition at line 609 of file keyframes_general.cc.
References BLI_assert, double(), exp(), and sum().
Referenced by gaussian_smooth_allocate_operator_data(), and gaussian_smooth_exec().
Definition at line 308 of file keyframes_general.cc.
References FCurve::bezt, and FCurve::totvert.
Referenced by blend_offset_fcurve_segment(), blend_to_ease_fcurve_segment(), blend_to_neighbor_fcurve_segment(), breakdown_fcurve_segment(), ease_fcurve_segment(), match_slope_fcurve_segment(), push_pull_fcurve_segment(), scale_from_fcurve_segment_neighbor(), and shear_fcurve_segment().
Definition at line 302 of file keyframes_general.cc.
References FCurve::bezt.
Referenced by blend_offset_fcurve_segment(), blend_to_ease_fcurve_segment(), blend_to_neighbor_fcurve_segment(), breakdown_fcurve_segment(), ease_fcurve_segment(), match_slope_fcurve_segment(), push_pull_fcurve_segment(), scale_from_fcurve_segment_neighbor(), and shear_fcurve_segment().
|
static |
Find the first segment of consecutive selected curve points, starting from start_index. Keys that have BEZT_FLAG_IGNORE_TAG set are treated as unselected.
| r_segment_start_idx | returns the start index of the segment. |
| r_segment_len | returns the number of curve points in the segment. |
Definition at line 245 of file keyframes_general.cc.
References FCurve::bezt, BEZT_FLAG_IGNORE_TAG, BezTriple::f2, point_is_selected(), SELECT, and FCurve::totvert.
Referenced by find_fcurve_segments().
Return a list of FCurveSegment with a start index and a length. A segment is a continuous selection of keyframes. Keys that have BEZT_FLAG_IGNORE_TAG set are treated as unselected. The caller is responsible for freeing the memory.
Definition at line 278 of file keyframes_general.cc.
References FCurve::bezt, BLI_addtail(), find_fcurve_segment(), MEM_callocN, and FCurveSegment::start_index.
Referenced by apply_fcu_segment_function(), btw_smooth_allocate_operator_data(), btw_smooth_graph_keys(), decimate_fcurve(), ease_graph_keys(), gaussian_smooth_allocate_operator_data(), gaussian_smooth_graph_keys(), match_slope_graph_keys(), scale_from_neighbor_graph_keys(), and shear_graph_keys().
|
static |
Definition at line 1391 of file keyframes_general.cc.
References BLI_assert, BLI_str_quoted_substr_range(), BLI_string_flip_side_name(), tAnimCopybufItem::is_bone, MAX_VGROUP_NAME, MEM_mallocN, and tAnimCopybufItem::rna_path.
Referenced by pastebuf_match_path_full().
| float get_default_rna_value | ( | const FCurve * | fcu, |
| PropertyRNA * | prop, | ||
| PointerRNA * | ptr ) |
Definition at line 336 of file keyframes_general.cc.
References FCurve::array_index, float, len, PROP_BOOLEAN, PROP_FLOAT, PROP_INT, ptr, RNA_property_array_length(), RNA_property_boolean_get_default(), RNA_property_boolean_get_default_index(), RNA_property_float_get_default(), RNA_property_float_get_default_index(), RNA_property_int_get_default(), RNA_property_int_get_default_index(), and RNA_property_type().
Referenced by blend_to_default_fcurve().
| bool match_slope_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 801 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fabs(), fcurve_segment_end_get(), fcurve_segment_start_get(), FCurve::totvert, and BezTriple::vec.
Referenced by match_slope_graph_keys().
| eKeyPasteError paste_animedit_keys | ( | bAnimContext * | ac, |
| ListBase * | anim_data, | ||
| const eKeyPasteOffset | offset_mode, | ||
| const eKeyPasteValueOffset | value_offset_mode, | ||
| const eKeyMergeMode | merge_mode, | ||
| bool | flip ) |
Definition at line 1761 of file keyframes_general.cc.
References ANIM_animdata_update(), ANIM_nla_mapping_apply_fcurve(), ANIM_nla_mapping_get(), ANIM_UPDATE_DEFAULT, animcopy_cfra, animcopy_firstframe, animcopy_lastframe, animcopybuf, BLI_listbase_is_empty(), BLI_listbase_is_single(), bAnimContext::bmain, bAnimListElem::data, ListBase::first, float, bAnimListElem::key_data, KEYFRAME_PASTE_NOTHING_TO_PASTE, KEYFRAME_PASTE_NOWHERE_TO_PASTE, KEYFRAME_PASTE_OFFSET_CFRA_END, KEYFRAME_PASTE_OFFSET_CFRA_RELATIVE, KEYFRAME_PASTE_OFFSET_CFRA_START, KEYFRAME_PASTE_OFFSET_NONE, KEYFRAME_PASTE_OK, LISTBASE_FOREACH, paste_animedit_keys_fcurve(), paste_get_y_offset(), pastebuf_match_index_only(), pastebuf_match_path_full(), pastebuf_match_path_property(), bAnimContext::scene, and bAnimListElem::update.
Referenced by paste_action_keys(), and paste_graph_keys().
|
static |
Definition at line 1571 of file keyframes_general.cc.
References add_v2_v2(), animcopy_firstframe, animcopy_lastframe, FCurve::bezt, tAnimCopybufItem::bezt, BEZT_DESEL_ALL, BKE_fcurve_delete_keys_all(), BKE_fcurve_delete_keys_selected(), BKE_fcurve_handles_recalc(), do_curve_mirror_flippping(), BezTriple::f2, blender::animrig::insert_bezt_fcurve(), INSERTKEY_OVERWRITE_FULL, KEYFRAME_PASTE_MERGE_MIX, KEYFRAME_PASTE_MERGE_OVER, KEYFRAME_PASTE_MERGE_OVER_RANGE, KEYFRAME_PASTE_MERGE_OVER_RANGE_ALL, SELECT, sub_v2_v2(), FCurve::totvert, tAnimCopybufItem::totvert, and BezTriple::vec.
Referenced by paste_animedit_keys().
|
static |
Definition at line 1715 of file keyframes_general.cc.
References FCurve::bezt, tAnimCopybufItem::bezt, BKE_fcurve_bezt_binarysearch_index(), BKE_scene_frame_get(), SpaceGraph::cursorVal, bAnimListElem::data, evaluate_fcurve(), KEYFRAME_PASTE_VALUE_OFFSET_CFRA, KEYFRAME_PASTE_VALUE_OFFSET_CURSOR, KEYFRAME_PASTE_VALUE_OFFSET_LEFT_KEY, KEYFRAME_PASTE_VALUE_OFFSET_NONE, KEYFRAME_PASTE_VALUE_OFFSET_RIGHT_KEY, max_ii(), min_ii(), bAnimContext::scene, bAnimContext::sl, FCurve::totvert, tAnimCopybufItem::totvert, and BezTriple::vec.
Referenced by paste_animedit_keys().
|
static |
Definition at line 1520 of file keyframes_general.cc.
References animcopybuf, FCurve::array_index, tAnimCopybufItem::array_index, ListBase::first, and tAnimCopybufItem::next.
Referenced by paste_animedit_keys().
|
static |
Definition at line 1436 of file keyframes_general.cc.
References animcopybuf, FCurve::array_index, tAnimCopybufItem::array_index, ListBase::first, flip_names(), tAnimCopybufItem::is_bone, MEM_freeN(), tAnimCopybufItem::next, FCurve::rna_path, tAnimCopybufItem::rna_path, and STREQ.
Referenced by paste_animedit_keys().
|
static |
Definition at line 1468 of file keyframes_general.cc.
References animcopybuf, FCurve::array_index, tAnimCopybufItem::array_index, BLI_findindex(), ListBase::first, tAnimCopybufItem::id, tAnimCopybufItem::id_type, ID::name, tAnimCopybufItem::next, printf, RNA_id_pointer_create(), FCurve::rna_path, tAnimCopybufItem::rna_path, RNA_path_resolve_property(), RNA_property_identifier(), STREQ, and which_libbase().
Referenced by paste_animedit_keys().
Definition at line 996 of file keyframes_general.cc.
References add_v3_v3(), FCurve::bezt, BEZT_IPO_BEZ, BEZT_IPO_LIN, copy_v3_v3(), BezTriple::h1, BezTriple::h2, HD_FREE, BezTriple::ipo, mul_v3_fl(), sub_v3_v3v3(), FCurve::totvert, and BezTriple::vec.
Referenced by decimate_fcurve(), and decimate_fcurve_segment().
| void push_pull_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 889 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), IS_EQF, and BezTriple::vec.
Referenced by push_pull_graph_keys().
|
static |
Definition at line 731 of file keyframes_general.cc.
Referenced by blend_to_ease_fcurve_segment().
| void scale_average_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 398 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), interpf(), and BezTriple::vec.
Referenced by scale_average_graph_keys().
| void scale_from_fcurve_segment_neighbor | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor, | ||
| const FCurveSegmentAnchor | anchor ) |
Definition at line 953 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), interpf(), LEFT, RIGHT, and BezTriple::vec.
Referenced by scale_from_neighbor_graph_keys().
| void shear_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor, | ||
| tShearDirection | direction ) |
Definition at line 853 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), IS_EQF, SHEAR_FROM_LEFT, and BezTriple::vec.
Referenced by shear_graph_keys().
| void smooth_fcurve | ( | FCurve * | fcu | ) |
Use a weighted moving-means method to reduce intensity of fluctuations.
Definition at line 1127 of file keyframes_general.cc.
References FCurve::bezt, BEZT_ISSEL_ANY, BKE_fcurve_handles_recalc(), ELEM, tSmooth_Bezt::h1, tSmooth_Bezt::h2, tSmooth_Bezt::h3, MEM_callocN, MEM_freeN(), FCurve::totvert, BezTriple::vec, tSmooth_Bezt::y1, tSmooth_Bezt::y2, and tSmooth_Bezt::y3.
Referenced by graphkeys_smooth_exec().
| void smooth_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| float * | samples, | ||
| const float | factor, | ||
| const int | kernel_size, | ||
| double * | kernel ) |
Definition at line 635 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), interpf(), and BezTriple::vec.
Referenced by gaussian_smooth_graph_keys(), and gaussian_smooth_modal_update().
| void time_offset_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | frame_offset ) |
Definition at line 918 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), evaluate_fcurve(), floored_fmod(), floorf, MEM_callocN, MEM_freeN(), FCurve::totvert, and BezTriple::vec.
Referenced by time_offset_graph_keys().
|
static |
Definition at line 1241 of file keyframes_general.cc.
Referenced by copy_animedit_keys(), and paste_animedit_keys().
|
static |
Definition at line 1239 of file keyframes_general.cc.
Referenced by ANIM_fcurves_copybuf_free(), copy_animedit_keys(), paste_animedit_keys(), and paste_animedit_keys_fcurve().
|
static |
Definition at line 1240 of file keyframes_general.cc.
Referenced by ANIM_fcurves_copybuf_free(), copy_animedit_keys(), paste_animedit_keys(), and paste_animedit_keys_fcurve().
|
static |
Definition at line 1238 of file keyframes_general.cc.
Referenced by ANIM_fcurves_copybuf_free(), copy_animedit_keys(), paste_animedit_keys(), pastebuf_match_index_only(), pastebuf_match_path_full(), and pastebuf_match_path_property().
| const EnumPropertyItem rna_enum_keyframe_paste_merge_items[] |
Definition at line 1699 of file keyframes_general.cc.
Referenced by ACTION_OT_paste(), and GRAPH_OT_paste().
| const EnumPropertyItem rna_enum_keyframe_paste_offset_items[] |
Definition at line 1654 of file keyframes_general.cc.
Referenced by ACTION_OT_paste(), and GRAPH_OT_paste().
| const EnumPropertyItem rna_enum_keyframe_paste_offset_value_items[] |
Definition at line 1670 of file keyframes_general.cc.
Referenced by GRAPH_OT_paste().