+ Real dy = pos[RIGHT] - pos[LEFT];
+ Real slope = (dy && span.length ()) ? dy / span.length () : 0;
+
+ Real thick = get_thickness (me);
+ Real beam_dy = get_beam_translation (me);
+
+ Direction feather_dir = to_dir (me->get_property ("grow-direction"));
+
+ Stencil the_beam;
+ for (vsize i = 0; i < segments.size (); i ++)
+ {
+ Real local_slope = slope;
+ if (feather_dir)
+ {
+ local_slope += feather_dir * segments[i].vertical_count_ * beam_dy / span.length ();
+ }
+
+ Stencil b = Lookup::beam (local_slope, segments[i].horizontal_.length (), thick, blot);
+
+ b.translate_axis (segments[i].horizontal_[LEFT], X_AXIS);
+
+ b.translate_axis (local_slope
+ * (segments[i].horizontal_[LEFT] - span.linear_combination (feather_dir))
+ + pos.linear_combination (feather_dir)
+ + beam_dy * segments[i].vertical_count_, Y_AXIS);
+ the_beam.add_stencil (b);
+ }
+
+#if (DEBUG_BEAM_SCORING)
+ SCM quant_score = me->get_property ("quant-score");
+ SCM debug = me->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-scoring"));
+ if (to_boolean (debug) && scm_is_string (quant_score))