]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/col-info.hh
8aea10dbc4ace847f35458621573d4214f026c15
[lilypond.git] / lily / include / col-info.hh
1 /*
2   col-info.hh -- declare Column_info
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef COL_INFO_HH
11 #define COL_INFO_HH
12
13 #include "lily-proto.hh"
14 #include "pointer.hh"
15 #include "interval.hh"
16 #include "drul-array.hh"
17
18 struct Spacer_rod {
19   Real distance_f_;
20   int other_idx_;
21   void print () const;
22 };
23
24 struct Spacer_spring
25 {
26   Real distance_f_;
27   Real hooke_f_;
28   Real other_idx_;
29 };
30
31 /// helper struct for #Spacing_problem#
32 struct Column_info {
33   Paper_column *pcol_l_;
34   P<Real> fixpos_p_;
35
36   Interval width_;
37   int rank_i_;
38   /// did some tricks to make this column come out.
39   bool ugh_b_;          
40
41   Drul_array< Array<Spacer_rod> > rods_;
42   //  Drul_array< Array<Spacer_spring> > springs_;  
43   
44   Column_info();
45   Column_info (Paper_column *,Real const *);
46
47   int rank_i () const;
48   void print() const;
49   bool fixed_b() const ;
50   Real fixed_position() const ;
51 };
52
53 #endif // COL_INFO_HH