/*
- slur.cc -- implement external interface for Slur
+ This file is part of LilyPond, the GNU music typesetter.
- source file of the GNU LilyPond music typesetter
-
- (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1996--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
+
+ 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 <http://www.gnu.org/licenses/>.
*/
#include "slur.hh"
ret.unite (d);
}
- ret.widen (height * 0.5);
+ // The +0.5 comes from the fact that we try to place a slur
+ // 0.5 staff spaces from the note-head.
+ // (see Slur_score_state.get_base_attachments ())
+ ret.widen (height * 0.5 + 0.5);
return ly_interval2scm (ret);
}
/*
it would be better to do this at engraver level, but that is
- fragile, as the breakabl items are generated on staff level, at
+ fragile, as the breakable items are generated on staff level, at
which point slur starts and ends have to be tracked
*/
void
0.0);
yext.widen (slur_padding);
- Real EPS = 1e-3;
+ const Real EPS = 1e-3;
Interval bezext (curve.control_[0][X_AXIS], curve.control_[3][X_AXIS]);
- bool consider[] = { false, false, false };
+ bool consider[] = {false, false, false};
Real ys[] = {0, 0, 0};
bool do_shift = false;
e->set_object ("slur", slur->self_scm ());
}
}
- else
+ else if (avoid != ly_symbol2scm ("ignore"))
e->warning (_f ("Ignoring grob for slur: %s. avoid-slur not set?",
e->name().c_str ()));
}