|
Blender V5.0
|
#include <algorithm>#include <cfloat>#include <cmath>#include <cstdlib>#include <cstring>#include <iostream>#include "MEM_guardedalloc.h"#include "BLI_listbase.h"#include "BLI_math_vector.h"#include "BLI_string.h"#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_action.hh"#include "ANIM_animdata.hh"#include "ANIM_fcurve.hh"#include "keyframes_general_intern.hh"Go to the source code of this file.
Classes | |
| struct | ButterworthCoefficients |
| struct | tSmooth_Bezt |
Namespaces | |
| namespace | blender |
| namespace | blender::ed |
| namespace | blender::ed::animation |
Typedefs | |
| using | blender::ed::animation::pastebuf_match_func |
Functions | |
| bool | duplicate_fcurve_keys (FCurve *fcu) |
| std::optional< std::string > | blender::ed::animation::flip_names (const blender::StringRefNull rna_path) |
| static SlotMatchMethod | blender::ed::animation::get_slot_match_method (const bool from_single, const bool to_single, const KeyframePasteContext &paste_context) |
| static const FCurve * | blender::ed::animation::pastebuf_find_matching_copybuf_item (const pastebuf_match_func strategy, Main *bmain, const bAnimListElem &ale_to_paste_into, const bool from_single, const bool to_single, const KeyframePasteContext &paste_context) |
| bool | blender::ed::animation::pastebuf_match_path_full (Main *, const FCurve &fcurve_to_match, const FCurve &fcurve_in_copy_buffer, blender::animrig::slot_handle_t, const bool from_single, const bool to_single, const bool flip) |
| bool | blender::ed::animation::pastebuf_match_path_property (Main *bmain, const FCurve &fcurve_to_match, const FCurve &fcurve_in_copy_buffer, blender::animrig::slot_handle_t slot_handle_in_copy_buffer, const bool from_single, const bool, const bool) |
| bool | blender::ed::animation::pastebuf_match_index_only (Main *, const FCurve &fcurve_to_match, const FCurve &fcurve_in_copy_buffer, blender::animrig::slot_handle_t, const bool from_single, const bool, const bool) |
| static void | blender::ed::animation::do_curve_mirror_flippping (const FCurve &fcurve, BezTriple &bezt) |
| static void | blender::ed::animation::paste_animedit_keys_fcurve (FCurve *fcu, const FCurve &fcurve_in_copy_buffer, float offset[2], const eKeyMergeMode merge_mode, bool flip) |
Various Tools | |
| void | clean_fcurve (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, const 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, const float *original_values, float *samples, const int sample_count, const float factor, const int kernel_size, const 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) |
Variables | |
| KeyframeCopyBuffer * | blender::ed::animation::keyframe_copy_buffer = nullptr |
Copy/Paste Tools | |
| |
| 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_reset () |
| void | ANIM_fcurves_copybuf_free () |
| static bool | is_animating_bone (const bAnimListElem *ale) |
| bool | copy_animedit_keys (bAnimContext *ac, ListBase *anim_data) |
| static float | paste_get_y_offset (const bAnimContext *ac, const FCurve &fcurve_in_copy_buffer, const bAnimListElem *ale, const eKeyPasteValueOffset value_offset_mode) |
| eKeyPasteError | paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, const KeyframePasteContext &paste_context) |
| void ANIM_fcurves_copybuf_free | ( | ) |
Free the copy-paste buffer.
Definition at line 1353 of file keyframes_general.cc.
References blender::ed::animation::keyframe_copy_buffer.
Referenced by ANIM_fcurves_copybuf_reset(), blender::ed::animation::tests::keyframes_paste::TearDownTestSuite(), and WM_exit_ex().
| void ANIM_fcurves_copybuf_reset | ( | ) |
Clear the copy-paste buffer.
Normally this is not necessary, as copy_animedit_keys() will do this for you.
Definition at line 1346 of file keyframes_general.cc.
References ANIM_fcurves_copybuf_free(), and blender::ed::animation::keyframe_copy_buffer.
Referenced by copy_animedit_keys(), blender::ed::animation::tests::keyframes_paste::SetUpTestSuite(), blender::ed::animation::tests::TEST_F(), blender::ed::animation::tests::TEST_F(), and blender::ed::animation::tests::TEST_F().
| 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 726 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fabs(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, 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 377 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), BezTriple::f2, get_default_rna_value(), i, 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 772 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, IS_EQF, s_curve(), BezTriple::vec, and x.
Referenced by blend_to_ease_graph_keys().
| void blend_to_neighbor_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 319 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fabs(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, 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 995 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, interpf(), and BezTriple::vec.
Referenced by breakdown_graph_keys().
|
static |
Definition at line 473 of file keyframes_general.cc.
References clamp_f(), and interpf().
Referenced by butterworth_smooth_fcurve_segment().
|
static |
Definition at line 461 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, ButterworthCoefficients::filter_order, i, 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 518 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), butterworth_calculate_blend_value(), butterworth_filter_value(), ButterworthCoefficients::filter_order, float, i, interpf(), MEM_calloc_arrayN(), MEM_freeN(), min_ff(), min_ii(), round, BezTriple::vec, and x.
Referenced by btw_smooth_graph_keys(), and btw_smooth_modal_update().
| void clean_fcurve | ( | bAnimListElem * | ale, |
| float | thresh, | ||
| bool | cleardefault, | ||
| const bool | only_selected_keys ) |
Definition at line 99 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, i, 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().
| bool copy_animedit_keys | ( | bAnimContext * | ac, |
| ListBase * | anim_data ) |
Copy animation keys into the copy buffer.
Definition at line 1488 of file keyframes_general.cc.
References ALE_FCURVE, ANIM_editkeyframes_ok(), ANIM_fcurve_keyframes_loop(), ANIM_fcurves_copybuf_reset(), FCurve::array_index, FCurve::bezt, BEZT_ISSEL_IDX, BEZT_OK_SELECTED_KEY, BKE_fcurve_create(), BLI_assert, BLI_strdup(), RenderData::cfra, blender::animrig::Channelbag::channel_group_ensure(), bAnimListElem::datatype, blender::animrig::Channelbag::fcurve_append(), blender::animrig::Channelbag::fcurve_assign_to_channel_group(), FCurve::grp, blender::animrig::insert_bezt_fcurve(), INSERTKEY_FAST, INSERTKEY_OVERWRITE_FULL, is_animating_bone(), bAnimListElem::key_data, blender::ed::animation::keyframe_copy_buffer, LISTBASE_FOREACH, bActionGroup::name, Scene::r, FCurve::rna_path, bAnimContext::scene, FCurve::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 1086 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(), i, 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 1051 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().
| bool duplicate_fcurve_keys | ( | FCurve * | fcu | ) |
Definition at line 60 of file keyframes_general.cc.
References FCurve::bezt, BEZT_DESEL_ALL, BEZT_SEL_ALL, ELEM, BezTriple::f2, i, MEM_calloc_arrayN(), 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 689 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(), i, IS_EQF, BezTriple::vec, x, and y.
Referenced by ease_graph_keys().
Definition at line 681 of file keyframes_general.cc.
References pow2f(), sqrt, x, and y.
Referenced by ease_fcurve_segment().
| ButterworthCoefficients * ED_anim_allocate_butterworth_coefficients | ( | const int | filter_order | ) |
Definition at line 425 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, ButterworthCoefficients::filter_order, MEM_calloc_arrayN(), 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 444 of file keyframes_general.cc.
References ButterworthCoefficients::A, ButterworthCoefficients::d1, ButterworthCoefficients::d2, ButterworthCoefficients::filter_order, i, M_PI, sin, and tan.
Referenced by btw_smooth_graph_keys(), and btw_smooth_modal_update().
| void ED_anim_free_butterworth_coefficients | ( | ButterworthCoefficients * | bw_coeff | ) |
Definition at line 436 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().
| void ED_ANIM_get_1d_gauss_kernel | ( | const float | sigma, |
| int | kernel_size, | ||
| double * | r_kernel ) |
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 610 of file keyframes_general.cc.
References BLI_assert, exp, i, and sum().
Referenced by gaussian_smooth_allocate_operator_data(), and gaussian_smooth_exec().
Definition at line 311 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 305 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 248 of file keyframes_general.cc.
References FCurve::bezt, BEZT_FLAG_IGNORE_TAG, BezTriple::f2, i, 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 281 of file keyframes_general.cc.
References FCurve::bezt, BLI_addtail(), find_fcurve_segment(), and MEM_callocN().
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().
| float get_default_rna_value | ( | const FCurve * | fcu, |
| PropertyRNA * | prop, | ||
| PointerRNA * | ptr ) |
Definition at line 339 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().
|
static |
Definition at line 1363 of file keyframes_general.cc.
References ALE_FCURVE, BKE_pose_channel_find_name(), BLI_assert, BLI_str_quoted_substr(), bAnimListElem::datatype, GS, bAnimListElem::id, ID_OB, bAnimListElem::key_data, bPoseChannel::name, ID::name, OB_ARMATURE, Object::pose, FCurve::rna_path, and Object::type.
Referenced by copy_animedit_keys().
| bool match_slope_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float | factor ) |
Definition at line 821 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fabs(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, FCurve::totvert, and BezTriple::vec.
Referenced by match_slope_graph_keys().
| eKeyPasteError paste_animedit_keys | ( | bAnimContext * | ac, |
| ListBase * | anim_data, | ||
| const KeyframePasteContext & | paste_context ) |
Definition at line 2117 of file keyframes_general.cc.
References ANIM_animdata_update(), ANIM_nla_mapping_apply_if_needed_fcurve(), ANIM_UPDATE_DEFAULT, BLI_listbase_is_empty(), BLI_listbase_is_single(), bAnimContext::bmain, RenderData::cfra, bAnimListElem::data, ListBase::first, KeyframePasteContext::flip, float, blender::ed::animation::keyframe_copy_buffer, 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, KeyframePasteContext::merge_mode, KeyframePasteContext::offset_mode, blender::ed::animation::paste_animedit_keys_fcurve(), paste_get_y_offset(), blender::ed::animation::pastebuf_find_matching_copybuf_item(), blender::ed::animation::pastebuf_match_index_only(), blender::ed::animation::pastebuf_match_path_full(), blender::ed::animation::pastebuf_match_path_property(), Scene::r, bAnimContext::scene, bAnimListElem::update, and KeyframePasteContext::value_offset_mode.
Referenced by paste_action_keys(), and paste_graph_keys().
|
static |
Definition at line 2069 of file keyframes_general.cc.
References ALE_FCURVE, FCurve::bezt, BKE_fcurve_bezt_binarysearch_index(), BKE_scene_frame_get(), BLI_assert, SpaceGraph::cursorVal, bAnimListElem::data, bAnimListElem::datatype, 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, and BezTriple::vec.
Referenced by paste_animedit_keys().
|
static |
Definition at line 1015 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, i, 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 909 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, IS_EQF, and BezTriple::vec.
Referenced by push_pull_graph_keys().
|
static |
Definition at line 751 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 401 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), i, interpf(), BezTriple::vec, and y.
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 972 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, 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 873 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), fcurve_segment_end_get(), fcurve_segment_start_get(), i, 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 1146 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, i, MEM_calloc_arrayN(), MEM_freeN(), FCurve::totvert, BezTriple::vec, x, tSmooth_Bezt::y1, tSmooth_Bezt::y2, and tSmooth_Bezt::y3.
Referenced by graphkeys_smooth_exec().
| void smooth_fcurve_segment | ( | FCurve * | fcu, |
| FCurveSegment * | segment, | ||
| const float * | original_values, | ||
| float * | samples, | ||
| const int | sample_count, | ||
| const float | factor, | ||
| const int | kernel_size, | ||
| const double * | kernel ) |
Definition at line 636 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), clamp_i(), i, interpf(), MEM_dupallocN(), MEM_freeN(), round, signum_i(), 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 938 of file keyframes_general.cc.
References FCurve::bezt, BKE_fcurve_keyframe_move_value_with_handles(), evaluate_fcurve(), floored_fmod(), floorf, i, MEM_calloc_arrayN(), MEM_freeN(), FCurve::totvert, and BezTriple::vec.
Referenced by time_offset_graph_keys().
| const EnumPropertyItem rna_enum_keyframe_paste_merge_items[] |
Definition at line 2053 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 2008 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 2024 of file keyframes_general.cc.
Referenced by GRAPH_OT_paste().