extrema[RIGHT] = encompass_arr_.top();
Direction d=LEFT;
+ Real nw_f = paper()->note_width ();
+
+ while ((d *= -1) != LEFT);
do
{
- if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_)
+ if (extrema[d] != spanned_drul_[d])
+ {
+ dx_f_drul_[d] = -d
+ *(spanned_drul_[d]->width ().length ()/nw_f -0.5);
+ }
+ else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_)
pos_i_drul_[d] = (int)rint (extrema[d]->stem_l_->height()[dir_]/inter_f);
else
pos_i_drul_[d] = (int)rint (extrema[d]->head_positions_interval()[dir_]);
void
Tie::set_default_dir()
{
- int m= (head_l_drul_[LEFT]->position_i_ + head_l_drul_[RIGHT]->position_i_) /2 ;
+ int m= (head_l_drul_[LEFT]->position_i_ + head_l_drul_[RIGHT]->position_i_) /2;
dir_ = (m < 5)? DOWN : UP; // UGH
}
-
void
Tie::do_add_processing()
void
Tie::do_post_processing()
{
+ Real nw_f = paper()->note_width ();
assert (head_l_drul_[LEFT] || head_l_drul_[RIGHT]);
Direction d = LEFT;
pos_i_drul_[d] += 2*dir_;
dx_f_drul_[d] += d * 0.25;
}
- else
+ else if (head_l_drul_[d])
dx_f_drul_[d] += d*0.5;
+ else
+ {
+ pos_i_drul_[d] = pos_i_drul_[(Direction) -d];
+ dx_f_drul_[d] = -d
+ *(spanned_drul_[d]->width ().length ()/nw_f -0.5);
+ }
}
while ((d *= -1) != LEFT);
-
- do
- {
- if (!head_l_drul_[d])
- pos_i_drul_[d] = pos_i_drul_[(Direction)-d];
- }
- while ((d *= -1) != LEFT);
}
head_l_drul_[RIGHT] = new_l;
}
-
-
IMPLEMENT_IS_TYPE_B1(Tie,Bow);