diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-10-02 23:07:20 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-10-02 23:07:20 -0400 |
commit | fd12c8f0a13607aaac00110d08a113e870bd509c (patch) | |
tree | c4dbebb79ebcfcfad894e13c65998b7ffcf046df /sly/math | |
parent | 0735ffb5a06e71a27b215ab342522557bb51b7d1 (diff) |
Export vector record type identifiers for destructuring via 'match'.
* sly/match/vector.scm: Export <vector2>, <vector3> and <vector4>.
(vx, vy, vz): Use 'match' more wisely.
* sly/mesh.scm (vertices-bytevector): Destructure vectors.
* sly/transform.scm (translate, scale): Ditto.
Diffstat (limited to 'sly/math')
-rw-r--r-- | sly/math/vector.scm | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/sly/math/vector.scm b/sly/math/vector.scm index d2554fe..b9e0302 100644 --- a/sly/math/vector.scm +++ b/sly/math/vector.scm @@ -26,9 +26,10 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (sly math) - #:export (vector2 - vector3 - vector4 + #:export (<vector2> + <vector3> + <vector4> + vector2 vector3 vector4 vector2? vector3? vector4? vx vy vz vw v+ v- v* vdot vcross @@ -57,27 +58,22 @@ (define vx (match-lambda - (($ <vector2> x _) - x) - (($ <vector3> x _ _) - x) - (($ <vector4> x _ _ _) + ((or ($ <vector2> x _) + ($ <vector3> x _ _) + ($ <vector4> x _ _ _)) x))) (define vy (match-lambda - (($ <vector2> _ y) - y) - (($ <vector3> _ y _) - y) - (($ <vector4> _ y _ _) + ((or ($ <vector2> _ y) + ($ <vector3> _ y _) + ($ <vector4> _ y _ _)) y))) (define vz (match-lambda - (($ <vector3> _ _ z) - z) - (($ <vector4> _ _ z _) + ((or ($ <vector3> _ _ z) + ($ <vector4> _ _ z _)) z))) (define vw vector4-w) |