%%% @mffile{
%%%     filename="capfon.mf",
%%%     version="",
%%%     date="",
%%%     filetype="mf fontcreator",
%%%     package="m-capbas.arj"
%%%     author="Phons Bloemen (PhB)",
%%%     address="Eindhoven U. of Technology,
%%%            Fac. of Electrical Engineering,
%%%            P. O. Box 513, NL-5600 MB Eindhoven
%%%     email="Internet: phons@ei.ele.tue.nl",
%%%     codetable="ISO/ASCII",
%%%     checksumtype="none",
%%%     checksum="0",
%%%     keywords="",
%%%     abstract="
%%%        Input file defining the glyphs for Capital Baseball.
%%%        The font is drawn onto a fixed 'grid' of points. By
%%%        deformation of this 'square' grid special effects can
%%%        be achieved.
%%%        Part of Capital Baseball package"
%%%     copyright="Copyleft (L) Phons Bloemen (PhB),
%%%        according to GNU public licence version 2 or later.
%%%        (1) Do not change this file (even its name)
%%%        (2) if you do make changes, first rename it to some
%%%            other name, and mark your changes clearly.",
%%%     }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

def dummy =
enddef;

def corner (suffix $) =
  if roundcapbas :
     (z$a - z$) = dir(angle(z$ - z0)) scaled td * scaw * h * revcap;
     (z$c - z$) = dir(angle(z0 - z$)) scaled td * scaw * h * revcap;
     z$b = z$ rotatedaround (z0,te * scaw * revcap);
     z$d = z$ rotatedaround (z0,-te * scaw * revcap);
  else:
     z$a = z$ + (0,tf * revcap);
     z$c = z$ - (0,tf * revcap);
     z$b = z$ - (tf * revcap,0);
     z$d = z$ + (tf * revcap,0);
  fi
enddef;

def arcus(suffix i,j) =
  if roundcapbas :
     (z.i ..  z.i rotatedaround (z0,(angle(z.j-z0)-angle(z.i-z0))/3) ..
     z.j rotatedaround (z0,(angle(z.i-z0)-angle(z.j-z0))/3) .. z.j)
  else :
    (z.i -- z.j)
  fi
enddef;

def rcapbasgrid(suffix $)(expr hi,ma) =
  revcap := 1;
  for k = 1,3,4,5,6,7,8,9,11 :
  sca := 1 + ((k-6)*hi/10)/(length(z$ - z0));
  z$j[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*4);
  z$a[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*3);
  z$b[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*2);
  z$c[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*1);
  z$d[k] = z0 + ((z$ - z0) scaled sca) rotated (0);
  z$e[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma);
  z$f[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*2);
  z$g[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*3);
  z$h[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*4);
  endfor;
  labels($);
enddef;

def capbasrevgrid(suffix $)(expr hi,ma) =
  revcap := -1;
  for k = 1,3,4,5,6,7,8,9,11 :
  sca := 1 - ((k-6)*hi/10)/(length(z$ - z0));
  z$j[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*4);
  z$a[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*3);
  z$b[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*2);
  z$c[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*1);
  z$d[k] = z0 + ((z$ - z0) scaled sca) rotated (0);
  z$e[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*1);
  z$f[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*2);
  z$g[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*3);
  z$h[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*4);
  endfor;
  labels($);
enddef;


def scapbasgrid(suffix $)(expr hi,ma) =
  revcap := 1;
  for k = 1,3,4,5,6,7,8,9,11 :
  z$j[k] = z0 + (-ma*2,(k-6)*hi/10);
  z$a[k] = z0 + (-ma*3/2,(k-6)*hi/10);
  z$b[k] = z0 + (-ma,(k-6)*hi/10);
  z$c[k] = z0 + (-ma/2,(k-6)*hi/10);
  z$d[k] = z0 + (0,(k-6)*hi/10);
  z$e[k] = z0 + (ma/2,(k-6)*hi/10);
  z$f[k] = z0 + (ma,(k-6)*hi/10);
  z$g[k] = z0 + (ma*3/2,(k-6)*hi/10);
  z$h[k] = z0 + (ma*2,(k-6)*hi/10);
  endfor;
  labels($);
enddef;

