input feta-macros;
input feta-params;
input feta-autometric;

save code;
code :=0;


def draw_bracket( expr height_sharp, width_sharp) = 
	save alpha, height, p, width, thin, thick;
	height# := height_sharp;
	width#  := width_sharp;

	beginchar(incr code, width#, height#/2, height#/2);
 
	define_pixels (height, width);
	thin = 2 stafflinethickness;
	thick = .5 interline;
	
	pickup pencircle scaled thin;
	lft x1 = 0;
	top y1 = height/2 + thick + thin;

	x2 = x1;
	z2 = (x1, 0);
	rt x3 = thick;
	y3 = y2;

	x4 = x3;
	bot y4 = y1 - thick + thin/2;

	alpha = 50;
	z5 = z1 + (width, 3/4interline);

	% need silly z6?
	% strange turning path when invoked via MakeTeXTFM...?
	% mf "\\mode:=ljfour; mag:=1; scrollmode; input feta-brackets16"
	z6 = z5 - (0, thin/16);

	filldraw z5{dir(180+alpha)}..{left}z1--z2--z3..{up}z4{right}
		..{dir(alpha)}z6..cycle;

%	% try control points to do this in ps
%	currentpicture:=currentpicture shifted (-x5/2,(x5-x4)/2);
%
%	s7 := 0.4*(x5-x1);
%	x7 = x1 + s7 * cosd(0);
%	y7 = y1 + s7 * sind(0);
%
%	s8 := -0.25*(x5-x1);
%	x8 := x5 + s8 * cosd(alpha);
%	y8 := y5 + s8 * sind(alpha);
%
%	s9 := 0.5*(x5-x4);
%	x9 := x4 + s9 * cosd(0);
%	y9 := y4 + s9 * sind(0);
%
%	s10 := -0.15*(x5-x4);
%	x10 := x5 + s10 * cosd(alpha);
%	y10 := y5 + s10 * sind(alpha);
%
%	draw z5..controls z8 and z7..z1--z2--z3..{up}z4
%		..controls z9 and z10..z6..cycle;
%
%	labels(1,2,3,4,5,6,7,8,9,10);
	addto currentpicture also currentpicture yscaled -1;
endchar;
enddef;

% for h :=  staffsize# step 1 pt# until (1.1 * staffsize#):
for h :=  staffsize# step 1 pt# until (7 * staffsize#):
	draw_bracket(h, 2interline# );
endfor

