- Grob * me = unsmob_grob (smob);
- Link_array<Grob> columns=
- Pointer_group_interface__extract_grobs (me, (Grob*)0, "note-columns");
-
- if (!columns.size ())
- {
- me->suicide ();
- return SCM_UNSPECIFIED;
- }
- if (dynamic_cast<Spanner*> (me)->is_broken ())
- {
- me->warning (_("Killing tuplet bracket across linebreak."));
- me->suicide ();
- return SCM_UNSPECIFIED;
- }
-
- Direction dir = get_grob_direction (me);
- if (!dir)
- {
- dir = Tuplet_bracket::get_default_dir (me);
- set_grob_direction (me, dir);
- }
-
- bool equally_long = false;
- Grob * par_beam = parallel_beam (me, columns, &equally_long);
-
- /*
- We follow the beam only if there is one, and we are next to it.
- */
- Real dy, offset;
- if (!par_beam
- || get_grob_direction (par_beam) != dir)
- {
- calc_position_and_height (me,&offset,&dy);
- }
- else
- {
- SCM ps = par_beam->get_property ("positions");