]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-accordion.mf
Run `make grand-replace'.
[lilypond.git] / mf / feta-accordion.mf
index e362826faa62eafc64b9aa7bc8b1e6ca6141f5e2..749184e4d9176cc318caa0c7513c0557568c92e6 100644 (file)
@@ -1,8 +1,12 @@
-% -*- Fundamental -*-
+%
+% feta-accordion.mf -- draw accordion symbols
+%
+% source file of the GNU LilyPond music typesetter
+%
+% (c) 1998--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 fet_begingroup ("accordion");
 
-
 %
 % These dimensions are the same for all register symbols.
 % The different symbols should calculate their other dimensions from them.
@@ -16,8 +20,8 @@ define_pixels (accreg_dot_size, accreg_linethickness, accreg_lh);
 
 
 fet_beginchar ("accDiscant", "accDiscant")
-       save r, p, lh, lt;
-       path p;
+       save r, pat, lh, lt;
+       path pat;
 
        r# = 3/2 accreg_lh#;
        define_pixels (r);
@@ -47,11 +51,16 @@ fet_beginchar ("accDiscant", "accDiscant")
        % mf doesn't handle pixel dropouts in outline objects, so we use
        % `draw' if not called by mpost
        if known miterlimit:
-               penstroke z1e
-                         .. z2e
-                         .. z3e
-                         .. z4e
-                         .. cycle;
+               fill z1r
+                    .. z2r
+                    .. z3r
+                    .. z4r
+                    .. cycle;
+               unfill z1l
+                      .. z2l
+                      .. z3l
+                      .. z4l
+                      .. cycle;
        else:
                pickup pencircle xscaled accreg_linethickness yscaled lt;
                draw z1
@@ -61,15 +70,15 @@ fet_beginchar ("accDiscant", "accDiscant")
                     .. cycle;
        fi;
 
-       p := z4{right}
-            .. z1{up}
-            .. {left}z2;
+       pat := z4{right}
+              .. z1{up}
+              .. {left}z2;
 
        pickup penrazor scaled lt rotated 90;
 
-       top z5 = p intersectionpoint ((0, lh + lt) -- (w, lh + lt));
+       top z5 = pat intersectionpoint ((0, lh + lt) -- (w, lh + lt));
        z6 = z5 xscaled -1;
-       bot z7 = p intersectionpoint ((0, 2 lh) -- (w, 2 lh));
+       bot z7 = pat intersectionpoint ((0, 2 lh) -- (w, 2 lh));
        z8 = z7 xscaled -1;
 
        labels (5, 6, 7, 8);
@@ -95,8 +104,7 @@ fet_endchar;
 
 
 fet_beginchar ("accFreebase", "accFreebase")
-       save r, p, lh, lt;
-       path p;
+       save r, lh, lt;
 
        r# = accreg_lh#;
        define_pixels (r);
@@ -126,11 +134,16 @@ fet_beginchar ("accFreebase", "accFreebase")
        % mf doesn't handle pixel dropouts in outline objects, so we use
        % `draw' if not called by mpost
        if known miterlimit:
-               penstroke z1e
-                         .. z2e
-                         .. z3e
-                         .. z4e
-                         .. cycle;
+               fill z1r
+                    .. z2r
+                    .. z3r
+                    .. z4r
+                    .. cycle;
+               unfill z1l
+                      .. z2l
+                      .. z3l
+                      .. z4l
+                      .. cycle;
        else:
                pickup pencircle xscaled accreg_linethickness yscaled lt;
                draw z1
@@ -149,7 +162,7 @@ fet_endchar;
 
 fet_beginchar ("accStdbase", "accStdbase")
        save r, p, lh, lt;
-       path p;
+       path pat;
 
        r# = 2 accreg_lh#;
        define_pixels (r);
@@ -179,11 +192,16 @@ fet_beginchar ("accStdbase", "accStdbase")
        % mf doesn't handle pixel dropouts in outline objects, so we use
        % `draw' if not called by mpost
        if known miterlimit:
