- /*
- ugh. Doesnt work for non-horizontal curves.
- */
- Real y = b.curve_point (horizontal[0])[Y_AXIS];
-
- Real ry = rint (y/staff_space) * staff_space;
- Real diff = ry - y;
- Real newy = y;
-
- Real clear = staff_space * gh_scm2double (me->get_grob_property ("staffline-clearance"));
-
- if (fabs (y) <= Staff_symbol_referencer::staff_radius (me)
- && fabs (diff) < clear)
- {
- Real y1 = ry + clear;
- Real y2 = ry - clear;
-
- newy = (fabs (y1 - y) < fabs (y2 - y)) ? y1 : y2;
-
- // newy = ry - 0.5 * staff_space * sign (diff) ;
-
- /*
- we don't want horizontal ties
- */
- if (fabs (newy - b.control_[0][Y_AXIS]) < 1e-2)
- {
- newy = newy + dir * staff_space;
- }
- }
-
- Real y0 = b.control_ [0][Y_AXIS];
- b.control_[2][Y_AXIS] =
- b.control_[1][Y_AXIS] =
- (b.control_[1][Y_AXIS] - y0) * ((newy - y0) / (y - y0)) + y0;