public void IntersectParalellTest() { var tri = new TriangleIntersector(Vector3.J, -Vector3.I, new Vector3(1, -1, 0)); var edge = new Edge(Vector3.I, -Vector3.I); Assert.That(tri.FindIntersections(edge), Is.EquivalentTo(Enumerable.Empty<Intersection>())); }
public void IntersectMiddleTest() { var tri = new TriangleIntersector(Vector3.J, -Vector3.I, new Vector3(1, -1, 0)); var edge = new Edge(Vector3.K, -Vector3.K); Assert.That(tri.FindIntersections(edge), Is.EquivalentTo(new[] { new Intersection(Vector3.Zero, Vector3.K) })); }
public IEnumerator GetEnumerator() { var t1 = new TriangleIntersector(Vector3.I, Vector3.J, Vector3.K); var t1n = new Vector3(1, 1, 1).UnitDirection; var e1 = new Edge(Vector3.Zero, new Vector3(1, 1, 1)); var e2 = new Edge(Vector3.Zero, 2 * Vector3.I); var e3 = new Edge(Vector3.Zero, new Vector3(-1, -1, -1)); var e4 = new Edge(Vector3.I, Vector3.J); var i1 = new Intersection(new Vector3(1.0/3.0, 1.0/3.0, 1.0/3.0), t1n); var i2 = new Intersection(Vector3.I, t1n); var none = Enumerable.Empty<Intersection>(); yield return new object[] { t1, e1, new[] { i1 } }; yield return new object[] { t1, e2, new[] { i2 } }; yield return new object[] { t1, e3, none }; yield return new object[] { t1, e4, none }; }
public void EdgeIntersectTest(TriangleIntersector t, Edge e, IEnumerable<Intersection> intersects) { Assert.That(t.FindIntersections(e), Is.EquivalentTo(intersects)); }