]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-accordion.mf
Doc: Add @funindex for \newSpacingSection (3185)
[lilypond.git] / mf / feta-accordion.mf
index 645d6d8b47ab987c94da60c0fb83f3b1e3b7931f..354e0f3e91df756b2de4f16823af564a6f50cdf0 100644 (file)
@@ -1,12 +1,13 @@
 % Feta (not the Font-En-Tja) music font -- draw accordion symbols
 % This file is part of LilyPond, the GNU music typesetter.
 %
-% Copyright (C) 1998--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %
-% LilyPond is free software: you can redistribute it and/or modify
+% The LilyPond font 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.
+% (at your option) any later version, or you can redistribute it under
+% the SIL Open Font License.
 %
 % LilyPond is distributed in the hope that it will be useful,
 % but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -480,9 +481,34 @@ fet_beginchar ("accordion push", "push");
        x3 = x1;
        bot y3 = 0;
 
-       draw z1
-            -- z2
-            -- z3;
+       save nw_offset, ne_offset;
+       pair nw_offset, ne_offset;
+       save sw_offset, se_offset, line_radius;
+       pair sw_offset, se_offset;
+
+       line_radius := linewidth / 2;
+       nw_offset := line_radius * unitvector (z1 - z2);
+       ne_offset := nw_offset rotated -90;
+       sw_offset := line_radius * unitvector (z3 - z2);
+       se_offset := sw_offset rotated 90;
+
+       z4 = ((z1 - ne_offset)
+            -- (z2 - ne_offset))
+            intersectionpoint
+            ((z2 - se_offset)
+            -- (z3 - se_offset));
+
+       fill z1 + ne_offset
+            -- z2 + ne_offset
+            .. rt z2 {down}
+            .. z2 + se_offset
+            -- z3 + se_offset
+            .. z3 + sw_offset {- se_offset}
+            .. z3 - se_offset
+            -- z4
+            -- z1 - ne_offset
+            .. z1 + nw_offset {ne_offset}
+            .. cycle;
 fet_endchar;