-               penstroke z1e
-                         .. z2e
-                         .. z3e
-                         .. z4e
-                         .. cycle;
+               fill z1r
+                    .. z2r
+                    .. z3r
+                    .. z4r
+                    .. cycle;
+               unfill z1l
+                      .. z2l
+                      .. z3l
+                      .. z4l
+                      .. cycle;
        else:
                pickup pencircle xscaled accreg_linethickness yscaled lt;
                draw z1
@@ -193,15 +211,15 @@ fet_beginchar ("accStdbase", "accStdbase")
                     .. cycle;
        fi;
 
-       p := z4{right}
-            .. z1{up}
-            .. {left}z2;
+       pat := z4{right}
+              .. z1{up}
+              .. {left}z2;
 
        pickup penrazor scaled lt rotated 90;
 
-       top z5 = p intersectionpoint ((0, lh + lt) -- (w, lh + lt));
+       top z5 = pat intersectionpoint ((0, lh + lt) -- (w, lh + lt));
        z6 = z5 xscaled -1;
-       bot z7 = p intersectionpoint ((0, 3 lh) -- (w, 3 lh));
+       bot z7 = pat intersectionpoint ((0, 3 lh) -- (w, 3 lh));
        z8 = z7 xscaled -1;
 
        labels (5, 6, 7, 8);
@@ -359,17 +377,21 @@ fet_beginchar ("accOldEE", "accOldEE")
 
        z1 = (0, 0);
        z2 = (0, ir);
+       z3 = (0, -ir);
 
        penpos1 (blot_diameter, 0);
        penpos2 (stroke_width + blot_diameter, 0);
+       penpos3 (stroke_width + blot_diameter, 0);
 
        pickup pencircle scaled (lr + blot_diameter);
 
-       for pp := 0 step 45 until 360:
-               drawdot (0, 0) shifted (ir * (dir pp));
+       for pp := 0 step 45 until 135:
+               drawdot z2 rotated pp;
+               drawdot z3 rotated pp;
 
-               penstroke (z1e
-                          -- z2e) rotated pp;
+               penstroke (z2e
+                          -- z1e
+                          -- z3e) rotated pp;
        endfor;
 
        pickup pencircle scaled lr;
@@ -384,35 +406,39 @@ fet_beginchar ("accOldEE", "accOldEE")
        h := lh + lt;
        b := w := (lh + hround accreg_linethickness) / 2;
 
-       penpos3 (hround accreg_linethickness, 0);
-       penpos4 (lt, 90);
-       penpos5 (hround accreg_linethickness, 180);
-       penpos6 (lt, 270);
+       penpos10 (hround accreg_linethickness, 0);
+       penpos11 (lt, 90);
+       penpos12 (hround accreg_linethickness, 180);
+       penpos13 (lt, 270);
 
-       z3r = (w, h / 2);
-       z4r = (0, h);
-       z5r = (-b, h / 2);
-       z6r = (0, 0);
+       z10r = (w, h / 2);
+       z11r = (0, h);
+       z12r = (-b, h / 2);
+       z13r = (0, 0);
 
-       % penlabels (1, 2, 3, 4, 5, 6);
+       % penlabels (1, 2, 10, 11, 12, 13);
 
        % mf doesn't handle pixel dropouts in outline objects, so we use
        % `draw' if not called by mpost
        if known miterlimit:
-               penstroke z3e
-                         .. z4e
-                         .. z5e
-                         .. z6e
-                         .. cycle;
+               fill z10r
+                    .. z11r
+                    .. z12r
+                    .. z13r
+                    .. cycle;
+               unfill z10l
+                      .. z11l
+                      .. z12l
+                      .. z13l
+                      .. cycle;
        else:
                pickup pencircle xscaled accreg_linethickness yscaled lt;
-               draw z3
-                    .. z4
-                    .. z5
-                    .. z6
+               draw z10
+                    .. z11
+                    .. z12
+                    .. z13
                     .. cycle;
        fi;
-
 fet_endchar;