2 beam.hh -- part of GNU LilyPond
4 (c) 1996,97 Han-Wen Nienhuys
9 #include "lily-proto.hh"
10 #include "directional-spanner.hh"
13 /** a beam connects multiple stems Beam adjusts the stems its owns to
14 make sure that they reach the beam and that point in the correct
16 class Beam
: public Directional_spanner
{
18 Link_array
<Stem
> stems
;
19 /// the slope of the beam in posns / point (dimension)
22 /// position of leftmost end of beam
27 DECLARE_MY_RUNTIME_TYPEINFO
;
31 void set_grouping (Rhythmic_grouping def
, Rhythmic_grouping current
);
33 SCORE_ELEM_CLONE(Beam
);
36 virtual Interval
do_width() const;
37 Offset
center() const;
38 void set_default_dir();
39 virtual void do_pre_processing();
40 virtual void do_post_processing();
41 virtual void do_substitute_dependent (Score_elem
*, Score_elem
*);
43 virtual void do_print() const;
45 virtual Molecule
stem_beams (Stem
*here
, Stem
*next
, Stem
*prev
) const;
46 virtual void solve_slope();
47 virtual Molecule
*brew_molecule_p() const;