aboutsummaryrefslogtreecommitdiffstats
path: root/src/vec3.cpp
diff options
context:
space:
mode:
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;
}