- for (;
- columns_scm != SCM_EOL;
- columns_scm = ly_cdr (columns_scm)) {
- column_scm = ly_car (columns_scm);
- SCM col_scm = ly_car (column_scm);
- if (gh_number_p (col_scm))
- // broken spanner: this column not in this piece
- if (!column)
- continue; // still have to expect columns
- else
- break; // ok, we have seen all columns
- column = unsmob_grob (col_scm);
- column_scm = ly_cdr (column_scm);
- Real y_bottom = gh_scm2double (ly_car (column_scm));
- column_scm = ly_cdr (column_scm);
- Real y_top = gh_scm2double (ly_car (column_scm));
- Real x = column->relative_coordinate (common, X_AXIS);
- if (right_broken)
- x -= left_bound->relative_coordinate (common, X_AXIS);
- bottom_points.push (Offset (x, y_bottom));
- top_points.push (Offset (x, y_top));
- }
- if (right_broken)
+ commonx = common_refpoint_of_array (cols, commonx, X_AXIS);
+ Grob *commony = common_refpoint_of_array (cols, me, Y_AXIS);
+ vector<Offset> bottom_points;
+ vector<Offset> top_points;
+
+ Real left_coord = left_bound->relative_coordinate (commonx, X_AXIS);
+
+ /*
+ TODO: should we move the cluster a little to the right to be in
+ line with the center of the note heads?
+
+ */
+ for (vsize i = 0; i < cols.size (); i++)