From a5f9b0d56f18e9de4e20998a14ff7dbfee33a1a0 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:47:22 +0000 Subject: [PATCH] lilypond-0.0.74pre --- lily/include/music-iterator.hh | 9 ++++++++- lily/rest-collision.cc | 26 +++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh index 661d380d6c..25f3c7fbc3 100644 --- a/lily/include/music-iterator.hh +++ b/lily/include/music-iterator.hh @@ -12,6 +12,7 @@ #include "lily-proto.hh" #include "plist.hh" +#include "varray.hh" #include "moment.hh" class Music_iterator { @@ -22,11 +23,17 @@ protected: public: Music_iterator *daddy_iter_l_; NAME_MEMBERS(); - Translator *report_to_l_; + Arrayreport_to_l_arr_; + + Translator *report_to_l()const; static Music_iterator* static_get_iterator_p(Music*,Translator*); Music_iterator* get_iterator_p(Music*)const; void set_translator(Translator*); + void push_translator(Translator*); + void pop_translator(); + + Music_iterator(); virtual void process_and_next(Moment until); diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index e3b7807f6d..6408a96450 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -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,41 @@ 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(dy); // top is last element... - rest_l_arr_.top()->translate_y(-dy); + rest_l_arr_.top()->translate_heads(-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 } } -- 2.39.5