From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Thu, 30 Nov 2006 16:48:04 +0000 (+0100)
Subject: put rod distance function in separate function.
X-Git-Tag: release/2.11.1-1~29
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=95e2d8f397c7552dd6fa6ef5b498af7d8aee4cee;p=lilypond.git

put rod distance function in separate function.
---

diff --git a/lily/include/rod.hh b/lily/include/rod.hh
index 163ae847d5..7bf58538de 100644
--- a/lily/include/rod.hh
+++ b/lily/include/rod.hh
@@ -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 ();
 };
 
diff --git a/lily/include/separation-item.hh b/lily/include/separation-item.hh
index 1c2ae7ef95..92620565af 100644
--- a/lily/include/separation-item.hh
+++ b/lily/include/separation-item.hh
@@ -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 *);
 };
diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc
index d2bc23a6d3..8c07d8e65d 100644
--- a/lily/separating-group-spanner.cc
+++ b/lily/separating-group-spanner.cc
@@ -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
diff --git a/lily/separation-item.cc b/lily/separation-item.cc
index 535edcac67..cd73e38a9d 100644
--- a/lily/separation-item.cc
+++ b/lily/separation-item.cc
@@ -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.