public void Intersects_Ray3_Misses()
        {
            var b = new BoundingBox(new Vector3(3, 4, 5), new Vector3(6, 7, 8));
            var r = new Ray3(new Vector3(0, 0, 0), new Vector3(1, 0, 0));

            Assert.IsNull(b.Intersects(r));
            Assert.AreEqual(r.Intersects(b), b.Intersects(r));
        }
예제 #2
0
        public void AssertThat_RayPointingAwayDoesNotIntersect_WithPositivePlaneDistance()
        {
            Plane p = new Plane(new Vector3(0, 1, 0), 5);
            Ray3  r = new Ray3(new Vector3(0, 10, 0), new Vector3(0, 1, 0));

            var i = r.Intersects(p);

            Assert.IsNull(i);
        }
예제 #3
0
        public void AssertThat_ParallelRayDoesNotIntersect_WithNegativePlaneDistance()
        {
            Plane p = new Plane(new Vector3(0, 1, 0), -5);
            Ray3  r = new Ray3(new Vector3(0, 10, 0), new Vector3(1, 0, 0));

            var i = r.Intersects(p);

            Assert.IsNull(i);
        }
예제 #4
0
        public void AssertThat_DownwardRayIntersectsPlane_ReturnsCorrectValue_WithNegativePlaneDistance()
        {
            Plane p = new Plane(new Vector3(0, 1, 0), -5);
            Ray3  r = new Ray3(new Vector3(0, 10, 0), new Vector3(0, -1, 0));

            var i = r.Intersects(p);

            Assert.AreEqual(5, i);
        }
예제 #5
0
        public void AssertThat_DownwardRayIntersectsPlane_ReturnsCorrectValue()
        {
            Plane p = new Plane(new Vector3(0, 1, 0), 0);
            Ray3  r = new Ray3(new Vector3(0, 10, 0), new Vector3(0, -1, 0));

            var i = r.Intersects(p);

            Assert.AreEqual(10, i);
        }
예제 #6
0
        public void AssertThat_RayAlmostStartingOnPlane_Intersects_WithNegativePlaneDistance()
        {
            Plane p = new Plane(new Vector3(0, 1, 0), -5);
            Ray3  r = new Ray3(new Vector3(0, 4.999999f, 0), new Vector3(0, -1, 0));

            var i = r.Intersects(p);

            Assert.AreEqual(0, i);
        }
예제 #7
0
        public void AssertThat_RayStartingOnPlane_Intersects_WithPositivePlaneDistance()
        {
            Plane p = new Plane(new Vector3(0, 1, 0), 5);
            Ray3  r = new Ray3(new Vector3(0, -5, 0), new Vector3(0, -1, 0));

            var i = r.Intersects(p);

            Assert.AreEqual(0, i);
        }