2 This file is part of LilyPond, the GNU music typesetter.
4 Copyright (C) 2004--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
6 LilyPond is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 LilyPond is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
23 #include "lily-proto.hh"
24 #include "std-vector.hh"
25 #include "grob-interface.hh"
29 Slur_info (Grob *slur);
31 vector<Grob *> stubs_;
37 static void add_column (Grob *me, Grob *col);
38 static void add_extra_encompass (Grob *me, Grob *col);
39 static void main_to_stub (Grob *main, Grob *stub);
40 static void replace_breakable_encompass_objects (Grob *me);
41 static void auxiliary_acknowledge_extra_object (Grob_info const &, vector<Slur_info> &, vector<Slur_info> &);
42 DECLARE_SCHEME_CALLBACK (print, (SCM));
43 DECLARE_SCHEME_CALLBACK (calc_control_points, (SCM));
44 DECLARE_SCHEME_CALLBACK (calc_direction, (SCM));
45 DECLARE_SCHEME_CALLBACK (pure_height, (SCM, SCM, SCM));
46 DECLARE_SCHEME_CALLBACK (height, (SCM));
47 DECLARE_SCHEME_CALLBACK (extremal_stub_vertical_skylines, (SCM));
48 DECLARE_SCHEME_CALLBACK (vertical_skylines, (SCM));
49 DECLARE_SCHEME_CALLBACK (outside_slur_callback, (SCM, SCM));
50 DECLARE_SCHEME_CALLBACK (pure_outside_slur_callback, (SCM, SCM, SCM, SCM));
51 DECLARE_SCHEME_CALLBACK (outside_slur_cross_staff, (SCM, SCM));
52 DECLARE_SCHEME_CALLBACK (calc_cross_staff, (SCM));
53 DECLARE_GROB_INTERFACE ();
54 static Bezier get_curve (Grob *me);