2 simple-spacer.hh -- declare Simple_spacer
4 source file of the GNU LilyPond music typesetter
6 (c) 1999--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
9 #ifndef SIMPLE_SPACER_HH
10 #define SIMPLE_SPACER_HH
13 #include "lily-proto.hh"
16 struct Spring_description
23 Real length (Real force) const;
24 Spring_description ();
26 bool is_sane () const;
32 Array<Spring_description> springs_;
41 void my_solve_linelen ();
42 void my_solve_natural_len ();
43 Real active_springs_stiffness () const;
44 Real range_stiffness (int, int) const;
45 void add_rod (int l, int r, Real dist);
46 void add_spring (Real, Real);
47 Real range_ideal_len (int l, int r) const;
48 Real active_blocking_force ()const;
49 Real configuration_length ()const;
50 void set_active_states ();
51 bool is_active () const;
53 DECLARE_SIMPLE_SMOBS (Simple_spacer,);
56 struct Simple_spacer_wrapper
58 Simple_spacer *spacer_;
59 Link_array<Grob> spaced_cols_;
60 Link_array<Grob> loose_cols_;
62 Simple_spacer_wrapper ();
63 void add_columns (Link_array<Grob> const &);
64 void solve (Column_x_positions *, bool);
65 ~Simple_spacer_wrapper ();
67 Simple_spacer_wrapper (Simple_spacer_wrapper const &);
70 #endif /* SIMPLE_SPACER_HH */