From: fred Date: Mon, 11 Nov 1996 23:13:49 +0000 (+0000) Subject: lilypond-0.0.9 X-Git-Tag: release/1.5.59~6840 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ef1b75b0cb4a09baa22fbfd6e9ac811a63a308f1;p=lilypond.git lilypond-0.0.9 --- diff --git a/src/paper.cc b/src/paper.cc new file mode 100644 index 0000000000..8cd98339d4 --- /dev/null +++ b/src/paper.cc @@ -0,0 +1,82 @@ +#include + +#include "paper.hh" +#include "debug.hh" +#include "lookup.hh" +#include "dimen.hh" +#include "textdb.hh" + +double log2(double x) { + return log(x) /log(2.0); +} + + +// golden ratio +const Real PHI = (1+sqrt(5))/2; + +// see Roelofs, p. 57 +Real +Paperdef::duration_to_dist(Real d) +{ + return whole_width * pow(geometric_, log2(d)); +} +Real +Paperdef::rule_thickness()const +{ + return convert_dimen(0.4, "pt"); +} +Paperdef::Paperdef() +{ + lookup_ = new Lookup(); + parse(); + linewidth = convert_dimen(15,"cm"); // in cm for now + whole_width= 8*note_width(); + geometric_ = PHI; +} + +void +Paperdef::parse() +{ + Text_db symini("symbol.ini"); + + + while (!symini.eof()) { + + Text_record r( symini++); + + if (r[0] == "symboltables") + lookup_->parse(symini); + } +} + +Paperdef::~Paperdef() +{ + delete lookup_; +} + +Real +Paperdef::interline() const +{ + return lookup_->ball(4).dim.y.length(); +} +Real +Paperdef::note_width()const +{ + return lookup_->ball(4).dim.x.length( ); +} +Real +Paperdef::standard_height() const +{ + return convert_dimen(20,"pt"); +} + +void +Paperdef::print() const +{ +#ifndef NPRINT + mtor << "Paper {width: " << print_dimen(linewidth); + mtor << "whole: " << print_dimen(whole_width); + mtor << "out: " <