From: David Kastrup Date: Sun, 28 Apr 2013 05:20:37 +0000 (+0200) Subject: Keep buildings which are empty in either axis out of skylines X-Git-Tag: release/2.17.19-1~5^2~8 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f31147964619f6e21eda04fa5dc38cfbdccd6ac9;p=lilypond.git Keep buildings which are empty in either axis out of skylines --- diff --git a/lily/skyline.cc b/lily/skyline.cc index 31f4c5a184..5073e69e14 100644 --- a/lily/skyline.cc +++ b/lily/skyline.cc @@ -486,7 +486,8 @@ Skyline::Skyline (vector const &boxes, Axis horizon_axis, Direction sky) sky_ = sky; for (vsize i = 0; i < boxes.size (); i++) - if (!boxes[i].is_empty ()) + if (!boxes[i].is_empty (X_AXIS) + && !boxes[i].is_empty (Y_AXIS)) buildings.push_front (Building (boxes[i], horizon_axis, sky)); buildings_ = internal_build_skyline (&buildings); @@ -553,9 +554,12 @@ Skyline::Skyline (vector const &skypairs, Direction sky) Skyline::Skyline (Box const &b, Axis horizon_axis, Direction sky) { sky_ = sky; - Building front (b, horizon_axis, sky); - single_skyline (front, &buildings_); - normalize (); + if (!b.is_empty (X_AXIS) && !b.is_empty (Y_AXIS)) + { + Building front (b, horizon_axis, sky); + single_skyline (front, &buildings_); + normalize (); + } } void @@ -593,7 +597,7 @@ Skyline::insert (Box const &b, Axis a) } /* do the same filtering as in Skyline (vector const&, etc.) */ - if (b.is_empty ()) + if (b.is_empty (X_AXIS) || b.is_empty (Y_AXIS)) return; my_bld.splice (my_bld.begin (), buildings_);