]> git.donarmstrong.com Git - lilypond.git/commitdiff
Fix 1139.
authorJoe Neeman <joeneeman@gmail.com>
Mon, 21 Jun 2010 20:29:23 +0000 (23:29 +0300)
committerJoe Neeman <joeneeman@gmail.com>
Tue, 22 Jun 2010 20:40:04 +0000 (23:40 +0300)
Fix a corner case for springs that are stretchable but not compressible.

lily/spring.cc

index 761ef2467bf0773c770b70a6410b7a2541de2ca1..12d8f1895e395ae5a490cb4eca9b2909839c662b 100644 (file)
@@ -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;