X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fstencil.scm;h=0fa79d4161376d45f61b0bc1232fc3abcbb4eda5;hb=2b8ee231c92ec9f728adae7e48a3e0ddb1a8b22f;hp=bda7e29a8f204aeb3d4fc3bce2670b1a4c90917a;hpb=8211950f0931c4d8a0e18ee9e436e489bd583dbd;p=lilypond.git diff --git a/scm/stencil.scm b/scm/stencil.scm index bda7e29a8f..0fa79d4161 100644 --- a/scm/stencil.scm +++ b/scm/stencil.scm @@ -238,10 +238,7 @@ the more angular the shape of the parenthesis." (define-public (make-transparent-box-stencil xext yext) "Make a transparent box." - (ly:make-stencil - (list 'transparent-stencil - (ly:stencil-expr (make-filled-box-stencil xext yext))) - xext yext)) + (ly:stencil-outline empty-stencil (make-filled-box-stencil xext yext))) (define-public (make-filled-box-stencil xext yext) "Make a filled box." @@ -751,21 +748,18 @@ of the white stencil we make between 0 and 2*pi." (begin (ly:warning "Both angle-increments and radial-increments must be positive numbers.") stil) - (let* ((2pi 6.283185307) - (angle-inc (/ 2pi angle-increments)) + (let* ((angle-inc (/ 360 angle-increments)) (radial-inc (/ thickness radial-increments))) (define (circle-plot ang dec radius original-stil new-stil) - ;; ang (angle) and dec (decrement) are in radians, not degrees + ;; ang (angle) and dec (decrement) are in degrees, not radians (if (<= ang 0) new-stil (circle-plot (- ang dec) dec radius original-stil (ly:stencil-add new-stil (ly:stencil-translate original-stil - (cons - (* radius (cos ang)) - (* radius (sin ang)))))))) + (ly:directed ang radius)))))) (define (radial-plot radius original-stil new-stil) (if (<= radius 0) @@ -774,7 +768,7 @@ of the white stencil we make between 0 and 2*pi." (radial-plot (- radius radial-inc) original-stil - (circle-plot 2pi angle-inc + (circle-plot 360 angle-inc radius original-stil empty-stencil))))) (let ((whiteout-expr @@ -1132,8 +1126,11 @@ grestore ((eq? head 'color) (interpret (caddr expr))) ((eq? head 'rotate-stencil) (interpret (caddr expr))) ((eq? head 'translate-stencil) (interpret (caddr expr))) + ;; for signatures, we indeed want the _outline_ rather than + ;; the expression interpreted. Right? + ((eq? head 'with-outline) (interpret (cadr expr))) ((eq? head 'combine-stencil) - (for-each (lambda (e) (interpret e)) (cdr expr))) + (for-each interpret (cdr expr))) (else (collect (fold-false-pairs (strip-floats expr))))