+%
+% feta-macros.mf -- auxiliary macros for both feta and parmesan fonts
+%
+% source file of the GNU LilyPond music typesetter
+%
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+
%
% debugging
%
enddef;
-def del_pen_stack=
+def del_pen_stack =
save save_pen_stack, pen_stack_idx;
enddef;
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.
def draw_bulb (expr turndir, zl, zr, bulb_rad, radius_factor)=
begingroup;
- save rad, ang;
+ save rad, ang, pat;
+ path pat;
clearxy;
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;