Real dx = paper()->note_width()/2;
Molecule*out = new Molecule (specs_l_->get_atom (paper(), dir_));
- out->translate_axis (y_, Y_AXIS);
+ // ugh, staccato dots are not centred between stafflines (how?)?
+ Real correct = - (Real)dir_ * 2.0 * paper ()->rule_thickness ();
+ out->translate_axis (y_ + correct, Y_AXIS);
out->translate_axis (dx, X_AXIS); // FIXME! ugh
return out;
}
}
- Real y=0;
+ Real y = 0;
Real inter_f = paper()-> internote_f ();
- Interval v= support_height();
- y = v[dir_] + 1 * dir_ * inter_f; // ugh
+ Interval v = support_height();
+
+ // ugh, dim[y] = PT over here
+ y = v[dir_] + 1 * dir_ * inter_f;
+
+ int y_i = (int)rint (y / inter_f);
+ // ugh: 5 -> staff_lines
+ if ((abs (y_i) < 5) && !(abs (y_i) % 2))
+ y += (Real)dir_ * inter_f;
return y;
}