1 // the breaking problem for a score.
11 /// all stuff which goes onto paper
16 /// the columns, ordered left to right
17 PointerList
<PCol
*> cols
;
19 /// the idealspacings, no particular order
20 PointerList
<Idealspacing
*> suz
;
22 /// the staffs ordered top to bottom
23 PointerList
<PStaff
*> staffs
;
25 /// all symbols in score. No particular order.
26 PointerList
<Item
*> its
;
28 /// if broken, the different lines
29 PointerList
<Line_of_score
*> lines
;
31 /// crescs etc; no particular order
32 PointerList
<Spanner
*> spanners
;
34 /****************************************************************/
36 svec
<Item
*> select_items(PStaff
*, PCol
*);
40 calculate where the lines are to be broken.
44 lines contain the broken lines.
47 /// search all pcols which are breakable.
48 svec
<const PCol
*> find_breaks() const;
50 /// add a line to the broken stuff. Positions given in #config#
51 void add_line(svec
<const PCol
*> curline
, svec
<Real
> config
);
53 /// helper: solve for the columns in #curline#.
54 svec
<Real
> solve_line(svec
<const PCol
*> curline
) const;
58 void typeset_item(Item
*, PCol
*,PStaff
*,int=1);
59 /// add to bottom of pcols
64 void output(Tex_stream
&ts
);
66 Idealspacing
* get_spacing(PCol
*, PCol
*);
68 get the spacing between c1 and c2, create one if necessary.
72 PCursor
<PCol
*> find_col(PCol
*);
74 void problem_OK()const ;
79 /** notes, signs, symbols in a score can be grouped in two ways:
80 horizontally (staffwise), and vertically (columns). #PScore#
81 contains the items, the columns and the staffs.