math: vector: Add vec3 arithmetic procedures.
authorDavid Thompson <dthompson2@worcester.edu>
Fri, 11 Oct 2019 22:42:56 +0000 (18:42 -0400)
committerDavid Thompson <dthompson2@worcester.edu>
Fri, 11 Oct 2019 22:42:56 +0000 (18:42 -0400)
chickadee/math/vector.scm

index cbba1e6..41c7659 100644 (file)
@@ -58,6 +58,9 @@
             set-vec3-y!
             set-vec3!
             vec3-normalize!
+            vec3*
+            vec3+
+            vec3-
             vec3-mult!
             vec3-add!
             vec3-sub!))
@@ -339,6 +342,24 @@ polar coordinate (R, THETA)."
     (vec2-sub! new x)
     new))
 
+(define-inlinable (vec3* v x)
+  "Multiply V by X."
+  (let ((new (vec3-copy v)))
+    (vec3-mult! new x)
+    new))
+
+(define-inlinable (vec3+ v x)
+  "Add X to V."
+  (let ((new (vec3-copy v)))
+    (vec3-add! new x)
+    new))
+
+(define-inlinable (vec3- v x)
+  "Subtract X from V."
+  (let ((new (vec3-copy v)))
+    (vec3-sub! new x)
+    new))
+
 ;; Reader macro for vectors.
 (define (read-vec chr port)
   (define (consume-whitespace port)