Cleanup: Rename & refactor several F-curve functions
Rename and refactor several F-curve key manipulation functions, and move them from `editors` to `blenkernel`. The functions formerly known as `delete_fcurve_key`, `delete_fcurve_keys`, and `clear_fcurve_keys` have been moved from `ED_keyframes_edit.h` to `BKE_fcurve.h` and have been renamed according to hierarchical naming rules. Below is a table of the naming changes. | From | To | | -- | -- | | `delete_fcurve_key(fcu, index, do_recalc)` | `BKE_fcurve_delete_key(fcu, index)` | | `delete_fcurve_keys(fcu)` | `BKE_fcurve_delete_keys_selected(fcu)` | | `clear_fcurve_keys(fcu)` | `BKE_fcurve_delete_keys_all(fcu)` | | `calchandles_fcurve()` | `BKE_fcurve_handles_recalc()` | | `calchandles_fcurve_ex()`| `BKE_fcurve_handles_recalc_ex()` | The function formerly known as `delete_fcurve_key` no longer takes a `do_fast` parameter, which determined whether or not to call `calchandles_fcurve`. Now, the responsibility is on the caller to run the new `BKE_fcurve_handles_recalc` function if they have want to recalculate the handles. In addition, there is now a new static private function called `fcurve_bezt_free` which sets the key count to zero and frees the key array. This function is now used in couple of instances of functionally equivalent code. Note that `BKE_fcurve_delete_keys_all` is just a wrapper around `fcurve_bezt_free`. This change was initially spurred by the fact that `delete_fcurve_keys` was improperly named; this was a good opportunity to fix the location and naming of a few of these functions. Reviewed By: sybren Differential Revision: https://developer.blender.org/D15282
This commit is contained in:
@@ -639,7 +639,7 @@ int insert_vert_fcurve(
|
||||
* - we may calculate twice (due to auto-handle needing to be calculated twice)
|
||||
*/
|
||||
if ((flag & INSERTKEY_FAST) == 0) {
|
||||
calchandles_fcurve(fcu);
|
||||
BKE_fcurve_handles_recalc(fcu);
|
||||
}
|
||||
|
||||
/* return the index at which the keyframe was added */
|
||||
@@ -1282,10 +1282,12 @@ static bool insert_keyframe_value(ReportList *reports,
|
||||
/* delete keyframe immediately before/after newly added */
|
||||
switch (insert_mode) {
|
||||
case KEYNEEDED_DELPREV:
|
||||
delete_fcurve_key(fcu, fcu->totvert - 2, 1);
|
||||
BKE_fcurve_delete_key(fcu, fcu->totvert - 2);
|
||||
BKE_fcurve_handles_recalc(fcu);
|
||||
break;
|
||||
case KEYNEEDED_DELNEXT:
|
||||
delete_fcurve_key(fcu, 1, 1);
|
||||
BKE_fcurve_delete_key(fcu, 1);
|
||||
BKE_fcurve_handles_recalc(fcu);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1683,7 +1685,8 @@ static bool delete_keyframe_fcurve(AnimData *adt, FCurve *fcu, float cfra)
|
||||
i = BKE_fcurve_bezt_binarysearch_index(fcu->bezt, cfra, fcu->totvert, &found);
|
||||
if (found) {
|
||||
/* delete the key at the index (will sanity check + do recalc afterwards) */
|
||||
delete_fcurve_key(fcu, i, 1);
|
||||
BKE_fcurve_delete_key(fcu, i);
|
||||
BKE_fcurve_handles_recalc(fcu);
|
||||
|
||||
/* Only delete curve too if it won't be doing anything anymore */
|
||||
if (BKE_fcurve_is_empty(fcu)) {
|
||||
@@ -2709,7 +2712,8 @@ static int delete_key_button_exec(bContext *C, wmOperator *op)
|
||||
i = BKE_fcurve_bezt_binarysearch_index(fcu->bezt, cfra, fcu->totvert, &found);
|
||||
if (found) {
|
||||
/* delete the key at the index (will sanity check + do recalc afterwards) */
|
||||
delete_fcurve_key(fcu, i, 1);
|
||||
BKE_fcurve_delete_key(fcu, i);
|
||||
BKE_fcurve_handles_recalc(fcu);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user