]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/tuplet-spanner.hh
ca725e5d401d0b1ac45a58ea6cbc3f871c5f8cae
[lilypond.git] / lily / include / tuplet-spanner.hh
1 /*
2   plet-spanner.hh -- part of GNU LilyPond
3
4   (c)  1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
5 */
6
7 #ifndef Tuplet_spanner_HH
8 #define Tuplet_spanner_HH
9
10 #include "pointer.hh"
11 #include "spanner.hh"
12
13 /** supportable plet: triplets, eentweetjes, ottava, etc.
14
15     TODO: quantise, we don't want to collide with staff lines.
16     (or should we be above staff?)
17
18   todo: handle breaking elegantly.
19 */
20 class Tuplet_spanner : public Spanner
21 {
22 public:
23   Tuplet_spanner (SCM);
24   static SCM scheme_molecule (SCM);
25   
26
27   void add_column (Note_column*);
28   void add_beam (Beam*);
29 protected:
30   void calc_dy (Real *) const;
31   void calc_position_and_height (Real*,Real *dy)const;
32   
33   Molecule do_brew_molecule () const;
34   VIRTUAL_COPY_CONS(Score_element);
35   virtual void do_add_processing ();
36   virtual void after_line_breaking ();
37   virtual Direction get_default_dir () const;
38 };
39
40 #endif // Tuplet_spanner_HH
41