Merge branch 'fare-master'
[cl-tuples.git] / line.lisp
blobabede4cf77539eecf4ec574848e486a424ba9d27
2 (in-package :cl-tuples)
4 (def-tuple-type line2d
5 :tuple-element-type single-float
6 :initial-element 0.0f0
7 :elements (sx sy ex ey))
9 (def-tuple-type line3d
10 :tuple-element-type single-float
11 :initial-element 0.0f0
12 :elements (sx sy sz ex ey ez))
14 (def-tuple-op line->vector2d
15 ((line line2d (sx sy ex ey)))
16 (:return vector2d
17 (vector2d* (- ex sx) (- ey sy))))
19 (def-tuple-op line-start->vertex2d
20 ((line line2d (sx sy ex ey)))
21 (:return vertex2d
22 (vector2d* sx sy)))
24 (def-tuple-op line-end->vertex2d
25 ((line line2d (sx sy ex ey)))
26 (:return vertex2d
27 (vector2d* sx sy)))
30 (def-tuple-type line3d
31 :tuple-element-type single-float
32 :elements (sx sy sz ex ey ez))
34 (def-tuple-op line->vector3d
35 ((line line3d (sx sy ex ey)))
36 (:return vector3d
37 (vector3d* (- ex sx) (- ey sy) (- ez sz))))
39 (def-tuple-op line-start->vertex3d
40 ((line line3d (sx sy ex ey)))
41 (:return vertex3d
42 (vector3d* sx sy sz)))
44 (def-tuple-op line-end->vertex3d
45 ((line line3d (sx sy ex ey)))
46 (:return vertex3d
47 (vector3d* sx sy sz)))