]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/slur-bezier-bow.hh
7c06017411d5da5367c805c2fdb75a2e931def40
[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--2003  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   Array<Offset> encompass_;
17
18   void to_canonical_form ();
19   Direction dir_;
20   Real alpha_;
21   Offset origin_;
22   Real h_inf_, r_0_;
23
24 public:
25
26   /**
27      The canonical bezier.
28    */
29   Bezier curve_;
30
31   Slur_bezier_bow (Array<Offset> encompass, Direction dir,
32                    Real hinf, Real r0);
33   Bezier get_bezier () const;
34
35   void minimise_enclosed_area (Real beauty, SCM props);
36   Real fit_factor () const;
37   void blow_fit ();
38   Real get_enclosed_area () const;
39 private:
40   Array<Real> area_x_gradientses (Real area);
41 };
42  
43 #endif /* SLUR_BEZIER_BOW_HH */