]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/rest-collision.hh
release: 1.3.94
[lilypond.git] / lily / include / rest-collision.hh
1 /*
2   rest-collision.hh -- declare Rest_collision
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef REST_COLLISION_HH
11 #define REST_COLLISION_HH
12
13 #include "lily-proto.hh"
14 #include "lily-guile.hh"
15
16
17
18
19 /*
20   Move rests in note-columns so that they do not collide.
21   
22   properties:
23
24   read-only
25
26   maximum-rest-count -- kill off rests so we don't more than this
27     number left.
28
29   minimum-distance -- minimum distance between notes and rests.
30
31   read/write
32   
33   elements -- list of elts (both rests and notes) participating in the
34     collision.
35
36
37   sets in elements:
38
39     rest-collision -- pointer to self.
40
41     
42   
43     
44 */
45
46 class Rest_collision            // interface
47 {
48 public:
49   static void add_column (Score_element*me,Score_element*);
50   static void set_interface (Score_element*me);
51   static bool has_interface (Score_element*);
52   DECLARE_SCHEME_CALLBACK(force_shift_callback, (SCM element, SCM axis));
53   static SCM do_shift (Score_element*,SCM);
54 };
55 #endif // REST_COLLISION_HH