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

Reply via email to