diff options
| author | Franklin Wei <me@fwei.tk> | 2019-03-07 19:14:35 -0500 |
|---|---|---|
| committer | Franklin Wei <me@fwei.tk> | 2019-03-07 19:14:35 -0500 |
| commit | 31539f3af0c7beea865b29fdda0840c79f14710e (patch) | |
| tree | 7bea014a44a938f71ea21b3a8ba457b3576348d9 /include/fml/vec2.h | |
| download | libfml-31539f3af0c7beea865b29fdda0840c79f14710e.zip libfml-31539f3af0c7beea865b29fdda0840c79f14710e.tar.gz libfml-31539f3af0c7beea865b29fdda0840c79f14710e.tar.bz2 libfml-31539f3af0c7beea865b29fdda0840c79f14710e.tar.xz | |
Import from fieldviz
Diffstat (limited to 'include/fml/vec2.h')
| -rw-r--r-- | include/fml/vec2.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/fml/vec2.h b/include/fml/vec2.h new file mode 100644 index 0000000..166b99c --- /dev/null +++ b/include/fml/vec2.h @@ -0,0 +1,38 @@ +#ifndef VEC2_H +#define VEC2_H +#include <iostream> + +#include "fml.h" + +namespace fml { + class vec2 { + public: + scalar v[2]; + public: + vec2(); + vec2(scalar x); + vec2(scalar x, scalar y); + scalar &operator[](int index); + scalar operator[](int index) const; + vec2 operator*(scalar scale) const; + vec2 operator/(scalar scale) const; + vec2 operator+(const vec2 &other) const; + vec2 operator-(const vec2 &other) const; + vec2 operator-() const; + const vec2 &operator*=(scalar scale); + const vec2 &operator/=(scalar scale); + const vec2 &operator+=(const vec2 &other); + const vec2 &operator-=(const vec2 &other); + scalar magnitude() const; + scalar magnitudeSquared() const; + vec2 normalize() const; + scalar dot(const vec2 &other) const; + }; + + vec2 operator*(scalar scale, const vec2 &v); + + std::ostream &operator<<(std::ostream &output, const vec2 &v); + std::istream &operator>>(std::istream &input, vec3 &v); +} + +#endif |