diff options
Diffstat (limited to 'src/vec3.cpp')
| -rw-r--r-- | src/vec3.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vec3.cpp b/src/vec3.cpp index f5b6909..92ccae4 100644 --- a/src/vec3.cpp +++ b/src/vec3.cpp @@ -61,6 +61,12 @@ vec3 vec3::unit() const { return *this / length(); } +bool vec3::near_zero() const { + const auto s = 1e-8; + + return (fabs(x) < s) && (fabs(y) < s) && (fabs(z) < s); +} + vec3 vec3::random() { return vec3 { randd(), randd(), randd() }; } @@ -101,6 +107,10 @@ vec3 operator/(vec3 u, double scale) { return (1.0 / scale) * u; } +vec3 reflect(vec3 v, vec3 n) { + return v - 2 * v.dot(n) * n; +} + std::ostream& operator<<(std::ostream& out, vec3 vec) { return out << vec.x << ' ' << vec.y << ' ' << vec.z << std::endl; } |
