2 spanner.hh -- part of LilyPond
4 (c) 1996 Han-Wen Nienhuys
11 #include "staffelem.hh"
13 /// a symbol which is attached between two columns.
14 struct Spanner:Staff_elem {
21 virtual Interval width()const;
24 Spanner *broken_at(PCol *c1, PCol *c2) const;
26 /// clone a piece of this spanner.
27 virtual Spanner *do_break_at( PCol *c1, PCol *c2) const=0;
31 c1 >= start, c2 <= stop
35 A spanner is a symbol whose final appearance can only be calculated
36 after the breaking problem is solved.
46 Spanner should know about the items which it should consider:
47 e.g. slurs should be steep enough to "enclose" all those items. This
48 is absolutely necessary for beams, since they have to adjust the
49 length of stems of notes they encompass.