]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/note-column.hh
release: 1.1.38
[lilypond.git] / lily / include / note-column.hh
1 /*
2   note-column.hh -- declare Note_column
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef NOTE_COLUMN_HH
11 #define NOTE_COLUMN_HH
12
13 #include "item.hh"
14 #include "axis-group-item.hh"
15
16 /** a struct for treating a group of noteheads (noteheads, stem
17   (chord) and scripts) as a single entity.  */
18 class Note_column : public Axis_group_item {
19 protected:
20
21   virtual void do_print () const;
22   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
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.
27
28     JUNKME.v
29     */
30   Direction dir () const;
31   Stem* stem_l_;
32
33   Link_array<Note_head> head_l_arr_;
34   Link_array<Rest> rest_l_arr_;
35     
36   Interval_t<int> head_positions_interval() const;
37   //  Interval width () const;
38
39   void translate_rests(int dy);
40   
41   Note_column ();
42   void set_stem (Stem*);
43   void set_dotcol (Dot_column*);
44   void add_head (Rhythmic_head*);
45   bool rest_b () const;
46   void sort ();
47 };
48
49 #endif // NOTE_COLUMN_HH