- Interval_t<int> srl = me->get_system ()->spanned_rank_interval ();
- for (vsize i = 0; i < elts.size (); i++)
- if (srl.contains (elts[i]->spanned_rank_interval ()[LEFT]))
- new_elts.push_back (elts[i]);
-
- SCM elements_scm = me->get_object ("elements");
- if (Grob_array::unsmob (elements_scm))
- {
- vector<Grob *> &arr
- = unsmob_grob_array (elements_scm)->array_reference ();
- arr = new_elts;
- }
-
- return SCM_BOOL_T;
+ new_elts.insert (new_elts.end (), elts.begin (), elts.end ());
+
+ if (Grob_array *a = unsmob<Grob_array> (me->get_object ("neighbors")))
+ a->set_array (new_elts);
+
+ return Axis_group_interface::internal_calc_pure_relevant_grobs (me, "neighbors");