/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1999--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Grob *
Staff_symbol_referencer::get_staff_symbol (Grob *me)
{
- if (Staff_symbol::has_interface (me))
+ if (has_interface<Staff_symbol> (me))
return me;
SCM st = me->get_object ("staff-symbol");
- return unsmob_grob (st);
+ return unsmob<Grob> (st);
}
Real
SCM
Staff_symbol_referencer::callback (SCM smob)
{
- Grob *me = unsmob_grob (smob);
+ Grob *me = unsmob<Grob> (smob);
SCM pos = me->get_property ("staff-position");
Real off = 0.0;
me->translate_axis ((p - oldpos) * ss * 0.5, Y_AXIS);
}
-/* Half of the height, in staff space, i.e. 2.0 for a normal staff. */
+Interval
+Staff_symbol_referencer::staff_span (Grob *me)
+{
+ Interval result;
+ if (me)
+ if (Grob *symb = get_staff_symbol (me))
+ result = Staff_symbol::line_span (symb);
+ return result;
+}
+
Real
Staff_symbol_referencer::staff_radius (Grob *me)
{
- return (line_count (me) - 1) / 2.0;
+ /*
+ line_span is measured in pitch steps, not in staff spaces
+ */
+ return staff_span (me).length () / 4.0;
}
int