]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/bezier-bow.cc
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / lily / bezier-bow.cc
index 044a898d07bb837d5967390de2889c52706d5bd5..e049bd734c244f78c8411324296514e8de219cc1 100644 (file)
@@ -1,17 +1,25 @@
 /*
-  bezier.cc -- implement Bezier and Bezier_bow
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1998--2015 Jan Nieuwenhuizen <janneke@gnu.org>
 
-  (c) 1998--2004 Jan Nieuwenhuizen <janneke@gnu.org>
-*/
+  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.
 
-#include <math.h>
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
 #include "misc.hh"
 #include "bezier.hh"
 
-
 static Real
 F0_1 (Real x)
 {
@@ -24,17 +32,15 @@ slur_height (Real width, Real h_inf, Real r_0)
   return F0_1 (width * r_0 / h_inf) * h_inf;
 }
 
-  /*
-
-
-  ^              x                    x                  
+/*
+  ^                x                    x
   |
-height   <indent>
+  height   <indent>
   |
-  v      x                                    x
+  v      x                                       x
+
+
 
-  
-  
   For small w, the height should be proportional to w, for w ->
   infinity, the height should rise to a limit asymptotically.
 
@@ -45,7 +51,7 @@ height   <indent>
 
   h = h_infinity * F (x * r_0 / h_infinity)
 
-  
+
   Examples:
 
   * F (x) = 2/pi * atan (pi x/2)
@@ -68,43 +74,40 @@ height   <indent>
   slurs.  For large slurs, this gives a certain hookiness at the end,
   so we increase the indent.
 
-  indent = G(w)
+  indent = G (w)
+
+  w -> 0,  G (w) -> .33 w
 
-  w -> 0,  G(w) -> .33 w
 
-  
   (due to derivative constraints, we cannot have indent > len/3)
 
-  w -> inf, G(w) -> 2*h_inf
+  w -> inf, G (w) -> 2*h_inf
 
   i.e.
 
 
-  G(0) = 0 , G'(0) 1/3, G(infty) = 2h_inf
+  G (0) = 0 , G'(0) 1/3, G (infty) = 2h_inf
 
   solve from
 
-   G(w) = r  + p/(w+q)
+  (w) = r  + p/(w+q)
 
   yields
 
-   G(w) = 2 h_inf - max_fraction * q^2/ (w + q)
+  (w) = 2 h_inf - max_fraction * q^2/ (w + q)
 
-  with q = 2 h_inf 
-  
-  
-  */
+  with q = 2 h_inf
+*/
 
 void
 get_slur_indent_height (Real *indent, Real *height,
-                       Real width, Real h_inf, Real r_0)
+                        Real width, Real h_inf, Real r_0)
 {
   Real max_fraction = 1.0 / 3.1;
-  *height =  slur_height (width, h_inf, r_0);
+  *height = slur_height (width, h_inf, r_0);
 
-  Real q = 2 * h_inf / max_fraction; 
-  *indent =
-    2 *h_inf - sqr (q) * max_fraction / (width + q);
+  Real q = 2 * h_inf / max_fraction;
+  *indent = 2 * h_inf - sqr (q) * max_fraction / (width + q);
 }
 
 Bezier
@@ -112,9 +115,9 @@ slur_shape (Real width, Real h_inf, Real r_0)
 {
   Real indent;
   Real height;
-  
+
   get_slur_indent_height (&indent, &height,
-                         width,  h_inf,  r_0);
+                          width, h_inf, r_0);
 
   Bezier curve;
   curve.control_[0] = Offset (0, 0);