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"
15 #include "interval.hh"
18 abstract interface to Line spacing.
21 add estimate of "force" or energy.
30 Real default_space_f_;
34 /** solve the spacing problem
36 virtual void solve (Column_x_positions *) const=0;
39 Approximate the spacing problem:
40 return a lower bound on the energy
42 virtual void lower_bound_solution (Column_x_positions *) const=0;
46 Define the problem. LINELEN < 0 signifies natural width spacing.
49 virtual void add_columns (Link_array<Paper_column>)=0;
50 virtual void OK() const{}
51 virtual void print() const{}
54 Call after construction before solving
56 virtual void prepare(){}
57 virtual ~Line_spacer ();