%%
%% This is file `frusep.mf',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% allrunes.dtx  (with options: `frusep')
%% 
%% 
%% Copyright 2001-2004 Carl-Gustav Werner
%% 
%% This program is provided under the terms of the
%% LaTeX Project Public License distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt.
%% 
def draw_cross(expr y_centre, i) =
  filldraw barpath(xmid-xhalf, ymid-xhalf+y_centre*yhalf, endrounding,
                   xmid+xhalf, ymid+xhalf+y_centre*yhalf, endrounding, 0, tightness_f, i);
  filldraw barpath(xmid-xhalf, ymid+xhalf+y_centre*yhalf, endrounding,
                   xmid+xhalf, ymid-xhalf+y_centre*yhalf, endrounding, 0, tightness_f, i+10)
enddef;

def draw_plus(expr y_centre, i) =
  filldraw barpath(xmid-xhalf, ymid+y_centre*yhalf, endrounding,
                   xmid+xhalf, ymid+y_centre*yhalf, endrounding, 0, tightness_f, i);
  filldraw barpath(xmid,       ymid+xhalf+y_centre*yhalf, endrounding,
                   xmid,       ymid-xhalf+y_centre*yhalf, endrounding, 0, tightness_f, i+10)
enddef;

beginrunechar(".", sepdot_f*stem_w#+2*margin_width#);
  filldraw dotpath(xmid, ymid, sepdot_f, 20);
endchar;

beginrunechar(":", sepdot_f*stem_w#+2*margin_width#);
  save ddot_y_f;
  ddot_y_f=0.3;
  filldraw dotpath(xmid, ymid+yhalf*ddot_y_f, sepdot_f, 20);
  filldraw dotpath(xmid, ymid-yhalf*ddot_y_f, sepdot_f, 30);
endchar;

beginrunechar(59, sepdot_f*stem_w#+2*margin_width#);
  save tdot_y_f;
  tdot_y_f=0.6;
  filldraw dotpath(xmid, ymid+yhalf*tdot_y_f, sepdot_f, 20);
  filldraw dotpath(xmid, ymid,                sepdot_f, 30);
  filldraw dotpath(xmid, ymid-yhalf*tdot_y_f, sepdot_f, 40);
endchar;

beginrunechar(60, sepdot_f*stem_w#+2*margin_width#);
  save qdot_ymid_f;
  save qdot_ytop_f;
  qdot_ymid_f=0.25;
  qdot_ytop_f=0.75;
  filldraw dotpath(xmid, ymid+yhalf*qdot_ymid_f, sepdot_f, 20);
  filldraw dotpath(xmid, ymid+yhalf*qdot_ytop_f, sepdot_f, 30);
  filldraw dotpath(xmid, ymid-yhalf*qdot_ymid_f, sepdot_f, 40);
  filldraw dotpath(xmid, ymid-yhalf*qdot_ytop_f, sepdot_f, 50);
endchar;

beginrunechar(61, sepdot_f*stem_w#+2*margin_width#);
  save pdot_ymid_f;
  save pdot_ytop_f;
  pdot_ymid_f=0.4;
  pdot_ytop_f=0.8;
  filldraw dotpath(xmid, ymid+yhalf*pdot_ymid_f, sepdot_f, 20);
  filldraw dotpath(xmid, ymid+yhalf*pdot_ytop_f, sepdot_f, 30);
  filldraw dotpath(xmid, ymid,                 sepdot_f, 40);
  filldraw dotpath(xmid, ymid-yhalf*pdot_ymid_f, sepdot_f, 50);
  filldraw dotpath(xmid, ymid-yhalf*pdot_ytop_f, sepdot_f, 60);
endchar;

beginrunechar(62, 0.55*base_width#+2*margin_width#);
  filldraw dotpath(xmid-xhalf, ymid+xhalf/sqrt(3),   sepdot_f, 20);
  filldraw dotpath(xmid+xhalf, ymid+xhalf/sqrt(3),   sepdot_f, 30);
  filldraw dotpath(xmid,       ymid-2*xhalf/sqrt(3), sepdot_f, 40);
endchar;

beginrunechar(63, 0.6*base_width#+2*margin_width#);
  filldraw dotpath(xmid,       ymid-xhalf, sepdot_f, 20);
  filldraw dotpath(xmid,       ymid+xhalf, sepdot_f, 30);
  filldraw dotpath(xmid-xhalf, ymid,       sepdot_f, 40);
  filldraw dotpath(xmid+xhalf, ymid,       sepdot_f, 50);
endchar;

beginrunechar(64, 0.75*base_width#+2*margin_width#);
  filldraw dotpath(xmid,       ymid-xhalf, sepdot_f, 20);
  filldraw dotpath(xmid,       ymid,       sepdot_f, 30);
  filldraw dotpath(xmid,       ymid+xhalf, sepdot_f, 40);
  filldraw dotpath(xmid+xhalf, ymid,       sepdot_f, 50);
  filldraw dotpath(xmid-xhalf, ymid,       sepdot_f, 60);
endchar;

cross_width_f=0.55;
beginrunechar("*", cross_width_f*base_width#+2*margin_width#);
  draw_cross(0.0, 20);
endchar;

beginrunechar(37, cross_width_f*base_width#+2*margin_width#);
  save dcross_y_f;
  dcross_y_f=0.4;
  draw_cross(-dcross_y_f, 20);
  draw_cross( dcross_y_f, 40);
endchar;

beginrunechar(38, cross_width_f*base_width#+2*margin_width#);
  save tcross_y_f;
  tcross_y_f=0.7;
  draw_cross(-tcross_y_f, 20);
  draw_cross( 0.0,        40);
  draw_cross( tcross_y_f, 60);
endchar;

plus_width_f=0.67;
beginrunechar("+", plus_width_f*base_width#+2*margin_width#);
  draw_plus(0.0, 20);
endchar;

beginrunechar(44, plus_width_f*base_width#+2*margin_width#);
  save dplus_y_f;
  dplus_y_f=0.4;
  draw_plus(-dplus_y_f, 20);
  draw_plus( dplus_y_f, 40);
endchar;

beginrunechar(45, plus_width_f*base_width#+2*margin_width#);
  save tplus_y_f;
  tplus_y_f=0.76;
  draw_plus(-tplus_y_f, 20);
  draw_plus( 0.0,       40);
  draw_plus( tplus_y_f, 60);
endchar;

beginrunechar("!", stem_w#+2*margin_width#);
  save barheight_y_f;
  barheight_y_f=0.4;
  filldraw barpath(xmid, ymid+barheight_y_f*yhalf, endrounding,
                   xmid, ymid-barheight_y_f*yhalf, endrounding, 0, tightness_f, 20);
endchar;

beginrunechar(34, stem_w#+2*margin_width#);
  save dbarheight_y_f;
  save dbarpos_y_f;
  dbarheight_y_f=0.3;
  dbarpos_y_f=0.4;
  filldraw barpath(xmid, ymid+( dbarpos_y_f+dbarheight_y_f)*yhalf, endrounding,
                   xmid, ymid+( dbarpos_y_f-dbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 20);
  filldraw barpath(xmid, ymid+(-dbarpos_y_f+dbarheight_y_f)*yhalf, endrounding,
                   xmid, ymid+(-dbarpos_y_f-dbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 30);
endchar;

beginrunechar(35, stem_w#+2*margin_width#);
  save tbarheight_y_f;
  save tbarpos_y_f;
  tbarheight_y_f=0.25;
  tbarpos_y_f=0.7;
  filldraw barpath(xmid, ymid+( tbarpos_y_f+tbarheight_y_f)*yhalf, endrounding,
                   xmid, ymid+( tbarpos_y_f-tbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 20);
  filldraw barpath(xmid, ymid              +tbarheight_y_f *yhalf, endrounding,
                   xmid, ymid              -tbarheight_y_f *yhalf, endrounding, 0, tightness_f, 20);
  filldraw barpath(xmid, ymid+(-tbarpos_y_f+tbarheight_y_f)*yhalf, endrounding,
                   xmid, ymid+(-tbarpos_y_f-tbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 30);
endchar;

beginrunechar(36, 0.7*base_width#+2*margin_width#);
  filldraw barpath(xmid, ymid, jointrounding,
                   xmid+cosd(1/5*360+90)*xhalf, ymid+sind(1/5*360+90)*xhalf, endrounding, 0, tightness_f, 20);
  filldraw barpath(xmid, ymid, jointrounding,
                   xmid+cosd(2/5*360+90)*xhalf, ymid+sind(2/5*360+90)*xhalf, endrounding, 0, tightness_f, 30);
  filldraw barpath(xmid, ymid, jointrounding,
                   xmid+cosd(3/5*360+90)*xhalf, ymid+sind(3/5*360+90)*xhalf, endrounding, 0, tightness_f, 40);
  filldraw barpath(xmid, ymid, jointrounding,
                   xmid+cosd(4/5*360+90)*xhalf, ymid+sind(4/5*360+90)*xhalf, endrounding, 0, tightness_f, 50);
  filldraw barpath(xmid, ymid, jointrounding,
                   xmid+cosd(5/5*360+90)*xhalf, ymid+sind(5/5*360+90)*xhalf, endrounding, 0, tightness_f, 60);
endchar;

