From: fred Date: Mon, 30 Mar 1998 23:25:53 +0000 (+0000) Subject: lilypond-0.1.52 X-Git-Tag: release/1.5.59~5977 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9407e4efea8ef5eacf7c140f5ec63b3ed78602ab;p=lilypond.git lilypond-0.1.52 --- diff --git a/lily/rod.cc b/lily/rod.cc new file mode 100644 index 0000000000..707f5572e6 --- /dev/null +++ b/lily/rod.cc @@ -0,0 +1,54 @@ +/* + rod.cc -- implement Rod, Column_rod + + source file of the GNU LilyPond music typesetter + + (c) 1998 Han-Wen Nienhuys + + */ +#include "rod.hh" +#include "p-col.hh" +#include "debug.hh" + +Rod::Rod (Item *l, Item *r) +{ + item_l_drul_[LEFT] =l; + item_l_drul_[RIGHT]=r; + distance_f_ = l->width () [RIGHT] + r->width ()[LEFT]; +} + +Rod::Rod () +{ + distance_f_ = 0.0; + item_l_drul_[LEFT] = item_l_drul_[RIGHT] =0; +} + +void +Column_rod::print () const +{ +#ifndef NDEBUG + DOUT << "Column_rod { rank = " + << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n"; +#endif +} + +Column_rod::Column_rod () +{ + distance_f_ = 0; + dir_ = CENTER; + other_l_ = 0; +} + +int +Column_rod::compare (const Column_rod &r1, const Column_rod &r2) +{ + return r1.other_l_->rank_i() - r2.other_l_->rank_i(); +} +void +Rod::add_to_cols () +{ + item_l_drul_[RIGHT]->column_l ()->add_rod + (item_l_drul_[LEFT]->column_l (), distance_f_, LEFT); + item_l_drul_[LEFT]->column_l ()->add_rod + (item_l_drul_[RIGHT]->column_l (), distance_f_,RIGHT); +} diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc new file mode 100644 index 0000000000..eca012b485 --- /dev/null +++ b/lily/separating-group-spanner.cc @@ -0,0 +1,52 @@ +/* + separating-group-spanner.cc -- implement Separating_group_spanner + + source file of the GNU LilyPond music typesetter + + (c) 1998 Han-Wen Nienhuys + + */ + +#include "separating-group-spanner.hh" +#include "single-malt-grouping-item.hh" + +Array +Separating_group_spanner::get_rods () const +{ + Array a; + + for (int i=0; i < spacing_unit_l_arr_.size () -1; i++) + { + a.push (Rod (spacing_unit_l_arr_[i], spacing_unit_l_arr_[i+1])); + if (spacing_unit_l_arr_[i]->breakable_b_) + { + a.push (Rod (spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT), spacing_unit_l_arr_[i+1])); + } + if (spacing_unit_l_arr_[i+1]->breakable_b_) + { + a.push (Rod (spacing_unit_l_arr_[i], spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT))); + } + } + + return a; +} + +void +Separating_group_spanner::add_spacing_unit (Single_malt_grouping_item*i) +{ + spacing_unit_l_arr_.push (i); + add_dependency (i); +} + +IMPLEMENT_IS_TYPE_B1(Separating_group_spanner, Spanner); + +void +Separating_group_spanner::do_substitute_dependency (Score_elem*o, Score_elem*n) +{ + if (o->is_type_b (Single_malt_grouping_item::static_name ())) + { + Single_malt_grouping_item*ns = n ? (Single_malt_grouping_item*)n->item () : 0; + spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)o->item (), ns); + } +} +