From: Han-Wen Nienhuys Date: Thu, 21 Dec 2006 13:58:08 +0000 (+0100) Subject: spanner::bounds-width X-Git-Tag: release/2.11.5-1~39^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=4bfec5e2a321897c98167d1bb03def77252ad44d;p=lilypond.git spanner::bounds-width --- diff --git a/lily/spanner.cc b/lily/spanner.cc index c0ac823b02..f4909f53b2 100644 --- a/lily/spanner.cc +++ b/lily/spanner.cc @@ -384,11 +384,30 @@ unsmob_spanner (SCM s) return dynamic_cast (unsmob_grob (s)); } +MAKE_SCHEME_CALLBACK(Spanner, bounds_width, 1); +SCM +Spanner::bounds_width (SCM grob) +{ + Spanner *me = unsmob_spanner (grob); + + + Grob *common = me->get_bound (LEFT)->common_refpoint (me->get_bound (RIGHT), X_AXIS); + + Interval w (me->get_bound (LEFT)->relative_coordinate (common, X_AXIS), + me->get_bound (RIGHT)->relative_coordinate (common, X_AXIS)); + + w -= me->relative_coordinate (common, X_AXIS); + + return ly_interval2scm (w); +} + ADD_INTERFACE (Spanner, "Some objects are horizontally spanned between objects. For\n" "example, slur, beam, tie, etc. These grobs form a subtype called\n" "@code{Spanner}. All spanners have two span-points (these must be\n" "@code{Item} objects), one on the left and one on the right. The left bound is\n" "also the X-reference point of the spanner.\n", - "minimum-length"); + + "minimum-length " + );