return 0;
}
+Item *
+Item::maybe_find_prebroken_piece (Item *g, Direction d)
+{
+ Item *ret = g->find_prebroken_piece (d);
+ if (ret)
+ return ret;
+ return g;
+}
+
Item *
Item::find_prebroken_piece (Direction d) const
{
if (cached_pure_height_valid_)
return cached_pure_height_ + pure_relative_y_coordinate (g, start, end);
- cached_pure_height_ = Grob::pure_height (this, start, end);
- cached_pure_height_valid_ = true;
+ cache_pure_height (Grob::pure_height (this, start, end));
return cached_pure_height_ + pure_relative_y_coordinate (g, start, end);
}
+void
+Item::cache_pure_height (Interval height)
+{
+ cached_pure_height_ = height;
+ cached_pure_height_valid_ = true;
+}
+
ADD_INTERFACE (Item,
"Grobs can be distinguished in their role in the horizontal"
" spacing. Many grobs define constraints on the spacing by"