blob: 3940cebf603efef754a3996dd96348139625fb02 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*
spanner.hh -- part of LilyPond
(c) 1996 Han-Wen Nienhuys
*/
#ifndef SPANNER_HH
#define SPANNER_HH
#include "proto.hh"
/// a symbol which is attached between two columns.
struct Spanner {
PCol *left, *right;
PStaff * pstaff_;
Molecule *output ;
/****************/
String TeXstring () const ;
Spanner();
Paperdef*paper() const;
virtual Interval height()const=0;
/**
PRE:
processed
*/
virtual Interval width()const;
virtual void process();
virtual void preprocess();
/// clone a piece of this spanner.
virtual Spanner *broken_at(const PCol *c1, const PCol *c2) const=0;
/**
PRE
c1 >= start, c2 <= stop
*/
virtual void print() const;
};
/** Spanner should know about the items which it should consider:
e.g. slurs should be steep enough to "enclose" all those items. This
is absolutely necessary for beams, since they have to adjust the
length of stems of notes they encompass.
*/
#endif
|