]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/stencil.scm
Fix docs compilation.
[lilypond.git] / scm / stencil.scm
index baa8fe8ccd626685b0f67e7e4da313a69fc0d1a8..fb46ef7251cf7eef4733eeff09711ced4da1b44a 100644 (file)
 
 (define-public (make-circle-stencil radius thickness fill)
   "Make a circle of radius @var{radius} and thickness @var{thickness}"
+  (let*
+      ((out-radius (+ radius (/ thickness 2.0))))
+    
   (ly:make-stencil
    (list 'circle radius thickness fill) 
-   (cons (- radius) radius)
-   (cons (- radius) radius)))
+   (cons (- out-radius) out-radius)
+   (cons (- out-radius) out-radius))))
 
 (define-public (box-grob-stencil grob)
   "Make a box of exactly the extents of the grob.  The box precisely
@@ -134,11 +137,16 @@ encloses the contents.
 
   (let* ((xext (interval-widen (ly:stencil-extent stencil 0) padding))
         (yext (interval-widen (ly:stencil-extent stencil 1) padding))
+   (min-ext (min (-(cdr xext) (car xext)) (-(cdr yext) (car yext))))
+   (ideal-blot (min blot (/ min-ext 2)))
+   (ideal-thickness (min thickness (/ min-ext 2)))
         (outer (ly:round-filled-box
-                 (interval-widen xext thickness) (interval-widen yext thickness) blot))
-        (inner (ly:make-stencil (list 'color (x11-color 'white) (ly:stencil-expr (ly:round-filled-box 
-       (cons (+ (car xext) thickness) (- (cdr xext) thickness)) 
-       (cons (+ (car yext) thickness) (- (cdr yext) thickness)) (* blot 0.8)))))))
+            (interval-widen xext ideal-thickness) 
+            (interval-widen yext ideal-thickness) 
+               ideal-blot))
+        (inner (ly:make-stencil (list 'color (x11-color 'white) 
+            (ly:stencil-expr (ly:round-filled-box 
+               xext yext (- ideal-blot ideal-thickness)))))))
     (set! stencil (ly:stencil-add outer inner))
     stencil))