X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fconstrained-breaking.hh;h=731e20c1e3dca00feab28d8e4ce9ed3af1ffc0fe;hb=c4dc8775b15ddf53c92c123a56a99c9a820541ce;hp=ab014cbcc4e59c0c332824a427a36cae7f28df50;hpb=f018757016404595c92e21346ae0661dafe7ea46;p=lilypond.git diff --git a/lily/include/constrained-breaking.hh b/lily/include/constrained-breaking.hh index ab014cbcc4..731e20c1e3 100644 --- a/lily/include/constrained-breaking.hh +++ b/lily/include/constrained-breaking.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2006--2010 Joe Neeman + Copyright (C) 2006--2012 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 @@ -40,19 +40,32 @@ struct Line_shape Line_shape piggyback (Line_shape mount, Real padding) const; }; -struct Line_details { +struct Line_details +{ Grob *last_column_; Real force_; Line_shape shape_; + vector footnote_heights_; /* The footnotes at the bottom of the + page, where each stencil represents + a different footnote. */ + vector in_note_heights_; /* The in-notes under a system, + where each stencil represents + a different in-note. */ + Interval refpoint_extent_; /* The refpoints of the first and last + spaceable staff in this line. min-distance + should be measured from the bottom + refpoint_extent of one line to the + top refpoint_extent of the next. */ Real tallness_; /* Y-extent, adjusted according to begin/rest-of-line*/ Real padding_; /* compulsory space after this system (if we're not - last on a page) */ + last on a page) */ Real title_padding_; Real min_distance_; Real title_min_distance_; Real bottom_padding_; Real space_; /* spring length */ + Real title_space_; Real inverse_hooke_; SCM break_permission_; @@ -74,7 +87,6 @@ struct Line_details { bool last_markup_line_; bool first_markup_line_; bool tight_spacing_; - Real first_refpoint_offset_; Line_details () { @@ -86,6 +98,7 @@ struct Line_details { min_distance_ = 0; title_min_distance_ = 0; space_ = 0; + title_space_ = 0; inverse_hooke_ = 1; tight_spacing_ = false; break_permission_ = ly_symbol2scm ("allow"); @@ -100,12 +113,13 @@ struct Line_details { last_markup_line_ = false; first_markup_line_ = false; tallness_ = 0; - first_refpoint_offset_ = 0; + refpoint_extent_ = Interval (0, 0); } Line_details (Prob *pb, Output_def *paper); Real full_height () const; Real tallness () const; + Real spring_length (Line_details const &next_line) const; }; /* @@ -160,6 +174,7 @@ private: Real system_system_min_distance_; Real system_system_padding_; Real system_system_space_; + Real system_markup_space_; Real score_system_min_distance_; Real score_system_padding_; Real score_markup_min_distance_; @@ -176,7 +191,7 @@ private: vector start_; /* the columns at which we might be asked to start breaking */ vector starting_breakpoints_; /* the corresponding index in breaks_ */ - vector all_; + vector all_; vector breaks_; void initialize ();