% This file contains a single character, the Begriffsschrift
% universal quantifier (the code being the same as for the cm
% "blank space" symbol).
%
% $Id: bguq.mf,v 1.6 2012/07/22 23:12:01 jjg Exp $

% from mflogo/logo.mf, modified to have a variable superness

def super_half(suffix i,j,k)(expr s) =
 draw z.i{0, y.j-y.i}
    ... (s[x.j, x.i], s[y.i, y.j]){z.j-z.i}
    ... z.j{x.k-x.i,0}
    ... (s[x.j, x.k], s[y.k, y.j]){z.k-z.j}
    ... z.k{0, y.k-y.j}
enddef;

mode_setup;

proofing := 2;
define_pixels(u);
define_pixels(bglt);

% The width 14.4u# is chosen so that at 10pt (where u=20/36)
% the width is 8pt, as in the original begriff quantifier.
% The depth is the same as for the descender for the base
% font (fraktur in this case)

beginchar(oct"040", 14.4u# - 2bglt#, 0, desc_depth#);

  % the super value determines the shape of the bowl
  % which is a superellipse: 
  % - at 1.000 is a rectangle,
  % - at 0.707 (i.e., sqrt(2)/2) is an ellipse
  % - at 0.500 is a diamond
  % we use a value a little larger than 0.707 giving a
  % stroke which is noticably squarer than an ellipse

  numeric super;
  super := 0.77;
    
  y1 = y3 = bglt/2;
  y2 + d = bglt/2;
  x1 = w - x3 = -bglt/2;
  x2 = w/2;
    
  pickup pencircle scaled bglt;
  super_half(1,2,3,super);

  % clean off the ends of the (round pen) stroke  

  unfill
    (x1-bglt/2,y1) --
    (x3+bglt/2,y3) --
    (x3+bglt/2,y3+bglt/2) --
    (x1-bglt/2,y1+bglt/2) --
    cycle;
  
  penlabels(1,2,3);
  
endchar;

end

% fin
  