diff options
Diffstat (limited to 'src/vec3.cc')
| -rw-r--r-- | src/vec3.cc | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/src/vec3.cc b/src/vec3.cc index d01f90a..4332c56 100644 --- a/src/vec3.cc +++ b/src/vec3.cc @@ -74,59 +74,3 @@ 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 { 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 { 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 { 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 { 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 { - 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(); -} |
