X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fslur.cc;h=90ccf302d6d0e9b4e757d3672e10665186479440;hb=8e3d69a83919b4754f73c1ad99239938d157edb8;hp=2bc0ea072c9909ac2da9f10837aeccea648f4788;hpb=7f3f0083f89d87c5ed0422858e9648fc759e98a4;p=lilypond.git diff --git a/lily/slur.cc b/lily/slur.cc index 2bc0ea072c..90ccf302d6 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -1,10 +1,21 @@ /* - slur.cc -- implement external interface for Slur + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter - - (c) 1996--2008 Han-Wen Nienhuys + Copyright (C) 1996--2009 Han-Wen Nienhuys Jan Nieuwenhuizen + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "slur.hh" @@ -119,15 +130,11 @@ Slur::print (SCM smob) Bezier one = get_curve (me); Stencil a; - SCM p = me->get_property ("dash-period"); - SCM f = me->get_property ("dash-fraction"); - if (scm_is_number (p) && scm_is_number (f)) - a = Lookup::dashed_slur (one, line_thick, robust_scm2double (p, 1.0), - robust_scm2double (f, 0)); - else - a = Lookup::slur (one, - get_grob_direction (me) * base_thick, - line_thick); + SCM dash_definition = me->get_property ("dash-definition"); + a = Lookup::slur (one, + get_grob_direction (me) * base_thick, + line_thick, + dash_definition); #if DEBUG_SLUR_SCORING SCM annotation = me->get_property ("annotation"); @@ -160,7 +167,7 @@ Slur::print (SCM smob) /* it would be better to do this at engraver level, but that is - fragile, as the breakabl items are generated on staff level, at + fragile, as the breakable items are generated on staff level, at which point slur starts and ends have to be tracked */ void @@ -279,9 +286,9 @@ Slur::outside_slur_callback (SCM grob, SCM offset_scm) 0.0); yext.widen (slur_padding); - Real EPS = 1e-3; + const Real EPS = 1e-3; Interval bezext (curve.control_[0][X_AXIS], curve.control_[3][X_AXIS]); - bool consider[] = { false, false, false }; + bool consider[] = {false, false, false}; Real ys[] = {0, 0, 0}; bool do_shift = false; @@ -355,7 +362,7 @@ Slur::auxiliary_acknowledge_extra_object (Grob_info const &info, e->set_object ("slur", slur->self_scm ()); } } - else + else if (avoid != ly_symbol2scm ("ignore")) e->warning (_f ("Ignoring grob for slur: %s. avoid-slur not set?", e->name().c_str ())); } @@ -417,8 +424,7 @@ ADD_INTERFACE (Slur, "annotation " "avoid-slur " /* UGH. */ "control-points " - "dash-fraction " - "dash-period " + "dash-definition " "details " "direction " "eccentricity "