aboutsummaryrefslogtreecommitdiff
path: root/vec3.go
diff options
context:
space:
mode:
Diffstat (limited to 'vec3.go')
-rw-r--r--vec3.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/vec3.go b/vec3.go
index bc16a07..a540b7c 100644
--- a/vec3.go
+++ b/vec3.go
@@ -37,6 +37,11 @@ func (v Vec3) Mag() float64 {
return maths.Sqrt(v.MagSqr());
}
+func (v Vec3) NearZero() bool {
+ s := 1e-8;
+ return v.X < s && v.Y < s && v.Z < s;
+}
+
func (v Vec3) Unit() Vec3 {
m := v.Mag();
return Vec3{v.X / m, v.Y / m, v.Z / m};
@@ -86,3 +91,7 @@ func RandomVec3OnUnitSphere() (v Vec3) {
return;
}
+
+func (v Vec3) Reflect(n Vec3) Vec3 {
+ return v.Sub(SplatVec3(2 * v.Dot(n)).Mul(n));
+}