diff options
Diffstat (limited to 'hdr/beam.hh')
-rw-r--r-- | hdr/beam.hh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/hdr/beam.hh b/hdr/beam.hh new file mode 100644 index 0000000000..4cbc2ea0c2 --- /dev/null +++ b/hdr/beam.hh @@ -0,0 +1,44 @@ +/* + beam.hh -- part of LilyPond + + (c) 1996 Han-Wen Nienhuys +*/ + +#ifndef BEAM_HH +#define BEAM_HH +#include "proto.hh" +#include "spanner.hh" +#include "list.hh" + +/// a beam connects multiple stems +struct Beam: public Spanner { + List<Stem*> stems; + Real slope; + Real left_pos; + /// -1 below heads, +1 above heads. + int dir; + + /****************/ + + virtual Interval width()const; + + Spanner *broken_at(const PCol *, const PCol *) const; + Beam(); + void add(Stem*); + void process(); + void calculate(); + void set_default_dir(); + void preprocess(); + Interval height()const; + void print() const; + + void set_stemlens(); +private: + void solve_slope(); + void brew_molecule(); +}; +/** Beam adjusts the stems its owns to make sure that they reach the + beam and that point in the correct direction */ + +#endif // BEAM_HH + |