+ Grob*me = unsmob_grob (smob);
+
+ Spanner*sp = dynamic_cast<Spanner*> (me);
+ if (! (sp->get_bound (LEFT) && sp->get_bound (RIGHT)))
+ {
+ programming_error ("Multi_measure_rest::get_rods (): I am not spanned!");
+ return SCM_UNSPECIFIED;
+ }
+
+ Item * l = sp->get_bound (LEFT)->get_column ();
+ Item * r = sp->get_bound (RIGHT)->get_column ();
+ Item * lb = l->find_prebroken_piece (RIGHT);
+ Item * rb = r->find_prebroken_piece (LEFT);
+
+ Item* combinations[4][2]={{l,r}, {lb,r}, {l,rb},{lb,rb}};
+
+ Real sym_width = symbol_molecule (me, 0.0).extent (X_AXIS).length ();
+
+ for (int i=0; i < 4; i++)
+ {
+ Item * l = combinations[i][0];
+ Item *r = combinations[i][1];
+
+ if (!l || !r)
+ continue;
+
+ Rod rod;
+ rod.item_l_drul_[LEFT] = l;
+ rod.item_l_drul_[RIGHT] = r;
+
+
+ rod.distance_ = l->extent (l, X_AXIS)[BIGGER] - r->extent (r, X_AXIS)[SMALLER]
+ + sym_width + 2.0; // 2.0 = magic!
+
+ rod.add_to_cols ();
+ }
+ return SCM_UNSPECIFIED;