X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdimensions.cc;h=6cdbf449d1554daed77f2b1a5079a5950724d7ee;hb=6e9040684ec18353e138194d7a1d557acf791748;hp=26a5c082e8ae6a69cf4e35af1f78670c4a5c7798;hpb=6dfa9e3be119a27e17be77c6374ada2e173cda3e;p=lilypond.git diff --git a/lily/dimensions.cc b/lily/dimensions.cc index 26a5c082e8..6cdbf449d1 100644 --- a/lily/dimensions.cc +++ b/lily/dimensions.cc @@ -1,16 +1,62 @@ +/* + dimensions.cc -- implement Dimension handling -#include "warn.hh" + source file of the GNU LilyPond music typesetter + + (c) 1997--2005 Han-Wen Nienhuys + +*/ + +#include "lily-guile.hh" #include "dimensions.hh" +#include "warn.hh" + +LY_DEFINE (ly_pt, "ly:pt", + 1, 0, 0, (SCM num), + "@var{num} printer points") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (point_constant + * scm_to_double (num)); +} -String -dimension_str (Real r) +LY_DEFINE (ly_cm, "ly:cm", + 1, 0, 0, (SCM num), + "@var{num} cm") { - String s = to_str (r, "%.3f"); - if (s.index_i ("NaN") != -1) - { - warning (_ ("NaN")); - s = "0.0"; - } - return s; + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (cm_constant + * scm_to_double (num)); } +LY_DEFINE (ly_inch, "ly:inch", + 1, 0, 0, (SCM num), + "@var{num} inches") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (inch_constant + * scm_to_double (num)); +} + +LY_DEFINE (ly_mm, "ly:mm", + 1, 0, 0, (SCM num), + "@var{num} mm") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (mm_constant + * scm_to_double (num)); +} + +LY_DEFINE (ly_bp, "ly:bp", + 1, 0, 0, (SCM num), + "@var{num} bigpoints (1/72th inch)") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (bigpoint_constant + * scm_to_double (num)); +}