+% Feta (not the Font-En-Tja) music font -- auxiliary macros for both feta and parmesan fonts
+% This file is part of LilyPond, the GNU music typesetter.
+%
+% Copyright (C) 1997--2011 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/>.
+
+
%
% 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;