fm->find_by_name ("brackettips.up"));
Real thickness = robust_scm2double (me->get_property ("thickness"), 0.25);
+
Stencil bracket = Lookup::filled_box (Box (Interval (0, thickness),
Interval (-height/2, height/2)));
def draw_bracket(expr thick_sharp, width_sharp, updown) =
begingroup;
- save p, thin, thick, flattening, width;
+ save p, thin, thick, flattening, width, hair;
path p;
pair tipdir;
fi;
thin = 2 linethickness;
-
+ hair = linethickness;
+
pickup pencircle scaled thin;
lft x3 = 0.0;
x1 = x3l;
y1 = -0.5 thick;
-
+
+
+ save tight;
+ tight := 1.3;
z5 = .5 [z1, z3] + (width - thin, flattening * width - .5 thin);
- p := .5 [z1, z3]{right} .. z5;
+ p := .5 [z1, z3]{right}
+ .. tension tight
+ .. z5;
tipdir := (direction 1 of p);
- penpos5 (thin, angle (tipdir));
- penpos6 (thin, 90 + angle (tipdir));
+ penpos5 (hair, angle (tipdir));
+ penpos6 (hair, 90 + angle (tipdir));
z5 = z6;
z7 = z1 + (thick,0);
-
+ z2 = z4r + (thin, 0);
pickup pencircle scaled 1;
% draw p;
fill (z1{up} .. z3l{up}
- .. z4r{right} .. z6r{tipdir}
+ .. z4r{right}
+ .. z2{right}
+ .. tension tight
+ .. z6r{tipdir}
.. z5r .. z6l{-tipdir}
+ .. tension tight
.. z7{left} .. z1{left} & cycle)
yscaled updown;