X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fstem.cc;h=074620e06956a9d8e304a33064509b24333fd015;hb=c77189ccaa4e645850ad61779de7a4c8f3fdbc6f;hp=1f8b21e85f51fec72fa86c818b24417dcde43298;hpb=e344ae579fa1d81fc6c6f3049494697872fd39f9;p=lilypond.git diff --git a/lily/stem.cc b/lily/stem.cc index 1f8b21e85f..074620e069 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -1,9 +1,7 @@ /* - stem.cc -- implement Stem + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter - - (c) 1996--2008 Han-Wen Nienhuys + Copyright (C) 1996--2010 Han-Wen Nienhuys Jan Nieuwenhuizen TODO: This is way too hairy @@ -11,6 +9,19 @@ TODO: fix naming. Stem-end, chord-start, etc. is all confusing naming. + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "stem.hh" @@ -229,11 +240,10 @@ Stem::is_normal_stem (Grob *me) MAKE_SCHEME_CALLBACK (Stem, pure_height, 3) SCM -Stem::pure_height (SCM smob, SCM start, SCM end) +Stem::pure_height (SCM smob, + SCM /* start */, + SCM /* end */) { - (void) start; - (void) end; - Grob *me = unsmob_grob (smob); Interval iv; @@ -255,7 +265,10 @@ Stem::pure_height (SCM smob, SCM start, SCM end) iv = Interval (-len, 0); if (!hp.is_empty ()) - iv.translate (hp[dir] * ss / 2); + { + iv.translate (hp[dir] * ss / 2); + iv.add_point (hp[-dir] * ss / 2); + } /* extend the stem (away from the head) to cover the staff */ if (dir == UP) @@ -558,7 +571,7 @@ Stem::height (SCM smob) programming_error ("no stem direction"); dir = UP; } - iv[dir] += dir * Beam::get_thickness (beam) * 0.5; + iv[dir] += dir * Beam::get_beam_thickness (beam) * 0.5; } return ly_interval2scm (iv); @@ -741,7 +754,7 @@ Stem::print (SCM smob) else if (stemlet) { Real beam_translation = Beam::get_beam_translation (beam); - Real beam_thickness = Beam::get_thickness (beam); + Real beam_thickness = Beam::get_beam_thickness (beam); int beam_count = beam_multiplicity (me).length () + 1; y2 -= d @@ -885,7 +898,7 @@ Stem::calc_stem_info (SCM smob) } Real beam_translation = Beam::get_beam_translation (beam); - Real beam_thickness = Beam::get_thickness (beam); + Real beam_thickness = Beam::get_beam_thickness (beam); int beam_count = Beam::get_direction_beam_count (beam, my_dir); Real length_fraction = robust_scm2double (me->get_property ("length-fraction"), 1.0); @@ -1052,6 +1065,8 @@ ADD_INTERFACE (Stem, "avoid-note-head " "beam " "beaming " + "beamlet-default-length " + "beamlet-max-length-proportion " "default-direction " "details " "direction "