-
- Drul_array<Real> shorten;
- shorten[LEFT] = 0;
- shorten[RIGHT] = 0;
-
- SCM ew = me->get_grob_property ("bracket-flare");
- SCM s = me->get_grob_property ("shorten-pair");
- if (gh_pair_p (s))
- {
- span_points[LEFT] += gh_scm2double (ly_car (s));
- span_points[RIGHT] -= gh_scm2double (ly_cdr (s));
- }
- if (gh_pair_p (ew))
+ Drul_array<Real> edge_height = robust_scm2interval (me->get_property ("edge-height"),
+ Interval (0.0, 0.0));
+ Drul_array<Stencil> edge_line;
+ {
+ Direction d = LEFT;
+ int dir = to_dir (me->get_property ("direction"));
+ do
+ {
+ if (broken[d])
+ continue;
+
+ Real dx = 0.0;
+ if (is_number_pair (flare))
+ dx = scm_to_double (index_get_cell (flare, d)) * d;
+
+ Real dy = -dir * edge_height[d];
+ if (dy)
+ edge_line[d] = Line_spanner::line_stencil (me, Offset (0, 0), Offset (dx, dy));
+ }
+ while (flip (&d) != LEFT);
+ }
+
+ Stencil m;
+ do