]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/spring.hh
Imported Upstream version 2.16.0
[lilypond.git] / lily / include / spring.hh
index d9b40cca4654b3c02ef3ad2c9c1c2f0ca49ee041..fe02fe898cd30e0d7e00ef75ce2f3b698cb5dead 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  spring.hh -- declare Spring
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #ifndef SPRING_HH
@@ -20,6 +31,10 @@ class Spring
   Real inverse_stretch_strength_;
   Real inverse_compress_strength_;
 
+  Real blocking_force_;
+
+  void update_blocking_force ();
+
   DECLARE_SIMPLE_SMOBS (Spring);
 public:
   Spring ();
@@ -29,14 +44,22 @@ public:
   Real min_distance () const {return min_distance_;}
   Real inverse_stretch_strength () const {return inverse_stretch_strength_;}
   Real inverse_compress_strength () const {return inverse_compress_strength_;}
+  Real blocking_force () const {return blocking_force_;}
+
+  Real length (Real f) const;
 
   void set_distance (Real);
   void set_min_distance (Real);
+  void ensure_min_distance (Real);
   void set_inverse_stretch_strength (Real);
   void set_inverse_compress_strength (Real);
+  void set_blocking_force (Real);
+  void set_default_strength ();
+  void set_default_compress_strength ();
+  void set_default_stretch_strength ();
 
-  void operator*= (Real);
-  Grob *other_;
+  void operator *= (Real);
+  bool operator > (Spring const &) const;
 };
 DECLARE_UNSMOB (Spring, spring);