diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2021-08-19 16:28:43 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2021-08-19 16:34:13 +0300 |
commit | b0d9e6797fb866e7a58876c7977c98a190070310 (patch) | |
tree | 99db77c25e2adfeb0113033db877882dac0d051e /source/blender/editors/transform/transform_snap.h | |
parent | 119d53263f0d0dc5474cb36e888dbdd48a64f9c6 (diff) |
Fix T87173: wrong Auto-Snap in animation editors
This was partially broken with {rBde9ea94fc6f}.
The `Frame Step` and `Second Step` snapping options were working as if
they were `Nearest Frame` and `Nearest Second` respectively in the
`Dope Sheet` and `NLA` editors.
In the `Graph Editor` the problem was more serious:
"Second Step: ... The keyframe itself moves along as though in snapping
were active at all, while its handles 'stay behind' until it reaches
the next second boundary, at which point the teleport handles to
'catch up'".
The snapping code for these modes was spread across the transform
mode code and `recalcData` of each data type. Therefore, create a
unified snapping code for these options so that all issues are fixed in
one place.
Differetial Revision: https://developer.blender.org/D12241
Diffstat (limited to 'source/blender/editors/transform/transform_snap.h')
-rw-r--r-- | source/blender/editors/transform/transform_snap.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/editors/transform/transform_snap.h b/source/blender/editors/transform/transform_snap.h index 20cc590d7cc..ed7f93304bc 100644 --- a/source/blender/editors/transform/transform_snap.h +++ b/source/blender/editors/transform/transform_snap.h @@ -83,11 +83,12 @@ void transform_snap_sequencer_apply_translate(TransInfo *t, float *vec); /* transform_snap_animation.c */ short getAnimEdit_SnapMode(TransInfo *t); -void snapFrameTransform(struct TransInfo *t, +void snapFrameTransform(TransInfo *t, const eAnimEdit_AutoSnap autosnap, - const bool is_frame_value, - const float delta, - /* return args */ - float *r_val); -void doAnimEdit_SnapFrame( - TransInfo *t, TransData *td, TransData2D *td2d, struct AnimData *adt, short autosnap); + const float val_initial, + const float val_final, + float *r_val_final); +void transform_snap_anim_flush_data(TransInfo *t, + TransData *td, + const eAnimEdit_AutoSnap autosnap, + float *r_val_final); |