From: Han-Wen Nienhuys Date: Fri, 12 Jan 2007 17:02:14 +0000 (+0100) Subject: new function Staff_symbol_referencer::extent_in_staff() X-Git-Tag: release/2.11.12-1~35^2~9 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=07166db2479bd02bbc367c41873408e69f55051f;p=lilypond.git new function Staff_symbol_referencer::extent_in_staff() --- diff --git a/lily/include/staff-symbol-referencer.hh b/lily/include/staff-symbol-referencer.hh index 5b9656de22..4a43a94e03 100644 --- a/lily/include/staff-symbol-referencer.hh +++ b/lily/include/staff-symbol-referencer.hh @@ -39,6 +39,7 @@ public: static Real get_position (Grob *); static Real staff_radius (Grob *); static int get_rounded_position (Grob *); + static Interval extent_in_staff (Grob *); }; int compare_position (Grob *const &, Grob *const &);\ diff --git a/lily/staff-symbol-referencer.cc b/lily/staff-symbol-referencer.cc index a74a1c07c9..53637c86e5 100644 --- a/lily/staff-symbol-referencer.cc +++ b/lily/staff-symbol-referencer.cc @@ -92,6 +92,25 @@ Staff_symbol_referencer::get_position (Grob *me) return robust_scm2double (me->get_property ("staff-position"), p); } + +Interval +Staff_symbol_referencer::extent_in_staff (Grob *me) +{ + Grob *st = get_staff_symbol (me); + Grob *c = st ? me->common_refpoint (st, Y_AXIS) : 0; + + Interval retval; + if (st && c) + { + retval = me->extent (c, Y_AXIS) + - st->relative_coordinate (c, Y_AXIS); + } + + return retval; +} + + + int Staff_symbol_referencer::get_rounded_position (Grob *me) { @@ -172,3 +191,4 @@ ADD_INTERFACE (Staff_symbol_referencer, /* properties */ "staff-position"); +