diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2020-12-21 13:51:18 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2020-12-21 13:51:18 +0100 |
| commit | 56bed8e38f5b6d9effd77371ad781ae71601205b (patch) | |
| tree | 1f57155b8f5b15fd2b33ac7e926e3e5d0ce1754c /src/vec3.cpp | |
| parent | 92d66138f53645f3400f633c9821a6fa36f589e0 (diff) | |
Add lambertian and metallic materials
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; } |
