Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2021-06-30 00:08:41 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2021-06-30 00:08:41 +0300
commit2d35eed34d01e4e63d672e35da7b3d45e97ff9ee (patch)
tree021f7a9d427e106e13bd5fc999a8f79dd492dc0c /source/blender/editors/transform
parent929d9ec0c79486bfc5d85b9e574c80491c9fef9d (diff)
Cleanup: split uses of _snap_sequencer_apply according to transform mode
The `applySnap` callback of each mode was overwriting the value calculated in `transform_snap_sequencer_apply`.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_mode_edge_seq_slide.c1
-rw-r--r--source/blender/editors/transform/transform_mode_translate.c3
-rw-r--r--source/blender/editors/transform/transform_snap.c6
-rw-r--r--source/blender/editors/transform/transform_snap.h3
-rw-r--r--source/blender/editors/transform/transform_snap_sequencer.c12
5 files changed, 17 insertions, 8 deletions
diff --git a/source/blender/editors/transform/transform_mode_edge_seq_slide.c b/source/blender/editors/transform/transform_mode_edge_seq_slide.c
index 1b054696930..fe853440c96 100644
--- a/source/blender/editors/transform/transform_mode_edge_seq_slide.c
+++ b/source/blender/editors/transform/transform_mode_edge_seq_slide.c
@@ -149,6 +149,7 @@ void initSeqSlide(TransInfo *t)
{
t->transform = applySeqSlide;
t->handleEvent = seq_slide_handleEvent;
+ t->tsnap.applySnap = transform_snap_sequencer_apply_translate;
initMouseInputMode(t, &t->mouse, INPUT_VECTOR);
diff --git a/source/blender/editors/transform/transform_mode_translate.c b/source/blender/editors/transform/transform_mode_translate.c
index 394271f7724..49afd7f0421 100644
--- a/source/blender/editors/transform/transform_mode_translate.c
+++ b/source/blender/editors/transform/transform_mode_translate.c
@@ -222,6 +222,9 @@ static void ApplySnapTranslation(TransInfo *t, float vec[3])
vec[1] = point[1] - t->tsnap.snapTarget[1];
}
}
+ else if (t->spacetype == SPACE_SEQ) {
+ transform_snap_sequencer_apply_translate(t, vec);
+ }
else {
if (t->spacetype == SPACE_VIEW3D) {
if (t->options & CTX_PAINT_CURVE) {
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 1749a63e1dc..9a33dc1218d 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -499,7 +499,7 @@ void applySnapping(TransInfo *t, float *vec)
t->tsnap.last = current;
- if (t->tsnap.applySnap && validSnap(t)) {
+ if (validSnap(t)) {
t->tsnap.applySnap(t, vec);
}
}
@@ -980,10 +980,10 @@ static void snap_calc_node_fn(TransInfo *t, float *UNUSED(vec))
}
}
-static void snap_calc_sequencer_fn(TransInfo *t, float *vec)
+static void snap_calc_sequencer_fn(TransInfo *t, float *UNUSED(vec))
{
BLI_assert(t->spacetype == SPACE_SEQ);
- if (transform_snap_sequencer_apply(t, vec, t->tsnap.snapPoint)) {
+ if (transform_snap_sequencer_calc(t)) {
t->tsnap.status |= (POINT_INIT | TARGET_INIT);
}
else {
diff --git a/source/blender/editors/transform/transform_snap.h b/source/blender/editors/transform/transform_snap.h
index e0989418c1c..6dfaeab93e6 100644
--- a/source/blender/editors/transform/transform_snap.h
+++ b/source/blender/editors/transform/transform_snap.h
@@ -84,4 +84,5 @@ float transform_snap_distance_len_squared_fn(TransInfo *t, const float p1[3], co
/* transform_snap_sequencer.c */
struct TransSeqSnapData *transform_snap_sequencer_data_alloc(const TransInfo *t);
void transform_snap_sequencer_data_free(struct TransSeqSnapData *data);
-bool transform_snap_sequencer_apply(struct TransInfo *t, float *vec, float *snap_point);
+bool transform_snap_sequencer_calc(struct TransInfo *t);
+void transform_snap_sequencer_apply_translate(TransInfo *t, float *vec);
diff --git a/source/blender/editors/transform/transform_snap_sequencer.c b/source/blender/editors/transform/transform_snap_sequencer.c
index 22d738e75ca..3100a8f5c39 100644
--- a/source/blender/editors/transform/transform_snap_sequencer.c
+++ b/source/blender/editors/transform/transform_snap_sequencer.c
@@ -234,11 +234,10 @@ void transform_snap_sequencer_data_free(TransSeqSnapData *data)
MEM_freeN(data);
}
-bool transform_snap_sequencer_apply(TransInfo *t, float *vec, float *snap_point)
+bool transform_snap_sequencer_calc(TransInfo *t)
{
const TransSeqSnapData *snap_data = t->tsnap.seq_context;
int best_dist = MAXFRAME, best_target_frame = 0, best_source_frame = 0;
- *snap_point = 0;
for (int i = 0; i < snap_data->source_snap_point_count; i++) {
int snap_source_frame = snap_data->source_snap_points[i] + round_fl_to_int(t->values[0]);
@@ -260,7 +259,12 @@ bool transform_snap_sequencer_apply(TransInfo *t, float *vec, float *snap_point)
return false;
}
- *snap_point = best_target_frame;
- *vec += best_target_frame - best_source_frame;
+ t->tsnap.snapPoint[0] = best_target_frame;
+ t->tsnap.snapTarget[0] = best_source_frame;
return true;
}
+
+void transform_snap_sequencer_apply_translate(TransInfo *t, float *vec)
+{
+ *vec += t->tsnap.snapPoint[0] - t->tsnap.snapTarget[0];
+}