X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fbezier.hh;h=c7317be581aa39dc1003e1b3dcd482a43c8bd9c3;hb=4a964b10c411827584eb720c63cd0d6fc5b65d72;hp=a2c5df48c84534bde2c408433da1b99f2c6ce612;hpb=fd7e615444cf58b38283a59b56d3457c07778397;p=lilypond.git diff --git a/lily/include/bezier.hh b/lily/include/bezier.hh index a2c5df48c8..c7317be581 100644 --- a/lily/include/bezier.hh +++ b/lily/include/bezier.hh @@ -1,7 +1,7 @@ /* bezier.hh -- declare Bezier and Bezier_bow - (c) 1998--1999 Jan Nieuwenhuizen + (c) 1998--2004 Jan Nieuwenhuizen */ #ifndef BEZIER_HH @@ -11,7 +11,6 @@ #include "real.hh" #include "drul-array.hh" #include "interval.hh" -#include "axes.hh" #include "offset.hh" #include "array.hh" #include "polynomial.hh" @@ -22,12 +21,12 @@ class Bezier { public: - Bezier (); - + void assert_sanity () const; + void scale (Real x,Real y); + void reverse (); void rotate (Real); void translate (Offset); - void flip (Axis); - void check_sanity () const; + Real get_other_coordinate (Axis a, Real x) const; Array solve_point (Axis, Real coordinate) const; Array solve_derivative (Offset) const; @@ -36,9 +35,26 @@ public: Offset curve_point (Real t) const; static const int CONTROL_COUNT = 4; - Offset control_[CONTROL_COUNT]; + + /* + Bezier curves always have 4 control points. Making this into an + Array<> gives unnecessary overhead, and makes debugging a royal + pain. */ + + + Offset control_[4]; }; +void scale (Array* array, Real xscale, Real yscale); +void rotate (Array* array, Real phi); +void translate (Array* array, Offset o); + + + +Bezier slur_shape (Real width, Real height_limit, + 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); #endif // BEZIER_HH