/*
- 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.
+
+ TODO:
+
+ add support for multiple fontsizes
+ split into "Input_paper_def" and Paper_def
+
+ add support for other len->wid conversions.
+ Input_engraver should be in here.
*/
class Paper_def {
Lookup *lookup_p_;
-public:
- String outfile;
-
- Real linewidth;
-
- /// how much space does a whole note take (ideally?)
- Real whole_width;
+ 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;
- const Lookup* lookup_l(); // TODO naming
+
+ Lookup const * lookup_l(); // TODO naming
+
+ /** convert a duration to an idealspacing
+ influence using the geometric_ and parameters.
+ */
Real duration_to_dist(Moment);
};