]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.9
authorfred <fred>
Sat, 9 Nov 1996 10:38:04 +0000 (10:38 +0000)
committerfred <fred>
Sat, 9 Nov 1996 10:38:04 +0000 (10:38 +0000)
src/notehead.cc [new file with mode: 0644]
src/rest.cc [new file with mode: 0644]

diff --git a/src/notehead.cc b/src/notehead.cc
new file mode 100644 (file)
index 0000000..a103e69
--- /dev/null
@@ -0,0 +1,65 @@
+#include "notehead.hh"
+#include "dimen.hh" 
+#include "debug.hh"
+#include "paper.hh"
+#include "lookup.hh"
+#include "molecule.hh"
+
+
+Notehead::Notehead(int ss)
+{
+    staff_size=ss;
+    position = 0;
+    balltype = 0;
+    dots = 0;
+}
+
+void
+Notehead::print()const
+{
+    mtor << "Head "<<balltype<<", position = "<< position << "dots " << dots;
+    Item::print();
+}
+
+void
+Notehead::preprocess()
+{
+    brew_molecole();
+}
+
+void
+Notehead::brew_molecole()
+{
+    assert(pstaff_);
+    assert(!output);
+
+    Paperdef *p = paper();
+
+    Real dy = p->interline()/2;
+    Symbol s = p->lookup_->ball(balltype);
+    
+    output = new Molecule(Atom(s));
+    if (dots) {
+       Symbol d = p->lookup_->dots(dots);
+       Molecule dm;
+       dm.add(Atom(d));
+       if (!(position %2))
+           dm.translate(Offset(0,dy));
+       output->add_right(dm);
+    }
+    bool streepjes = (position<-1)||(position > staff_size+1);
+    if (streepjes) {
+       int dir = sgn(position);
+       int s =(position<-1) ? -((-position)/2): (position-staff_size)/2;
+       Symbol str = p->lookup_->streepjes(s);
+       Molecule sm;
+       sm.add(Atom(str));
+       if (position % 2)
+           sm.translate(Offset(0,-dy* dir));
+       output->add(sm);            
+    }
+    
+
+    output->translate(Offset(0,dy*position));
+}
+
diff --git a/src/rest.cc b/src/rest.cc
new file mode 100644 (file)
index 0000000..e448df3
--- /dev/null
@@ -0,0 +1,47 @@
+#include "rest.hh"
+#include "dimen.hh" 
+#include "debug.hh"
+#include "paper.hh"
+#include "lookup.hh"
+#include "molecule.hh"
+
+
+Rest::Rest(int t, int d)
+{
+    balltype = t;
+    dots = d;
+}
+
+void
+Rest::print()const
+{
+    mtor << "Rest "<<balltype<< "dots " << dots;
+    Item::print();
+}
+
+void
+Rest::preprocess()
+{
+    brew_molecole();
+}
+
+void
+Rest::brew_molecole()
+{
+    assert(pstaff_);
+    assert(!output);
+    Paperdef *p =paper();
+
+    Symbol s;
+    s = p->lookup_->rest(balltype);
+    
+    Molecule *m = new Molecule(Atom(s));
+    if (dots) {
+       Symbol d =p->lookup_->dots(dots);
+       Molecule dm;
+       dm.add(Atom(d));
+       m->add_right(dm);
+    }
+    output = m;
+}
+