diff options
author | Sebastian Parborg <darkdefende@gmail.com> | 2019-06-14 18:17:15 +0300 |
---|---|---|
committer | Sebastian Parborg <darkdefende@gmail.com> | 2019-06-14 18:26:33 +0300 |
commit | 33571be2af590d6f13f91bd2f3c292a8690a7bdc (patch) | |
tree | 8f22cca059991bc13a241b24d1e27dd07e90ded8 /source/blender/editors/transform/transform_conversions.c | |
parent | a5a0f158e363ff55b791c9e0970c824bc80a0a3a (diff) |
Fix T65632: Connected Proportional Editing is affected by Curve Object's Local Scale
Make curve vertex distance take into account the object scale.
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index b90e89019d7..a9acdcd001c 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -1835,7 +1835,12 @@ static void calc_distanceCurveVerts(TransData *head, TransData *tail) } else if (td_near) { float dist; - dist = len_v3v3(td_near->center, td->center); + float vec[3]; + + sub_v3_v3v3(vec, td_near->center, td->center); + mul_m3_v3(head->mtx, vec); + dist = len_v3(vec); + if (dist < (td - 1)->dist) { td->dist = (td - 1)->dist; } @@ -1856,7 +1861,12 @@ static void calc_distanceCurveVerts(TransData *head, TransData *tail) } else if (td_near) { float dist; - dist = len_v3v3(td_near->center, td->center); + float vec[3]; + + sub_v3_v3v3(vec, td_near->center, td->center); + mul_m3_v3(head->mtx, vec); + dist = len_v3(vec); + if (td->flag & TD_NOTCONNECTED || dist < td->dist || (td + 1)->dist < td->dist) { td->flag &= ~TD_NOTCONNECTED; if (dist < (td + 1)->dist) { |