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)); }