- if (!in_between
- && in_space
- && fabs (staff_position - tie_position) <= 1)
- staff_position += 2*dir;
-
-
- if (in_space)
- {
- if (fabs (dy) < 0.4 * staff_space)
- {
- /*
- vertically center in space.
- */
- Offset middle = b.curve_point (0.5);
- Offset edge = b.curve_point (0.0);
-
- Real center = (edge[Y_AXIS] + middle[Y_AXIS])/2.0;
- b.translate (Offset (0,
- staff_position * staff_space * 0.5
- - center));
- }
- else
- {
- b.translate (Offset (0,
- (staff_position - dir) * staff_space * 0.5
- + dir * 0.2 * staff_space));
- }
- }
- else
- {
- Real where = 0.5 * dir;
-
- Real rounding_dy = (where - middle[Y_AXIS]);
- b.translate (Offset (0,
- 0.5 * staff_position * staff_space + rounding_dy));
-
- if (dir * b.curve_point (0.0)[Y_AXIS] <
- dir * tie_position * 0.5 * staff_space)
- b.translate (Offset (0, staff_space * dir));
- }
-
- b.translate (Offset (attachments[LEFT]
- - me->relative_coordinate (common[X_AXIS], X_AXIS), 0));
-
- SCM controls = SCM_EOL;
- for (int i = 4; i--;)
- controls = scm_cons (ly_offset2scm (b.control_[i]), controls);
- return controls;