X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fbezier.hh;h=88ff5dbbbf6f2c9f69f6496a96383bfc7d996956;hb=0b544cfb7332615ef809b71b57ab656741311ae1;hp=5cfca578c2ebd5270095076cc91788adb6a3bd42;hpb=db4c4e9f240b6c1becad366e1b62495e395cc10c;p=lilypond.git diff --git a/lily/include/bezier.hh b/lily/include/bezier.hh index 5cfca578c2..88ff5dbbbf 100644 --- a/lily/include/bezier.hh +++ b/lily/include/bezier.hh @@ -1,7 +1,20 @@ /* - bezier.hh -- declare Bezier and Bezier_bow + This file is part of LilyPond, the GNU music typesetter. - (c) 1998--2009 Jan Nieuwenhuizen + Copyright (C) 1998--2014 Jan Nieuwenhuizen + + 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 . */ #ifndef BEZIER_HH @@ -22,17 +35,20 @@ public: void reverse (); void rotate (Real); void translate (Offset); - void subdivide (Real, Bezier &, Bezier &); - Bezier extract (Real, Real); + void subdivide (Real, Bezier *, Bezier *) const; + Bezier extract (Real, Real) const; Real get_other_coordinate (Axis a, Real x) const; + vector get_other_coordinates (Axis a, Real x) const; vector solve_point (Axis, Real coordinate) const; + Real minmax (Axis, Real, Real, Direction) const; vector solve_derivative (Offset) const; Interval extent (Axis) const; Interval control_point_extent (Axis) const; - + Polynomial polynomial (Axis)const; Offset curve_point (Real t) const; + Real slope_at_point (Real t) const; Real curve_coordinate (Real t, Axis) const; static const int CONTROL_COUNT = 4; @@ -50,7 +66,7 @@ void rotate (vector *array, Real phi); void translate (vector *array, Offset o); Bezier slur_shape (Real width, Real height_limit, - Real height_proportion); + Real height_proportion); Real slur_height (Real width, Real height_limit, Real height_proportion); void get_slur_indent_height (Real *indent, Real *height, Real width, Real h_inf, Real r_0);