src/coordinates.lisp @ 55c0df99bd7a

Initial commit
author Steve Losh <steve@stevelosh.com>
date Sat, 03 Feb 2018 14:31:14 -0500
parents (none)
children 148a6a1cc9eb
(in-package :flax.coordinates)

(defstruct (coord (:conc-name "")
                  (:constructor make-coord (x y)))
  (x (error "Required") :type single-float)
  (y (error "Required") :type single-float))

(defun coord (x y)
  (make-coord (coerce x 'single-float)
              (coerce y 'single-float)))

(defun distance (c1 c2)
  (+ (square (- (x c2) (x c1)))
     (square (- (y c2) (y c1)))))

(defun clerp (from to n)
  (coord (lerp (x from) (x to) n)
         (lerp (y from) (y to) n)))