[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Removes cross-staff beams from the collision grob array (issue443206
From: |
mtsolo |
Subject: |
Re: Removes cross-staff beams from the collision grob array (issue4432063) |
Date: |
Sun, 24 Apr 2011 01:18:07 +0000 |
On 2011/04/24 01:03:23, hanwenn wrote:
http://codereview.appspot.com/4432063/diff/3001/lily/beam-collision-engraver.cc
File lily/beam-collision-engraver.cc (right):
http://codereview.appspot.com/4432063/diff/3001/lily/beam-collision-engraver.cc#newcode110
lily/beam-collision-engraver.cc:110: && !covered_grobs_[j].event_cause
())))
rather than doing this kind of decision in the engraver, can you do it
in the
typesetting backend itself? You could make cross-staff beams ignore
just
stems/beams and continue doing collisions for clefs, accidentals, etc.
Would this need to be done in both beam-quanting.cc and beam.cc?
In general, I am reticent to make grob-by-grob exceptions to a procedure
that should seemingly be grob-agnostic.
I have a semi-idea for how to fix this, but it'll take me a couple days
to make it into a full idea. The gist is to move the
beam-collision-engraver up to the score level and then populate the
covered-grob list based on the beam's staves by using grobs that share a
staff symbol with a given stem around that stem's rank. This way,
cross-staff beams can take grobs from all staves to which they belong
into consideration.
http://codereview.appspot.com/4432063/