diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-03-09 23:31:27 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-03-09 23:31:27 +0800 |
| commit | 4014436905aace9acd47dde245b88bd5f69335ec (patch) | |
| tree | 412bb61300cdd225bf3f79f3927f6076f718f094 /src/vec3.cc | |
| parent | 7aa2a67d8381c9a88d69a3f53d74a7f079214263 (diff) | |
| download | ray-tracing-4014436905aace9acd47dde245b88bd5f69335ec.tar.gz ray-tracing-4014436905aace9acd47dde245b88bd5f69335ec.tar.xz | |
Sending Rays Into the Scene
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(); -} |
