anchor.diff:                              (labelling (:label "X Scale")
                                 x-scale)
                               (labelling (:label "Theta")
  -                              theta)))))
  +                              theta)
  +                            (labelling (:label "Y Shear")
  +                              y-shear)
  +                            (labelling (:label "X Shear")
  +                              x-shear)
  +                            reset-button))))
                 (1/5 interactor)))))
   
   (defun reset-sliders ()
     (let ((y-scale-slider (find-pane-named *application-frame* 'y-scale))
           (x-scale-slider (find-pane-named *application-frame* 'x-scale))
  -        (theta-slider (find-pane-named *application-frame* 'theta)))
  +        (theta-slider (find-pane-named *application-frame* 'theta))
  +        (y-shear-slider (find-pane-named *application-frame* 'y-shear))
  +        (x-shear-slider (find-pane-named *application-frame* 'x-shear)))
       (setf (gadget-value y-scale-slider) 1.0d0)
       (setf (gadget-value x-scale-slider) 1.0d0)
  +    (setf (gadget-value y-shear-slider) 0.0d0)
  +    (setf (gadget-value x-shear-slider) 0.0d0)
       (setf (gadget-value theta-slider) 0.0d0)))
  +
  +(defun reset-transform-parameters (transform-parameters)
  +  (setf (elt transform-parameters 0) 1d0
  +        (elt transform-parameters 1) 1d0
  +        (elt transform-parameters 4) 0d0
  +        (elt transform-parameters 5) 0d0
  +        (elt transform-parameters 6) 0d0))
   
   (defun opticl-image-to-climi-rgb-pattern (image)
     (etypecase image
  
positive.code:                      (transform-parameters transform-parameters)
                       (transform transform))
          viewer
        (let ((rads (mod (* pi degrees (/ 180)) (* 2 pi))))
          (unless (equal (seventh transform-parameters) rads)
            (setf (seventh transform-parameters) rads
                  transform nil))))
      (handle-repaint viewer (sheet-region viewer))))
  
  (defun y-scale-callback (gadget scale)
    (declare (ignore gadget))
    (let ((viewer (find-pane-named *application-frame* 'viewer)))
      (with-accessors ((image gadget-value)
                       (transform-parameters transform-parameters)
                       (transform transform))
          viewer
        (unless (equal (first transform-parameters) scale)
          (setf (first transform-parameters) scale
                transform nil)))
      (handle-repaint viewer (sheet-region viewer))))
  
  (defun x-scale-callback (gadget scale)
    (declare (ignore gadget))
    (let ((viewer (find-pane-named *application-frame* 'viewer)))
      (with-accessors ((image gadget-value)
                       (transform-parameters transform-parameters)
                       (transform transform))
          viewer
        (unless (equal (second transform-parameters) scale)
          (setf (second transform-parameters) scale
                transform nil)))
      (handle-repaint viewer (sheet-region viewer))))
  
  (define-application-frame spectacle ()
    ()
  
negative.code: 
  (defclass spectacle-pane (spectacle-gadget basic-gadget) ())
  
  (defun y-scale-callback (gadget scale)
    (declare (ignore gadget))
    (let ((viewer (find-pane-named *application-frame* 'viewer)))
      (with-accessors ((image gadget-value)
                       (transform-parameters transform-parameters)
                       (transform transform))
          viewer
        (let ((param 0))
          (unless (equal (elt transform-parameters param) scale)
            (setf (elt transform-parameters param) scale
                  transform nil))))
      (handle-repaint viewer (sheet-region viewer))))
  
  (defun x-scale-callback (gadget scale)
    (declare (ignore gadget))
    (let ((viewer (find-pane-named *application-frame* 'viewer)))
      (with-accessors ((image gadget-value)
                       (transform-parameters transform-parameters)
                       (transform transform))
          viewer
        (let ((param 1))
          (unless (equal (elt transform-parameters param) scale)
            (setf (elt transform-parameters param) scale
                  transform nil))))
      (handle-repaint viewer (sheet-region viewer))))
  
  (defun theta-callback (gadget degrees)
    (declare (ignore gadget))
    (let ((viewer (find-pane-named *application-frame* 'viewer)))
  