]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/script.cc
release: 0.0.67
[lilypond.git] / lily / script.cc
index 9ade2eddef3aec40666fda512842fe41928822f7..578a8853208b72cbf353320ee99a73c73f5664e9 100644 (file)
@@ -26,48 +26,32 @@ Script::set_stem(Stem*st_l)
 Script::Script(Script_req* rq)
 {    
     specs_l_ = rq->scriptdef_p_;
-    inside_staff_b_ = specs_l_->inside_staff_b_;
+    inside_staff_b_ = specs_l_->inside_b();
     stem_l_ = 0;
     pos_i_ = 0;
-    symdir_i_=1;
     dir_i_ =rq->dir_i_;
 }
-
-void
-Script::set_symdir()
-{
-    if (specs_l_->invertsym_b_)
-       symdir_i_ = (dir_i_ < 0) ? -1:1;
-}
-
 void
 Script::set_default_dir()
 {
-    int s_i=specs_l_->rel_stem_dir_i_;
+    int s_i=specs_l_->rel_stem_dir_i();
     if (s_i && stem_l_)
        dir_i_ = stem_l_->dir_i_ * s_i;
     else {
-       dir_i_ =specs_l_->staff_dir_i_;
+       dir_i_ =specs_l_->staff_dir_i();
     }
 }
 
 void
 Script::set_default_index()
 {
-    pos_i_ = get_position_i(symbol().dim.y);
+    pos_i_ = get_position_i(specs_l_->get_atom(paper(), dir_i_).extent().y);
 }
 
 Interval
 Script::do_width() const
 {
-    return symbol().dim.x;
-}
-
-Symbol
-Script::symbol()const
-{
-    String preidx_str = (symdir_i_ < 0) ?"-" :"";
-    return paper()->lookup_l()->script(preidx_str + specs_l_->symidx);
+    return specs_l_->get_atom(paper(), dir_i_).extent().x;
 }
 
 void
@@ -75,7 +59,7 @@ Script::do_pre_processing()
 {
     if (!dir_i_)
        set_default_dir();
-    set_symdir();
+
 }
 
 void
@@ -89,15 +73,16 @@ Script::brew_molecule_p() const
 {
     Real dy = paper()->internote_f();
     
-    Molecule*out = new Molecule(Atom(symbol()));
+    Molecule*out = new Molecule(specs_l_->get_atom(paper(), dir_i_));
     out->translate(Offset(0,dy * pos_i_));
     return out;
 }
+
 IMPLEMENT_STATIC_NAME(Script);
 
 int 
 Script::compare(Script  *const&l1, Script *const&l2) 
 {
-    return l1->specs_l_->priority_i_ - l2->specs_l_->priority_i_;
+    return l1->specs_l_->priority_i() - l2->specs_l_->priority_i();
 }