+
+2002-04-13 Han-Wen <hanwen@cs.uu.nl>
+
+ * lily/note-spacing.cc (stem_dir_correction): set fixed space for
+ knee correction. Fixes tight spacing for knees.
+
2002-04-12 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * VERSION: 1.5.52 released
+
* lily/*.cc: add some undocced properties.
scm/grob-description.scm: idem.
* scripts/lilypond-book.py (LatexPaper.set_geo_option): Simplify
and correct the handling of geometry options.
+>>>>>>> 1.75
2002-04-10 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* lily/include/grob-interface.hh (ADD_INTERFACE): make
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*);
};
*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 *
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<Direction> stem_dirs(CENTER,CENTER);
Drul_array<Interval> stem_posns;
break;
}
- goto exit_func;
+ return ;
}
if(Stem::invisible_b (stem))
{
- correct = false;
- goto exit_func ;
+ return ;
}
beams_drul[d] = Stem::beam_l (stem);
Direction sd = Stem::get_direction (stem);
if (stem_dirs[d] && stem_dirs[d] != sd)
{
- correct = false;
- goto exit_func;
+ return ;
}
stem_dirs[d] = sd;
if (d == LEFT
&& Stem::duration_log (stem) > 2 && !Stem::beam_l (stem))
{
- correct = false;
- goto exit_func;
+
+ return;
}
*/
if (acc_right)
- return 0.0;
+ return ;
if (!bar_yextent.empty_b())
{
*/
correction = increment* stem_dirs[LEFT];
+ *fixed += increment* stem_dirs[LEFT];
}
else
{
correct = correct && !intersect.empty_b ();
if (!correct)
- return 0.0;
+ return;
correction = abs (intersect.length ());
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;
if (!bar_xextent.empty_b())
correction += - bar_xextent[LEFT];
-
- exit_func:
- return correction;
+
+ *space += correction;
}