return convert_dimen(dim.fvalue(), unit);
}
-const Real CM_TO_PT=72/2.54;
Real
convert_dimen(Real quant, String unit)
if (unit == "mm")
return quant*CM_TO_PT/10;
if (unit == "in")
- return quant * 72;
+ return quant * INCH_TO_PT;
error ("unknown length unit: `" + unit+"'");
}
return s;
}
-/****************/
+/* *************** */
Real
Lookup::internote()
return ret;
}
-
+Symbol
+Lookup::hairpin(Real &wid, bool decresc)
+{
+ int idx = rint(wid / 6 PT);
+ if(!idx) idx ++;
+ wid = idx*6 PT;
+ String idxstr = (decresc)? "decrescendosym" : "crescendosym";
+ Symbol ret=(*symtables_)("param")->lookup(idxstr);
+
+ Array<String> a;
+ a.push(idx);
+ ret.tex = substitute_args(ret.tex, a);
+ ret.dim.x = Interval(0,wid);
+ return ret;
+}
Symbol
Lookup::linestaff(int lines, Real wid)
Lookup::meter(Array<Scalar> a)
{
Symbol s;
- s.dim.x = Interval( convert_dimen(0,"pt"),
- convert_dimen(10,"pt"));
- s.dim.y = Interval(0, convert_dimen(20,"pt") ); // todo
+ s.dim.x = Interval( 0 PT, 10 PT);
+ s.dim.y = Interval(0, 20 PT); // todo
String src = (*symtables_)("param")->lookup("meter").tex;
s.tex = substitute_args(src,a);
return s;