source file of the GNU LilyPond music typesetter
- (c) 2006 Joe Neeman <joeneeman@gmail.com>
+ (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
*/
#ifndef PAGE_TURN_PAGE_BREAKING_HH
#define PAGE_TURN_PAGE_BREAKING_HH
-#include "constrained-breaking.hh"
#include "page-breaking.hh"
-#include "lily-guile.hh"
/*
A dynamic programming solution to breaking pages
int first_page_number_;
vsize page_count_;
- Real force_;
- Real penalty_;
-
- Real line_force_;
- Real line_penalty_;
-
/* true if every score here is too widely spaced */
bool too_many_lines_;
Break_node ()
{
prev_ = break_pos_ = VPOS;
- penalty_ = force_ = 0;
- line_penalty_ = line_force_ = 0;
demerits_ = infinity_f;
first_page_number_ = 0;
+ page_count_ = 0;
too_many_lines_ = false;
}
};
vector<Break_node> state_;
+ vsize total_page_count (Break_node const &b);
Break_node put_systems_on_pages (vsize start,
vsize end,
- vector<Line_details> const &lines,
- Line_division const &div,
- int page_number);
+ vsize configuration,
+ vsize page_number);
SCM make_lines (vector<Break_node> *breaks);
SCM make_pages (vector<Break_node> const &breaks, SCM systems);
- Real calc_demerits (Break_node const &me);
void calc_subproblem (vsize i);
+ void print_break_node (Break_node const &b);
};
#endif /* PAGE_TURN_PAGE_BREAKING_HH */