]> git.donarmstrong.com Git - lilypond.git/commit
Improvements in vertical skyline approximations (issue 2148).
authorMike Solomon <mike@apollinemike.com>
Mon, 27 Aug 2012 21:47:04 +0000 (23:47 +0200)
committerMike Solomon <mike@apollinemike.com>
Mon, 27 Aug 2012 21:47:04 +0000 (23:47 +0200)
commit28f3294954eff1f263d3b2e3de1c520f4d2fbdfc
tree8216447e447a4f84c1fb472b1da4e16e7469d691
parent6f4893fa86378aa4a637eedbde5efc4680efa5bf
Improvements in vertical skyline approximations (issue 2148).

The file stencil-integral.cc provides a suite of functions that
traverse a stencil and do linear approximations of its components.
These are then turned into boxes that are passed to the Skyline
constructor. This approximation is used for several vertical skylines
including those of VerticalAxisGroup and System. As a result of these
more accurate approximations, vertical spacing is more snug between
grobs.

Additionally, in axis-group-interface.cc, skylines of grobs are no
longer compared to a monolithic axis-group skyline but rather all
of the component skylines of the axis-group, allowing grobs to
be fit under other ones if there is space instead of always shifted over.

Two new python scripts allow to visualize the position of skylines.

All other changes provide functions that allow for better debugging
of Skylines, better approximations of grobs via skylines, and changes
to the measurement of distance between grobs via the new Skyline API.

This results in a significant time increase in score compilation for
objects with complex skylines such as all text grobs.  For orchestral
scores, the increase is not as steep.
69 files changed:
flower/include/interval-set.hh
flower/include/yaffut.hh
flower/interval-set.cc
flower/test-interval-set.cc [new file with mode: 0644]
input/regression/hairpin-clef.ly [new file with mode: 0644]
input/regression/hairpin-key-signature.ly [new file with mode: 0644]
input/regression/outside-staff-placement-directive.ly [new file with mode: 0644]
input/regression/skiptypesetting-all-true.ly
input/regression/slur-dynamics.ly
input/regression/text-script-vertical-skylines.ly [new file with mode: 0644]
input/regression/tuplet-bracket-vertical-skylines.ly [new file with mode: 0644]
input/regression/tuplet-number-outside-staff-positioning.ly [new file with mode: 0644]
input/regression/volta-bracket-vertical-skylines.ly [new file with mode: 0644]
lily/accidental-placement.cc
lily/accidental.cc
lily/align-interface.cc
lily/axis-group-interface.cc
lily/beam.cc
lily/bezier.cc
lily/box.cc
lily/clef.cc
lily/dot-formatting-problem.cc
lily/flag.cc
lily/freetype.cc
lily/global-vars.cc [new file with mode: 0644]
lily/grob.cc
lily/include/axis-group-interface.hh
lily/include/bezier.hh
lily/include/box.hh
lily/include/freetype.hh
lily/include/grob.hh
lily/include/misc.hh
lily/include/modified-font-metric.hh
lily/include/open-type-font.hh
lily/include/pango-font.hh
lily/include/skyline-pair.hh
lily/include/skyline.hh
lily/include/stencil.hh
lily/include/system.hh
lily/line-spanner.cc
lily/main.cc
lily/misc.cc
lily/modified-font-metric.cc
lily/note-spacing.cc
lily/open-type-font.cc
lily/page-layout-problem.cc
lily/pango-font.cc
lily/script-interface.cc
lily/separation-item.cc
lily/side-position-interface.cc
lily/skyline-pair.cc
lily/skyline.cc
lily/slur.cc
lily/stencil-integral.cc [new file with mode: 0644]
lily/stencil-scheme.cc
lily/system.cc
lily/text-interface.cc
lily/tie-formatting-problem.cc
lily/tuplet-engraver.cc
scm/define-grob-properties.scm
scm/define-grobs.scm
scm/harp-pedals.scm
scm/lily.scm
scm/output-lib.scm
scm/output-ps.scm
scm/output-svg.scm
scm/stencil.scm
scripts/auxiliar/show_skyline_command.py [new file with mode: 0644]
scripts/auxiliar/skyline_viewer.py [new file with mode: 0755]