]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/molecule.hh
release: 0.1.7
[lilypond.git] / lily / include / molecule.hh
1 #ifndef MOLECULE_HH
2 #define MOLECULE_HH
3
4 #include "lily-proto.hh"
5 #include "plist.hh"
6 #include "boxes.hh"
7
8
9 /** a group of individually translated symbols. You can add molecules
10     to the top, to the right, etc.  */
11 struct Molecule {
12     Pointer_list<Atom*> ats;    // change to List<Atom>? 
13
14     /* *************** */
15     
16     Molecule() { }
17     Molecule(Atom const &a) { add(a) ;}
18
19     void add_right(const Molecule &m);
20     void add_left(const Molecule &m);
21     void add_top(const Molecule &m);
22     void add_bottom(const Molecule &m);
23     void add(Molecule const &m);
24     void translate(Offset);
25     void translate(Real,Axis);
26     void add(Atom const & a) ;
27     /// how big is #this#? 
28     Box extent() const;
29
30     String TeX_string() const;
31
32     Molecule(const Molecule&s);
33     void print() const;
34 private:
35     void operator=(const Molecule&);
36 };
37 #endif