]> git.donarmstrong.com Git - lilypond.git/commitdiff
put rod distance function in separate function.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 30 Nov 2006 16:48:04 +0000 (17:48 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 30 Nov 2006 16:48:04 +0000 (17:48 +0100)
lily/include/rod.hh
lily/include/separation-item.hh
lily/separating-group-spanner.cc
lily/separation-item.cc

index 163ae847d5d37750ff5aab051cf0f5adcd0b6146..7bf58538de710522aef052db0f4110216d7f0d36 100644 (file)
@@ -17,13 +17,8 @@ struct Rod
   Drul_array<Item *> item_drul_;
   Real distance_;
 
-  /**
-     translate the rod so as to refer to Paper_columns
-  */
   void columnize ();
-
   void add_to_cols ();
-
   Rod ();
 };
 
index 1c2ae7ef95790e594cad83af550d628fdf41f410..92620565af094951e30726049075c9c9c25a9ac0 100644 (file)
@@ -23,6 +23,7 @@ struct Separation_item
   static Interval width (Grob *);
   static Interval relative_width (Grob *, Grob *);
   static Grob *extremal_break_aligned_grob (Grob *, Direction, Interval *);
+  static void set_distance (Item *, Item *, Real);
   static void add_item (Grob *, Item *);
   static void add_conditional_item (Grob *, Grob *);
 };
index d2bc23a6d339e3a016f9d8c549231692676cd020..8c07d8e65d7c463ded840c5c186716f7fc38dd43 100644 (file)
@@ -34,35 +34,10 @@ Separating_group_spanner::find_rods (Item *r,
 
       if (lb)
        {
-         Interval li (Separation_item::width (lb));
-         Interval ri (Separation_item::conditional_width (r, lb));
-         if (!li.is_empty () && !ri.is_empty ())
-           {
-             Rod rod;
-
-             rod.item_drul_[LEFT] = lb;
-             rod.item_drul_[RIGHT] = r;
-
-             rod.distance_ = li[RIGHT] - ri[LEFT] + padding;
-             rod.add_to_cols ();
-           }
+         Separation_item::set_distance (lb, r, padding);
        }
 
-      Interval li (Separation_item::width (l));
-      Interval ri (Separation_item::conditional_width (r, l));
-      if (!li.is_empty () && !ri.is_empty ())
-       {
-         Rod rod;
-
-         rod.item_drul_[LEFT] = l;
-         rod.item_drul_[RIGHT] = r;
-
-         rod.distance_ = li[RIGHT] - ri[LEFT] + padding;
-
-         if (rod.distance_ > 0.0)
-           rod.add_to_cols ();
-         break;
-       }
+      Separation_item::set_distance (l, r, padding);
 
       /*
        this grob doesn't cause a constraint. We look further until we
index 535edcac6704458a5cde0eb11a5fe0b1790fc4cf..cd73e38a9d57b63e97c47961c0c1135b889d0a0e 100644 (file)
@@ -27,6 +27,26 @@ Separation_item::add_conditional_item (Grob *me, Grob *e)
   Pointer_group_interface::add_grob (me, ly_symbol2scm ("conditional-elements"), e);
 }
 
+void
+Separation_item::set_distance (Item *l, Item *r,
+                              Real padding)
+{
+  Interval li (Separation_item::width (l));
+  Interval ri (Separation_item::conditional_width (r, l));
+  if (!li.is_empty () && !ri.is_empty ())
+    {
+      Rod rod;
+
+      rod.item_drul_[LEFT] = l;
+      rod.item_drul_[RIGHT] = r;
+
+      rod.distance_ = li[RIGHT] - ri[LEFT] + padding;
+
+      if (rod.distance_  > 0)
+       rod.add_to_cols ();
+    }
+}
+
 /*
   Return the width of ME given that we are considering the object on
   the LEFT.