]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur-configuration.cc
Pass a list of design sizes into add-music-fonts function.
[lilypond.git] / lily / slur-configuration.cc
index d846b9d6159a8a429daf9e838746d5455282e18e..ec7bf44ff18ca7f65217a8606df44c796321f794 100644 (file)
@@ -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 <hanwen@xs4all.nl>
 
-  (c) 2004--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  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 <http://www.gnu.org/licenses/>.
 */
 
 #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);
 }