]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/rest-collision.hh
release: 1.3.92
[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   Move rests in note-columns so that they do not collide.
20   
21   properties:
22
23   read-only
24
25   maximum-rest-count -- kill off rests so we don't more than this
26     number left.
27
28   minimum-distance -- minimum distance between notes and rests.
29
30   read/write
31   
32   elements -- list of elts (both rests and notes) participating in the
33     collision.
34
35
36   sets in elements:
37
38     rest-collision -- pointer to self.
39
40     
41   
42     
43 */
44
45 class Rest_collision            // interface
46 {
47 public:
48   static void add_column (Score_element*me,Score_element*);
49   static void set_interface (Score_element*me);
50   static bool has_interface (Score_element*);
51   static Real force_shift_callback (Score_element *, Axis);
52   static SCM do_shift (Score_element*,SCM);
53 };
54 #endif // REST_COLLISION_HH