summaryrefslogtreecommitdiff
path: root/common/vec3.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/vec3.c')
-rw-r--r--common/vec3.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/common/vec3.c b/common/vec3.c
index 9a3561365a..29dc22f922 100644
--- a/common/vec3.c
+++ b/common/vec3.c
@@ -9,6 +9,13 @@
#include "vec3.h"
#include "util.h"
+void fpv3_init(fpv3_t v, fp_t x, fp_t y, fp_t z)
+{
+ v[X] = x;
+ v[Y] = y;
+ v[Z] = z;
+}
+
void fpv3_scalar_mul(fpv3_t v, fp_t c)
{
v[X] = fp_mul(v[X], c);
@@ -16,6 +23,20 @@ void fpv3_scalar_mul(fpv3_t v, fp_t c)
v[Z] = fp_mul(v[Z], c);
}
+void fpv3_sub(fpv3_t out, const fpv3_t a, const fpv3_t b)
+{
+ out[X] = a[X] - b[X];
+ out[Y] = a[Y] - b[Y];
+ out[Z] = a[Z] - b[Z];
+}
+
+void fpv3_add(fpv3_t out, const fpv3_t a, const fpv3_t b)
+{
+ out[X] = a[X] + b[X];
+ out[Y] = a[Y] + b[Y];
+ out[Z] = a[Z] + b[Z];
+}
+
fp_t fpv3_dot(const fpv3_t v, const fpv3_t w)
{
return fp_mul(v[X], w[X]) + fp_mul(v[Y], w[Y]) + fp_mul(v[Z], w[Z]);