diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-10-13 08:36:31 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-10-13 08:46:41 +0300 |
commit | 65965a892fd116267ed94d1c8b59c99589671856 (patch) | |
tree | 7bddd59f2080cbd0e6469c719814b400531f3606 /source/blender/blenkernel | |
parent | 8335c26119bf5ba78b2afa4e2f65bb3d04b42abe (diff) |
Cleanup: use BKE_fcurve_ prefix for keyframing bezier functions
- BKE_bezt_subdivide_handles -> BKE_fcurve_bezt_subdivide_handles
- binarysearch_bezt_index -> BKE_fcurve_bezt_binarysearch_index
These functions are specific to F-Curves and don't make sense for other
uses of BezTriple (curve-object data for e.g.)
Also:
- Move detailed doxygen comment above code, following code-style.
- Mark bezt_add_to_cfra_elem unused.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_fcurve.h | 23 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/fcurve.c | 31 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/fcurve_test.cc | 9 |
3 files changed, 35 insertions, 28 deletions
diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h index e42d1cbbc78..e0c0f91b34b 100644 --- a/source/blender/blenkernel/BKE_fcurve.h +++ b/source/blender/blenkernel/BKE_fcurve.h @@ -57,8 +57,6 @@ typedef struct CfraElem { int sel; } CfraElem; -void bezt_add_to_cfra_elem(ListBase *lb, struct BezTriple *bezt); - /* ************** F-Curve Modifiers *************** */ /* F-Curve Modifier Type-Info (fmi): @@ -229,7 +227,10 @@ struct FCurve *BKE_fcurve_find_by_rna_context_ui(struct bContext *C, /* Binary search algorithm for finding where to 'insert' BezTriple with given frame number. * Returns the index to insert at (data already at that index will be offset if replace is 0) */ -int binarysearch_bezt_index(struct BezTriple array[], float frame, int arraylen, bool *r_replace); +int BKE_fcurve_bezt_binarysearch_index(struct BezTriple array[], + float frame, + int arraylen, + bool *r_replace); /* get the time extents for F-Curve */ bool BKE_fcurve_calc_range( @@ -270,17 +271,11 @@ typedef enum eFCU_Cycle_Type { eFCU_Cycle_Type BKE_fcurve_get_cycle_type(struct FCurve *fcu); -/** Adjust Bezier handles of all three given BezTriples, so that `bezt` can be inserted between - * `prev` and `next` without changing the resulting curve shape. - * - * \param r_pdelta: return Y difference between `bezt` and the original curve value at its X - * position. - * \return Whether the split was succesful. - */ -bool BKE_bezt_subdivide_handles(struct BezTriple *bezt, - struct BezTriple *prev, - struct BezTriple *next, - float *r_pdelta); +/* Recompute handles to neatly subdivide the prev-next range at bezt. */ +bool BKE_fcurve_bezt_subdivide_handles(struct BezTriple *bezt, + struct BezTriple *prev, + struct BezTriple *next, + float *r_pdelta); /* -------- Curve Sanity -------- */ diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 2f8a8fcffdc..18e6479ea07 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -502,7 +502,7 @@ FCurve *BKE_fcurve_find_by_rna_context_ui(bContext *C, * with optional argument for precision required. * Returns the index to insert at (data already at that index will be offset if replace is 0) */ -static int binarysearch_bezt_index_ex( +static int BKE_fcurve_bezt_binarysearch_index_ex( BezTriple array[], float frame, int arraylen, float threshold, bool *r_replace) { int start = 0, end = arraylen; @@ -589,10 +589,14 @@ static int binarysearch_bezt_index_ex( /* Binary search algorithm for finding where to insert BezTriple. (for use by insert_bezt_fcurve) * Returns the index to insert at (data already at that index will be offset if replace is 0) */ -int binarysearch_bezt_index(BezTriple array[], float frame, int arraylen, bool *r_replace) +int BKE_fcurve_bezt_binarysearch_index(BezTriple array[], + float frame, + int arraylen, + bool *r_replace) { /* this is just a wrapper which uses the default threshold */ - return binarysearch_bezt_index_ex(array, frame, arraylen, BEZT_BINARYSEARCH_THRESH, r_replace); + return BKE_fcurve_bezt_binarysearch_index_ex( + array, frame, arraylen, BEZT_BINARYSEARCH_THRESH, r_replace); } /* ...................................... */ @@ -968,7 +972,7 @@ bool BKE_fcurve_is_keyframable(FCurve *fcu) * \{ */ /* add a BezTriple to a column */ -void bezt_add_to_cfra_elem(ListBase *lb, BezTriple *bezt) +static void UNUSED_FUNCTION(bezt_add_to_cfra_elem)(ListBase *lb, BezTriple *bezt) { CfraElem *ce, *cen; @@ -1533,11 +1537,18 @@ static void berekeny(float f1, float f2, float f3, float f4, float *o, int b) } } -/* Recompute handles to neatly subdivide the prev-next range at bezt. */ -bool BKE_bezt_subdivide_handles(struct BezTriple *bezt, - struct BezTriple *prev, - struct BezTriple *next, - float *r_pdelta) +/** + * Adjust Bezier handles of all three given BezTriples, so that `bezt` can be inserted between + * `prev` and `next` without changing the resulting curve shape. + * + * \param r_pdelta: return Y difference between `bezt` and the original curve value at its X + * position. + * \return Whether the split was successful. + */ +bool BKE_fcurve_bezt_subdivide_handles(struct BezTriple *bezt, + struct BezTriple *prev, + struct BezTriple *next, + float *r_pdelta) { /* The four points that make up this section of the Bezier curve. */ const float *prev_coords = prev->vec[1]; @@ -1667,7 +1678,7 @@ static float fcurve_eval_keyframes_interpolate(FCurve *fcu, BezTriple *bezts, fl * Weird errors, like selecting the wrong keyframe range (see T39207), occur. * This lower bound was established in b888a32eee8147b028464336ad2404d8155c64dd. */ - a = binarysearch_bezt_index_ex(bezts, evaltime, fcu->totvert, 0.0001, &exact); + a = BKE_fcurve_bezt_binarysearch_index_ex(bezts, evaltime, fcu->totvert, 0.0001, &exact); bezt = bezts + a; if (exact) { diff --git a/source/blender/blenkernel/intern/fcurve_test.cc b/source/blender/blenkernel/intern/fcurve_test.cc index f258e2ff28d..a230c8f2e96 100644 --- a/source/blender/blenkernel/intern/fcurve_test.cc +++ b/source/blender/blenkernel/intern/fcurve_test.cc @@ -50,8 +50,9 @@ TEST(evaluate_fcurve, OnKeys) EXPECT_NEAR(evaluate_fcurve(fcu, 3.0f), 19.0f, EPSILON); /* hits 'on or after last' function */ /* Also test within a specific time epsilon of the keys, as this was an issue in T39207. - * This epsilon is just slightly smaller than the epsilon given to binarysearch_bezt_index_ex() - * in fcurve_eval_between_keyframes(), so it should hit the "exact" code path. */ + * This epsilon is just slightly smaller than the epsilon given to + * BKE_fcurve_bezt_binarysearch_index_ex() in fcurve_eval_between_keyframes(), so it should hit + * the "exact" code path. */ float time_epsilon = 0.00008f; EXPECT_NEAR(evaluate_fcurve(fcu, 2.0f - time_epsilon), 13.0f, EPSILON); EXPECT_NEAR(evaluate_fcurve(fcu, 2.0f + time_epsilon), 13.0f, EPSILON); @@ -210,7 +211,7 @@ TEST(evaluate_fcurve, ExtrapolationBezierKeys) BKE_fcurve_free(fcu); } -TEST(fcurve_subdivide, BKE_bezt_subdivide_handles) +TEST(fcurve_subdivide, BKE_fcurve_bezt_subdivide_handles) { FCurve *fcu = BKE_fcurve_create(); @@ -245,7 +246,7 @@ TEST(fcurve_subdivide, BKE_bezt_subdivide_handles) /* This should update the existing handles as well as the new BezTriple. */ float y_delta; - BKE_bezt_subdivide_handles(&beztr, &fcu->bezt[0], &fcu->bezt[1], &y_delta); + BKE_fcurve_bezt_subdivide_handles(&beztr, &fcu->bezt[0], &fcu->bezt[1], &y_delta); EXPECT_FLOAT_EQ(y_delta, 0.0f); |