aboutsummaryrefslogtreecommitdiff
path: root/lib/vec3.rb
diff options
context:
space:
mode:
authorNat Lasseter <user@4574.co.uk>2024-06-13 13:24:53 +0100
committerNat Lasseter <user@4574.co.uk>2024-06-13 13:24:53 +0100
commitb976ce98be7275bf92e01f6c86bf2b694530481e (patch)
tree0b405ce8ecb2ef3d01e17c2bf089adc7788d084e /lib/vec3.rb
parent523f9439ed0d2e4c2d51edc623b6c4d62885cfdd (diff)
Done C10, Materials
Diffstat (limited to 'lib/vec3.rb')
-rw-r--r--lib/vec3.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/vec3.rb b/lib/vec3.rb
index 08cbf69..3069b65 100644
--- a/lib/vec3.rb
+++ b/lib/vec3.rb
@@ -56,10 +56,18 @@ class Vec3
self / mag
end
+ def reflect(normal)
+ self - normal * dot(normal) * 2
+ end
+
def in_unit_sphere?
mag_sqr < 1
end
+ def near_zero?(s = 1e-8)
+ @x.abs < s && @y.abs < s && @z.abs < s
+ end
+
def to_s
"{#{@x}, #{@y}, #{@z}}"
end