math: vector: Add vec2*, vec2+, and vec2- procedures.
authorDavid Thompson <dthompson2@worcester.edu>
Mon, 10 Sep 2018 21:09:50 +0000 (17:09 -0400)
committerDavid Thompson <dthompson2@worcester.edu>
Mon, 10 Sep 2018 21:09:50 +0000 (17:09 -0400)
* chickadee/math/vector.scm (vec2*, vec2+, vec2-): New procedures.

chickadee/math/vector.scm

index 2ae9187..da5eef2 100644 (file)
@@ -39,6 +39,9 @@
             vec2-mult!
             vec2-add!
             vec2-sub!
+            vec2*
+            vec2+
+            vec2-
             vec3
             vec3?
             vec3->pointer
@@ -312,6 +315,24 @@ polar coordinate (R, THETA)."
         (set-vec3-y! v (- (vec3-y v) (vec3-y x)))
         (set-vec3-z! v (- (vec3-z v) (vec3-z x))))))
 
+(define-inlinable (vec2* v x)
+  "Multiply V by X."
+  (let ((new (vec2-copy v)))
+    (vec2-mult! new x)
+    new))
+
+(define-inlinable (vec2+ v x)
+  "Add X to V."
+  (let ((new (vec2-copy v)))
+    (vec2-add! new x)
+    new))
+
+(define-inlinable (vec2- v x)
+  "Subtract X from V."
+  (let ((new (vec2-copy v)))
+    (vec2-sub! new x)
+    new))
+
 ;; Reader macro for vectors.
 (define (read-vec chr port)
   (define (consume-whitespace port)