]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/rest-collision.hh
2df8ae606c05aac78013e6be03cb5c8041e1a1bd
[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 extern SCM Rest_collision_force_shift_callback_proc;
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   static SCM force_shift_callback (SCM element, SCM axis);
53   static SCM do_shift (Score_element*,SCM);
54 };
55 #endif // REST_COLLISION_HH