]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/system.cc
Fix the usage of min-distance in page breaking.
[lilypond.git] / lily / system.cc
index 3da78689e33fcc8cdda4b749d3645d68d082a417..8196736eca5d007565b36d8fe035f50164ced2c5 100644 (file)
@@ -572,6 +572,34 @@ System::get_extremal_staff (Direction dir, Interval const &iv)
   return 0;
 }
 
+Interval
+System::pure_refpoint_extent (vsize start, vsize end)
+{
+  Interval ret;
+  Grob *alignment = get_vertical_alignment ();
+  if (!alignment)
+    return Interval ();
+
+  extract_grob_set (alignment, "elements", staves);
+  vector<Real> offsets = Align_interface::get_minimum_translations (alignment, staves, Y_AXIS, true, start, end);
+
+  for (vsize i = 0; i < offsets.size (); ++i)
+    if (Page_layout_problem::is_spaceable (staves[i]))
+      {
+       ret[UP] = offsets[i];
+       break;
+      }
+
+  for (vsize i = offsets.size (); i--;)
+    if (Page_layout_problem::is_spaceable (staves[i]))
+      {
+       ret[DOWN] = offsets[i];
+       break;
+      }
+
+  return ret;
+}
+
 Interval
 System::part_of_line_pure_height (vsize start, vsize end, bool begin)
 {