diff options
| author | tlatorre <tlatorre@uchicago.edu> | 2018-08-14 10:08:27 -0500 |
|---|---|---|
| committer | tlatorre <tlatorre@uchicago.edu> | 2018-08-14 10:08:27 -0500 |
| commit | 24c8bcfe7f76b20124e2862ea050f815c0f768e7 (patch) | |
| tree | e5bdbd638a2c7f38f1c094cc9e95cbdfe05b9481 /src/vector.c | |
| parent | 0b7f199c0d93074484ea580504485a32dc29f5e2 (diff) | |
| download | sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.tar.gz sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.tar.bz2 sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.zip | |
move everything to src directory
Diffstat (limited to 'src/vector.c')
| -rw-r--r-- | src/vector.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/vector.c b/src/vector.c new file mode 100644 index 0000000..d0e304a --- /dev/null +++ b/src/vector.c @@ -0,0 +1,26 @@ +#include "vector.h" +#include <math.h> + +void normalize(double *a) +{ + double c; + c = NORM(a); + DIV(a,c); +} + +void rotate(double *dest, double *v, double *n, double phi) +{ + /* Rotate the vector `v` through an angle `phi` about the axis `n`. */ + double temp[3], cos_theta; + + cos_theta = cos(phi); + + COPY(dest,v); + MUL(dest,cos_theta); + CROSS(temp,n,v); + MUL(temp,sin(phi)); + ADD(dest,dest,temp); + COPY(temp,n); + MUL(temp,DOT(n,v)*(1-cos_theta)); + ADD(dest,dest,temp); +} |
