summaryrefslogtreecommitdiff
path: root/hdr/beam.hh
diff options
context:
space:
mode:
Diffstat (limited to 'hdr/beam.hh')
-rw-r--r--hdr/beam.hh44
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
+