On Tue, 2010-03-23 at 19:57 -0400, Boris Shingarov wrote:
> > The estimated height for the whole system _should_ take into account the
>  > fact that the lyrics can be squeezed between the systems. Have a look at
>  > the comment in align-interface.cc:104 (which should get called as a
>  > result of sys->pure_height())
>   
>  Trying to make head or tail of which child is which, and why lyrics do 
>  increase the pure_height by much, I am now thouroughly confused by 
>  something else.  The height is calculated by unite()'ing the heights 
>  of all items and all spanners.  I started with a trivial example with 
>  some repeating notes, and no lyrics and nothing else.  There is an 
>  item amounting to [-0.9:0.3], and a spanner amounting to [-7:0]. 

With the attached .gdbinit file, you can do
ps grob->self_scm_
to see the type of a grob, or
pg grob
to see its type and its properties. That may help you get a better
understanding of what is going on.

> Ok, I step inside the calculation of pure_height for it, and find another 
> (one) spanner.  Putting a breakpoint inside the for() loop for the items, I 
> never hit it.  I'd appreciate a three-liner briefly explaining the design of 
> this.  (The "pure" vs "non-pure" height also seems of mysterious design). 

Until the line-breaking is computed, we can't calculate the horizontal
positioning of any grob. pure-height is an _estimate_ of the real height
of the grob ("pure" because it can be computed without causing
side-effects, whereas the actual height usually can't).

Cheers,
Joe

def ps
  call ly_display_scm($arg0)
end

def pg
  ps $arg0->self_scm_
  ps $arg0->immutable_property_alist_
  ps $arg0->mutable_property_alist_
end

def pgv
  pg $arg0
  ps $arg0->object_alist_
end
_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to