2006-02-19 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scm/stencil.scm (annotate-y-interval): use it.
+
+ * scm/lily-library.scm (interval-sane?): new function.
+
* buildscripts/mf-to-table.py (Char_metric.__init__): remove
tfm_checksum stuff.
(cons (cons (car coords) (cadr coords))
(ly:list->offsets accum (cddr coords)))))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; intervals
+
(define-public (interval-length x)
"Length of the number-pair X, when an interval"
(max 0 (- (cdr x) (car x))))
(cons (min (car i1) (car i2))
(max (cdr i1) (cdr i2))))
+(define-public (interval-sane? i)
+ (not (or (nan? (car i))
+ (inf? (car i))
+ (nan? (cdr i))
+ (inf? (cdr i)))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+
+
(define-public (write-me message x)
"Return X. Display MESSAGE and write X. Handy for debugging,
possibly turned off."
;; spacing variables
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define-public (annotate-y-interval layout name extent is-length?)
+(define-public (annotate-y-interval layout name extent is-length)
;; do something sensible for 0,0 intervals.
(set! extent (interval-widen extent 0.001))
(let*
(make-whiteout-markup (make-simple-markup name))
(make-whiteout-markup
(make-simple-markup
- (if is-length?
- (format "~$" (interval-length extent))
- (format "(~$,~$)" (car extent)
- (cdr extent)))))))))
+ (begin
+ (display extent)
+ (cond
+ ((interval-empty? extent) "empty")
+ ((not (interval-sane? extent)) "insane")
+ (is-length (format "~$" (interval-length extent)))
+ (else
+ (format "(~$,~$)" (car extent)
+ (cdr extent)))))))))))
(arrows
(ly:stencil-translate-axis
(dimension-arrows (cons 0 (interval-length extent)))