[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 12:04:26 +0000 |
On 2011/04/24 01:18:07, MikeSol wrote:
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.
I have a test patch on:
http://codereview.appspot.com/4430063
More to come on the devel list...
http://codereview.appspot.com/4432063/