X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbreak-algorithm.cc;h=e112e0a19d5d64551b49fdf01e594929c21526a2;hb=6e9040684ec18353e138194d7a1d557acf791748;hp=ca9007b926708fa3f119dc2486d0330d224bda92;hpb=be6b7669873b8b227c224e9ff1e1e101c43426df;p=lilypond.git diff --git a/lily/break-algorithm.cc b/lily/break-algorithm.cc index ca9007b926..e112e0a19d 100644 --- a/lily/break-algorithm.cc +++ b/lily/break-algorithm.cc @@ -3,99 +3,92 @@ source file of the GNU LilyPond music typesetter - (c) 1996--2001 Han-Wen Nienhuys + (c) 1996--2005 Han-Wen Nienhuys */ -#include "paper-column.hh" #include "break-algorithm.hh" -#include "paper-def.hh" -#include "debug.hh" -#include "line-of-score.hh" +#include "paper-column.hh" +#include "output-def.hh" +#include "system.hh" #include "paper-score.hh" #include "paper-column.hh" #include "cpu-timer.hh" -#include "command-request.hh" #include "simple-spacer.hh" #include "group-interface.hh" - Array Break_algorithm::find_break_indices () const { - Link_array all = pscore_l_->line_l_->column_l_arr (); + Link_array all = pscore_->system_->columns (); Array retval; - for (int i=0; i < all.size (); i++) - if (Item::breakable_b (all[i])) + for (int i= 0; i < all.size (); i++) + if (Item::is_breakable (all[i])) retval.push (i); - if (linewidth_f_ <=0) - while (retval.size () >2) + if (linewidth_ <= 0) + while (retval.size () > 2) retval.del (1); return retval; } - Link_array Break_algorithm::find_breaks () const { - Link_array all = pscore_l_->line_l_->column_l_arr (); + Link_array all = pscore_->system_->columns (); Link_array retval; - for (int i=0; i < all.size (); i++) - if (Item::breakable_b (all[i])) + for (int i= 0; i < all.size (); i++) + if (Item::is_breakable (all[i])) retval.push (all[i]); - if (linewidth_f_ <=0) + if (linewidth_ <= 0) while (retval.size () >2) retval.del (1); return retval; } - -Simple_spacer* -Break_algorithm::generate_spacing_problem (Link_array curline, Interval line) const +Simple_spacer_wrapper* +Break_algorithm::generate_spacing_problem (Link_array const &curline, + Interval line) const { - Simple_spacer * sp = new Simple_spacer; - + Simple_spacer_wrapper * spw = new Simple_spacer_wrapper; + Simple_spacer * sp = spw->spacer_; + /* this is hardcoded, but this shouldn't happen anyway. - used to be get_var ("loose_column_distance"); + used to be get_dimension (ly_symbol2scm ("loose_column_distance")); */ - sp->default_space_f_ = 1.0; - - - sp->indent_f_ = line[LEFT]; + sp->default_space_ = 1.0; + sp->indent_ = line[LEFT]; /* sort out how interfacing this should work; */ - if (line.empty_b ()) + if (line.is_empty ()) { - sp->line_len_f_ = -1; + sp->line_len_ = -1; } else - sp->line_len_f_ = line.length (); + sp->line_len_ = line.length (); - sp->add_columns (curline); - - - return sp; + spw->add_columns (curline); + return spw; } Break_algorithm::Break_algorithm () { - pscore_l_ = 0; - linewidth_f_ = 0; + pscore_ = 0; + linewidth_ = 0; } void Break_algorithm::set_pscore (Paper_score*s) { - pscore_l_ = s; - linewidth_f_ = s->paper_l_->get_var ("linewidth"); + pscore_ = s; + linewidth_ = s->layout_->get_dimension (ly_symbol2scm ("linewidth")); } Array