]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/slur-bezier-bow.hh
01b1304a4e08eb7cf18db94bc061ce74b4f3264a
[lilypond.git] / lily / include / slur-bezier-bow.hh
1 /*
2   slur-bezier-bow.hh -- declare Slur_bezier_bow
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2000--2001  Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8
9 #ifndef SLUR_BEZIER_BOW_HH
10 #define SLUR_BEZIER_BOW_HH
11
12 #include "bezier-bow.hh"
13
14 class Slur_bezier_bow
15 {
16
17 protected:
18   Array<Offset> encompass_;
19
20 private:
21   void to_canonical_form ();
22   Direction dir_;
23   Real alpha_;
24   Offset origin_;
25   Real h_inf_, r_0_;
26 public:
27   /**
28      The canonical bezier.
29    */
30   Bezier curve_;
31
32
33   Slur_bezier_bow (Array<Offset> encompass, Direction dir,
34                    Real hinf, Real r0);
35   Bezier get_bezier () const;
36
37   void minimise_enclosed_area (Real beauty, SCM props);
38   Real fit_factor () const;
39   void blow_fit ();
40   Real enclosed_area_f () const;
41 private:
42   Array<Real> area_x_gradients_array (Real area);
43 };
44  
45 #endif /* SLUR_BEZIER_BOW_HH */