On 5 nov. 2012, at 09:19, David Kastrup <d...@gnu.org> wrote:

> "m...@mikesolomon.org" <m...@mikesolomon.org> writes:
> 
>> On 5 nov. 2012, at 06:51, m...@mikesolomon.org wrote:
>> 
>>> 1) rest->extent (common, Y_AXIS)
>>> 2) Rest::height
>>> 3) Rest::generic_extent_callback
>>> 4) Rest::brew_internal_stencil
>>> 5) Rest::glyph_name
>>> 6) Staff_symbol_referencer::get_position
>>> 7) rest->relative_coordinate (common, Y_AXIS);
>>> 8) Rest_collision::force_shift_callback_rest
>>> 9) Rest_collision::calc_positioning_done
>>> 10) rest->extent (common, Y_AXIS)
>> 
>> A better way to describe it just to wrap heads around it, with the
>> circular dependency underlined:
>> 
>> Rest extents depend on their stencil.  This stencil depends on
>> placement on/off the staff.  Placement may depend on the placement of
>> other rests.  To calculate the placement of other rests, we need to
>> shift all of them.  The amount of space one must shift depends on the
>> extent of the rest.
> 
> The co-dependent shifts should likely be done by Note_column.  About the
> rest dimensions used for that: I'd likely just pick the on-staff glyph,
> as the off-staff glyphs just differ by ledger lines IIRC.
> 
> Keep in mind that this advice is not based on any actual knowledge about
> the backend, so it is entirely possible that it is a bunch of nonsense.
> 

We're on the same wavelength - this is how rest pure height is calculated.  
That's what I've done for now in the code I'm working on to be able to keep 
working.  It's ugly, tho, as it requires an exception for rests (rest ? use 
pure height : use height).

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

Reply via email to