2 stem.hh -- declare Stem
4 (c) 1996--2007 Han-Wen Nienhuys
10 #include "std-vector.hh"
11 #include "lily-proto.hh"
12 #include "stem-info.hh"
13 #include "grob-interface.hh"
18 static vector
<int> note_head_positions (Grob
*);
19 static int duration_log (Grob
*);
20 static void set_beaming (Grob
*, int, Direction d
);
21 static int get_beaming (Grob
*, Direction d
);
22 static Spanner
*get_beam (Grob
*);
23 static Grob
*first_head (Grob
*);
24 static Grob
*last_head (Grob
*);
25 static Drul_array
<Grob
*> extremal_heads (Grob
*);
26 static Grob
*support_head (Grob
*);
27 static void add_head (Grob
*me
, Grob
*n
);
28 static Stem_info
get_stem_info (Grob
*);
29 static Real
chord_start_y (Grob
*);
30 static void set_stemend (Grob
*, Real
);
31 static Slice
beam_multiplicity (Grob
*);
32 static Direction
get_default_dir (Grob
*);
33 static Real
thickness (Grob
*);
34 static int head_count (Grob
*);
35 static bool is_invisible (Grob
*);
36 static bool is_normal_stem (Grob
*);
37 static bool is_cross_staff (Grob
*);
38 static Interval
head_positions (Grob
*);
39 static Real
stem_end_position (Grob
*);
40 static Stencil
flag (Grob
*);
41 static Stencil
get_translated_flag (Grob
*);
42 DECLARE_GROB_INTERFACE();
43 static void set_spacing_hints (Grob
*);
45 DECLARE_SCHEME_CALLBACK (print
, (SCM
));
46 DECLARE_SCHEME_CALLBACK (calc_default_direction
, (SCM
));
47 DECLARE_SCHEME_CALLBACK (offset_callback
, (SCM element
));
48 DECLARE_SCHEME_CALLBACK (calc_direction
, (SCM
));
49 DECLARE_SCHEME_CALLBACK (calc_beaming
, (SCM
));
50 DECLARE_SCHEME_CALLBACK (calc_length
, (SCM
));
51 DECLARE_SCHEME_CALLBACK (calc_stem_end_position
, (SCM
));
52 DECLARE_SCHEME_CALLBACK (calc_stem_info
, (SCM
));
53 DECLARE_SCHEME_CALLBACK (calc_positioning_done
, (SCM
));
54 DECLARE_SCHEME_CALLBACK (width
, (SCM smob
));
55 DECLARE_SCHEME_CALLBACK (pure_height
, (SCM
, SCM
, SCM
));
56 DECLARE_SCHEME_CALLBACK (height
, (SCM
));
57 DECLARE_SCHEME_CALLBACK (calc_cross_staff
, (SCM
));
58 DECLARE_SCHEME_CALLBACK (calc_flag
, (SCM
));