source file of the GNU LilyPond music typesetter
- (c) 1996--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1996--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
*/
/*
Default position is on stem X, at stem end Y
*/
- Real stem_thickness =
- gh_scm2double (stem->get_grob_property ("thickness"))
- * stem->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
+ Real stem_thickness = Stem::thickness (stem);
o += Offset (0.5 *
x_extent * (1 + Stem::get_direction (stem))
- ((dir + 1)/2) * stem_thickness
o[X_AXIS] -= 0.5 * stem_dir * x_extent;
if ((stem_dir == dir)
- && !stem->extent (stem, Y_AXIS).empty_b ())
+ && !stem->extent (stem, Y_AXIS).is_empty ())
{
o[Y_AXIS] = stem->extent (common[Y_AXIS], Y_AXIS)[dir];
}
/*
leave a gap: slur mustn't touch head/stem
*/
- o[Y_AXIS] += dir * gh_scm2double (me->get_grob_property ("y-free")) *
+ o[Y_AXIS] += dir * robust_scm2double (me->get_grob_property ("y-free"), 0) *
1.0;
return o;
}
assert (a == Y_AXIS);
SCM mol = me->get_uncached_molecule ();
- return ly_interval2scm (unsmob_molecule (mol)->extent (a));
+ Interval ext;
+ if (Molecule * m = unsmob_molecule (mol))
+ ext = m->extent (a);
+ return ly_interval2scm (ext);
}
/*
return SCM_EOL;
}
- Real thick = me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness")) *
- gh_scm2double (me->get_grob_property ("thickness"));
+ Real base_thick = robust_scm2double (me->get_grob_property ("thickness"), 1);
+ Real thick = base_thick * Staff_symbol_referencer::line_thickness (me);
+
+ Real ss = Staff_symbol_referencer::staff_space (me);
Bezier one = get_curve (me);
// get_curve may suicide
Molecule a;
SCM d = me->get_grob_property ("dashed");
if (gh_number_p (d))
- a = Lookup::dashed_slur (one, thick, thick * gh_scm2double (d));
+ a = Lookup::dashed_slur (one, thick, thick * robust_scm2double (d, 0));
else
- a = Lookup::slur (one, get_grob_direction (me) * thick, thick);
+ a = Lookup::slur (one, get_grob_direction (me) * base_thick * ss / 10.0,
+ thick);
return a.smobbed_copy ();
}
SCM h_inf_scm = me->get_grob_property ("height-limit");
SCM r_0_scm = me->get_grob_property ("ratio");
- Real r_0 = gh_scm2double (r_0_scm);
+ Real r_0 = robust_scm2double (r_0_scm, 1);
Real h_inf = staff_space * gh_scm2double (h_inf_scm);
Slur_bezier_bow bb (get_encompass_offsets (me),