/*
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) */
Real title_padding_;
+ Real min_distance_;
+ Real title_min_distance_;
Real bottom_padding_;
Real space_; /* spring length */
Real inverse_hooke_;
class. */
int compressed_lines_count_;
int compressed_nontitle_lines_count_;
+ bool last_markup_line_;
+ bool first_markup_line_;
+ bool tight_spacing_;
+ Real first_refpoint_offset_;
Line_details ()
{
padding_ = 0;
title_padding_ = 0;
bottom_padding_ = 0;
+ min_distance_ = 0;
+ title_min_distance_ = 0;
space_ = 0;
inverse_hooke_ = 1;
+ tight_spacing_ = false;
break_permission_ = ly_symbol2scm ("allow");
page_permission_ = ly_symbol2scm ("allow");
turn_permission_ = ly_symbol2scm ("allow");
title_ = false;
compressed_lines_count_ = 1;
compressed_nontitle_lines_count_ = 1;
+ last_markup_line_ = false;
+ first_markup_line_ = false;
+ tallness_ = 0;
+ first_refpoint_offset_ = 0;
}
Line_details (Prob *pb, Output_def *paper);
+ Real full_height () const;
+ Real tallness () const;
};
/*
vsize systems_;
bool ragged_right_;
bool ragged_last_;
+
+ Real between_system_min_distance_;
+ Real between_system_padding_;
Real between_system_space_;
+ Real between_scores_system_min_distance_;
+ Real between_scores_system_padding_;
+ Real before_title_min_distance_;
Real before_title_padding_;
- Real between_system_padding_;
/* the (i,j)th entry is the configuration for breaking between
columns i and j */