%  DIMENSIONS FOR GLADIATOR FONTS
%

%  DIMENSIONS FOR BOTH ROMAN AND ITALIC TYPES
%
mode_setup;

if unknown slant:
  slant=0; notransforms;
else:
  currenttransform:= identity slanted slant % yscaled aspect_ratio
fi;

%autorounding:=2;
autorounding:=0;
%if slant>0: autorounding:= 1; else: autorounding:= 0; fi
smoothing:= 0;
%smoothing:= 1;

if unknown boldness: boldness=1 fi;
if unknown expansion: expansion=1 fi;

boldadjust=boldness[.95,1];
serifadjust=boldadjust*60dd#/(height#+50dd#);
%width#=expansion*height#*boldadjust
%width#=.905*expansion*height#*boldadjust
width#=.95*expansion*height#*boldadjust
  *sqrt(sqrt(18/height#/height#+0.82));	%  From this all widths are derived
xheight#=0.415height#*boldadjust;	%  Height of lowercase letters
cap#=0.67height#*boldadjust;		%  Height of uppercase letters
descender#=0.21height#*boldadjust;	%  Depth of descenders
ascender#=0.685height#*boldadjust;	%  Height of lowercase l, b, k, etc.

font_size		height#;
font_slant		slant;
font_normal_space	width#/3;
font_normal_stretch	width#/6;
font_normal_shrink	width#/9;
font_x_height		xheight#;
font_quad		width#;
% font_identifier	- must be set in roman/italic driver file
% font_coding_scheme	- must be set in roman/italic driver file


%  THE WIDTHS OF STEMS, CURVES, SERIFS, ETC.

if known light:
  uc_curve#=lc_curve#=0.054height#*boldness;
  uc_thick#=lc_thick#=0.051height#*boldness;
  uc_med#=lc_med#=0.049height#*boldness;
  uc_thin#=lc_thin#=0.020height#*serifadjust;
  dotwidth#=1.4uc_thick#/boldness*boldadjust;
else:
  uc_curve#=0.082height#*boldness;	%  Curves of uppercase letters
% uc_thin#=0.03height#*serifadjust;	%  Thin parts of uppercase letters
  uc_thin#=0.028height#*serifadjust;	%  Thin parts of uppercase letters
  uc_med#=0.075height#*boldness;	%  Medium parts of uppercase letters
  uc_thick#=0.080height#*boldness;	%  Thick parts of uppercase letters
  lc_curve#=0.072height#*boldness;	%  Curves of lowercase letters
% lc_thin#=0.03height#*serifadjust;	%  Thin parts of lowercase letters
  lc_thin#=0.027height#*serifadjust;	%  Thin parts of lowercase letters
  lc_med#=0.065height#*boldness;	%  Medium parts of lowercase letters
  lc_thick#=0.070height#*boldness;	%  Thick parts of lowercase letters
  dotwidth#=1.4uc_thick#/boldness*boldadjust;
fi

if known smallcaps:
  u#=0.15height#-lc_extrawidth#/2;	%  White at either side somewhat larger
  U#=0.165height#-uc_extrawidth#/2;	%  Same for uppercase
else:
  u#=0.1height#-lc_extrawidth#/2;	%  White at either side
  U#=0.11height#-uc_extrawidth#/2;	%  Same for uppercase
fi

vo#=0.01height#;			%  Vertical overshoot
ho#=vo#;				%  Horizontal overshoot
gap#=0.037height#;			%  Gaps in bowl of a, b, d, e, etc.
tens=1.1;				%  Tension of serifs
inclination=80;				%  Skew of vertical serifs on E, C,...
% fine#=0.015height#*serifadjust;		%  For tips of serifs, etc.
fine#=0.019height#*serifadjust;		%  For tips of serifs, etc.
comma_depth#=0.16height#;		%  Depth of comma below baseline
%ba#=0.576u#;				%  Bowl-adjust, subtracted from u#
ba#=0.4u#;				%  Bowl-adjust, subtracted from u#
norm_pentilt=20; %17;			%  Curve pens are slightly tilted
o_norm_pentilt=9;			%  Pens for o & O are slightly tilted
seriftilt=0; %7;			%  Tilt of serif'ed ends
pair serifdir; serifdir=dir(seriftilt);	%  For convenience
%serifht#=0.08height#*serifadjust;	%  Height of thin serifs
serifht#=0.06height#*serifadjust;	%  Height of thin serifs
triangleht#=0.10height#*serifadjust;	%  Half the height of triangular serif
%triangleht#=0.14height#*serifadjust;	%  Half the height of triangular serif
bowljoin#=0.44xheight#;			%  Join of bowl and stem above baseline
lc_extrawidth#=(boldadjust-1)*lc_thick#;	%  Added to 2-stem characters
uc_extrawidth#=(boldadjust-1)*uc_thick#;	%  Added to 2-stem characters

if known sans:
  serifwd#=0;				%  How much serifs protrude
  trianglewd#=0;			%  Width of triangular serif
else:
  serifwd#=0.06height#; %0.074height#;	%  How much serifs protrude
  trianglewd#=0.081height#;		%  Width of triangular serif
fi

pentilt=begingroup numeric a, b;
    (a,b)=dir(norm_pentilt/(boldness*boldness));
    angle (a/expansion,b)
  endgroup;
o_pentilt=begingroup numeric a, b;
    (a,b)=dir(o_norm_pentilt/(boldness*boldness));
    angle (a/expansion,b)
  endgroup;

%o_pentilt=atan(tan(o_norm_pentilt/boldness)/expansion);

define_pixels(bowljoin, lc_med, uc_med);
define_whole_blacker_pixels(serifwd, trianglewd);
define_whole_vertical_blacker_pixels(serifht, triangleht);
define_pixels(width, height, xheight, cap, descender, ascender);
define_whole_blacker_pixels(comma_depth, gap);
define_whole_blacker_pixels(uc_thick, uc_curve, dotwidth, lc_thick, lc_curve);
define_whole_vertical_blacker_pixels(uc_thin, lc_thin);
define_whole_pixels(u, U, ba);
define_whole_blacker_pixels(fine); if fine=0: fine:=1 fi;
define_corrected_pixels(vo);
define_horizontal_corrected_pixels(ho);
lowres_fix(lc_thick,lc_med) 1.2;
lowres_fix(lc_thick,lc_curve) 1.2;
lowres_fix(uc_thick,uc_med) 1.2;
lowres_fix(uc_thick,uc_curve) 1.2;

uc_bar=0.55cap;			%  Vertical position of bar in B, E,...

%  KERNING

numeric k[];
k1=-3/2u#;				%  ??
k2=-5/4u#;				%  Between A and V
k3=-u#;					%  Between A and o
k4=-1/2u#;				%  Between A and u
