]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/slur.hh
release: 1.3.62
[lilypond.git] / lily / include / slur.hh
1 /*
2   slur.hh -- declare Slur
3
4   (c) 1996--2000 Han-Wen Nienhuys
5 */
6
7 #ifndef SLUR_HH
8 #define SLUR_HH
9
10 #include "spanner.hh"
11 #include "rod.hh"
12
13 /**
14   A #Bow# which tries to drape itself around the stems too.
15  */
16 class Slur : public Spanner
17 {
18 public:
19   Slur (SCM);
20   VIRTUAL_COPY_CONS(Score_element);
21
22   void add_column (Note_column*);
23  static SCM brew_molecule (SCM);
24   
25   SCM member_brew_molecule () const;
26   virtual Array<Offset> get_encompass_offset_arr () const;
27   Bezier get_curve () const;
28
29   /*
30     JUNKME
31    */
32   Drul_array<Real> dy_f_drul_;
33   Drul_array<Real> dx_f_drul_;
34
35   virtual Direction get_default_dir () const;
36   SCM member_after_line_breaking ();
37   static SCM after_line_breaking (SCM);
38   virtual void do_add_processing ();
39   Array<Rod> get_rods () const;
40
41 private:  
42   void de_uglyfy (Slur_bezier_bow* bb, Real default_height);
43   void set_extremities ();
44   void set_control_points ();
45   int cross_staff_count () const;
46   Offset encompass_offset (Note_column const* )const;
47 };
48
49 #endif // SLUR_HH
50
51