anchor.diff:  ;;; License along with this library; if not, write to the 
   ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
   ;;; Boston, MA  02111-1307  USA.
  +
  +;;;; Changes
  +
  +;;;  When        Who    What
  +;;; --------------------------------------------------------------------------------------
  +;;;  2001-01-21  GB     fixed bug in (TRANSFORM-REGION T RECTANGLE-SET)
  +;;;                     added some documentation
   
   ;;; ---- TODO ----------------------------------------------------------------------------
   
  
positive.code: ;;; ---- Rectangle Sets ---------------------------------------------------------------------------------
  
  (defclass standard-rectangle-set (region-set bounding-rectangle)
    ((bands :initarg :bands :reader standard-rectangle-set-bands)
     (bounding-rectangle :initform nil)))
  
  (defmethod map-over-region-set-regions (fun (self standard-rectangle-set) &key normalize)
    (with-slots (bands) self
  
negative.code: 
  (defmethod transform-region (tr (self standard-rectangle-set))
    (cond ((rectilinear-transformation-p tr)
           ;; When we have a rectilinear transformation, the result will
           ;; be another rectangle set; we simply can transform each X
           ;; and Y coordinate individually.
           (make-standard-rectangle-set
  	  (mapcar (lambda (band)
                      ;; band = (<y> <x1> <x2> .. <xn>)
                      (cons (nth-value 1 (transform-position tr 0 (car band)))
                            (mapcar (lambda (x)
                                      (nth-value 0 (transform-position tr x 0)))
                                    (cdr band))))
                    (standard-rectangle-set-bands self))))
          (t
           ;; We have insufficient knowledge about the transformation,
           ;; so we have to take the union of all transformed rectangles.
           ;; Maybe there is a faster way to do this.
           (let ((res +nowhere+))
             (map-over-region-set-regions
  	    (lambda (rect)
  	      (setf res (region-union res (transform-region tr rect))))
  	    self)
             res)) ))
  
  