summaryrefslogtreecommitdiff
path: root/maths.c
diff options
context:
space:
mode:
authorquou <quou@disroot.org>2024-07-27 15:43:22 +1000
committerquou <quou@disroot.org>2024-07-27 15:43:22 +1000
commitb8b18d982af8cc8e10372f90c6c7bff4f0b58f69 (patch)
tree08f66b35a64f729f3dfe1a21ec6e1763bff066eb /maths.c
parent629a24052f77529cc306cbd355f57a48ba3ff49d (diff)
vec_add, vec_sub and vec_dist
Diffstat (limited to 'maths.c')
-rw-r--r--maths.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/maths.c b/maths.c
index 70b354e..a0c9ed5 100644
--- a/maths.c
+++ b/maths.c
@@ -282,6 +282,29 @@ int* vec_nrm(int* d, const int* a, int c) {
return d;
}
+int* vec_sub(int* d, const int* a, const int* b, int c) {
+ int i;
+ for (i = 0; i < c; i++) {
+ d[i] = a[i] - b[i];
+ }
+ return d;
+}
+
+int* vec_add(int* d, const int* a, const int* b, int c) {
+ int i;
+ for (i = 0; i < c; i++) {
+ d[i] = a[i] + b[i];
+ }
+ return d;
+}
+
+int vec_dist(int* w, const int* a, const int* b, int c) {
+ int dot;
+ vec_sub(w, a, b, c);
+ dot = vec_dot(w, w, c);
+ return fsqrt(dot);
+}
+
int* persp(int* v, int asp) {
v[2] += !v[2];
v[0] = ((v[0] << fbits) / v[2]);