From 95e2d8f397c7552dd6fa6ef5b498af7d8aee4cee Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 30 Nov 2006 17:48:04 +0100 Subject: [PATCH] put rod distance function in separate function. --- lily/include/rod.hh | 5 ----- lily/include/separation-item.hh | 1 + lily/separating-group-spanner.cc | 29 ++--------------------------- lily/separation-item.cc | 20 ++++++++++++++++++++ 4 files changed, 23 insertions(+), 32 deletions(-) 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_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. -- 2.39.5