anchor.diff:  (defparameter *pov-indent-width* 3) ;; as used in povray.org docs
   
   ;; Convert something to a POV-ray object
  -(defgeneric pov-object (object))
   
   (defmacro with-pov-indent (old-indent &body body)
     `(let* ((,old-indent *pov-indent*)
  
positive.code:                      (vec-y elements)
                       (vec-z elements)))
  
  
  (defmethod pov-object ((object vec3))
    (with-vec3 (x y z) object
      (%pov-float-vector x z y)))
  
  (defun pov-float-vector-right (elements)
    (pov-object (vec3* (vec-x elements)
                       (vec-y elements)
                       (vec-z elements))))
  
  
  (defun pov-integer-vector (elements)
    (apply #'%pov-integer-vector elements))
  
  (defmethod print-object ((object pov-float-vector) stream)
    (format stream "~&~A<~F, ~F, ~F>"
  
negative.code:   (y 0d0 :type double-float)
    (z 0d0 :type double-float))
  
  (defstruct pov-matrix
    elements)
  
  (defun pov-matrix (tf)
    (let* ((matrix (amino::matrix-data (rotation-matrix (rotation tf))))
           (translation (translation tf)))
      ;; Swap the Y and Z axes because povray is left-handed
      (with-vec3 (x y z) translation
        (make-pov-matrix :elements
                         (list (aref matrix 0) (aref matrix 2) (aref matrix 1)
                               (aref matrix 6) (aref matrix 8) (aref matrix 7)
                               (aref matrix 3) (aref matrix 5) (aref matrix 4)
                               x z y)))))
  
  (defmethod print-object ((object pov-matrix) stream)
    (with-pov-indent old-indent
      (format stream "~&~Amatrix <~{~A~^, ~}~&~A>"
              old-indent (pov-matrix-elements object) old-indent)))
  
  (defstruct (pov-integer-vector (:constructor %pov-integer-vector (x y z)))
    "Type for a povray vector."
  