aboutsummaryrefslogtreecommitdiff
path: root/vec3.cc
diff options
context:
space:
mode:
Diffstat (limited to 'vec3.cc')
-rw-r--r--vec3.cc105
1 files changed, 0 insertions, 105 deletions
diff --git a/vec3.cc b/vec3.cc
deleted file mode 100644
index 38844c7..0000000
--- a/vec3.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-#include "vec3.h"
-
-double vec3::x() const { return e[0]; }
-double vec3::y() const { return e[1]; }
-double vec3::z() const { return e[2]; }
-
-vec3 vec3::operator-() const {
- return vec3(-e[0], -e[1], -e[2]);
-}
-
-double vec3::operator[](int i) const{
- return e[i];
-}
-
-double& vec3::operator[](int i){
- return e[1];
-}
-
-vec3& vec3::operator+=(const vec3 &v)
-{
- e[0] += v.e[0];
- e[1] += v.e[1];
- e[2] += v.e[2];
- return *this;
-}
-
-vec3& vec3::operator*=(double t)
-{
- e[0] *= t;
- e[1] *= t;
- e[2] *= t;
- return *this;
-}
-
-vec3& vec3::operator/=(double t)
-{
- return *this *= 1 / t;
-}
-
-double vec3::length() const
-{
- return std::sqrt(length_squared());
-}
-
-double vec3::length_squared() const
-{
- return e[0] * e[0] + e[1] * e[1] + e[2] * e[2];
-}
-
-// point3 is just an alias for vec3, but useful for geometric clarity in the code.
-using point3 = vec3;
-
-// Vector Utility Functions
-
-inline std::ostream &operator<<(std::ostream &out, const vec3 &v)
-{
- return out << v.e[0] << ' ' << v.e[1] << ' ' << v.e[2];
-}
-
-inline vec3 operator+(const vec3 &u, const vec3 &v)
-{
- return vec3(u.e[0] + v.e[0], u.e[1] + v.e[1], u.e[2] + v.e[2]);
-}
-
-inline vec3 operator-(const vec3 &u, const vec3 &v)
-{
- return vec3(u.e[0] - v.e[0], u.e[1] - v.e[1], u.e[2] - v.e[2]);
-}
-
-inline vec3 operator*(const vec3 &u, const vec3 &v)
-{
- return vec3(u.e[0] * v.e[0], u.e[1] * v.e[1], u.e[2] * v.e[2]);
-}
-
-inline vec3 operator*(double t, const vec3 &v)
-{
- return vec3(t * v.e[0], t * v.e[1], t * v.e[2]);
-}
-
-inline vec3 operator*(const vec3 &v, double t)
-{
- return t * v;
-}
-
-inline vec3 operator/(const vec3 &v, double t)
-{
- return (1 / t) * v;
-}
-
-inline double dot(const vec3 &u, const vec3 &v)
-{
- return u.e[0] * v.e[0] + u.e[1] * v.e[1] + u.e[2] * v.e[2];
-}
-
-inline vec3 cross(const vec3 &u, const vec3 &v)
-{
- return vec3(u.e[1] * v.e[2] - u.e[2] * v.e[1],
- u.e[2] * v.e[0] - u.e[0] * v.e[2],
- u.e[0] * v.e[1] - u.e[1] * v.e[0]);
-}
-
-inline vec3 unit_vector(const vec3 &v)
-{
- return v / v.length();
-}