diff options
-rw-r--r-- | source/blender/editors/transform/transform_mode_edge_slide.c | 1 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_mode_vert_slide.c | 9 |
2 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/editors/transform/transform_mode_edge_slide.c b/source/blender/editors/transform/transform_mode_edge_slide.c index ed22afc404e..750962047db 100644 --- a/source/blender/editors/transform/transform_mode_edge_slide.c +++ b/source/blender/editors/transform/transform_mode_edge_slide.c @@ -1316,6 +1316,7 @@ static void edge_slide_snap_apply(TransInfo *t, float *value) if (t->tsnap.snapElem & (SCE_SNAP_MODE_EDGE | SCE_SNAP_MODE_FACE)) { float co_dir[3]; sub_v3_v3v3(co_dir, co_dest[side_index], co_orig); + normalize_v3(co_dir); if (t->tsnap.snapElem & SCE_SNAP_MODE_EDGE) { transform_constraint_snap_axis_to_edge(t, co_dir, dvec); } diff --git a/source/blender/editors/transform/transform_mode_vert_slide.c b/source/blender/editors/transform/transform_mode_vert_slide.c index 4b75c362da9..9e810b9c629 100644 --- a/source/blender/editors/transform/transform_mode_vert_slide.c +++ b/source/blender/editors/transform/transform_mode_vert_slide.c @@ -556,13 +556,14 @@ static void vert_slide_snap_apply(TransInfo *t, float *value) getSnapPoint(t, dvec); sub_v3_v3(dvec, t->tsnap.snapTarget); if (t->tsnap.snapElem & (SCE_SNAP_MODE_EDGE | SCE_SNAP_MODE_FACE)) { - float co_dir_3d[3]; - sub_v3_v3v3(co_dir_3d, co_curr_3d, co_orig_3d); + float co_dir[3]; + sub_v3_v3v3(co_dir, co_curr_3d, co_orig_3d); + normalize_v3(co_dir); if (t->tsnap.snapElem & SCE_SNAP_MODE_EDGE) { - transform_constraint_snap_axis_to_edge(t, co_dir_3d, dvec); + transform_constraint_snap_axis_to_edge(t, co_dir, dvec); } else { - transform_constraint_snap_axis_to_face(t, co_dir_3d, dvec); + transform_constraint_snap_axis_to_face(t, co_dir, dvec); } } |