diff options
Diffstat (limited to 'vec3.go')
-rw-r--r-- | vec3.go | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -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)); +} |