X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fslur.cc;h=433406c92a57d9471daab3524cf5c32091af7ebe;hb=e3a15ec3c1951dd16f6ee71fbd79870d9e2fb3a0;hp=28eed394739e50217a3b1b74f4fcd8c7f459f8d2;hpb=480f58f9b51bfc9118e23043fe97eec0a5cba2dc;p=lilypond.git diff --git a/lily/slur.cc b/lily/slur.cc index 28eed39473..433406c92a 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--2009 Han-Wen Nienhuys + Copyright (C) 1996--2011 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" @@ -82,7 +93,10 @@ Slur::pure_height (SCM smob, SCM start_scm, SCM end_scm) ret.unite (d); } - ret.widen (height * 0.5); + // The +0.5 comes from the fact that we try to place a slur + // 0.5 staff spaces from the note-head. + // (see Slur_score_state.get_base_attachments ()) + ret.widen (height * 0.5 + 0.5); return ly_interval2scm (ret); } @@ -127,13 +141,6 @@ Slur::print (SCM smob) #if DEBUG_SLUR_SCORING SCM annotation = me->get_property ("annotation"); - if (!scm_is_string (annotation)) - { - SCM debug = me->layout ()->lookup_variable (ly_symbol2scm ("debug-slur-scoring")); - if (to_boolean (debug)) - annotation = me->get_property ("quant-score"); - } - if (scm_is_string (annotation)) { string str; @@ -407,7 +414,73 @@ Slur::calc_cross_staff (SCM smob) } ADD_INTERFACE (Slur, - "A slur.", + "A slur." + "\n" + "The following properties may be set in the @code{details}" + " list.\n" + "\n" + "@table @code\n" + "@item region-size\n" + "Size of region (in staff spaces) for determining" + " potential endpoints in the Y direction.\n" + "@item head-encompass-penalty\n" + "Demerit to apply when note heads collide with a slur.\n" + "@item stem-encompass-penalty\n" + "Demerit to apply when stems collide with a slur.\n" + "@item closeness-factor\n" + "Additional demerit used when scoring encompasses.\n" + "@item edge-attraction-factor\n" + "Factor used to calculate the demerit for distances" + " between slur endpoints and their corresponding base" + " attachments.\n" + "@item same-slope-penalty\n" + "Demerit for slurs with attachment points that are" + " horizontally aligned.\n" + "@item steeper-slope-factor\n" + "Factor used to calculate demerit only if this slur is" + " not broken.\n" + "@item non-horizontal-penalty\n" + "Demerit for slurs with attachment points that are not" + " horizontally aligned.\n" + "@item max-slope\n" + "The maximum slope allowed for this slur.\n" + "@item max-slope-factor\n" + "Factor that calculates demerit based on the max slope.\n" + "@item free-head-distance\n" + "The amount of vertical free space that must exist" + " between a slur and note heads.\n" + "@item absolute-closeness-measure\n" + "Factor to calculate demerit for variance between a note" + " head and slur.\n" + "@item extra-object-collision-penalty\n" + "Factor to calculate demerit for extra objects that the" + " slur encompasses, including accidentals, fingerings, and" + " tuplet numbers.\n" + "@item accidental-collision\n" + "Factor to calculate demerit for @code{Accidental} objects" + " that the slur encompasses. This property value replaces" + " the value of @code{extra-object-collision-penalty}.\n" + "@item extra-encompass-free-distance\n" + "The amount of vertical free space that must exist" + " between a slur and various objects it encompasses," + " including accidentals, fingerings, and tuplet numbers.\n" + "@item extra-encompass-collision-distance\n" + "This detail is currently unused.\n" + "@item head-slur-distance-factor\n" + "Factor to calculate demerit for variance between a note" + " head and slur.\n" + "@item head-slur-distance-max-ratio\n" + "The maximum value for the ratio of distance between a" + " note head and slur.\n" + "@item free-slur-distance\n" + "The amount of vertical free space that must exist" + " between adjacent slurs. This subproperty only works" + " for @code{PhrasingSlur}.\n" + "@item edge-slope-exponent\n" + "Factor used to calculate the demerit for the slope of" + " a slur near its endpoints; a larger value yields a" + " larger demerit.\n" + "@end table\n", /* properties */ "annotation " @@ -424,7 +497,6 @@ ADD_INTERFACE (Slur, "line-thickness " "note-columns " "positions " - "quant-score " "ratio " "thickness " );