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:
authorSebastian Parborg <darkdefende@gmail.com>2019-06-14 18:17:15 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-06-14 18:26:33 +0300
commit33571be2af590d6f13f91bd2f3c292a8690a7bdc (patch)
tree8f22cca059991bc13a241b24d1e27dd07e90ded8
parenta5a0f158e363ff55b791c9e0970c824bc80a0a3a (diff)
Fix T65632: Connected Proportional Editing is affected by Curve Object's Local Scale
Make curve vertex distance take into account the object scale.
-rw-r--r--source/blender/editors/transform/transform_conversions.c14
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) {