2 grouping.hh -- part of LilyPond
4 (c) 1996,97 Han-Wen Nienhuys
11 #include "interval.hh"
14 typedef Interval_t<Moment> MInterval;
16 /// data structure which represents rhythmic units
17 struct Rhythmic_grouping {
18 Array<Rhythmic_grouping*> children;
23 Array<MInterval> intervals();
24 MInterval interval()const;
25 Moment length() const;
26 void intersect(MInterval);
28 void operator=(Rhythmic_grouping const&);
29 Rhythmic_grouping(Rhythmic_grouping const&);
30 Rhythmic_grouping(MInterval, int n=1);
32 Rhythmic_grouping(Array<Rhythmic_grouping*>);
35 void add_child(Moment start, Moment len);
36 bool child_fit_query(Moment start);
37 void split(Rhythmic_grouping r);
38 void split(Array<MInterval>);
44 Array<int> generate_beams(Array<int>, int&);
46 /// multiply self to span #i#
47 void extend(MInterval i);
48 void translate(Moment);
52 void copy(Rhythmic_grouping const&);
55 this is a tree. It groupes notes according to rules