+ vector_sort (relevant_items, Item::less);
+
+ Grob *common = common_refpoint_of_array (relevant_items, me, Y_AXIS);
+ common = common_refpoint_of_array (relevant_spanners, common, Y_AXIS);
+
+ me->set_object ("pure-Y-common", common->self_scm ());
+
+ SCM items_scm = Grob_array::make_array ();
+ SCM spanners_scm = Grob_array::make_array ();
+
+ unsmob_grob_array (items_scm)->set_array (relevant_items);
+ unsmob_grob_array (spanners_scm)->set_array (relevant_spanners);
+ me->set_object ("pure-relevant-items", items_scm);
+ me->set_object ("pure-relevant-spanners", spanners_scm);
+
+ return common;
+}
+
+MAKE_SCHEME_CALLBACK (Axis_group_interface, calc_x_common, 1);
+SCM
+Axis_group_interface::calc_x_common (SCM grob)
+{
+ Grob *me = unsmob_grob (grob);
+
+ extract_grob_set (me, "elements", elts);
+ Grob *common = common_refpoint_of_array (elts, me, X_AXIS);
+ return common->self_scm ();
+}
+
+MAKE_SCHEME_CALLBACK (Axis_group_interface, calc_y_common, 1);
+SCM
+Axis_group_interface::calc_y_common (SCM grob)
+{
+ Grob *me = unsmob_grob (grob);
+
+ extract_grob_set (me, "elements", elts);
+ Grob *common = common_refpoint_of_array (elts, me, Y_AXIS);
+ return common->self_scm ();
+}