8 Script::Script(Script_req* rq, Item*i , int staflen, Stem*st_p)
10 dependencies.add(st_p);
14 specs = rq->scriptdef;
26 symdir = (dir < 0) ? -1:1;
30 Script::set_default_dir()
36 dir = stem_->dir * specs->stemdir;
41 Script::set_default_pos()
45 Real inter= paper()->internote();
47 int d = specs->staffdir;
49 Interval v= support->height();
50 pos = rint(v[dir]/inter) + dir* 2;
52 y = (d > 0) ? staffsize + 2: -2; // ug
54 Interval v= support->height();
61 pos = int(rint(Real(y)/inter));
68 return paper()->lookup_->script(specs->symidx).dim.x;
72 Script::do_pre_processing()
79 Script::do_post_processing()
84 Script::brew_molecule() const
88 Real dy = p->internote();
89 String preidx = (symdir < 0) ?"-" :"";
90 Symbol ss =p->lookup_->script(preidx+specs->symidx);
91 Molecule*out = new Molecule(Atom(ss));
92 out->translate(Offset(0,dy * pos));