X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fslur-configuration.cc;h=ec7bf44ff18ca7f65217a8606df44c796321f794;hb=66cf32a015a733a69d7faf46ad84dd1049a9fb38;hp=d846b9d6159a8a429daf9e838746d5455282e18e;hpb=6c6ae92410f087d0318a3c302eb6877cfc7fae45;p=lilypond.git diff --git a/lily/slur-configuration.cc b/lily/slur-configuration.cc index d846b9d615..ec7bf44ff1 100644 --- a/lily/slur-configuration.cc +++ b/lily/slur-configuration.cc @@ -1,9 +1,20 @@ /* - slur-configuration.cc -- implement Slur_configuration + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2004--2010 Han-Wen Nienhuys - (c) 2004--2006 Han-Wen Nienhuys + 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-configuration.hh" @@ -166,6 +177,7 @@ Slur_configuration::generate_curve (Slur_score_state const &state, Slur_configuration::Slur_configuration () { + tags_ = 0x0; score_ = 0.0; index_ = -1; }; @@ -174,9 +186,17 @@ Slur_configuration::Slur_configuration () void Slur_configuration::add_score (Real s, string desc) { + if (s < 0) + { + programming_error ("Negative demerits found for slur. Ignoring"); + s = 0.0; + } + if (s) { - score_card_ += to_string ("%s=%.2f ", desc.c_str (), s); + if (score_card_.length () > 0) + score_card_ += ", "; + score_card_ += to_string ("%s=%.2f", desc.c_str (), s); score_ += s; } } @@ -399,7 +419,9 @@ Slur_configuration::score_edges (Slur_score_state const &state) demerit *= exp (state.dir_ * d * slope * state.parameters_.edge_slope_exponent_); - add_score (demerit, "edge"); + + string dir_str = d == LEFT ? "L" : "R"; + add_score (demerit, dir_str + " edge"); } while (flip (&d) != LEFT); }