]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/rest-collision.cc
release: 0.0.76
[lilypond.git] / lily / rest-collision.cc
index 7d219dc95c01a9ad28be815e9f3a5a007749e308..4529bbc4d6128cce92ec344afb2204800447c282 100644 (file)
@@ -64,7 +64,6 @@ Rest_collision::do_post_processing()
     if (!(stem_l->beams_left_i_ || stem_l->beams_right_i_))
        return;
 
-    Real inter_f = paper()->internote_f();
     int dir_i = rest_l_arr_[0]->dir_i_;
     int midpos = 4;
 #if 1
@@ -75,8 +74,7 @@ Rest_collision::do_post_processing()
 #else // nogo: stem_start not set for rests?
     int pos = (stem_l->stem_start_f() - midpos) + dir_i * 2;
 #endif
-    Real dy = pos * inter_f;
-    rest_l_arr_[0]->translate_y(dy);   
+    rest_l_arr_[0]->translate_heads(pos);      
 }
 
 void
@@ -97,39 +95,42 @@ Rest_collision::do_pre_processing()
     if (rest_l_arr_.size() + ncol_l_arr_.size() < 2 )
        return;
 
-    Real inter_f = paper()->internote_f();
-
     // meisjes met meisjes
     if (!ncol_l_arr_.size()) {
-       Real dy = rest_l_arr_.size() > 2 ? 6 * inter_f : 4 * inter_f;
-       rest_l_arr_[0]->translate_y(dy);        
+       int dy = rest_l_arr_.size() > 2 ? 6 : 4;
+       
+       rest_l_arr_[0]->translate_heads(rest_l_arr_[0]->dir_i_ *dy);    
        // top is last element...
-       rest_l_arr_.top()->translate_y(-dy);    
+       rest_l_arr_.top()->translate_heads(rest_l_arr_.top()->dir_i_* dy);      
     }
     // meisjes met jongetjes
     else {
 #if 0 // breendet: rests go always under
        // geen gemug, trug op je rug
        int dir_i = -1;
-       rest_l_arr_[0]->translate_y(dir_i * 3 * inter_f);       
+       rest_l_arr_[0]->translate_heads(dir_i * 3 );    
 #else
        // int dir_i = - ncol_l_arr_[0]->dir_i_;
        int dir_i = rest_l_arr_[0]->dir_i_;
        // hope it's 4: if it works->doco
        int midpos = 4;
-       // minimum move
+       
+        // minimum move
        int minpos = 4;
+       
        // quart rest height
+       // UGH Should get dims from table!
        int size_i = 6;
+       
        int sep_i = 3 + size_i / 2;
        for (int i = 0; i < ncol_l_arr_.size(); i++) {
            // how to know whether to sort?
            ncol_l_arr_[i]->sort();
            for ( int j = 0; j < ncol_l_arr_[i]->head_l_arr_.size(); j++ )
-               minpos = minpos >? dir_i * ( ncol_l_arr_[i]->head_l_arr_[j]->position_i_ - midpos ) + sep_i;
+               minpos = minpos >? dir_i * 
+                   (ncol_l_arr_[i]->head_l_arr_[j]->position_i_ -midpos ) + sep_i;
        }
-       Real dy = dir_i * minpos * inter_f;
-       rest_l_arr_[0]->translate_y(dy);        
+       rest_l_arr_[0]->translate_heads(dir_i * minpos );       
 #endif
     }
 }
@@ -152,3 +153,9 @@ Rest_collision::do_substitute_dependency(Score_elem*o,Score_elem*n)
     rest_l_arr_.substitute((Rest_column*)o_l,(Rest_column*)n_l);
     ncol_l_arr_.substitute((Note_column*)o_l,(Note_column*)n_l);
 }
+
+Rest_collision::Rest_collision()
+{
+    transparent_b_ = true;
+    empty_b_ = true;
+}