%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                             %
%                   SONDERZEICHEN                             %
%                                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




def alla_breve (expr trans) =
         thin := 5thinwidth; thick := 1/2 nhh;
         penpos1(thin,   0);
         penpos2(thin, -90);
         penpos3(thick,180);
         penpos4(2/3thin,  90);
         penpos5(thin,  45);
         penpos6(3/4thick,45);
         2x2r = 2x4r = x1 + 2s = w;
         x3r = 0; 2y1 = 3y2 = y4r = h;
         y3r = 2/3h;
         x5 = w -2s;
         y5 = h -2s;
         z6r = z5r;
         penstroke (z1e..z2e..z3e..z4e..z5e) transformed trans;
         currentpen := pencircle scaled (2/3thick);
         drawdot z6;
enddef;


%%%%%%%%%%%%%%%%
% "allabreve" %%
%%%%%%%%%%%%%%%%

beginchar(82, 2nhh#, 3nhh#, 0);
         clear;
         alla_breve(identity);
         z7 = z4 + 2/16 h *up;
         z8 = z2 + 2/16 h *down;
         currentpen := pencircle scaled (thin);
         draw z7--z8;

endchar;

%%%%%%%%
% "C" %%
%%%%%%%%

beginchar(83, 2nhh#, 3nhh#, 0);
         clear;
         alla_breve(identity);

endchar;

%%%%%%%%%%%%%%%
% "reverseC" %%
%%%%%%%%%%%%%%%

beginchar(84, 2nhh#, 3nhh#, 0);
         clear;
         transform T;
    xxpart T = -yypart T; xypart T = yxpart T; % T is a reflection
    (w/2,0) transformed T = (w/2,0);  (w/2,1) transformed T = (w/2,1);
         thin := 5thinwidth; thick := 1/2 nhh;
         penpos1(thin,   0);
         penpos2(thin, -90);
         penpos3(thick,180);
         penpos4(2/3thin,  90);
         penpos5(thin,  45);
         penpos6(3/4thick,45);
         2x2r = 2x4r = x1 + 2s = w;
         x3r = 0; 2y1 = 3y2 = y4r = h;
         y3r = 2/3h;
         x5 = w -2s;
         y5 = h -2s;
         z6r = z5r;
         penstroke (counterclockwise
         (z1e..z2e..z3e..z4e..z5e) transformed T);
         currentpen := pencircle scaled (2/3thick);
         drawdot (z6 transformed T);

endchar;

%%%%%%%%%%%%%%%
% "fermate1" %%
%%%%%%%%%%%%%%%

beginchar(80, 2nhw#, 1.25nhh#, 0);
         clear;
         penpos2(nhh/4,90);
         penpos4(nhh/4,90);
         y2r =  h;
         z1 =  origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0;
         penstroke z1..z2e..z3;
         currentpen:= pencircle scaled (nhh/4);
         drawdot z4;
endchar;

%%%%%%%%%%%%%%%
% "fermate2" %%
%%%%%%%%%%%%%%%

beginchar(81, 2nhw#, 0, 1.25nhh#);
         clear;
         penpos2(nhh/4,90);
         penpos4(nhh/4,90);
         y2l = -d;
         z1 =  origin; 2x2l = 2x4 = x3 = w;
         y4r = y3 = 0;
         penstroke (z1..z2e..z3);
         currentpen := pencircle scaled (nhh/4);
         drawdot z4;
endchar;
