lilypond-devel
[Top][All Lists]

## Re: Gets vertical skylines from grob stencils (issue 5626052)

 From: Joe Neeman Subject: Re: Gets vertical skylines from grob stencils (issue 5626052) Date: Thu, 23 Feb 2012 12:47:57 -0800

On Thu, Feb 23, 2012 at 3:13 AM, wrote:

http://codereview.appspot.com/5626052/diff/30003/lily/skyline.cc
File lily/skyline.cc (right):

http://codereview.appspot.com/5626052/diff/30003/lily/skyline.cc#newcode393
lily/skyline.cc:393: Skyline::Skyline (Building b, Real start, Axis
horizon_axis, Direction sky)
On 2012/02/22 09:34:43, joeneeman wrote:
This isn't quite what I had in mind (for one thing, it means that the
caller has
to be aware of buildings, calculating their slope, etc.)

Skyline::Skyline (vector<pair<Point, Point> > const& segments, Axis,
Direction)?

it works similarly to Skyline::Skyline(vector<Box>...) except that the
resulting
skyline shows the outline of the given set of line segments.

Done.
On 2012/02/22 09:34:43, joeneeman wrote:
merge is linear, so this loop is quadratic.

It should now be n*log(n).

http://codereview.appspot.com/5626052/diff/34001/lily/skyline.cc
File lily/skyline.cc (right):

http://codereview.appspot.com/5626052/diff/34001/lily/skyline.cc#newcode362
lily/skyline.cc:362: result.push_front (Building (last_end, -infinity_f,
-infinity_f, iv[LEFT] - 2 * horizon_padding));
On 2012/02/23 11:11:47, joeneeman wrote:
push_back is constant time for STL lists. No need to push_front and
then
reverse.

I'm not not in favor of this, but why is there a reverse in the other
non_overlapping_skyline function?

Good question...