mike <at> mikesolomon.org <mike <at> mikesolomon.org> writes:

> On 5 nov. 2012, at 11:15, Werner LEMBERG <wl <at> gnu.org> wrote:
> > 
> > So the answer is yes: The height (resp. the depth) is larger for
> > outside-staff glyphs.
> > 
> 
> So we officially have a circular dependency: in order to know the height 
> (for collision resolution) we need to know the extent, but in order to 
> know the extent (because of the glyph) we need to know the height.

Just to be clear, rest-collision.cc breaks the circular dependency by setting
positioning-done := true,  so the glyphs used to figure how far to move rests
are those for their natural staff-positions.  For example, in

  \new Staff <<
    \new Voice {\voiceOne r2 }
    \new Voice {\voiceThree r4 }
    \new Voice {\voiceTwo r4 } >>

the half-rest in the upper voice is moved so that its glyph /without/ the
ledger line clears the quarter-rest, with the motion rounded up to the next
staff-position.   (Potentially, the lower portion of the ledger of the 
half-rest could overlap the quarter-rest, if someone adjusts staff-space to
a borderline case.)

If the rest being moved has a ledger at its natural staff-position
  \with { \override StaffSymbol #'line-count = 3 } 
then the glyph with the ledger is used -- which is a tiny bit inconsistent.
Mike's suggestion to omit ledgers in Rest::generic_extent_callback() would
simplify things and make them more consistent.


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to