X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fspring.hh;h=f4f943f899b5286cbabb18223cdaf40cc97dc846;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=7bb5cc36851294d2c82677de5665770d7c59b2e7;hpb=d521102157a5c9d71ba80ee8f0eef47e50bd7dd4;p=lilypond.git diff --git a/lily/include/spring.hh b/lily/include/spring.hh index 7bb5cc3685..f4f943f899 100644 --- a/lily/include/spring.hh +++ b/lily/include/spring.hh @@ -1,42 +1,55 @@ -/* - spring.hh -- declare Spring, Column_spring - +/* + spring.hh -- declare Spring + source file of the GNU LilyPond music typesetter - - (c) 1999--2000 Han-Wen Nienhuys - - */ + + (c) 1999--2008 Han-Wen Nienhuys +*/ #ifndef SPRING_HH #define SPRING_HH #include "lily-proto.hh" -#include "drul-array.hh" +#include "smobs.hh" -struct Column_spring { - Paper_column *other_l_; - Real distance_f_; +class Spring +{ + Real distance_; + Real min_distance_; - /* - TODO: make 2 strengths: one for stretching, and one for shrinking. - */ - Real strength_f_; - - Column_spring (); -}; + Real inverse_stretch_strength_; + Real inverse_compress_strength_; + + Real blocking_force_; -struct Spring{ - Drul_array item_l_drul_; - Real distance_f_; + void update_blocking_force (); - /* - TODO: make 2 strengths: one for stretching, and one for shrinking. - */ - Real strength_f_; - void add_to_cols (); + DECLARE_SIMPLE_SMOBS (Spring); +public: Spring (); + Spring (Real distance, Real min_distance); + + Real distance () const {return distance_;} + 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 set_inverse_stretch_strength (Real); + void set_inverse_compress_strength (Real); + void set_blocking_force (Real); + void set_default_strength (); + + void operator*= (Real); + bool operator> (Spring const&) const; }; +DECLARE_UNSMOB (Spring, spring); +Spring merge_springs (vector const &springs); #endif /* SPRING_HH */