public void Collides_Ray3d() { // Arrange var s0 = new Sphere3d(new Vector3d(-2, 0, 0), 3); var r0 = new Ray3d(new Vector3d(2, 0, 0), new Vector3d(-1, 0, 0)); // Act var c0 = s0.Collides(r0); // Assert Assert.AreEqual(new Vector3d(1, 0, 0), c0.HitPoint); Assert.AreEqual(new Vector3d(1, 0, 0), c0.Normal); Assert.AreEqual(s0, c0.Object0); Assert.AreEqual(r0, c0.Object1); Assert.AreEqual(0, c0.PenetrationDepth); }
public void Collides_Sphere3d() { // Arrange var s0 = new Sphere3d(new Vector3d(-2, 0, 0), 3); var s1 = new Sphere3d(new Vector3d(2, 0, 0), 3); // Act var c0 = s0.Collides(s1); var c1 = s1.Collides(s0); // Assert Assert.AreEqual(new Vector3d(1, 0, 0), c0.HitPoint); Assert.AreEqual(new Vector3d(-1, 0, 0), c0.Normal); Assert.AreEqual(s0, c0.Object0); Assert.AreEqual(s1, c0.Object1); Assert.AreEqual(2, c0.PenetrationDepth); Assert.AreEqual(new Vector3d(-1, 0, 0), c1.HitPoint); Assert.AreEqual(new Vector3d(1, 0, 0), c1.Normal); Assert.AreEqual(s1, c1.Object0); Assert.AreEqual(s0, c1.Object1); Assert.AreEqual(2, c1.PenetrationDepth); }