X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstencil-scheme.cc;h=0e7f0cd8c7012a8da86e1bb185cf0b400feccbce;hb=e90f0536f9be39ada0bef0aeb0d275dec3b2fb5b;hp=c2d9d8e9616a535df7015df57437c6ef2e082ec3;hpb=a8c9e8a7ca320ab0df5fd32e717fd62cd7635ce6;p=lilypond.git diff --git a/lily/stencil-scheme.cc b/lily/stencil-scheme.cc index c2d9d8e961..0e7f0cd8c7 100644 --- a/lily/stencil-scheme.cc +++ b/lily/stencil-scheme.cc @@ -1,9 +1,20 @@ /* - stencil-scheme.cc -- implement Stencil scheme accessors + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2011 Han-Wen Nienhuys - (c) 1997--2009 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ @@ -379,3 +390,20 @@ LY_DEFINE (ly_all_stencil_expressions, "ly:all-stencil-expressions", { return all_stencil_heads (); } + +LY_DEFINE (ly_stencil_scale, "ly:stencil-scale", + 3, 0, 0, (SCM stil, SCM x, SCM y), + "Scale @var{stil} using the horizontal and vertical scaling" + " factors @var{x} and @var{y}.") +{ + Stencil *s = unsmob_stencil (stil); + LY_ASSERT_SMOB (Stencil, stil, 1); + LY_ASSERT_TYPE (scm_is_number, x, 2); + LY_ASSERT_TYPE (scm_is_number, y, 3); + + SCM new_s = s->smobbed_copy (); + Stencil *q = unsmob_stencil (new_s); + + q->scale (scm_to_double (x), scm_to_double (y)); + return new_s; +}