def gencha(suffix $) =
  corner($a11);corner($g11);
  fill(z$a11c -- arcus($a11d,$g11b) -- z$g11c --
                  arcus($g9,$a9) -- cycle);
  fill(arcus($c9,$a9) -- arcus($a1,$c1) -- cycle);
  fill(arcus($g9,$e9) -- arcus($e1,$g1) -- cycle);
  fill(arcus($c7,$e7) -- arcus($e5,$c5) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchb(suffix $) =
  corner($g11); corner($g6); corner($g1);
  fill(arcus($a11,$g11b) -- z$g11c -- z$g6a -- z$g6b -- z$g6c --
    z$g1a -- arcus($g1b,$a1) -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
  unfill(arcus($c5,$e5) -- arcus($e3,$c3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchd(suffix $) =
  corner($g11);corner($g1);
  fill(arcus($a11,$g11b) -- z$g11c -- z$g1a --
    arcus($g1b,$a1) -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchc(suffix $) =
  corner($g11);corner($g1);corner($a1);corner($a11)
  fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
       arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
  unfill(arcus($e8,$g8) -- arcus($g4,$e4) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genche(suffix $) =
  fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle );
  fill(arcus($c11,$g11) -- arcus($g9,$c9) -- cycle );
  fill(arcus($c7,$g7) -- arcus($g5,$c5) -- cycle );
  fill(arcus($c3,$g3) -- arcus($g1,$c1) -- cycle );
cull currentpicture keeping (1,infinity); enddef;;
def genchf(suffix $) =
  fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle );
  fill(arcus($c11,$g11) -- arcus($g9,$c9) -- cycle );
  fill(arcus($c7,$g7) -- arcus($g5,$c5) -- cycle );
cull currentpicture keeping (1,infinity); enddef;;
def genchg(suffix $) =
  corner($g11);corner($g1);corner($g6);corner($a11);corner($a1);
  fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
       arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
  unfill(arcus($e8,$g8) -- z$g6c -- arcus($g6b,$e6) -- cycle);
  fill(arcus($d6,$e6) -- arcus($e4,$d4) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchh(suffix $) =
  fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle);
  fill(arcus($e11,$g11) -- arcus($g1,$e1) -- cycle);
  fill(arcus($c7,$e7) -- arcus($e5,$c5) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchi(suffix $) =
  fill(arcus($c11,$e11) -- arcus($e1,$c1) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchj(suffix $) =
  corner($g1);corner($a1);
  fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
      cycle);
  fill(arcus($c4,$a4) -- arcus($a3,$c3) -- cycle);
  fill(arcus($g11,$e11) -- arcus($e3,$g3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchij(suffix $) =
  corner($g1);corner($a1);
  fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
      cycle);
  fill(arcus($c4,$a4) -- arcus($a3,$c3) -- cycle);
  fill(arcus($g11,$e11) -- arcus($e3,$g3) -- cycle);
  fill(arcus($a11,$c11) -- arcus($c7,$a7) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchk(suffix $) =
  corner($e6);corner($g8);corner($g4);
  fill(arcus($e11,$g11) -- z$g8c -- z$e6 -- z$g4a -- arcus($g1,$e1)
     -- z$e4 -- arcus($d5,$c5) -- arcus($c7,$d7) -- z$e8 -- cycle);
  fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle );
cull currentpicture keeping (1,infinity); enddef;;
def genchl(suffix $) =
  fill(arcus($a11,$c11) -- arcus($c3,$g3) -- arcus($g1,$a1) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchm(suffix $) =
  fill(arcus($j11,$b11) -- z$d8 -- z$d5 -- z$b8 -- arcus($b1,$j1)
       -- cycle);
  fill(arcus($f11,$h11) -- arcus($h1,$f1) -- z$f8 -- z$d5 -- z$d8
       -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchn(suffix $) =
  fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle);
  fill(arcus($e11,$g11) -- arcus($g1,$e1) -- cycle);
  fill(z$c11 -- z$e6 -- z$e1 -- z$c6 -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def gencho(suffix $) =
  corner($g11);corner($g1);corner($a1);corner($a11);
  fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
       arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchq(suffix $) =
  corner($g11);corner($g1);corner($a1);corner($a11);
  corner($e1);corner($g3);
  fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
       arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
  unfill(arcus($c9,$e9) -- z$e4 -- arcus($d3,$c3) -- cycle);
  unfill(arcus($e1d,$e1b) -- z$e1a -- cycle);
  unfill(z$g3a -- z$g3b -- z$g3c -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchp(suffix $) =
  corner($g11);corner($g5);
  fill(arcus($a11,$g11b) -- z$g11c -- z$g5a --
       arcus($g5b,$a5) -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
  fill(arcus($a1,$c1) -- arcus($c6,$a6) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchr(suffix $) =
  corner($g11);corner($g6);corner($e5);
  fill(arcus($a11,$g11b) -- z$g11c -- z$g6a -- z$g6b -- z$g6c --
       arcus($g1,$a1) -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
  unfill(arcus($c5,$e5b) -- z$e5c -- arcus($e1,$c1) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchs(suffix $) =
  corner($g11);corner($a11);corner($g1);corner($a1);corner($g7);
  corner($a5);
  fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9) -- z$a11c --
       cycle);
  fill(arcus($a7,$g7b) -- z$g7c -- arcus($g5,$a5d) -- z$a5a --
       cycle);
  fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
       cycle);
  fill(arcus($c4,$a4) -- arcus($a3,$c3) -- cycle);
  fill(arcus($c9,$a9) -- arcus($a6,$c6) -- cycle);
  fill(arcus($g6,$e6) -- arcus($e3,$g3) -- cycle);
  fill(arcus($g9,$e9) -- arcus($e8,$g8) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def gencht(suffix $) =
  z$e10 = (z$e11+z$e9)/2; z$c10 = (z$c11+z$c9)/2;
  fill(arcus($e10,$c10) -- arcus($c1,$e1) -- cycle);
  fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchu(suffix $) =
  corner($g11);corner($g1);corner($a1);corner($a11);
  fill(arcus($a11,$g11) -- z$g1a --
       arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
  unfill(arcus($c11,$e11) -- arcus($e3,$c3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchv(suffix $) =
  fill(arcus($a11,$c11) -- arcus($c6,$a6) -- cycle);
  fill(arcus($e11,$g11) -- arcus($g6,$e6) -- cycle);
  fill(z$d1 -- arcus($g6,$e6) -- z$d4 -- arcus($c6,$a6) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchw(suffix $) =
  fill(arcus($j11,$b11) -- z$c4 -- z$d6 -- z$d3 -- z$b1 -- cycle);
  fill(arcus($f11,$h11) -- z$f1 -- z$d3 -- z$d6 -- z$e4 -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchx(suffix $) =
   corner($a7);corner($a5);corner($g5);corner($b6);corner($f6);
   corner($g7);corner($e9);corner($e3);corner($c9);corner($c3);
   fill(arcus($a11,$c11) -- z$c9c -- z$d7 -- z$d6 -- z$b6d -- z$a7
      -- cycle);
   fill(arcus($e11,$g11) -- z$g7 -- z$f6b -- z$d6 -- z$d7 -- z$e9c
      -- cycle);
   fill(arcus($a1,$c1) -- z$c3a -- z$d5 -- z$d6 -- z$b6d -- z$a5
      -- cycle);
   fill(arcus($e1,$g1) -- z$g5 -- z$f6b -- z$d6 -- z$d5 -- z$e3a
      -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchy(suffix $) =
   corner($a7);corner($g7);corner($e9);corner($c9);
   fill(arcus($a11,$c11) -- z$c5 -- z$a7a -- cycle);
   fill(arcus($e11,$g11) -- z$g7a -- z$e5 -- cycle);
   fill(z$c9c -- z$d7 -- z$e9c -- arcus($e1,$c1) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchz(suffix $) =
   fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
   fill(arcus($a3,$g3) -- arcus($g1,$a1) -- cycle);
   fill(arcus($a3,$c3) -- z$g8 -- arcus($g9,$e9) -- z$a4 -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchone(suffix $) =
   fill(arcus($c3,$e3) -- arcus($e11,$c11) -- cycle);
   fill(z$c11 -- z$b9 -- z$b7 -- z$c9 -- cycle);
   fill(arcus($b1,$f1) -- arcus($f3,$b3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchtwo(suffix $) =
   corner($a11);corner($g11);
   fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9)
         -- z$a11c -- cycle);
   fill(arcus($a8,$c8) -- arcus($c9,$a9) -- cycle);
   fill(arcus($a3,$g3) -- arcus($g1,$a1) -- cycle);
   fill(arcus($a3,$c3) -- z$g7 -- arcus($g9,$e9)
         -- z$e8 -- z$a4 -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchthr(suffix $) =
   corner($a11);corner($g11);corner($a1);corner($g1);corner($g6);
   fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9)
         -- z$a11c -- cycle);
   fill(arcus($a1d,$g1b) -- z$g1a -- arcus($g3,$a3) -- z$a1a -- cycle);
   fill(arcus($a8,$c8) -- arcus($c9,$a9) -- cycle);
   fill(arcus($a4,$c4) -- arcus($c3,$a3) -- cycle);
   fill(arcus($g9,$e9) -- arcus($e7,$c7) -- arcus($c5,$e5) --
        arcus($e3,$g3) -- z$g6c -- z$g6b -- z$g6a -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchfou(suffix $) =
   corner($c5);corner($d9);
   fill(arcus($d11,$f11) -- arcus($f1,$d1) -- cycle);
   fill(arcus($a5,$g5) -- arcus($g3,$a3) -- cycle);
   fill(arcus($a5,$c5) -- z$d9c -- z$d11 -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchfiv(suffix $) =
   z$e2 = (z$e1+3z$e3)/4; z$g2 = (z$g1+3z$g3)/4;
   z$a10 = (z$a11+z$a9)/2; z$c10 = (z$c11+z$c9)/2;
   corner($g1);corner($a1);corner($g7);
   fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
   fill(arcus($a5,$g5) -- z$g7c -- arcus($g7b,$c7) --
        arcus($c10,$a10) -- cycle);
   fill(arcus($a1d,$g1b) -- z$g1a -- arcus($g3,$c3) --
        arcus($c4,$a4) -- z$a1a -- cycle);
   fill(arcus($e6,$g6) -- arcus($g2,$e2) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;

def genchsev(suffix $) =
   corner($c5);corner($e9);
   fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
   fill(arcus($c1,$e1) -- z$e5 -- arcus($g9,$e9) -- z$c5a -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def gencheig(suffix $) =
  corner($g11); corner($g6); corner($g1);
  corner($a6);corner($a1); corner($a11);
  fill(arcus($a11d,$g11b) -- z$g11c --
      z$g6a -- z$g6b -- z$g6c -- z$g1a -- arcus($g1b,$a1d) --
      z$a1a -- z$a6c -- z$a6d -- z$a6a -- z$a11c -- cycle);
  unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
  unfill(arcus($c5,$e5) -- arcus($e3,$c3) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchsix(suffix $) =
  corner($g11);corner($a11);corner($g1);corner($a1);corner($g7);
  corner($a5);
  z$a2 = (z$a1+3z$a3)/4; z$c2 = (z$c1+3z$c3)/4;
  z$e2 = (z$e1+3z$e3)/4; z$g2 = (z$g1+3z$g3)/4;
  z$a10 = (z$a11+3z$a9)/4; z$c10 = (z$c11+3z$c9)/4;
  z$e10 = (z$e11+3z$e9)/4; z$g10 = (z$g11+3z$g9)/4;
  fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9) -- z$a11c --
       cycle);
  fill(arcus($a7,$g7b) -- z$g7c -- arcus($g5,$a5) -- cycle);
  fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
       cycle);
  fill(arcus($c10,$a10) -- arcus($a2,$c2) -- cycle);
  fill(arcus($g6,$e6) -- arcus($e2,$g2) -- cycle);
  fill(arcus($g10,$e10) -- arcus($e8,$g8) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;
def genchnin(suffix $) =
  corner($g11);corner($a11);corner($g1);corner($a1);corner($g7);
  corner($a5);
  z$a2 = (z$a1+3z$a3)/4; z$c2 = (z$c1+3z$c3)/4;
  z$e2 = (z$e1+3z$e3)/4; z$g2 = (z$g1+3z$g3)/4;
  z$a10 = (z$a11+3z$a9)/4; z$c10 = (z$c11+3z$c9)/4;
  z$e10 = (z$e11+3z$e9)/4; z$g10 = (z$g11+3z$g9)/4;
  fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9) -- z$a11c --
       cycle);
  fill(arcus($a7,$g7) -- arcus($g5,$a5d) -- z$a5a -- cycle);
  fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
       cycle);
  fill(arcus($c4,$a4) -- arcus($a2,$c2) -- cycle);
  fill(arcus($c10,$a10) -- arcus($a6,$c6) -- cycle);
  fill(arcus($g10,$e10) -- arcus($e2,$g2) -- cycle);
cull currentpicture keeping (1,infinity); enddef;;