15 open_right=open_left=false;
21 return Interval(0,0); // todo
25 Slur::set_default_dir()
28 for (int i=0; i < encompass.sz(); i ++) {
29 sumpos += encompass[i]->position;
32 /* should consult stems */
33 Real meanpos = sumpos/Real(encompass.sz());
34 if (meanpos < 5) // todo
49 right = encompass.last()->pcol_;
50 left = encompass[0]->pcol_;
54 Slur::broken_at(const PCol*l, const PCol*r) const
56 assert(l->line == r->line);
57 Slur*ret = new Slur(*this);
58 ret->encompass.set_size(0);
59 for (int i =0; i < encompass.sz(); i++) {
60 if (encompass[i]->pcol_->line==l->line)
61 ret->encompass.add(encompass[i]);
64 ret->open_right = true;
66 ret->open_left = true;
83 output = new Molecule;
84 assert(left->line == right->line);
85 int minp=1000, maxp=-1000; // todo
86 for (int i=0; i<encompass.sz(); i++) {
87 minp = MIN(encompass[i]->position, minp);
88 maxp = MAX(encompass[i]->position, maxp);
91 assert(encompass.sz()>0); // todo
92 int pos1 = encompass.last()->position;
93 int pos2 = encompass[0]->position;
97 Real w = width().length();
98 Real nw = paper()->note_width();
100 Symbol sl = paper()->lookup_->slur(dy , w, dir);
102 a.translate(Offset(nw,pos2*paper()->internote()));