%*****************************************************************************
%        Copyright (c) 1989 by N. N. Billawala
%*****************************************************************************


% puncts.mf  punctuation: Spanish inverted !?

% 2 characters


iff OK "!":  "Inverted exclamation point (Spanish)";
  beginchar(inv_exclamation,I_w*width#+a_mono#,cap#,.5descender#);

  min_limit(join_radius)(.5thin_stem.uc);
  bot z1=(round(.5w),0);
  z0=bot z1+(0,.5accent_dot_diameter);
  top z3=(x1,h)//;  pos3(stem.uc,-oblique);
  onaline(0,3)(2);  bot y2=max(bot y1+accent_dot_diameter+2,.3y3);
  pos2(thin_stem.uc,-oblique);

  ref1=dot.b(z1,accent_dot_diameter);
  ref2=(z3--z3l)softjoin(z3l--z2l)softjoin(z2l--z2r)softjoin(z2r--z3r)
      softjoin(z3r--z3)--cycle;
  
  z10=(.5w,.5(cap-d));
  p1=ref1 rotatedaround (z10,180);
  p2=ref2 rotatedaround (z10,180);

  showpoints(0,1,2,3);
adjust(v_a*fitbasis.uc#+m_a*a_mfit#,v_a*fitbasis.uc#+m_a*a_mfit#); 
show_character; endchar;

% rotation of shape and slant of position with obliqueness

% Shape taken exactly from the exclamation point character, but rotated by 180
% degrees and shifted. This does throw the labels off though.
% Done this way, so that changes to one are more easily
% transferred to the other. Could also have altered reference points, which
% may still need to be done if the rounding turns out bad



iff OK "?":  "Inverted question mark (Spanish)"; 
  beginchar(inv_question_mark,.35width#+b_mono#,cap#,.5descender#);   %.4width
  min_limit(join_radius)(.5thin_stem.uc);
  lft z1=(0,.9h)//;
  rt z3r=(w,.75h)//; lft z3l=z3r-(stem.uc,0);
  top y2r=bot y2l+max(1,major_curve.uc)=h+ov_t.uc; 
  good_x_for(2r)(z1,z3r,.5)a; good_x_for(2l)(z1+(bulb_thickness,0),z3l,.5)b;
  bot z7=(.35w,0);
  z8=bot z7+(0,.5accent_dot_diameter);
  bot z6=(bot z7+(0,max(bot y7+accent_dot_diameter+2,.3y2r)))//;
  multpos(5,6)(thin_stem.uc,-oblique);  
  onaline(6,8)(5); y5=max(y7+accent_dot_diameter+2,.35y2r);   
  z4l=.4[z5l,z3l]; z4r=.4[z5r,z3r]; 

  ref1=(bulb.tl(z1,z2l,z2r,cs,max(1,.75bulb_thickness),90)soft i_t 
       z3l{downward} i_t z4l o_t z5l{downward}--z6l)softjoin(z6l--z6r)
       softjoin(z6r-- z5r{upward} i_t z4r o_t z3r{upward} o_t z2r{left})--cycle;
  ref2=dot.b(z7,accent_dot_diameter);
  
  z10=(.5w,.5(cap-d));
  p1=ref1 rotatedaround (z10,180);
  p2=ref2 rotatedaround (z10,180);

  showpoints(1,2,3,4,5,6,7,8,10);
adjust(v_C*fitbasis.uc#+m_a*b_mfit#,v_C*fitbasis.uc#+m_a*b_mfit#);
show_character; endchar;

% Shape taken exactly from the question mark character, but rotated by 180
% degrees and shifted. Fitting on left and right was switched.
% This does throw the labels off though.
% Done this way, so that changes to one are more easily
% transferred to the other. Could also have altered reference points, which
% may still need to be done if the rounding turns out bad


