(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
(ideal-blot (min blot (/ min-ext 2)))
(ideal-thickness (min thickness (/ min-ext 2)))
(outer (ly:round-filled-box
- (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
- (cons (+ (car xext) ideal-thickness) (- (cdr xext) ideal-thickness))
- (cons (+ (car yext) ideal-thickness) (- (cdr yext) ideal-thickness))
- (- ideal-blot (* ideal-thickness 2))))))))
+ (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))