X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpaper-column.cc;h=4e76ff5ed8fe37b1312b959f766668c34e8eee46;hb=a2991295b2c1fb36bec19de207161855ca3c1756;hp=579d028256cd97edede31f93edd79a1d2699252d;hpb=0af2486a28f1c60b9de929a9101964d880927e54;p=lilypond.git diff --git a/lily/paper-column.cc b/lily/paper-column.cc index 579d028256..4e76ff5ed8 100644 --- a/lily/paper-column.cc +++ b/lily/paper-column.cc @@ -3,79 +3,30 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2001 Han-Wen Nienhuys */ #include "moment.hh" #include "paper-column.hh" #include "paper-score.hh" #include "debug.hh" #include "axis-group-interface.hh" +#include "spaceable-element.hh" void -Paper_column::add_rod (Paper_column * p, Real d) +Paper_column::do_break_processing () { - Direction dir = Direction (sign (rank_i(p) -rank_i (this))); - - if (dir != RIGHT) - { - programming_error ("Must set minimum distance LTOR."); - return; - } - - for (int i=0; i < minimal_dists_.size (); i++) - { - Column_rod &rod = minimal_dists_[i]; - if (rod.other_l_ == p) - { - rod.distance_f_ = rod.distance_f_ >? d; - return ; - } - } - - Column_rod cr; - cr.distance_f_ = d; - cr.other_l_ = p; - - minimal_dists_.push (cr); -} - -void -Paper_column::add_spring (Paper_column * p, Real d, Real s) -{ - Direction dir = Direction (sign (rank_i(p) -rank_i (this))); - - if (dir != RIGHT) - { - programming_error ("Must set springs LTOR"); - return; - } - - for (int i=0; i < springs_.size (); i++) - { - Column_spring &spring = springs_[i]; - if (spring.other_l_ == p) - { - spring.distance_f_ = spring.distance_f_ >? d; - return ; - } - } - - Column_spring cr; - cr.distance_f_ = d; - cr.strength_f_ = s; - cr.other_l_ = p; - - springs_.push (cr); + Spaceable_grob::remove_interface (this); + Item::do_break_processing (); } int -Paper_column::rank_i(Score_element*me) +Paper_column::rank_i (Grob*me) { return dynamic_cast (me)->rank_i_; } Line_of_score* -Paper_column::line_l() const +Paper_column::line_l () const { return line_l_; } @@ -83,7 +34,7 @@ Paper_column::line_l() const Paper_column* Paper_column::column_l () const { - return (Paper_column*)(this); + return (Paper_column*) (this); } Paper_column::Paper_column (SCM l) @@ -91,19 +42,20 @@ Paper_column::Paper_column (SCM l) { Axis_group_interface::set_interface (this); Axis_group_interface::set_axes (this, X_AXIS, X_AXIS); - set_elt_property ("bounded-by-me", SCM_EOL); + Spaceable_grob::set_interface (this); + line_l_=0; rank_i_ = -1; } Moment -Paper_column::when_mom () const +Paper_column::when_mom (Grob*me) { - SCM m = get_elt_property ("when"); + SCM m = me->get_grob_property ("when"); Moment s (0); - if (SMOB_IS_TYPE_B(Moment, m)) + if (unsmob_moment (m)) { - s = *SMOB_TO_TYPE (Moment,m); + return *unsmob_moment (m); } return s; } @@ -111,19 +63,19 @@ Paper_column::when_mom () const bool Paper_column::musical_b () const { - SCM m = get_elt_property ("shortest-starter-duration"); + SCM m = get_grob_property ("shortest-starter-duration"); Moment s (0); - if (SMOB_IS_TYPE_B(Moment, m)) + if (unsmob_moment (m)) { - s = *SMOB_TO_TYPE (Moment,m); + s = *unsmob_moment (m); } - return s != Moment(0); + return s != Moment (0); } bool -Paper_column::used_b ()const +Paper_column::used_b (Grob*me) { - return gh_pair_p (get_elt_property ("elements")) || breakable_b () - || gh_pair_p (get_elt_property ("bounded-by-me")) + return gh_pair_p (me->get_grob_property ("elements")) || Item::breakable_b (me) + || gh_pair_p (me->get_grob_property ("bounded-by-me")) ; }