On 5 nov. 2012, at 09:26, David Kastrup <d...@gnu.org> wrote: > "m...@mikesolomon.org" <m...@mikesolomon.org> writes: > >> 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). > > Would the problem not be the same with notes? They depend on things like > beam scoring, and also have the ledger line situation. >
The placement of notes does not depend on beam scoring. As for ledger lines, ledger lines for notes are always a spanner and never built into the glyph. Their width is not taken into account in any horizontal spacing equations unless approximations are done (see, for example, Note_head::include_ledger_line_height). Cheers, MS _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel