]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/note-column.hh
release: 1.1.35
[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 "script-column.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 Script_column {
19 protected:
20   virtual void do_pre_processing();
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_;
31   Stem* stem_l_;
32
33
34   Link_array<Note_head> head_l_arr_;
35   Link_array<Rest> rest_l_arr_;
36     
37   Interval_t<int> head_positions_interval() const;
38   //  Interval width () const;
39
40   void translate_rests(int dy);
41         
42   
43   Note_column ();
44   void set_stem (Stem*);
45   void set_dotcol (Dot_column*);
46   void add_head (Rhythmic_head*);
47   bool rest_b () const;
48   virtual void add_script (Script*s);
49   void sort ();
50 };
51
52 #endif // NOTE_COLUMN_HH