]> git.donarmstrong.com Git - lilypond.git/blob - lily/rest-collision.cc
release: 0.0.61
[lilypond.git] / lily / rest-collision.cc
1 /*
2   rest-collision.cc -- implement Rest_collision
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #include "rest-collision.hh"
10 #include "rest-column.hh"
11 #include "collision.hh"
12
13 void
14 Rest_collision::add(Rest_column *rc_l)
15 {
16     rest_l_arr_.push(rc_l);
17     add_dependency(rc_l);
18 }
19 void
20 Rest_collision::add(Collision * c_l)
21 {
22     add_dependency(c_l);
23     for (int i=0; i < c_l->clash_l_arr_.size(); i ++)
24         ncol_l_arr_.push(c_l->clash_l_arr_[i]);
25 }
26
27
28 void
29 Rest_collision::do_post_processing()
30 {
31 #if 0
32         bool rest_b_a[4];
33         rest_b_a[j] = (col_l_a[j]) ? col_l_a[j]->rest_b_ : false;       
34     do {
35         int i1 = idx(d, false);
36         int i2 = idx(d,true);
37         if (!intersection(y_extent[i1] , 
38                           y_extent[i2]).empty_b()) {
39             if (rest_b_a[i1]) {
40                 y_off[i1] = -y_extent[i1][-d] + y_extent[1][d] + d*4; // ugh
41                 y_extent[i1] += y_off[i1];
42             }
43         }
44     } while ((d *= -1) != 1);
45
46     do {
47         int i1 = idx(d, false);
48         int i2 = idx(-d,false);
49         
50         if (d*(y_extent[i1][-d] - y_extent[i2][d] )< 0&& rest_b_a[i1]) {
51             y_off[i1] = -y_extent[i1][-d] + y_extent[i2][d] +d* 4; // ugh
52             y_extent[i1] += y_off[i1];
53         }
54     } while ((d *= -1) != 1);
55     
56 #endif
57 }
58 IMPLEMENT_STATIC_NAME(Rest_collision);