diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-10-01 20:52:09 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-10-01 20:52:09 -0400 |
commit | 0735ffb5a06e71a27b215ab342522557bb51b7d1 (patch) | |
tree | 6d5f269030dfbf990ba1027ad3138538123edef7 /sly/quaternion.scm | |
parent | 5e5920afad058cbb7a179b2be92271f1603da9e1 (diff) |
Rewrite vector math module.
* .gitignore: Ignore '*.log' files.
* sly/vector.scm: Delete file.
* sly/math/vector.scm: New file.
* tests/math/vector.scm: New file.
* Makefile.am: Add new file and remove the old one.
* sly/font.scm: Remove import.
* sly/game.scm: Change import.
* sly/joystick.scm (make-directional-signal-raw, make-directional): Use
'vector2'.
* sly/keyboard.scm (key-directions): Use 'vector2'.
* sly/mesh.scm (vertices-bytevector): Use new vector procedures.
* sly/mouse.scm (mouse-position): Use 'vector2'.
* sly/quaternion.scm (axis-angle->quaternion, quaternion->vector,
vector->quaternion): Use new vector procedures.
* sly/rect.scm (rect-position, rect-top-right, rect-bottom-left,
rect-bottom-right, rect-center, rect-size): Use 'vector2'.
* sly/scene.scm (make-scene-node): Use 'vector2'.
* sly/shader.scm: Change import.
* sly/shape.scm (make-cube): Use new vector procedures.
* sly/sprite.scm (make-sprite): Use new vector procedures.
* sly/texture.scm (anchor-texture): Use 'vector2'.
* sly/transform.scm (transform-vector2): Use 'vector2'.
(translate, scale): Use new vector procedures.
* sly/transition.scm (guess-interpolator): Use new vector procedures.
* sly/window.scm (make-window, window-size, open-window): Use 'vector2'.
Diffstat (limited to 'sly/quaternion.scm')
-rw-r--r-- | sly/quaternion.scm | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sly/quaternion.scm b/sly/quaternion.scm index 68dd660..9bf9427 100644 --- a/sly/quaternion.scm +++ b/sly/quaternion.scm @@ -27,7 +27,7 @@ #:use-module (srfi srfi-9) #:use-module (sly math) #:use-module (sly transform) - #:use-module (sly vector) + #:use-module (sly math vector) #:export (make-quaternion quaternion? quaternion-w quaternion-x quaternion-y quaternion-z @@ -97,20 +97,20 @@ AXIS must be a 3D vector." (let* ((cos (cos (/ theta 2))) (sin (sin (/ theta 2)))) (match axis - (#(x y z) - (make-quaternion cos (* x sin) (* y sin) (* z sin)))))) + ((? vector3? v) + (make-quaternion cos (* (vx v) sin) (* (vy v) sin) (* (vz v) sin)))))) (define (quaternion->vector q) "Convert the quaternion Q into a 4D vector." (match q (($ <quaternion> w x y z) - (vector w x y z)))) + (vector4 w x y z)))) (define (vector->quaternion v) "Convert the 4D vector V into a quaternion." (match v - (#(w x y z) - (make-quaternion w x y z)))) + ((? vector4? v) + (make-quaternion (vx v) (vy v) (vz v) (vw v))))) (define (quaternion->transform q) "Convert the quaternion Q into a 4x4 transformation matrix." |