2 paper-def.cc -- implement Paper_def
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
13 #include "paper-def.hh"
20 Paper_def::set_var(String s, Real r)
22 real_vars_p_->elem(s) = r;
26 Paper_def::get_var(String s)const
28 if(! real_vars_p_->elt_b(s))
29 error ( "unknown paper variable `" + s+"'");
30 return real_vars_p_->elem(s);
34 Paper_def::linewidth_f() const
36 return get_var("linewidth");
40 Paper_def::duration_to_dist(Moment d)
45 return get_var("unitspace") * pow(get_var("geometric"), log_2(d));
49 Paper_def::Paper_def()
52 real_vars_p_ = new Assoc<String,Real>;
53 outfile_str_ = "lelie.tex";
56 Paper_def::~Paper_def()
62 Paper_def::Paper_def(Paper_def const&s)
64 lookup_p_ = s.lookup_p_? new Lookup(*s.lookup_p_) : 0;
65 lookup_p_->paper_l_ = this;
66 real_vars_p_ = new Assoc<String,Real> (*s.real_vars_p_);
67 outfile_str_ = s.outfile_str_;
71 Paper_def::set(Lookup*l)
73 assert(l != lookup_p_);
76 lookup_p_->paper_l_ = this;
80 Paper_def::interline_f() const
82 return get_var("interline");
87 Paper_def::rule_thickness()const
89 return get_var("rule_thickness");
93 Paper_def::interbeam_f() const
95 return get_var("interbeam");
98 Paper_def::internote_f() const
100 return interline_f() / 2;
104 Paper_def::note_width()const
106 return get_var("notewidth");
110 Paper_def::print() const
114 mtor << "out: " <<outfile_str_;
120 Paper_def::lookup_l()