7 #include "lookupsyms.hh"
14 minnote = maxnote = 0;
23 mtor << "Stem minmax=["<< minnote<<","<<maxnote<<"], flag: "<<flag;
30 assert(minnote<=maxnote);
31 int stafftop = 2*staff_center;
35 top = staff_center - staff_center/2; // uhh... how about non 5-line staffs?
37 }else if (minnote > stafftop + 2) {
39 bot = staff_center + staff_center/2;
42 Real mean = (minnote+maxnote)/2;
44 top = (mean > staff_center) ? maxnote : maxnote+STEMLEN;
45 bot = (mean > staff_center) ? minnote-STEMLEN : minnote;
46 flag = (mean > staff_center) ? -flag : flag;
61 return Interval(0,0); // TODO!
62 Paperdef*p= pstaff_->pscore_->paper_;
63 return p->lookup_->flag(flag).dim.x;
73 Paperdef *p = pstaff_->pscore_->paper_;
74 Parametric_symbol *stem = p->lookup_->stem();
76 Real dy = p->interline()/2;
77 String y1 =print_dimen( dy * bot);
78 String y2 = print_dimen(dy * top);
79 Symbol ss =stem->eval(y1,y2);
82 output = new Molecule(Atom(ss));
85 Symbol fl = p->lookup_->flag(flag);
89 } else if (flag > 4) {
96 Real dx = pstaff_->pscore_->paper_->note_width(); // ugh
97 output->translate(Offset(dx,0));