2 line-spacer.hh -- declare Line_spacer
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #ifndef LINE_SPACER_HH
11 #define LINE_SPACER_HH
12 #include "lily-proto.hh"
14 #include "interval.hh"
17 abstract interface to Line spacing.
20 add estimate of "force" or energy.
29 Real default_space_f_;
33 /** solve the spacing problem
35 virtual void solve (Column_x_positions *) const=0;
38 Approximate the spacing problem:
39 return a lower bound on the energy
41 virtual void lower_bound_solution (Column_x_positions *) const=0;
45 Define the problem. LINELEN < 0 signifies natural width spacing.
48 virtual void add_columns (Link_array<Paper_column>)=0;
49 virtual void OK() const{}
50 virtual void print() const{}
53 Call after construction before solving
55 virtual void prepare(){}
56 virtual ~Line_spacer ();