X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=scm%2Fclip-region.scm;h=890cb657e3d263af8042a3e10e64e5e3d376919b;hb=f2e629583f8d29395eacb6a43cbe5798dd3616f3;hp=1c0a6409ba65d5bc0ceb57c91d04082d7c35c597;hpb=a82dc4a0cca57f285e818f6c227c8428a3c02a71;p=lilypond.git diff --git a/scm/clip-region.scm b/scm/clip-region.scm index 1c0a6409ba..890cb657e3 100644 --- a/scm/clip-region.scm +++ b/scm/clip-region.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 2006--2010 Han-Wen Nienhuys +;;;; Copyright (C) 2006--2012 Han-Wen Nienhuys ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -26,15 +26,15 @@ ;; ;; ;; (define-public (make-rhythmic-location bar-num num den) -;: (define-public (rhythmic-location? a) +;; (define-public (rhythmic-location? a) ;; (define-public (make-graceless-rhythmic-location loc) ;; (define-public rhythmic-location-measure-position cdr) ;; (define-public rhythmic-location-bar-number car) ;; (define-public (rhythmic-location=? a b) +;; (define-public (rhythmic-location<=? a b) +;; (define-public (rhythmic-location>=? a b) ;; (define-public (rhythmic-location>? a b) -;: (define-public (rhythmic-location=? a b) +;; (define-public (rhythmic-location=? a b) ;; (define-public (rhythmic-location->file-string a) ;; (define-public (rhythmic-location->string a) @@ -45,20 +45,20 @@ ;; ;; the total of this will be ;; O(#systems * #regions) -;; +;; ;; we can actually do better by sorting the regions as well, ;; but let's leave that for future extensions. ;; (define-public (system-clipped-x-extent system-grob clip-region) - "Return the X-extent of the SYSTEM-GROB when clipped with -CLIP-REGION. Return #f if not appropriate." - + "Return the X-extent of @var{system-grob} when clipped with +@var{clip-region}. Return @code{#f} if not appropriate." + (let* ((region-start (car clip-region)) (columns (ly:grob-object system-grob 'columns)) (region-end (cdr clip-region)) (found-grace-end #f) - (candidate-columns + (candidate-columns (filter (lambda (j) (let* @@ -66,7 +66,7 @@ CLIP-REGION. Return #f if not appropriate." (loc (ly:grob-property column 'rhythmic-location)) (grace-less (make-graceless-rhythmic-location loc)) ) - + (and (rhythmic-location? loc) (rhythmic-location<=? region-start loc) (or (rhythmic-location= 1 (length candidate-columns)) #f @@ -95,16 +95,16 @@ CLIP-REGION. Return #f if not appropriate." system-grob (ly:grob-array-ref columns (car column-range))) system-grob X)) - + (interval-end (ly:grob-robust-relative-extent (if (= (1- (ly:grob-array-length columns)) (cdr column-range)) system-grob (ly:grob-array-ref columns (cdr column-range))) system-grob X))) - - + + #f ))) - + clipped-x-interval))