diff options
author | quou <quou@disroot.org> | 2024-07-27 15:43:22 +1000 |
---|---|---|
committer | quou <quou@disroot.org> | 2024-07-27 15:43:22 +1000 |
commit | b8b18d982af8cc8e10372f90c6c7bff4f0b58f69 (patch) | |
tree | 08f66b35a64f729f3dfe1a21ec6e1763bff066eb /maths.c | |
parent | 629a24052f77529cc306cbd355f57a48ba3ff49d (diff) |
vec_add, vec_sub and vec_dist
Diffstat (limited to 'maths.c')
-rw-r--r-- | maths.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -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]); |