]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.31
authorfred <fred>
Sun, 24 Mar 2002 19:31:27 +0000 (19:31 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:31:27 +0000 (19:31 +0000)
27 files changed:
hdr/inputstaff.hh
hdr/lookup.hh
hdr/paperdef.hh [new file with mode: 0644]
src/bar.cc
src/beam.cc
src/break.cc
src/calcideal.cc
src/clefitem.cc
src/complexprint.cc
src/headreg.cc
src/inputscore.cc
src/keyitem.cc
src/localkeyitem.cc
src/lyricitem.cc
src/meter.cc
src/paperdef.cc [new file with mode: 0644]
src/pscore.cc
src/rest.cc
src/scoreline.cc
src/script.cc
src/slur.cc
src/staffline.cc
src/staffsym.cc
src/stem.cc
src/textdef.cc
src/textitem.cc
src/textspanner.cc

index c1252ad01d21df2d0bf716f67e32c22ca2a95830..cc9f823885b06a8c4fc26ef87737b5faaea47528 100644 (file)
@@ -14,7 +14,7 @@
 
 struct Input_staff {
     
-    /// defined where?    
+
     const char * defined_ch_c_l_;
     String type;
     IPointerList<Input_command*> commands_;
index 540bf664f7eb2160100604d7c88fd8087d147e28..28bd8677eac7df8026d1ffe57939d7844317f385 100644 (file)
@@ -8,6 +8,7 @@
 #include "fproto.hh"
 #include "scalar.hh"
 
+/// intuitive interface to symbol table
 struct Lookup {
     Symtables *symtables_;
     String texsetting;
diff --git a/hdr/paperdef.hh b/hdr/paperdef.hh
new file mode 100644 (file)
index 0000000..03abf6a
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+  paperdef.hh -- declare 
+
+  source file of the LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef PAPERDEF_HH
+#define PAPERDEF_HH
+#include "proto.hh"
+#include "real.hh"
+#include "string.hh"
+#include "moment.hh"
+
+
+/** symbols, dimensions and constants
+
+  This struct takes care of all kinds of symbols, dimensions and
+ constants. Most of them are related to the point-size of the fonts,
+ so therefore, the lookup table for symbols is also in here.
+
+ see TODO
+ */
+struct Paperdef {
+    Lookup *lookup_p_;
+    String outfile;
+
+    Real linewidth;
+
+    /// how much space does a whole note take (ideally?)
+    Real whole_width;
+
+    /// ideal = geometric_ ^ log2(duration)
+    Real geometric_;
+    
+    /* *************** */
+    void reinit();
+    Paperdef(Lookup*);
+    void set(Lookup*);
+    ~Paperdef();
+    Paperdef(Paperdef const&);
+    Real interline()const;
+    Real internote()const;
+    Real rule_thickness()const;
+    Real standard_height()const;
+    Real note_width() const;
+    void print() const;
+    Real duration_to_dist(Moment);
+};
+
+#endif // PAPERDEF_HH
+
index 4b3a0716eb37f8b9689223212def5791c22ed2b6..4f26d2531024667eb2dd63d4c7ed59eaa6b87152 100644 (file)
@@ -1,7 +1,7 @@
 #include "bar.hh"
 #include "string.hh"
 #include "molecule.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 
 NAME_METHOD(Bar);
index f31a15d0172330f30a79cd402475d59556f8ef43..44d51e0af9215ba967c7e933a96b3f5891af9a7a 100644 (file)
@@ -9,7 +9,7 @@
 #include "leastsquares.hh"
 #include "pcol.hh"
 #include "stem.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "grouping.hh"
 
index 70ff864e9de23b1d46e70b00432e411cdfa967ce..576bf4c67a3d7c30ecc37751e09f79fdd8670e19 100644 (file)
@@ -2,7 +2,7 @@
     do calculations for breaking problem    
     */
 #include "break.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "linespace.hh"
 #include "debug.hh"
 #include "scoreline.hh"
index 7ec06433e9883e60663e4b4bc97226e7b7a8481f..79db657588e043ef0a1eb93c6f1bfd7813d5a5ea 100644 (file)
@@ -1,9 +1,8 @@
 #include "idealspacing.hh"
 #include "score.hh"
 #include "pscore.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "sccol.hh"
-//#include "debug.hh"
 #include "dimen.hh"
 
 
@@ -31,7 +30,8 @@ Score::calc_idealspacing()
                
                while (j->when() < d + i->when())
                    j++;
-               assert( j->when()== d+i->when());
+               Moment delta_desired = j->when() - (d+i->when());
+               dist += paper_p_->duration_to_dist(delta_desired);
                
                pscore_p_->connect(i->pcol_l_, j->pcol_l_, dist, strength);
            }
index 0e0054acd34e4821793affad8737c2039f0b939f..30703026daf4642fa2aff007bdc23b4d43f21677 100644 (file)
@@ -1,7 +1,7 @@
 #include "clefitem.hh"
 #include "string.hh"
 #include "molecule.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "clef.hh"
 
index ec38b575e1d5b79784663a674d25d6065c69b043..6abe7659d2373239b0433566b1ef462ef1a86599 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "request.hh"
 #include "pscore.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "complexstaff.hh"
 #include "sccol.hh"
 #include "debug.hh"
index ecb24074fdaea66ee5c764257b747254292178ef..94ad2291e19e04785b31c3e29066176f60bf2eaa 100644 (file)
@@ -6,7 +6,7 @@
 #include "rest.hh"
 #include "notehead.hh"
 #include "headreg.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "complexwalker.hh"
 
 
index cb9086b1a3ebcc313fd70ec10a93d8c13f567aa8..764c8e8509ff8116ca8f55a95044077b7462124d 100644 (file)
@@ -3,7 +3,7 @@
 #include "inputscore.hh"
 #include "inputstaff.hh"
 #include "score.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "staff.hh"
 
 void
index 85bf74c620b00e4795a3673181875d3b43df57b3..22cf0e6d01a885827ccc0844bfb6d6b014b0ca6d 100644 (file)
@@ -2,7 +2,7 @@
 #include "key.hh"
 #include "debug.hh"
 #include "molecule.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "clef.hh"
 
index 6fa9b1dfe3162cb6a8aba97f76a6e5ad5beb2733..fb288b76a7d2cb0bba3c054a531de4425980f40e 100644 (file)
@@ -2,7 +2,7 @@
 #include "molecule.hh"
 #include "scalar.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "request.hh"
 #include "notehead.hh"
 
index 81b61552c54f65a2bed8756043fb302e45d3bdc0..5b290d3634aea6503ff1f2602a5e40bbef623a87 100644 (file)
@@ -1,5 +1,5 @@
 #include "request.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lyricitem.hh"
 #include "stem.hh"
 #include "molecule.hh"
index bd3f763c006274861add735a6476d8f91432948d..8c4af238188dfbc5017d4add2a7994593398fe4f 100644 (file)
@@ -1,7 +1,7 @@
 #include "scalar.hh"
 #include "molecule.hh"
 #include "meter.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 NAME_METHOD(Meter);
 Meter::Meter(Array<Scalar>a)
diff --git a/src/paperdef.cc b/src/paperdef.cc
new file mode 100644 (file)
index 0000000..21cc42f
--- /dev/null
@@ -0,0 +1,89 @@
+#include <math.h>
+#include "misc.hh"
+#include "paperdef.hh"
+#include "debug.hh"
+#include "lookup.hh"
+#include "dimen.hh"
+
+
+
+// golden ratio
+const Real PHI = (1+sqrt(5))/2;
+
+// see  Roelofs, p. 57
+Real
+Paperdef::duration_to_dist(Moment d)
+{
+    if (!d)
+       return 0;
+    
+    return whole_width * pow(geometric_, log_2(d));
+}
+
+Real
+Paperdef::rule_thickness()const
+{
+    return 0.4 PT;
+}
+
+Paperdef::Paperdef(Lookup *l)
+{
+    lookup_p_ = l;
+    linewidth = 15 *CM_TO_PT;          // in cm for now
+    whole_width = 8 * note_width();
+    geometric_ = sqrt(2);
+}
+
+Paperdef::~Paperdef()
+{
+    delete lookup_p_;
+}
+Paperdef::Paperdef(Paperdef const&s)
+{
+    lookup_p_ = new Lookup(*s.lookup_p_);
+    geometric_ = s.geometric_;
+    whole_width = s.whole_width;
+    outfile = s.outfile;
+    linewidth = s.linewidth;
+}
+
+void
+Paperdef::set(Lookup*l)
+{
+    assert(l != lookup_p_);
+    delete lookup_p_;
+    lookup_p_ = l;
+}
+
+Real
+Paperdef::interline() const
+{
+    return lookup_p_->ball(4).dim.y.length();
+}
+
+Real
+Paperdef::internote() const
+{
+    return lookup_p_->internote();
+}
+Real
+Paperdef::note_width()const
+{
+    return lookup_p_->ball(4).dim.x.length( );
+}
+Real
+Paperdef::standard_height() const
+{
+    return 20 PT;
+}
+
+void
+Paperdef::print() const
+{
+#ifndef NPRINT
+    mtor << "Paper {width: " << print_dimen(linewidth);
+    mtor << "whole: " << print_dimen(whole_width);
+    mtor << "out: " <<outfile;
+    mtor << "}\n";
+#endif
+}
index a022f5e087a710b2fedce5ad9e8cbc526c19cf60..34f0e09c28bf466e8074a407ff71a8f260c204e6 100644 (file)
@@ -2,7 +2,7 @@
 #include "debug.hh"
 #include "lookup.hh"
 #include "spanner.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "molecule.hh"
 #include "dimen.hh"
 #include "scoreline.hh"
index b8d30654154f1f876b06a61f571e8f75ed31fe16..e334d17bac332f03144588b45f5ac1bb6e3726d9 100644 (file)
@@ -1,7 +1,7 @@
 #include "rest.hh"
 #include "dimen.hh" 
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "molecule.hh"
 
index ed28c5b543a9cf85705fb3a9d98b0b15aff6aadb..505d7e79cf034c218731d5244c76aecc9b0f7380 100644 (file)
@@ -3,7 +3,7 @@
 #include "dimen.hh"
 #include "spanner.hh"
 #include "symbol.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "pcol.hh"
 #include "pscore.hh"
 
index 4b1ae191d04008c06a32d21b63dbde9ea3b88695..6316baad54b4d27bfe7080884d845f2f28422f08 100644 (file)
@@ -1,5 +1,5 @@
 #include "request.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "script.hh"
 #include "stem.hh"
 #include "molecule.hh"
index 856ca990352b46f0c5af5c180812eed76f1b5ca6..386b178a200ed67f0eaf5c0f5ce94b011e89ed3c 100644 (file)
@@ -6,7 +6,7 @@
 #include "slur.hh"
 #include "scalar.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "notehead.hh"
 #include "pcol.hh"
 #include "molecule.hh"
index a7fcbbeb01216643b6e80e47bf98008a3ba36cf8..7b79f09212adfd93a9e18166c8977288a17b9b16 100644 (file)
@@ -3,7 +3,7 @@
 #include "dimen.hh"
 #include "spanner.hh"
 #include "symbol.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "molecule.hh"
 #include "pcol.hh"
 #include "pscore.hh"
index 2e2d9f30665cf9f4953f16e66744e3e95943c7f4..49f559f2e8424f8f640858c5f7e23bd9c5a88414 100644 (file)
@@ -7,7 +7,7 @@
 */
 #include "staffsym.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "debug.hh"
 
 NAME_METHOD(Staff_symbol);
index dc63e9e7eb8bc61270249380c672ea5ce1e321b2..2a1f99e21a8adfffb1e7b88b0c4fdf216a264a15 100644 (file)
@@ -1,7 +1,7 @@
 #include "stem.hh"
 #include "dimen.hh" 
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "notehead.hh"
 #include "lookup.hh"
 #include "molecule.hh"
index 5dd44d91a15aede8a1c571e7c14e93a994fade08..09fb2257a10c164b7c7811921d29e416607b86c6 100644 (file)
@@ -1,6 +1,6 @@
 #include "debug.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "molecule.hh"
 #include "textdef.hh"
 
index 13790d740e51eed555e9ae60e613d607afa1ea08..c9ead7ce03d811a056b38fd57ee34a0bbae8fd28 100644 (file)
@@ -1,5 +1,5 @@
 #include "request.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "textitem.hh"
 #include "stem.hh"
 #include "molecule.hh"
index b6d90cbef4a5fd61b195e5881dc8091b229db46f..8cd1b8ac3f2f9dc2d8d0fb6e1cce4b4f1e691fed 100644 (file)
@@ -3,7 +3,7 @@
 #include "textspanner.hh"
 #include "textdef.hh"
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 
 NAME_METHOD(Text_spanner);