]> git.donarmstrong.com Git - lilypond.git/blob - src/spanner.cc
release: 0.0.21
[lilypond.git] / src / spanner.cc
1 #include "debug.hh"
2 #include "spanner.hh"
3 #include "pcol.hh"
4
5 Spanner*
6 Spanner::broken_at(PCol*c1, PCol *c2)const
7 {
8     Spanner *me_p = (Spanner*)this;
9     Spanner *span_p = do_break_at(c1,c2);
10
11     me_p->calc_children = true;
12     me_p->dependencies.add(span_p);
13
14     span_p->calc_children = false; // should handle in ctor
15
16     span_p->left = c1;
17     span_p->right = c2;
18     
19     return span_p;
20 }
21
22 Spanner::Spanner()
23 {
24     left = right = 0;
25 }
26
27
28 Interval
29 Spanner::width()const
30 {
31     Real r =right->hpos,
32         l= left->hpos;
33     assert(r>=l);
34         
35     return Interval(0, r-l);
36 }
37
38 void
39 Spanner::print() const
40 {
41 #ifndef NPRINT
42     mtor << "Spanner { ";
43     Staff_elem::print();
44     mtor << "}\n";
45 #endif
46 }
47