]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/slur.hh
release: 1.3.94
[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 "lily-guile.hh"
11 #include "lily-proto.hh"
12 #include "rod.hh"
13
14 /**
15
16    de-uglify-parameters -- list of 3 real constants. They define the
17      valid areas for the middle control points. Used in de_uglyfy.
18      They are a bit empirical.
19
20    details -- alist containing contaning a few magic constants.
21
22    note-columns -- list of elt pointers to note columns.
23
24    attachment -- cons of symbols, '(LEFT-TYPE . RIGHT-TYPE), where
25      both types may be alongside-stem, stem, head or loose-end
26    
27    direction -- up or down?
28
29    y-free -- ? 
30    
31    control-points --
32
33    
34    
35    Read-only
36    =========
37    
38    extremity-rules --
39
40    extremity-offset-alist --
41
42    thickness --
43
44    dash -- number representing the length of the dashes.
45 */
46 class Slur
47 {
48 public:
49   static void add_column (Score_element*me,Score_element*col);
50   DECLARE_SCHEME_CALLBACK(brew_molecule, (SCM ));
51   static void set_interface (Score_element*);
52   static bool  has_interface (Score_element*);
53   static Array<Offset> get_encompass_offset_arr (Score_element*me) ;
54   static Bezier get_curve (Score_element*me) ;
55   static Direction get_default_dir (Score_element*me) ;
56   DECLARE_SCHEME_CALLBACK(after_line_breaking, (SCM ));
57   DECLARE_SCHEME_CALLBACK(set_spacing_rods, (SCM ));
58 private:  
59   static Real get_first_notecolumn_y (Score_element *me, Direction dir);
60   static Offset broken_trend_offset (Score_element *me, Direction dir);
61   static Offset get_attachment (Score_element*me,Direction dir, Score_element**common) ;
62   static void de_uglyfy (Score_element*me,Slur_bezier_bow* bb, Real default_height);
63   static void set_extremities (Score_element*me);
64   static void set_control_points (Score_element*me);
65   static Offset encompass_offset (Score_element*me,Score_element *col,Score_element**common);
66 };
67
68 #endif // SLUR_HH
69
70