X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Finclude%2Fpage-turn-page-breaking.hh;h=93fdaceadaf8cdd9f66939f0b40fc5690dcf1f95;hb=7c36dbb1834c7c68e4b94777241de3ea02971aca;hp=dc52bcb03a2a93313a5cfeb3c373b387effd65a4;hpb=0ee10639e0788f6a9fce599dc072f8555e27542b;p=lilypond.git diff --git a/lily/include/page-turn-page-breaking.hh b/lily/include/page-turn-page-breaking.hh index dc52bcb03a..93fdaceada 100644 --- a/lily/include/page-turn-page-breaking.hh +++ b/lily/include/page-turn-page-breaking.hh @@ -1,19 +1,26 @@ /* - page-turn-page-breaking.hh -- break lines and pages optimally - for a whole Paper_book such that page turns can only occur - at specific places. + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2006--2015 Joe Neeman - (c) 2006 Joe Neeman + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #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 @@ -33,12 +40,6 @@ protected: 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_; @@ -51,26 +52,25 @@ protected: 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 state_; + vsize total_page_count (Break_node const &b); Break_node put_systems_on_pages (vsize start, - vsize end, - vector const &lines, - Line_division const &div, - int page_number); + vsize end, + vsize configuration, + vsize page_number); SCM make_lines (vector *breaks); SCM make_pages (vector 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 */