public static Vector3D Reflect(Vector3D inDirection, Vector3D inNormal) { return -2f * Vector3D.Dot (inNormal, inDirection) * inNormal + inDirection; }
public void Reflect() { var v = new Vector3D(1, 1, 1); Assert.AreEqual(v, v.Reflect(new Vector3D(0, 0, 0))); Assert.AreEqual(new Vector3D(1, -1, 1), v.Reflect(new Vector3D(0, 1, 0))); }