summaryrefslogtreecommitdiff
path: root/sly/math
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2014-10-02 23:07:20 -0400
committerDavid Thompson <dthompson2@worcester.edu>2014-10-02 23:07:20 -0400
commitfd12c8f0a13607aaac00110d08a113e870bd509c (patch)
treec4dbebb79ebcfcfad894e13c65998b7ffcf046df /sly/math
parent0735ffb5a06e71a27b215ab342522557bb51b7d1 (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.scm28
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)