From: fred Date: Fri, 2 Aug 1996 18:37:24 +0000 (+0000) Subject: lilypond-0.0.1 X-Git-Tag: release/1.5.59~7216 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=654bc286ac509948179f16867cec5044bb81dc8a;p=lilypond.git lilypond-0.0.1 --- diff --git a/molecule.cc b/molecule.cc new file mode 100644 index 0000000000..96a21b9025 --- /dev/null +++ b/molecule.cc @@ -0,0 +1,87 @@ +#include "glob.hh" +#include "string.hh" +#include "molecule.hh" + +String +Atom::TeXstring() const +{ + // whugh.. Hard coded... + String s("\\raise"); + s+= String(off.y * VERT_TO_PT)+"pt\\hbox to 0pt{\\kern "; + s+=String(off.x * HOR_TO_PT) + "pt" + sym->tex + "\\hss}"; + return s; +} + +/****************************************************************/ + +String +Molecule::TeXstring() const +{ + String s; + for(Cursor c(ats); c.ok(); c++) + s+=(*c).TeXstring(); + return s; +} + +Box +Molecule::extent() const +{ + Box b; + for(Cursor c(ats); c.ok(); c++) + b.unite((*c).extent()); + return b; +} + +void +Molecule::translate(Offset o) +{ + for(Cursor c(ats); c.ok(); c++) + (*c).translate(o); +} + +void +Molecule::add(const Molecule &m) +{ + for (Cursor c(m.ats); c.ok(); c++) { + Atom a(c); + ats.bottom().add(a); + } +} + +void +Molecule::add_right(const Molecule &m) +{ + Real xof=extent().x.max - m.extent().x.min; + Molecule toadd(m); + toadd.translate(Offset(xof, 0.0)); + add(toadd); +} + +void +Molecule::add_left(const Molecule &m) +{ + Real xof=extent().x.min - m.extent().x.max; + Molecule toadd(m); + toadd.translate(Offset(xof, 0.0)); + add(toadd); +} + + +void +Molecule::add_top(const Molecule &m) +{ + Real yof=extent().y.max - m.extent().y.min; + Molecule toadd(m); + toadd.translate(Offset(0,yof)); + add(toadd); +} + +void +Molecule::add_bot(const Molecule &m) +{ + Real yof=extent().y.min- m.extent().y.max; + Molecule toadd(m); + toadd.translate(Offset(0,yof)); + add(toadd); +} +