Re: [frogs] bend implementation

[ Thread Index | Date Index | More lilynet.net/frogs Archives ]




On 1/21/10 12:21 AM, "Marc Hohl" <marc@xxxxxxxxxx> wrote:

> Carl Sorensen schrieb:
>> 
>> On 1/20/10 3:29 AM, "Marc Hohl" <marc@xxxxxxxxxx> wrote:
>> 
>>  
>>> Carl Sorensen schrieb:
>>>    
>>>> [...]
>>>> 
>>>> If you can ask some more specific questions, maybe we can get answers.
>>>> 
>>>>      
>>> Oh, here's a (probably) silly one:
>>> 
>>> By looking at glissando_engraver.cc or note_head_line_engraver.cc,
>>> I don't see where the line is drawn. Where do I find these routines
>>> that create the appropriate stencil?
>>>    
>> 
>> Not silly at all.  This is a perfect engraver to get at the core confusing
>> LilyPond functionality.  The most confusing part is the seemingly immaculate
>> conversion from event to stencil (which happens by way of the grob).
>> 
>> Here is the line that creates the grob:
>>  line_ = make_spanner ("VoiceFollower", head_->self_scm ());
>> 
>> This creates a VoiceFollower grob.
>> 
>>> From the internals reference, we see that the VoiceFollower grob has the
>> default stencil ly:line-spanner::print.  So the code that actually creates
>> the line is in ly:line-spanner::print.
>>  
> Ah, ok. I read tuplet-*.cc  where there are tons of stencil trickery,
> and in glissando-engraver.cc, there's none.

In lily/tuplet-engraver.cc there is no stencil trickery.  There is a bit of
grob trickery in terms of deciding the columns the bracket should span.

Note that lily/tuplet-bracket.cc and lily/tuplet-number.cc create scheme
callbacks that will be used by the grob to create stencils.  They are not
part of the engraver, but are rather part of the output library.

Thanks for asking these questions.   They are helping to clarify my
understanding.

Carl


---
----
Join the Frogs!


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/