summaryrefslogtreecommitdiff
path: root/2d/vector2.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson@member.fsf.org>2013-08-27 18:39:38 -0400
committerDavid Thompson <dthompson@member.fsf.org>2013-08-27 18:39:38 -0400
commitcd9a3d80d8443b4e9a2fbab8f15235fd91e69052 (patch)
tree541cecc4b435294c4a3ca0d566d1dd57c64be0be /2d/vector2.scm
parent5841889f53465b4096830f3778b209063e1fe8bc (diff)
Add procedures to perform a gl-translate or gl-scale given a vector2 object.
Diffstat (limited to '2d/vector2.scm')
-rw-r--r--2d/vector2.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/2d/vector2.scm b/2d/vector2.scm
index 7720095..d231f93 100644
--- a/2d/vector2.scm
+++ b/2d/vector2.scm
@@ -22,6 +22,7 @@
;;; Code:
(define-module (2d vector2)
+ #:use-module (figl gl)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:export (<vector2>
@@ -38,7 +39,9 @@
vmag
vnorm
vdot
- vcross))
+ vcross
+ vector2-translate
+ vector2-scale))
(define-record-type <vector2>
(vector2 x y)
@@ -105,3 +108,12 @@ vector is not defined. This function instead returns the Z coordinate
of the cross product as if the vectors were in 3D space."
(- (* (vx v1) (vy v2))
(* (vy v1) (vx v2))))
+
+(define (vector2-translate v)
+ "Perform an OpenGL translate matrix operation with the given
+vector2."
+ (gl-translate (vx v) (vy v) 0))
+
+(define (vector2-scale v)
+ "Perform an OpenGL scale matrix operation with the given vector2."
+ (gl-scale (vx v) (vy v) 1))