]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-spacing.cc
move extremal_break_aligned_grob to Spacing_interface
[lilypond.git] / lily / staff-spacing.cc
index 2b1368137620a890f264340d7f772d6bf24c224f..72b997514c9738e23613aaf7f88a1380bd1ecc70 100644 (file)
@@ -115,27 +115,14 @@ Staff_spacing::next_notes_correction (Grob *me,
 Spring
 Staff_spacing::get_spacing (Grob *me, Grob *right_col)
 {
-  Grob *separation_item = 0;
   Item *me_item = dynamic_cast<Item *> (me);
-
-  extract_grob_set (me, "left-items", items);
-  for (vsize i = items.size (); i--;)
-    {
-      Grob *cand = items[i];
-      if (cand && Separation_item::has_interface (cand))
-       separation_item = cand;
-    }
-
-  //  printf ("doing col %d\n" , Paper_column::get_rank (left_col));
-  if (!separation_item)
-    {
-      programming_error ("no sep item");
-      return Spring ();
-    }
+  Grob *left_col = me_item->get_column ();
 
   Interval last_ext;
-  Grob *last_grob = Separation_item::extremal_break_aligned_grob (separation_item, RIGHT,
-                                                                 &last_ext);
+  Direction break_dir = me_item->break_status_dir ();
+  Grob *last_grob = Spacing_interface::extremal_break_aligned_grob (me, LEFT,
+                                                                   break_dir,
+                                                                   &last_ext);
   if (!last_grob)
     {
       /*
@@ -197,7 +184,7 @@ Staff_spacing::get_spacing (Grob *me, Grob *right_col)
       ideal = fixed;
     }
 
-  Grob *left_col = dynamic_cast<Item*> (me)->get_column ();
+
   Real optical_correction = next_notes_correction (me, last_grob);
   Real min_dist = Paper_column::minimum_distance (left_col, right_col);