empty-stencil
(fold
(lambda (next padding front)
- (ly:stencil-stack front axis dir next padding))
+ (let ((offset (+ (- (interval-end (ly:stencil-extent front axis))
+ (interval-start (ly:stencil-extent next axis)))
+ padding)))
+ (ly:stencil-add
+ front
+ (ly:stencil-translate-axis next offset axis))))
(car stils)
(cdr stils)
paddings)))
(interval-widen xext (/ width 2))
(interval-widen yext (/ width 2)))))
+(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))
(define-public (make-filled-box-stencil xext yext)
"Make a filled box."
\n((0.0 . 2) (PI/2 . 3) (PI . -2) (3*PI/2 . -3)\
\n(2*PI . 2) (5*PI/2 . 3) (3*PI . -2) (7*PI/2 . -3))
"
- (apply append
- (map (lambda (adder)
- (map (lambda (quadrant)
- (cons (+ adder (car quadrant))
- (cdr quadrant)))
- `((0.0 . (,x-radius . 0.0))
- (,PI-OVER-TWO . (0.0 . ,y-radius))
- (,PI . (,(- x-radius) . 0.0))
- (,THREE-PI-OVER-TWO . (0.0 . ,(- y-radius))))))
- `(0.0 ,TWO-PI))))
+ (append-map
+ (lambda (adder)
+ (map (lambda (quadrant)
+ (cons (+ adder (car quadrant))
+ (cdr quadrant)))
+ `((0.0 . (,x-radius . 0.0))
+ (,PI-OVER-TWO . (0.0 . ,y-radius))
+ (,PI . (,(- x-radius) . 0.0))
+ (,THREE-PI-OVER-TWO . (0.0 . ,(- y-radius))))))
+ `(0.0 ,TWO-PI)))
(define
(insert-in-ordered-list ordering-function value inlist cutl? cutr?)
"
(reduce min-max
(if (eq? min-max min) 100000 -100000)
- (map (lambda (x) (side x)) l)))
+ (map side l)))
(let*
(;; the outside limit of the x-radius
x))
pointlist))
;; a path must begin with a `moveto'
- (prepend-origin (apply list (cons 'moveto origin) path))
+ (prepend-origin (cons (cons 'moveto origin) path))
;; if this path is connected, add closepath to the end
(final-path (if connect
- (append prepend-origin (list 'closepath))
+ (append prepend-origin (list '(closepath)))
prepend-origin))
- (command-list (fold-right append '() final-path)))
+ (command-list (concatenate final-path)))
(ly:make-stencil
`(path ,thickness
`(,@',command-list)
(null (cons 0 0))
(arrow-1
(ly:make-stencil
- `(polygon (quote ,(concatenate (map complex-to-offset p1s)))
+ `(polygon (quote ,(append-map complex-to-offset p1s))
0.0
#t) null null))
(arrow-2
(ly:make-stencil
- `(polygon (quote ,(concatenate (map complex-to-offset p2s)))
+ `(polygon (quote ,(append-map complex-to-offset p2s))
0.0
#t) null null ) )
(thickness (min (/ distance 12) 0.1))