X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=convert.lisp;h=f663cf8fc98e1651357ea99a0cc8edb70b8ded8f;hb=01efbdaa2981abb7f7a399f5a7f7ff3c431432d5;hp=5327d58ae7b898acd4256667aefc32b4d46ebc54;hpb=3a9869ff12d0bff6712cfecf52ed40534d64844e;p=cl-photo.git diff --git a/convert.lisp b/convert.lisp index 5327d58..f663cf8 100755 --- a/convert.lisp +++ b/convert.lisp @@ -46,6 +46,28 @@ (defun inches->mm (d) (* d +inches->mm+)) +(declaim (inline mm->inches)) +(defun mm->inches (d) + (/ d +inches->mm+)) + +(defun length->mm (d units) + "Convert a length in units to mm." + (ecase units + (:mm d) + (:inches (inches->mm d)) + (:feet (* 12 (inches->mm d))) + (:yards (* 36 (inches->mm d))) + (:meters (* 1000 d)))) + +(defun mm->length (d units) + "Convert a number of mm to units." + (ecase units + (:mm d) + (:inches (mm->inches d)) + (:feet (/ (mm->inches d) 12)) + (:yards (/ (mm->inches d) 36)) + (:meters (/ d 1000)))) + (defun format-dimensions (format) "Returns format dimensions in mm." (ecase format