diff options
| author | Franklin Wei <me@fwei.tk> | 2017-04-02 20:20:43 -0400 |
|---|---|---|
| committer | Franklin Wei <me@fwei.tk> | 2017-04-02 20:20:43 -0400 |
| commit | d6e9b142e014c3d171932894dbb0db0410e91af7 (patch) | |
| tree | 31aedf3a79d8071cb638533e5e220540cbdc1a6a /vector.h | |
| download | raytrace-d6e9b142e014c3d171932894dbb0db0410e91af7.zip raytrace-d6e9b142e014c3d171932894dbb0db0410e91af7.tar.gz raytrace-d6e9b142e014c3d171932894dbb0db0410e91af7.tar.bz2 raytrace-d6e9b142e014c3d171932894dbb0db0410e91af7.tar.xz | |
initial commit
Diffstat (limited to 'vector.h')
| -rw-r--r-- | vector.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/vector.h b/vector.h new file mode 100644 index 0000000..24773c7 --- /dev/null +++ b/vector.h @@ -0,0 +1,27 @@ +#include <math.h> + +typedef double scalar; + +typedef struct vector_t { + enum { RECT, SPH } type; + union { + struct { + scalar x, y, z; + } rect; + struct { + scalar r, elevation, azimuth; + } sph; + }; +} vector; + +scalar vect_abs(const vector*); + +void vect_mul(vector*, scalar); +void vect_add(vector*, const vector*); + +void vect_to_rect(vector*); +void vect_to_sph(vector*); +void vect_sub(vector*, const vector*); +void vect_negate(vector*); + +scalar vect_dot(const vector *v1, const vector *v2); |