http://codereview.appspot.com/3928041/diff/30001/lily/beam.cc File lily/beam.cc (right):
http://codereview.appspot.com/3928041/diff/30001/lily/beam.cc#newcode1015 lily/beam.cc:1015: return ly_interval2scm (pos); On 2011/01/23 18:05:39, hanwenn wrote:
it looks like this only handles the 1st collision found, and exits
after
circumventing the first one. The risks are
* in case of multiple grobs, the resolution is dependent on the order
of
constructing the covered grobs list. Unpredictable and arbitrary.
* that you will park the beam on top of something else, like the next
grob you
are skipping with this return.
* in the last case, you may even create a beam with enormous stems
(ugly) that
still has a collision.
Why not calculate all the locations of all covered grobs, and work
collisions
into the scores for beam positions?
See beam-quanting.cc; you'd have to add another scoring pass to Beam::quanting().
doing it with beam quant scoring instead will free you of getting the symmetry wrt up/down correct (which has been tricky in my experience). http://codereview.appspot.com/3928041/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel