/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1999--2014 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
bool
Staff_symbol_referencer::on_staff_line (Grob *me, int pos)
{
- return on_line (me, pos) && abs (pos) <= 2 * staff_radius (me);
+ Grob *st = get_staff_symbol (me);
+ return st ? Staff_symbol::on_line (st, pos, false) : false;
}
Grob *
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