diff options
Diffstat (limited to 'vec3.h')
| -rw-r--r-- | vec3.h | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -1,30 +1,34 @@ #ifndef VEC3_H #define VEC3_H #include <iostream> + +typedef float scalar; + class vec3 { public: - double v[3]; + scalar v[3]; public: vec3(); - vec3(double x); - vec3(double x, double y, double z); - double &operator[](int index); - double operator[](int index) const; - vec3 operator*(double scale) const; - vec3 operator/(double scale) const; + vec3(scalar x); + vec3(scalar x, scalar y, scalar z); + scalar &operator[](int index); + scalar operator[](int index) const; + vec3 operator*(scalar scale) const; + vec3 operator/(scalar scale) const; vec3 operator+(const vec3 &other) const; vec3 operator-(const vec3 &other) const; vec3 operator-() const; - const vec3 &operator*=(double scale); - const vec3 &operator/=(double scale); + const vec3 &operator*=(scalar scale); + const vec3 &operator/=(scalar scale); const vec3 &operator+=(const vec3 &other); const vec3 &operator-=(const vec3 &other); - double magnitude() const; - double magnitudeSquared() const; + scalar magnitude() const; + scalar magnitudeSquared() const; vec3 normalize() const; - double dot(const vec3 &other) const; + scalar dot(const vec3 &other) const; vec3 cross(const vec3 &other) const; }; +vec3 operator*(scalar scale, const vec3 &v); std::ostream &operator<<(std::ostream &output, const vec3 &v); #endif |