From: fred Date: Wed, 27 Mar 2002 01:19:48 +0000 (+0000) Subject: lilypond-1.4.3 X-Git-Tag: release/1.5.59~618 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=dbd03e1749145af550861f0e4c42c381075ec1ba;p=lilypond.git lilypond-1.4.3 --- diff --git a/lily/tie.cc b/lily/tie.cc index 6e605ea07f..ae2be9fc11 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -185,28 +185,16 @@ Tie::get_control_points (SCM smob) Bezier b = slur_shape (width, h_inf, r_0); - Offset leave_dir = b.control_[1] - b.control_[0]; - - Grob *hed =head (me, headdir); - Real dx = (hed->extent (hed, X_AXIS).length () + x_gap_f)/2.0; - Real max_gap = leave_dir[Y_AXIS] * dx / leave_dir[X_AXIS]; - /* - for small ties (t small) we want to start in the Y-center (so dy = 0), for - large ties, the tie should appear to come from the center of the - head, so dy = max_gap - - maybe use a different formula? + I think this better, particularly for small ties. It always allows the user to move ties if + they seem in the wrong place TODO: what if 2 heads have different size. - TODO: for small ties, it is better to start over the heads - iso. next to the heads. */ - Real t = (width / staff_space - 5.0); // ugh. - Real dy = t > 0 ? max_gap * sqr (t / (1 + t)) : 0.0; - Real ypos = Tie::position_f (me) * staff_space/2 + dir * dy; + Real ypos = Tie::position_f (me) * staff_space/2 + + dir * gh_scm2double (me->get_grob_property ("y-offset"));; /* Make sure we don't start on a dots diff --git a/scm/grob-description.scm b/scm/grob-description.scm index 78e498658d..9d19e537d0 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -316,7 +316,7 @@ (direction . 1) (breakable . #t) - (font-family . number) + (font-family . roman) (font-shape . upright) (font-relative-size . 1) (visibility-lambda . ,end-of-line-invisible) @@ -673,6 +673,7 @@ (details . ((ratio . 0.333) (height-limit . 1.0))) (thickness . 1.2) (x-gap . 0.2) + (y-offset . 0.6) (minimum-length . 2.5) (meta . ,(grob-description "Tie" tie-interface )) )) diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index ef4cec6beb..023a24668b 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -362,4 +362,5 @@ function of type (beam multiplicity dy staff-line-thickness) -> real. Default v (grob-property-description 'word-space number? "elongate left by this much (FIXME: cumbersome semantics).") (grob-property-description 'x-gap number? "horizontal gap between notehead and tie.") (grob-property-description 'y-free number? "minimal vertical gap between slur and noteheads or stems.") +(grob-property-description 'y-offset number? "extra vertical offset for ties away from the center line.") (grob-property-description 'y number? "set by beam: position of left edge.")