]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-macros.mf
Run `make grand-replace'.
[lilypond.git] / mf / feta-macros.mf
index d8b7028cd110bee3270ee378d0681c040b48a05a..49e61c359202cdf686ba0cade8a3acebfa06e4dd 100644 (file)
@@ -1,3 +1,11 @@
+%
+% feta-macros.mf -- auxiliary macros for both feta and parmesan fonts
+%
+% source file of the GNU LilyPond music typesetter
+%
+% (c) 1997--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+
 %
 % debugging
 %
@@ -141,7 +149,7 @@ def make_pen_stack =
 enddef;
 
 
-def del_pen_stack=
+def del_pen_stack =
        save save_pen_stack, pen_stack_idx;
 enddef;
 
@@ -165,6 +173,36 @@ def soft_penstroke text t =
 enddef;
 
 
+def soft_start_penstroke text t =
+       forsuffixes e = l, r:
+               path_.e := t;
+       endfor;
+
+       if cycle path_.l:
+               cyclestroke_;
+       else:
+               fill path_.l
+               -- reverse path_.r
+               ..tension1.5.. cycle;
+       fi;
+enddef;
+
+
+def soft_end_penstroke text t =
+       forsuffixes e = l, r:
+               path_.e := t;
+       endfor;
+
+       if cycle path_.l:
+               cyclestroke_;
+       else:
+               fill path_.l
+               ..tension1.5.. reverse path_.r
+               -- cycle;
+       fi;
+enddef;
+
+
 %
 % Make a round path segment going from P to Q.  2*A is the angle that the
 % path should take.
@@ -408,7 +446,8 @@ enddef;
 
 def draw_bulb (expr turndir, zl, zr, bulb_rad, radius_factor)=
 begingroup;
-       save rad, ang;
+       save rad, ang, pat;
+       path pat;
 
        clearxy;
 
@@ -425,9 +464,13 @@ begingroup;
 
        labels (0', 1', 2');
 
-       fill zr{dir (ang + turndir * 90)}
-            .. z1'
-            .. z2'
+       pat = zr{dir (ang + turndir * 90)}
+              .. z1'
+              .. z2'
+              .. cycle;
+
+       % avoid grazing outlines
+       fill subpath (0, 2.5) of pat
             -- cycle;
 endgroup
 enddef;