--- /dev/null
+\version "2.15.36"
+
+\header {
+ texidoc = "Placement of beamed cross staff rests should be
+reasonably close to beam.
+"
+}
+
+Up = \change Staff = "up"
+Down = \change Staff = "down"
+
+\new PianoStaff <<
+ \new Staff = "up"
+ \relative c'' {
+ \time 6/8 a2.
+ c'8[ \Down c,16 \Up fis \Down r fis] \Up
+ }
+ \new Staff = "down" { s2. s4. }
+>>
|| !Beam::normal_stem_count (beam))
return scm_from_double (0.0);
+ Grob *common_y = rest->common_refpoint (beam, Y_AXIS);
+
Drul_array<Real> pos (robust_scm2drul (beam->get_property ("positions"),
Drul_array<Real> (0, 0)));
+ Direction dir = LEFT;
+ do
+ pos[dir] += beam->relative_coordinate (common_y, Y_AXIS);
+ while (flip (&dir) != LEFT);
+
Real staff_space = Staff_symbol_referencer::staff_space (rest);
scale_drul (&pos, staff_space);
+ (beam_count - 1) * beam_translation;
Real beam_y = stem_y - d * height_of_my_beams;
- Grob *common_y = rest->common_refpoint (beam, Y_AXIS);
Interval rest_extent = rest->extent (rest, Y_AXIS);
rest_extent.translate (offset + rest->get_parent (Y_AXIS)->relative_coordinate (common_y, Y_AXIS));
return scm_from_double (amount);
Grob *beam = unsmob_grob (stem->get_object ("beam"));
if (!beam
- || !Beam::normal_stem_count (beam))
+ || !Beam::normal_stem_count (beam)
+ || !is_direction (beam->get_property_data ("direction")))
return scm_from_double (amount);
Real ss = Staff_symbol_referencer::staff_space (me);