Grob *se = elts[i];
if (!to_boolean (se->get_property ("cross-staff")))
{
- Interval dims = (bound && has_interface (se)
+ Interval dims = (bound && has_interface<Axis_group_interface> (se)
? generic_bound_extent (se, common, a)
: se->extent (common, a));
if (!dims.is_empty ())
if (g->pure_is_visible (start, visibility_end))
{
- Interval dims = g->pure_height (common, start, end);
+ Interval dims = g->pure_y_extent (common, start, end);
if (!dims.is_empty ())
{
if (rank_span[LEFT] <= start)
reasonably safe to assume that if our parent is a VerticalAlignment,
we can assume additivity and cache things nicely. */
Grob *p = me->get_parent (Y_AXIS);
- if (p && Align_interface::has_interface (p))
+ if (has_interface<Align_interface> (p))
return Axis_group_interface::sum_partial_pure_heights (me, start, end);
Grob *common = unsmob<Grob> (me->get_object ("pure-Y-common"));
if (rank_span[LEFT] <= end && rank_span[RIGHT] >= start
&& g->pure_is_visible (start, end)
&& !(to_boolean (g->get_property ("cross-staff"))
- && Stem::has_interface (g)))
+ && has_interface<Stem> (g)))
{
- Interval dims = g->pure_height (common, start, end);
+ Interval dims = g->pure_y_extent (common, start, end);
if (!dims.is_empty ())
r.unite (dims);
}
/* trigger the callback to do skyline-spacing on the children */
if (a == Y_AXIS)
for (vsize i = 0; i < elts.size (); i++)
- if (!(Stem::has_interface (elts[i])
+ if (!(has_interface<Stem> (elts[i])
&& to_boolean (elts[i]->get_property ("cross-staff"))))
(void) elts[i]->get_property ("vertical-skylines");
extract_grob_set (me, "pure-relevant-grobs", elts);
Grob *common = common_refpoint_of_array (elts, me, Y_AXIS);
- if (common != me && Align_interface::has_interface (common))
+ if (common != me && has_interface<Align_interface> (common))
{
me->programming_error("My pure_y_common is a VerticalAlignment,"
" which might contain several staves.");
{
found->push_back (me);
- if (!has_interface (me))
+ if (!has_interface<Axis_group_interface> (me))
return;
extract_grob_set (me, "elements", elements);
last_end[dir] = x_extent[RIGHT];
Skyline_pair *v_orig = unsmob<Skyline_pair> (elt->get_property ("vertical-skylines"));
- if (v_orig->is_empty ())
+ if (!v_orig || v_orig->is_empty ())
continue;
// Find the riders associated with this grob, and merge their
"bound-alignment-interfaces "
"default-staff-staff-spacing "
"elements "
- "max-stretch "
"no-alignment "
"nonstaff-nonstaff-spacing "
"nonstaff-relatedstaff-spacing "