X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcrescendo.cc;h=df349421bb658035b7020c45132a70c39d96d113;hb=6dc4e4d14a67f65f337ec1a06466e748c68dcad5;hp=4ca1196b091090d27deeccf8d6d7cad9422bb0d3;hpb=0d2593e4ef1f3d1eb6994223f1de8f6c8fbcd066;p=lilypond.git diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 4ca1196b09..df349421bb 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -18,22 +18,23 @@ Crescendo::Crescendo() grow_dir_i_ =0; dir_i_ = -1 ; left_dyn_b_ = right_dyn_b_ =false; + inside_staff_b_ = false; } +Interval +Crescendo::symbol_height()const +{ + return get_symbol().dim.y; +} +static Real absdyn_dim = 10 PT; // ugh -Molecule* -Crescendo::brew_molecule_p() const -{ - Molecule* m_p =0; - Real x_off_dim=0.0; - Real absdyn_dim = 10 PT; // ugh - - m_p = new Molecule; +Symbol +Crescendo::get_symbol()const +{ Real w_dim = width().length(); if ( left_dyn_b_ ) { w_dim -= absdyn_dim; - x_off_dim += absdyn_dim; } if ( right_dyn_b_ ) { w_dim -= absdyn_dim; @@ -43,14 +44,24 @@ Crescendo::brew_molecule_p() const warning("Crescendo too small"); w_dim = 0; } - Real lookup_wid = w_dim * 0.9; // make it slightly smaller. - Symbol s( paper()->lookup_l()->hairpin( lookup_wid, grow_dir_i_ < 0) ); + return Symbol( paper()->lookup_l()->hairpin( w_dim, grow_dir_i_ < 0) ); +} + +Molecule* +Crescendo::brew_molecule_p() const +{ + Molecule* m_p =0; + Real x_off_dim=0.0; + if ( left_dyn_b_) + x_off_dim += absdyn_dim; + + m_p = new Molecule; + Symbol s(get_symbol()); m_p->add(Atom(s)); - int pos = get_position_i(s.dim.y); - m_p->translate(Offset(x_off_dim + 0.05 * w_dim, - pos * paper()->internote_f())); + m_p->translate(Offset(x_off_dim, pos_i_ * paper()->internote_f())); return m_p; } -IMPLEMENT_STATIC_NAME(Crescendo); + +IMPLEMENT_IS_TYPE_B1(Crescendo,Spanner);