]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/paper-def.hh
release: 0.0.73pre
[lilypond.git] / lily / include / paper-def.hh
index ae557258b082a4eb2ff6a706b08e34a8f2c275bf..d93246dfaffe2d39ba28cd5af413afbc61a6bada 100644 (file)
@@ -1,52 +1,82 @@
 /*
-  paper-def.hh -- declare 
+  paper-def.hh -- declare Paper_def
 
-  source file of the LilyPond music typesetter
+  source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
-#ifndef Paper_def_HH
-#define Paper_def_HH
-#include "proto.hh"
+#ifndef PAPER_DEF_HH
+#define PAPER_DEF_HH
+#include "lily-proto.hh"
+
 #include "real.hh"
 #include "string.hh"
 #include "moment.hh"
 
 
-/** symbols, dimensions and constants
+/** 
+
+  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.
 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 Paper_def {
-    Lookup *lookup_p_;
-    String outfile;
+  TODO: 
+  
+  add support for multiple fontsizes 
+  split into "Input_paper_def" and Paper_def
 
-    Real linewidth;
+  add support for other len->wid conversions.
 
-    /// how much space does a whole note take (ideally?)
-    Real whole_width;
+  Input_engraver should be in here.
+ */
+class Paper_def {
+    Lookup *lookup_p_;
+    Assoc<String, Real> *real_vars_p_;
 
-    /// ideal = geometric_ ^ log2(duration)
-    Real geometric_;
+    Input_engraver * igrav_p_;
+public:    
+    String outfile_str_;
+    
     
     /* *************** */
+    void set_var(String, Real);
+    Real get_var (String)const;
     void reinit();
-    Paper_def(Lookup*);
+    Paper_def();
     void set(Lookup*);
+    void set (Input_engraver * );
+    Global_translator * get_global_translator_p()const;
     ~Paper_def();
     Paper_def(Paper_def const&);
-    Real interline()const;
-    Real internote()const;
+    /// The distance between beams
+    Real interbeam_f()const;
+    /**
+      The distance between lines
+     */
+    Real interline_f()const;
+    /// half the distance between lines
+    Real internote_f()const;
+
+    /// thickness of the standard line 
     Real rule_thickness()const;
+    Real whole_width()const;
+    Real linewidth_f()const;
+    /// height of the staff
     Real standard_height()const;
+
+    /// width of a quaver ball
     Real note_width() const;
     void print() const;
+
+    Lookup const * lookup_l(); // TODO naming
+
+    /** convert a duration to an idealspacing
+      influence using the geometric_ and  parameters.
+      */
     Real duration_to_dist(Moment);
 };