11 svec
<Mtime
> durations
;
18 Score_column(Mtime when
);
20 static int compare(Score_column
& c1
, Score_column
&c2
) {
21 return sgn(c1
.when
- c2
.when
);
23 void set_breakable() {
24 pcol
->set_breakable();
31 When typesetting hasn't started on PScore yet, the columns which
32 contain data have a rhythmical position. Score_column is the type
33 with a rhythmical time attached to it. The calculation of
34 idealspacing is done with data in these columns. (notably: the
39 instantiate_compare(Score_column
&, Score_column::compare
);
42 /// the total music def of one movement
45 /// staffs_ and commands_ form the problem definition.
46 PointerList
<Staff
*> staffs_
;
47 PointerList
<Command
*> commands_
;
49 /// "runtime" fields for setting up spacing
50 PointerList
<Score_column
*> cols_
;
53 /****************************************************************/
57 /// add #Idealspacings# to #pscore_#
58 void calc_idealspacing();
62 void add_staff(Staff
*st
);
64 void distribute_commands();
65 /** add the score wide commands (bars, breaks) to each staff so
66 they can process (typeset) them if needed */
68 Score_column
*find_col(Mtime
,bool);
72 void add_command_seq(svec
<Command
*> );
73 void output(String fn
);
74 PCursor
<Score_column
*> create_cols(Mtime
);
79 void clean_commands();
81 void do_connect(PCol
*c1
, PCol
*c2
, Real d
);
82 void connect_nonmus(PCol
* c1
, PCol
*c2
, Real d
);