aboutsummaryrefslogtreecommitdiffstats
path: root/src/vec3.cpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2020-12-21 13:51:18 +0100
committerladevieq <ladevie.quentin@gmail.com>2020-12-21 13:51:18 +0100
commit56bed8e38f5b6d9effd77371ad781ae71601205b (patch)
tree1f57155b8f5b15fd2b33ac7e926e3e5d0ce1754c /src/vec3.cpp
parent92d66138f53645f3400f633c9821a6fa36f589e0 (diff)
Add lambertian and metallic materials
Diffstat (limited to 'src/vec3.cpp')
-rw-r--r--src/vec3.cpp10
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;
}