[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Uses horizontal skylines in accidental placement (issue 6489086)
From: |
k-ohara5a5a |
Subject: |
Re: Uses horizontal skylines in accidental placement (issue 6489086) |
Date: |
Fri, 07 Sep 2012 07:11:48 +0000 |
The output looks very nice, even with half-sharps, reverse flats, etc.
The patch makes compilation take 6% longer (depending on accidental
density).
The reverse flats don't get any extra space around their stems, but I
haven't find a case where they need it, because they are placed in the
same order as regular flats so they do not nest.
Maybe it would be cleaner to have a blanket rule that the skylines
always enclose the 'spine' of the glyph, assuming the spine has
x-coordinate zero, by merging a box of dimensions
0.4* X-extent() by Y-extent ()
into the skylines.
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc
File lily/accidental.cc (right):
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode86
lily/accidental.cc:86: * suicide, so it is not pure.
Is this the book of Leviticus ? The completion of the concept is "...,
but we use this function /before/ line-breaking"
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode101
lily/accidental.cc:101: if (glyph_name == "accidentals.flat"
Since this is such a special case, it would be nicer to encode the extra
space around a flat's stem as a non-printing the glyph outline --- if we
can interest anyone with sufficient MetaFont competence.
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode110
lily/accidental.cc:110: Real left = (*sky)[LEFT].max_height ();
Doesn't matter much for the current flat symbol, but in general you
don't want to merge in a box that goes this far left.
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode111
lily/accidental.cc:111: Real right = (*sky)[RIGHT].average_height () *
0.75;
A fraction of max_height() is easier to visualize than average_height.
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode113
lily/accidental.cc:113: Real up = (*sky)[RIGHT].right ();
Maybe just use extent(Y_AXIS)?
http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode116
lily/accidental.cc:116: Skyline_pair merge_with_me (boxes, Y_AXIS);
Is it feasible to just merge with the right-hand skyline of the pair?
http://codereview.appspot.com/6489086/
Re: Uses horizontal skylines in accidental placement (issue 6489086), k-ohara5a5a, 2012/09/28