From: Han-Wen Nienhuys Date: Sat, 13 Apr 2002 09:50:07 +0000 (+0000) Subject: '' X-Git-Tag: release/1.5.53~23 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=91efee074adda04245d08c45af153eab5ac6bd34;p=lilypond.git '' --- diff --git a/ChangeLog b/ChangeLog index e63be88edd..4a8bc40ec7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ + +2002-04-13 Han-Wen + + * lily/note-spacing.cc (stem_dir_correction): set fixed space for + knee correction. Fixes tight spacing for knees. + 2002-04-12 Han-Wen Nienhuys + * VERSION: 1.5.52 released + * lily/*.cc: add some undocced properties. scm/grob-description.scm: idem. @@ -35,6 +43,7 @@ * scripts/lilypond-book.py (LatexPaper.set_geo_option): Simplify and correct the handling of geometry options. +>>>>>>> 1.75 2002-04-10 Han-Wen Nienhuys * lily/include/grob-interface.hh (ADD_INTERFACE): make diff --git a/lily/include/note-spacing.hh b/lily/include/note-spacing.hh index f0c14d0908..6368f06c95 100644 --- a/lily/include/note-spacing.hh +++ b/lily/include/note-spacing.hh @@ -18,7 +18,8 @@ public: static bool has_interface (Grob*); static void get_spacing (Grob *me, Item* , Real, Real, Real*, Real*); - static Real stem_dir_correction (Grob *me, Item * next_col, Real incr); + static void stem_dir_correction (Grob *me, Item * next_col, Real incr, + Real*, Real*); static Item * right_column (Grob*); static Item * left_column (Grob*); }; diff --git a/lily/note-spacing.cc b/lily/note-spacing.cc index 1a1ae4c964..95ba49aa64 100644 --- a/lily/note-spacing.cc +++ b/lily/note-spacing.cc @@ -113,7 +113,7 @@ Note_spacing::get_spacing (Grob *me, Item* right_col, *space += 0.5 * (( -extents[RIGHT][LEFT]) >? 0); } - *space += stem_dir_correction (me, right_col, increment); + stem_dir_correction (me, right_col, increment, space, fixed); } Item * @@ -197,9 +197,10 @@ Note_spacing::right_column (Grob*me) TODO: have to check wether the stems are in the same staff. */ -Real +void Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, - Real increment) + Real increment, + Real * space, Real *fixed) { Drul_array stem_dirs(CENTER,CENTER); Drul_array stem_posns; @@ -247,13 +248,12 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, break; } - goto exit_func; + return ; } if(Stem::invisible_b (stem)) { - correct = false; - goto exit_func ; + return ; } beams_drul[d] = Stem::beam_l (stem); @@ -262,8 +262,7 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, Direction sd = Stem::get_direction (stem); if (stem_dirs[d] && stem_dirs[d] != sd) { - correct = false; - goto exit_func; + return ; } stem_dirs[d] = sd; @@ -274,8 +273,8 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, if (d == LEFT && Stem::duration_log (stem) > 2 && !Stem::beam_l (stem)) { - correct = false; - goto exit_func; + + return; } @@ -296,7 +295,7 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, */ if (acc_right) - return 0.0; + return ; if (!bar_yextent.empty_b()) { @@ -313,6 +312,7 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, */ correction = increment* stem_dirs[LEFT]; + *fixed += increment* stem_dirs[LEFT]; } else { @@ -321,7 +321,7 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, correct = correct && !intersect.empty_b (); if (!correct) - return 0.0; + return; correction = abs (intersect.length ()); @@ -364,7 +364,7 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, Interval hp = head_posns[LEFT]; hp.intersect (head_posns[RIGHT]); if (!hp.empty_b()) - return 0.0; + return ; Direction lowest = (head_posns[LEFT][DOWN] > head_posns[RIGHT][UP]) ? RIGHT : LEFT; @@ -378,9 +378,8 @@ Note_spacing::stem_dir_correction (Grob*me, Item * rcolumn, if (!bar_xextent.empty_b()) correction += - bar_xextent[LEFT]; - - exit_func: - return correction; + + *space += correction; }