From f32b63ec583ce70081a1998b31470dbb74450a0f Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Wed, 8 Dec 2021 14:20:03 -0300 Subject: Fix T93642: value used as transform offset is ignored in some modes If a transform operator is executed as modal and has a "value" set, that value works as an offset. However few transform modes were supporting this. Include more transform modes as supported. --- source/blender/editors/transform/transform_mode_bbone_resize.c | 1 + source/blender/editors/transform/transform_mode_boneenvelope.c | 2 +- source/blender/editors/transform/transform_mode_boneroll.c | 2 +- source/blender/editors/transform/transform_mode_curveshrinkfatten.c | 2 +- source/blender/editors/transform/transform_mode_edge_bevelweight.c | 2 +- source/blender/editors/transform/transform_mode_edge_crease.c | 2 +- source/blender/editors/transform/transform_mode_edge_rotate_normal.c | 2 +- source/blender/editors/transform/transform_mode_edge_slide.c | 2 +- source/blender/editors/transform/transform_mode_gpopacity.c | 2 +- source/blender/editors/transform/transform_mode_gpshrinkfatten.c | 2 +- source/blender/editors/transform/transform_mode_maskshrinkfatten.c | 2 +- source/blender/editors/transform/transform_mode_push_pull.c | 2 +- source/blender/editors/transform/transform_mode_shear.c | 2 +- source/blender/editors/transform/transform_mode_shrink_fatten.c | 2 +- source/blender/editors/transform/transform_mode_skin_resize.c | 1 + source/blender/editors/transform/transform_mode_tilt.c | 2 +- source/blender/editors/transform/transform_mode_tosphere.c | 2 +- source/blender/editors/transform/transform_mode_vert_slide.c | 2 +- 18 files changed, 18 insertions(+), 16 deletions(-) diff --git a/source/blender/editors/transform/transform_mode_bbone_resize.c b/source/blender/editors/transform/transform_mode_bbone_resize.c index 95e2d944b9b..53908564fe5 100644 --- a/source/blender/editors/transform/transform_mode_bbone_resize.c +++ b/source/blender/editors/transform/transform_mode_bbone_resize.c @@ -123,6 +123,7 @@ static void applyBoneSize(TransInfo *t, const int UNUSED(mval[2])) float ratio = t->values[0]; copy_v3_fl(t->values_final, ratio); + add_v3_v3(t->values_final, t->values_modal_offset); transform_snap_increment(t, t->values_final); diff --git a/source/blender/editors/transform/transform_mode_boneenvelope.c b/source/blender/editors/transform/transform_mode_boneenvelope.c index da7393ab42e..bb7bd81f7bd 100644 --- a/source/blender/editors/transform/transform_mode_boneenvelope.c +++ b/source/blender/editors/transform/transform_mode_boneenvelope.c @@ -51,7 +51,7 @@ static void applyBoneEnvelope(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - ratio = t->values[0]; + ratio = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &ratio); diff --git a/source/blender/editors/transform/transform_mode_boneroll.c b/source/blender/editors/transform/transform_mode_boneroll.c index cd04ca2b844..237a8a0719a 100644 --- a/source/blender/editors/transform/transform_mode_boneroll.c +++ b/source/blender/editors/transform/transform_mode_boneroll.c @@ -52,7 +52,7 @@ static void applyBoneRoll(TransInfo *t, const int UNUSED(mval[2])) float final; - final = t->values[0]; + final = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &final); diff --git a/source/blender/editors/transform/transform_mode_curveshrinkfatten.c b/source/blender/editors/transform/transform_mode_curveshrinkfatten.c index 9433502ef55..f6d0eb49576 100644 --- a/source/blender/editors/transform/transform_mode_curveshrinkfatten.c +++ b/source/blender/editors/transform/transform_mode_curveshrinkfatten.c @@ -51,7 +51,7 @@ static void applyCurveShrinkFatten(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - ratio = t->values[0]; + ratio = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &ratio); diff --git a/source/blender/editors/transform/transform_mode_edge_bevelweight.c b/source/blender/editors/transform/transform_mode_edge_bevelweight.c index 5466ba3e91f..56613a9d3be 100644 --- a/source/blender/editors/transform/transform_mode_edge_bevelweight.c +++ b/source/blender/editors/transform/transform_mode_edge_bevelweight.c @@ -96,7 +96,7 @@ static void applyBevelWeight(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - weight = t->values[0]; + weight = t->values[0] + t->values_modal_offset[0]; CLAMP_MAX(weight, 1.0f); diff --git a/source/blender/editors/transform/transform_mode_edge_crease.c b/source/blender/editors/transform/transform_mode_edge_crease.c index 1d3b4dbb4f0..debc2a1be3e 100644 --- a/source/blender/editors/transform/transform_mode_edge_crease.c +++ b/source/blender/editors/transform/transform_mode_edge_crease.c @@ -97,7 +97,7 @@ static void applyCrease(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - crease = t->values[0]; + crease = t->values[0] + t->values_modal_offset[0]; CLAMP_MAX(crease, 1.0f); diff --git a/source/blender/editors/transform/transform_mode_edge_rotate_normal.c b/source/blender/editors/transform/transform_mode_edge_rotate_normal.c index 1f57bacf78f..16263adb223 100644 --- a/source/blender/editors/transform/transform_mode_edge_rotate_normal.c +++ b/source/blender/editors/transform/transform_mode_edge_rotate_normal.c @@ -95,7 +95,7 @@ static void applyNormalRotation(TransInfo *t, const int UNUSED(mval[2])) float axis[3]; float mat[3][3]; - float angle = t->values[0]; + float angle = t->values[0] + t->values_modal_offset[0]; copy_v3_v3(axis, axis_final); transform_snap_increment(t, &angle); diff --git a/source/blender/editors/transform/transform_mode_edge_slide.c b/source/blender/editors/transform/transform_mode_edge_slide.c index cfcb17b8da0..c7a42b0cd64 100644 --- a/source/blender/editors/transform/transform_mode_edge_slide.c +++ b/source/blender/editors/transform/transform_mode_edge_slide.c @@ -1458,7 +1458,7 @@ static void applyEdgeSlide(TransInfo *t, const int UNUSED(mval[2])) const bool is_clamp = !(t->flag & T_ALT_TRANSFORM); const bool is_constrained = !(is_clamp == false || hasNumInput(&t->num)); - final = t->values[0]; + final = t->values[0] + t->values_modal_offset[0]; applySnapping(t, &final); if (!validSnap(t)) { diff --git a/source/blender/editors/transform/transform_mode_gpopacity.c b/source/blender/editors/transform/transform_mode_gpopacity.c index 748769491f1..b5a4b5d285e 100644 --- a/source/blender/editors/transform/transform_mode_gpopacity.c +++ b/source/blender/editors/transform/transform_mode_gpopacity.c @@ -53,7 +53,7 @@ static void applyGPOpacity(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - ratio = t->values[0]; + ratio = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &ratio); diff --git a/source/blender/editors/transform/transform_mode_gpshrinkfatten.c b/source/blender/editors/transform/transform_mode_gpshrinkfatten.c index bc081edd597..3be7dde56a1 100644 --- a/source/blender/editors/transform/transform_mode_gpshrinkfatten.c +++ b/source/blender/editors/transform/transform_mode_gpshrinkfatten.c @@ -53,7 +53,7 @@ static void applyGPShrinkFatten(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - ratio = t->values[0]; + ratio = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &ratio); diff --git a/source/blender/editors/transform/transform_mode_maskshrinkfatten.c b/source/blender/editors/transform/transform_mode_maskshrinkfatten.c index 327a639773c..9788b14e321 100644 --- a/source/blender/editors/transform/transform_mode_maskshrinkfatten.c +++ b/source/blender/editors/transform/transform_mode_maskshrinkfatten.c @@ -52,7 +52,7 @@ static void applyMaskShrinkFatten(TransInfo *t, const int UNUSED(mval[2])) bool initial_feather = false; char str[UI_MAX_DRAW_STR]; - ratio = t->values[0]; + ratio = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &ratio); diff --git a/source/blender/editors/transform/transform_mode_push_pull.c b/source/blender/editors/transform/transform_mode_push_pull.c index 0527d1bc08e..bf6037572b9 100644 --- a/source/blender/editors/transform/transform_mode_push_pull.c +++ b/source/blender/editors/transform/transform_mode_push_pull.c @@ -124,7 +124,7 @@ static void applyPushPull(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - distance = t->values[0]; + distance = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &distance); diff --git a/source/blender/editors/transform/transform_mode_shear.c b/source/blender/editors/transform/transform_mode_shear.c index 018725ec6dd..819a1e321f4 100644 --- a/source/blender/editors/transform/transform_mode_shear.c +++ b/source/blender/editors/transform/transform_mode_shear.c @@ -199,7 +199,7 @@ static void applyShear(TransInfo *t, const int UNUSED(mval[2])) char str[UI_MAX_DRAW_STR]; const bool is_local_center = transdata_check_local_center(t, t->around); - value = t->values[0]; + value = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &value); diff --git a/source/blender/editors/transform/transform_mode_shrink_fatten.c b/source/blender/editors/transform/transform_mode_shrink_fatten.c index b18e0aa0c7f..032188e7115 100644 --- a/source/blender/editors/transform/transform_mode_shrink_fatten.c +++ b/source/blender/editors/transform/transform_mode_shrink_fatten.c @@ -110,7 +110,7 @@ static void applyShrinkFatten(TransInfo *t, const int UNUSED(mval[2])) size_t ofs = 0; UnitSettings *unit = &t->scene->unit; - distance = t->values[0]; + distance = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &distance); diff --git a/source/blender/editors/transform/transform_mode_skin_resize.c b/source/blender/editors/transform/transform_mode_skin_resize.c index 236c9024201..d4ecaf1a27f 100644 --- a/source/blender/editors/transform/transform_mode_skin_resize.c +++ b/source/blender/editors/transform/transform_mode_skin_resize.c @@ -107,6 +107,7 @@ static void applySkinResize(TransInfo *t, const int UNUSED(mval[2])) } else { copy_v3_fl(t->values_final, t->values[0]); + add_v3_v3(t->values_final, t->values_modal_offset); transform_snap_increment(t, t->values_final); diff --git a/source/blender/editors/transform/transform_mode_tilt.c b/source/blender/editors/transform/transform_mode_tilt.c index b48f474e16e..6b470177a12 100644 --- a/source/blender/editors/transform/transform_mode_tilt.c +++ b/source/blender/editors/transform/transform_mode_tilt.c @@ -52,7 +52,7 @@ static void applyTilt(TransInfo *t, const int UNUSED(mval[2])) float final; - final = t->values[0]; + final = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &final); diff --git a/source/blender/editors/transform/transform_mode_tosphere.c b/source/blender/editors/transform/transform_mode_tosphere.c index bfc85b2fe44..e3feaab5f20 100644 --- a/source/blender/editors/transform/transform_mode_tosphere.c +++ b/source/blender/editors/transform/transform_mode_tosphere.c @@ -194,7 +194,7 @@ static void applyToSphere(TransInfo *t, const int UNUSED(mval[2])) int i; char str[UI_MAX_DRAW_STR]; - ratio = t->values[0]; + ratio = t->values[0] + t->values_modal_offset[0]; transform_snap_increment(t, &ratio); diff --git a/source/blender/editors/transform/transform_mode_vert_slide.c b/source/blender/editors/transform/transform_mode_vert_slide.c index def5f911c6f..efc4c73fbee 100644 --- a/source/blender/editors/transform/transform_mode_vert_slide.c +++ b/source/blender/editors/transform/transform_mode_vert_slide.c @@ -582,7 +582,7 @@ static void applyVertSlide(TransInfo *t, const int UNUSED(mval[2])) const bool is_clamp = !(t->flag & T_ALT_TRANSFORM); const bool is_constrained = !(is_clamp == false || hasNumInput(&t->num)); - final = t->values[0]; + final = t->values[0] + t->values_modal_offset[0]; applySnapping(t, &final); if (!validSnap(t)) { -- cgit v1.2.3