lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Reduces algorithm time by prefinding footnoted grobs (issue4213042)


From: Mike Solomon
Subject: Re: Reduces algorithm time by prefinding footnoted grobs (issue4213042)
Date: Wed, 2 Mar 2011 08:05:39 -0500

On Mar 2, 2011, at 7:23 AM, address@hidden wrote:

> I haven't had time to look at this carefully, but I'll have closer look
> later. What I don't understand, though, is why this problem needs such
> extensive changes. If it's just a matter of preventing repeated
> footnotes at the beginning/end of a line, it should be enough to examine
> footnote->get_column ()->get_rank ()
> and possibly
> footnote->get_parent (X_AXIS)->get_property ("break-visibility")
> when you're constructing a Line_details.
> 

This may work - I honestly don't know.  I'll look into doing it this way.

> Also, as a matter of convention, we don't pass non-const references to
> functions. If it has to be non-const, it should be a pointer.
> 
> 
> http://codereview.appspot.com/4213042/diff/27049/lily/system.cc
> File lily/system.cc (right):
> 
> http://codereview.appspot.com/4213042/diff/27049/lily/system.cc#newcode257
> lily/system.cc:257: }
> I don't get it. Why does filtering out grobs with an empty X-extent
> solve the problem? And why do you have to redo this every time
> Page_spacing::append_system is called?
> 

It solves the problem (in this case) because grobs that are invisible after 
break visibility are made transparent and given no width, so we disregard their 
footnotes.

I probably don't need to redo this after every time: just after break 
visibility is taken into account.  If it is possible to pinpoint this, then I 
can fine tune the code accordingly, but append_system is called quite often and 
I'm not sure which calls happen before break visibility is considered and which 
ones happen after.

But, as I said, I'll look into working with break-visibility directly & see if 
that does it.

Cheers,
MS


reply via email to

[Prev in Thread] Current Thread [Next in Thread]