src/coordinates.lisp @ 148a6a1cc9eb

Add simple triangulations
author Steve Losh <steve@stevelosh.com>
date Tue, 06 Mar 2018 22:40:20 -0500
parents 55c0df99bd7a
children d5b02d8c4803
(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)))

(defun coord-to-cons (c)
  (cons (x c) (y c)))