2 molecule.cc -- implement Molecule
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
12 #include "molecule.hh"
18 Molecule::TeX_string() const
21 for (iter_top (ats,c); c.ok(); c++)
27 Molecule::extent() const
30 for (iter_top (ats,c); c.ok(); c++)
31 b.unite (c->extent());
36 Molecule::translate (Offset o)
38 for (iter_top (ats,c); c.ok(); c++)
43 Molecule::translate (Real x,Axis a)
45 for (iter_top (ats,c); c.ok(); c++)
50 Molecule::add (Molecule const &m)
52 for (iter_top (m.ats,c); c.ok(); c++)
59 Molecule::add_right (Molecule const &m)
66 Real xof=extent().x ().right - m.extent ().x ().left;
70 toadd.translate (Offset (xof, 0.0));
75 Molecule::add_left (Molecule const &m)
82 Real xof=extent().x ().left - m.extent ().x ().right;
85 toadd.translate (Offset (xof, 0.0));
91 Molecule::add_top (Molecule const &m)
98 Real yof=extent().y ().right - m.extent ().y ().left;
101 toadd.translate (yof, Y_AXIS);
106 Molecule::add_bottom (Molecule const &m)
113 Real yof=extent().y ().left- m.extent ().y ().right;
115 toadd.translate (yof, Y_AXIS);
120 Molecule::operator = (Molecule const &)
125 Molecule::Molecule (Molecule const &s)
131 Molecule::print() const
136 for (iter_top (ats,c); c.ok(); c++)
142 Molecule::add (Atom const &a)
144 ats.bottom().add (new Atom (a));