From d36b253fdc6b6a7a0bc59d6b64bcbcd75b8b35be Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Mon, 21 Jun 2010 23:29:23 +0300 Subject: [PATCH] Fix 1139. Fix a corner case for springs that are stretchable but not compressible. --- lily/spring.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lily/spring.cc b/lily/spring.cc index 761ef2467b..12d8f1895e 100644 --- a/lily/spring.cc +++ b/lily/spring.cc @@ -51,9 +51,11 @@ Spring::update_blocking_force () blocking_force_ = (min_distance_ - distance_) / inverse_compress_strength_; // If the spring is fixed, it's not clear what the natural value - // of blocking_force_ would be. -infinity_f works fine for now. + // of blocking_force_ would be (because it always blocks). + // -infinity_f works fine for now. + // If inverse_stretch_strength > 0, the spring is not fixed (because it can stretch). if (isnan (blocking_force_) || blocking_force_ == infinity_f) - blocking_force_ = -infinity_f; + blocking_force_ = (inverse_stretch_strength_ > 0) ? 0.0 : -infinity_f; if (blocking_force_ >= 0) inverse_compress_strength_ = 0; -- 2.39.2