]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/spacing-spanner.hh
f0f81dde7612c38c72117665dd79cede71db83ac
[lilypond.git] / lily / include / spacing-spanner.hh
1 /*   
2   spacing-spanner.hh -- declare Spacing_spanner
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef SPACING_SPANNER_HH
11 #define SPACING_SPANNER_HH
12
13 #include "spanner.hh"
14
15 /**
16    Read-only properties
17
18    maximum-duration-for-spacing -- rational: space as if a duration of
19      this type is available in this measure.
20
21
22    
23    Read properties from paper-column
24
25    dir-list -- list of stem directions
26
27    shortest-playing-duration -- duration of the shortest playing in that column.
28
29    shortest-starter-duration -- duration of the shortest notes that starts
30      exactly in that column.
31
32    contains-grace -- boolean. Used to widen entries for grace notes.
33
34    extra-space --  pair of distances
35
36    stretch-distance -- pair of distances
37  */
38 class Spacing_spanner
39 {
40 public:
41   static void set_interface (Score_element*);
42   static void do_measure (Score_element*,Link_array<Score_element>) ;
43
44   DECLARE_SCHEME_CALLBACK(set_springs, (SCM ));
45   static Real stem_dir_correction (Score_element*,Score_element*,Score_element*)  ;
46   static Real default_bar_spacing (Score_element*,Score_element*,Score_element*,Moment)  ;
47   static Real note_spacing (Score_element*,Score_element*,Score_element*,Moment)  ;
48   static Real get_duration_space (Score_element*,Moment dur, Moment shortest) ;
49 };
50
51 #endif /* SPACING_SPANNER_HH */
52