/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2006--2009 Joe Neeman <joeneeman@gmail.com>
+ Copyright (C) 2006--2010 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
#include "matrix.hh"
#include "prob.hh"
+/*
+ * Begin/rest-of-line hack. This geometrical shape is a crude approximation
+ * of Skyline, but it is better than a rectangle.
+ */
+struct Line_shape
+{
+ Interval begin_;
+ Interval rest_;
+
+ Line_shape ()
+ {
+ }
+ Line_shape (Interval begin, Interval rest);
+ Line_shape piggyback (Line_shape mount, Real padding) const;
+};
+
struct Line_details {
Grob *last_column_;
Real force_;
- Interval extent_; /* Y-extent of the system */
+ Line_shape shape_;
+ 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) */
int compressed_nontitle_lines_count_;
bool last_markup_line_;
bool first_markup_line_;
+ bool tight_spacing_;
Line_details ()
{
bottom_padding_ = 0;
space_ = 0;
inverse_hooke_ = 1;
+ tight_spacing_ = false;
break_permission_ = ly_symbol2scm ("allow");
page_permission_ = ly_symbol2scm ("allow");
turn_permission_ = ly_symbol2scm ("allow");
compressed_nontitle_lines_count_ = 1;
last_markup_line_ = false;
first_markup_line_ = false;
+ tallness_ = 0;
}
Line_details (Prob *pb, Output_def *paper);
+ Real full_height () const;
+ Real tallness () const;
};
/*