On Jul 24, 2011, at 11:29 PM, Neil Puttock wrote: > On 23 July 2011 15:48, <mts...@gmail.com> wrote: > >> (a) is currently impossible to calculate in all circumstances, and (c) >> would require a code dup. I think by making these available as >> properties, the user can then use this data to fix the problem. In the >> example given in Issue 36, I would personally rotate the stencil >> downwards, and this patch would give me all the data necessary to create >> an override for Beam #'rotation. > > This is too specific to hairpins. Most grobs collide with beams when > they're cross-staff, so a more generic solution is required. >
We may want to just fix issue 36 via something in the docs- you're absolutely right about the many collisions, and it is easy enough to create a Scheme engraver that acknowledges beams and spanners and adds cross staff beam to a grob array of the spanner than can be subsequently accessed to rotate/move/etc. Were there one obvious solution to the problem, I'd advocate incorporating it into LilyPond, but as there is no clear way to deal with these collisions, perhaps a section in the documentation "Dealing with collisions" that says something to the effect of "LilyPond does its best to avoid collisions between objects. However, often there is more than one solution available to collision avoidance - white out, moving, rotating, etc.. Rather than taking any one of these actions automatically, LilyPond provides the user tools to make these decisions with respect to any given collision." Then, show the whiteout solution, custom engraver solution, etc.. Cheers, MS _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel