anchor.diff:     (- (* (v-x vec-a) (v-y vec-b)) (* (v-y vec-a) (v-x vec-b)))))
   
   
  +;;----------------------------------------------------------------
  +
  +(defun closest-point-on-line (line point)
  +  (destructuring-bind (line-point line-dir) line
  +    (let* ((diff-vec (v- point line-point))
  +           (dist-sq (dot line-dir line-dir))
  +           (projection (dot diff-vec line-dir)))
  +      (v:+ line-point (v* line-dir (/ projection dist-sq))))))
  +
  +(defun closest-point-on-norm-line (line point)
  +  (destructuring-bind (line-point line-dir) line
  +    (let* ((diff-vec (v- point line-point))
  +           (projection (dot diff-vec line-dir)))
  +      (v:+ line-point (v* line-dir projection)))))
  +
  +(defun distance-to-line-sq (line point)
  +  (destructuring-bind (line-point line-dir) line
  +    (let* ((diff-vec (v- point line-point))
  +           (dist-sq (dot line-dir line-dir))
  +           (diff-sq (dot diff-vec diff-vec))
  +           (projection (dot diff-vec line-dir)))
  +      (- diff-sq (/ (* projection projection) dist-sq)))))
  +
  +(defun distance-to-norm-line-sq (line point)
  +  (destructuring-bind (line-point line-dir) line
  +    (let* ((diff-vec (v- point line-point))
  +           (diff-sq (dot diff-vec diff-vec))
  +           (projection (dot diff-vec line-dir)))
  +      (- diff-sq (* projection projection)))))
  +
  
positive.code:   (declare ((simple-array single-float (3)) vector-a))
    (c-sqrt (vlength-squared vector-a)))
  
  ;----------------------------------------------------------------
  
  (declaim (inline distance-squared)
  	 (ftype (function ((simple-array single-float (3)) 
  
negative.code: 				       (vc-b vector-b)) 3
      (- vc-a vc-b)))
  
  ;;---------------------------------------------------------------
  
  (declaim (inline v*)
  	 (ftype (function ((simple-array single-float (3)) 
  