diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-10-14 13:03:13 +0400 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2014-10-14 13:03:13 +0400 |
commit | 0297763afafae7392348728580f3ae38e1208354 (patch) | |
tree | e24132f597b4abb8bae570b8ea8048999a9c227c | |
parent | c08e7e1dc0366c485dbea5ef1209f2cdb616fbb3 (diff) |
Tweak for smoothing limits in stretch-constraint volume preservation.
Uses a arctan instead of sine function now, which has the advantage of
not overestimating the bulging.
m--------- | release/datafiles/locale | 0 | ||||
m--------- | release/scripts/addons | 0 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/constraint.c | 6 |
3 files changed, 2 insertions, 4 deletions
diff --git a/release/datafiles/locale b/release/datafiles/locale -Subproject c980697651ad7f21a7cd8ad23dc26e482b5fa75 +Subproject 841b1b9f494b6f980da4e244bbd86ecb8a8ac0b diff --git a/release/scripts/addons b/release/scripts/addons -Subproject c210f87f12929bbd0884db7bf76baa3f1eed7b0 +Subproject fd695c3a81b63db072311e8516e0dbb8d447404 diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index e4b60c12d64..3a9eb31f061 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -2693,11 +2693,9 @@ static void stretchto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t const float bulge_median = ((data->flag & STRETCHTOCON_USE_BULGE_MIN) ? 0.5f * (data->bulge_min + data->bulge_max) : 0.0f); const float bulge_range = data->bulge_max - bulge_median; - float x, bulge_smoothed; + float bulge_smoothed; - x = bulge_range != 0.0f ? (bulge - bulge_median) / bulge_range : 0.0f; - CLAMP(x, -1.0f, 1.0f); - bulge_smoothed = bulge_median + bulge_range * sinf(0.5f*M_PI * x); + bulge_smoothed = bulge_median + bulge_range * atanf(bulge - bulge_median) / (0.5f * M_PI); if (data->flag & STRETCHTOCON_USE_BULGE_MIN) { CLAMP_MIN(bulge, data->bulge_min); |