X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbreak-algorithm.cc;h=083aca8cbe03d187d8fc58da0351a16eaabe7a13;hb=75eebcb49e52d296b1da3e1074e0825d2c780db4;hp=2fe726b5b861e0c2de1956bb400f4151b62df5b4;hpb=3b9d63b1f11e1c8cfb738d7aaf385282576f0043;p=lilypond.git diff --git a/lily/break-algorithm.cc b/lily/break-algorithm.cc index 2fe726b5b8..083aca8cbe 100644 --- a/lily/break-algorithm.cc +++ b/lily/break-algorithm.cc @@ -3,81 +3,74 @@ source file of the GNU LilyPond music typesetter - (c) 1996--2004 Han-Wen Nienhuys + (c) 1996--2006 Han-Wen Nienhuys */ -#include "paper-column.hh" #include "break-algorithm.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 "simple-spacer.hh" -#include "group-interface.hh" - Array Break_algorithm::find_break_indices () const { - Link_array all = pscore_->system_->columns (); + Link_array all = pscore_->root_system ()->columns (); Array retval; - for (int i=0; i < all.size (); i++) + for (int i = 0; i < all.size (); i++) if (Item::is_breakable (all[i])) retval.push (i); - if (linewidth_ <=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_->system_->columns (); + Link_array all = pscore_->root_system ()->columns (); Link_array retval; - for (int i=0; i < all.size (); i++) + for (int i = 0; i < all.size (); i++) if (Item::is_breakable (all[i])) retval.push (all[i]); - if (linewidth_ <=0) - while (retval.size () >2) + if (linewidth_ <= 0) + while (retval.size () > 2) retval.del (1); return retval; } - -Simple_spacer_wrapper* +Simple_spacer_wrapper * Break_algorithm::generate_spacing_problem (Link_array const &curline, Interval line) const { - Simple_spacer_wrapper * spw = new Simple_spacer_wrapper; - Simple_spacer * sp = spw->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_dimension (ly_symbol2scm ("loose_column_distance")); - */ + used to be get_dimension (ly_symbol2scm ("loose_column_distance")); + */ sp->default_space_ = 1.0; sp->indent_ = line[LEFT]; /* sort out how interfacing this should work; - */ + */ if (line.is_empty ()) - { - sp->line_len_ = -1; - } + sp->line_len_ = -1; else sp->line_len_ = line.length (); - + spw->add_columns (curline); return spw; } @@ -89,17 +82,20 @@ Break_algorithm::Break_algorithm () } void -Break_algorithm::set_pscore (Paper_score*s) +Break_algorithm::set_pscore (Paper_score *s) { pscore_ = s; - linewidth_ = s->paper_->get_dimension (ly_symbol2scm ("linewidth")); + linewidth_ = s->layout ()->get_dimension (ly_symbol2scm ("linewidth")); } Array Break_algorithm::solve () const { Array h= do_solve (); - + return h; } +Break_algorithm::~Break_algorithm () +{ +}