source file of the GNU LilyPond music typesetter
- (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "note-spacing.hh"
#include "output-def.hh"
#include "pointer-group-interface.hh"
+static bool
+non_empty_barline (Grob *me)
+{
+ return Bar_line::has_interface (me) && !me->extent (me, X_AXIS).is_empty ();
+}
+
/*
TODO: detect hshifts due to collisions, and account for them in
spacing?
{
Grob *bar = Pointer_group_interface::find_grob (right_col,
ly_symbol2scm ("elements"),
- Bar_line::has_interface);
+ non_empty_barline);
if (bar)
{
ideal = max (ideal, min_desired_space);
stem_dir_correction (me, right_col, increment, &ideal, &min_desired_space);
+ /* TODO: grace notes look bad when things are stretched. Should we increase
+ their stretch strength? */
Spring ret (max (0.0, ideal), min_dist);
ret.set_inverse_compress_strength (max (0.0, ideal - min_desired_space));
ret.set_inverse_stretch_strength (max (0.1, base_space - increment));
ADD_INTERFACE (Note_spacing,
"This object calculates spacing wishes for individual voices.",
-
+ /* properties */
"knee-spacing-correction "
"left-items "
"right-items "
"same-direction-correction "
"stem-spacing-correction "
"space-to-barline "
-
);