lilypond-0.1.16
[lilypond.git] / lily / include / note-column.hh
blobb2be9b347962b8b2b6ab4a7a805174a02550a910
1 /*
2 note-column.hh -- declare Note_column
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
10 #ifndef NOTE_COLUMN_HH
11 #define NOTE_COLUMN_HH
13 #include "item.hh"
14 #include "script-column.hh"
16 /** a struct for treating a group of noteheads (noteheads, stem
17 (chord) and scripts) as a single entity. */
18 class Note_column : public Script_column {
19 protected:
20 virtual void do_pre_processing();
21 virtual void do_print () const;
22 virtual void do_substitute_dependency (Score_elem*,Score_elem*);
23 public:
24 /** The relative position of the "voice" containing this
25 chord. Normally this would be the same as the stem direction,
26 but rests do not have stems.
28 Direction dir_;
29 bool h_shift_b_;
30 Stem* stem_l_;
33 Link_array<Note_head> head_l_arr_;
34 Link_array<Rest> rest_l_arr_;
36 Interval_t<int> head_positions_interval() const;
37 void translate_rests(int dy);
39 DECLARE_MY_RUNTIME_TYPEINFO;
40 Note_column ();
41 void set (Stem*);
42 void set (Dot_column*);
43 void add (Rhythmic_head*);
44 bool rest_b () const;
45 virtual void add (Script*s);
46 void sort ();
49 #endif // NOTE_COLUMN_HH