From 0c050734c70b2d1710e07a03cf230ce8749fdfb6 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 7 Sep 2013 18:26:05 -0700 Subject: [PATCH] Add vector_sub_vector and vector_dot to basics --- src/basics.c | 19 +++++++++++++++++++ src/basics.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/src/basics.c b/src/basics.c index 3c28b1a..389f3c2 100644 --- a/src/basics.c +++ b/src/basics.c @@ -52,6 +52,18 @@ vector_mult_vector(Vector3 v, Vector3 f) } +/* + * vector_sub_vector -- + * + * Subtract s from m. Return a new vector. + */ +Vector3 +vector_sub_vector(Vector3 m, Vector3 s) +{ + return vector_init(m.x - s.x, m.y - s.y, m.z - s.z); +} + + /* * vector_length2 -- * @@ -76,6 +88,13 @@ vector_length(Vector3 v) } +float +vector_dot(Vector3 v, Vector3 f) +{ + return (v.x * f.x) + (v.y * f.x) + (v.z * f.z); +} + + /* * vector_normalize -- * diff --git a/src/basics.h b/src/basics.h index bdb78f4..466ed03 100644 --- a/src/basics.h +++ b/src/basics.h @@ -23,8 +23,11 @@ extern const Vector3 ZeroVector3; Vector3 vector_init(float x, float y, float z); Vector3 vector_mult_scalar(Vector3 v, float f); Vector3 vector_mult_vector(Vector3 v, Vector3 f); +Vector3 vector_sub_vector(Vector3 m, Vector3 s); float vector_length2(Vector3 v); float vector_length(Vector3 v); +float vector_dot(Vector3 v, Vector3 f); + Vector3 vector_normalize(Vector3 v);