X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-macros.mf;h=5bd97d36a06ee0216b39d623b356e8a0aca6d285;hb=3f36a29d103a0345916c9f7fb6386e2c640f4e60;hp=d8b7028cd110bee3270ee378d0681c040b48a05a;hpb=f423fa364db4d816ee207a675fd1c0d7ef26cd22;p=lilypond.git diff --git a/mf/feta-macros.mf b/mf/feta-macros.mf index d8b7028cd1..5bd97d36a0 100644 --- a/mf/feta-macros.mf +++ b/mf/feta-macros.mf @@ -1,3 +1,22 @@ +% 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 +% +% 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 . + + % % debugging % @@ -141,7 +160,7 @@ def make_pen_stack = enddef; -def del_pen_stack= +def del_pen_stack = save save_pen_stack, pen_stack_idx; enddef; @@ -165,6 +184,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 +457,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 +475,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;