/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2006--2010 Joe Neeman <joeneeman@gmail.com>
+ Copyright (C) 2006--2015 Joe Neeman <joeneeman@gmail.com>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Line_shape piggyback (Line_shape mount, Real padding) const;
};
-struct Line_details {
+struct Line_details
+{
Grob *last_column_;
Real force_;
Line_shape shape_;
+ vector<Real> footnote_heights_; /* The footnotes at the bottom of the
+ page, where each stencil represents
+ a different footnote. */
+ vector<Real> 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. */
+ 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_;
min_distance_ = 0;
title_min_distance_ = 0;
space_ = 0;
+ title_space_ = 0;
inverse_hooke_ = 1;
tight_spacing_ = false;
break_permission_ = ly_symbol2scm ("allow");
last_markup_line_ = false;
first_markup_line_ = false;
tallness_ = 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;
};
/*
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_;
vector<vsize> start_; /* the columns at which we might be asked to start breaking */
vector<vsize> starting_breakpoints_; /* the corresponding index in breaks_ */
- vector<Grob*> all_;
+ vector<Grob *> all_;
vector<vsize> breaks_;
void initialize ();
Real combine_demerits (Real force, Real prev_force);
bool calc_subproblem (vsize start, vsize systems, vsize max_break_index);
- void fill_line_details (Line_details *const, vsize, vsize);
+ void fill_line_details (Line_details *, vsize, vsize);
};
#endif /* CONSTRAINED_BREAKING_HH */